@huntsman-cancer-institute/dashboard 17.9.2 → 17.9.4

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.
@@ -580,10 +580,10 @@ export class DashboardService {
580
580
  getWidgetComponentCreated() {
581
581
  return this.widgetComponentCreated;
582
582
  }
583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DashboardService, deps: [{ token: i1.HttpClient }, { token: USER_PROFILE_ENDPOINT }, { token: DASHBOARD_TYPE }], target: i0.ɵɵFactoryTarget.Injectable }); }
584
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DashboardService }); }
583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardService, deps: [{ token: i1.HttpClient }, { token: USER_PROFILE_ENDPOINT }, { token: DASHBOARD_TYPE }], target: i0.ɵɵFactoryTarget.Injectable }); }
584
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardService }); }
585
585
  }
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DashboardService, decorators: [{
586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardService, decorators: [{
587
587
  type: Injectable
588
588
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
589
589
  type: Inject,
@@ -592,4 +592,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
592
592
  type: Inject,
593
593
  args: [DASHBOARD_TYPE]
594
594
  }] }] });
595
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQU8sTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQ2hFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFrQixjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXpHLE1BQU0sQ0FBQyxJQUFJLHFCQUFxQixHQUEyQixJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3JHLE1BQU0sQ0FBQyxJQUFJLGNBQWMsR0FBMkIsSUFBSSxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDeEYsTUFBTSxDQUFDLElBQUksaUJBQWlCLEdBQWdDLElBQUksY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFbkc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUErQjNCOzs7Ozs7T0FNRztJQUNILFlBQW9CLElBQWdCLEVBQ2UsbUJBQTJCLEVBQ2xDLGFBQXFCO1FBRjdDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDZSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVE7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUF0QzFELHFCQUFnQixHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzVELHVDQUFrQyxHQUFvQyxJQUFJLGVBQWUsQ0FBaUIsU0FBUyxDQUFDLENBQUM7UUFDckgsZ0NBQTJCLEdBQTRCLElBQUksT0FBTyxFQUFrQixDQUFDO1FBRXJGLG9CQUFlLEdBQXlCLElBQUksT0FBTyxFQUFlLENBQUM7UUFFbEUsa0NBQTZCLEdBQW9CLElBQUksT0FBTyxFQUFVLENBQUM7UUFFdkUsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFFN0IsWUFBTyxHQUE4QixJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztRQUc5RSxtQkFBYyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzFELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFaEYsVUFBSyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBR25CLDBCQUFxQixHQUEwQyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUszRywyQkFBc0IsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNoRSwrQkFBMEIsR0FBaUMsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFDOUYsNEJBQXVCLEdBQWtELElBQUksR0FBRyxFQUE0QyxDQUFDO1FBWW5JLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3ZGLFFBQVEsQ0FBQztnQkFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsOEJBQThCLENBQUM7Z0JBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRywyQkFBMkIsQ0FBQztnQkFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHFCQUFxQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUMsQ0FBQztnQkFDcEksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFDLENBQUM7YUFDNUgsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWpDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCLENBQUMscUJBQXNDO1FBQzdELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUNyRCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFhO1FBQy9CLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELElBQUksd0JBQXdCLEdBQTZCLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUN4Rix3QkFBd0IsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLHdCQUF3QixDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDdkMsd0JBQXdCLENBQUMsVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkYsd0JBQXdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQW9DLENBQUM7UUFDekUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUVuRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1lBQ3BGLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLFFBQWE7UUFDdEIsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQVcsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1CQUFtQixDQUFDLFFBQWE7UUFDL0IsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFxQixRQUFRLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLFFBQWE7UUFDekIsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBaUIsRUFBRSxDQUFpQixFQUFFLEVBQUU7Z0JBQ3BILElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDM0QsSUFBSSxFQUFFLEdBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3JDLElBQUksRUFBRSxHQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNyQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQzt3QkFDWixPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNaLENBQUM7eUJBQU0sSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ25CLE9BQU8sQ0FBQyxDQUFDO29CQUNYLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsQ0FBQztvQkFDWCxDQUFDO2dCQUNILENBQUM7cUJBQU0sSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNyQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNaLENBQUM7cUJBQU0sSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNyQyxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFBLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsTUFBYztRQUMvQixJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxZQUFZLEdBQWEsRUFBRSxDQUFDO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzVDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLElBQUksWUFBWSxHQUFhLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQzVDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzlHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRCxDQUFDO3lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ2pJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxrQkFBa0IsQ0FBQyxnQkFBd0IsRUFBRSxpQkFBeUI7UUFDcEUsSUFBSSxlQUFlLEdBQTJCLEVBQUUsQ0FBQztRQUVqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ25FLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztvQkFDaEYsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUEyQixFQUFFLEVBQUU7d0JBQy9ILE9BQU8sS0FBSyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixDQUFDO29CQUN2RCxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUEyQixFQUFFLEVBQUU7NEJBQzNILE9BQU8sS0FBSyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixDQUFDO3dCQUN2RCxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxlQUFlLENBQUM7b0JBQ3pCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsbUNBQW1DLENBQUMsZ0NBQTREO1FBQzlGLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDeEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsZ0NBQWdDLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsK0JBQStCLENBQUMsaUJBQXlCO1FBQ3ZELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDBFQUEwRSxHQUFHLGlCQUFpQixDQUFDLENBQUM7UUFDaEgsQ0FBQztRQUVELElBQUksZUFBZSxHQUEyQixFQUFFLENBQUM7UUFFakQsSUFBSSxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztZQUMxQyxLQUFLLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUN6RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDckYsSUFBSSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixFQUFFLENBQUM7d0JBQ3BHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDOzRCQUNuRyxJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dDQUMxSyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDOUYsQ0FBQzt3QkFDSCxDQUFDO3dCQUNELElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQzs0QkFDakMsSUFBSSxjQUFjLEdBQXlCLElBQUksb0JBQW9CLEVBQUUsQ0FBQzs0QkFDdEUsY0FBYyxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzs0QkFDeEQsY0FBYyxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDOzRCQUVyRCxJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7Z0NBQ3pFLElBQUksSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7b0NBQ25GLGNBQWMsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7Z0NBQy9HLENBQUM7cUNBQU0sSUFBSSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQ0FDM0YsY0FBYyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dDQUM3SSxDQUFDO3FDQUFNLENBQUM7b0NBQ04sY0FBYyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQ0FDcEcsQ0FBQzs0QkFDSCxDQUFDOzRCQUVELGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQ3ZDLENBQUM7d0JBQ0QsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILG1CQUFtQixDQUFDLGlCQUF5QixFQUFFLGdCQUF3QixFQUFFLFNBQWlCO1FBQ3hGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25GLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsS0FBSyxnQkFBZ0I7bUJBQ3hGLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNyRixJQUFJLENBQUMsSUFBSTtxQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDBCQUEwQixHQUFHLGdCQUFnQixHQUFHLGFBQWEsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztxQkFDMUgsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNwQixNQUFNO2dCQUNSLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw4QkFBOEIsQ0FBQyxjQUE4QixFQUFFLGVBQWdDLEVBQUUsR0FBWTtRQUMzRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJO2lCQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsMEJBQTBCLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixHQUFHLHNCQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSx1QkFBdUIsRUFBRSxDQUFDLENBQUM7aUJBQ3BLLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMzQixjQUFjLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFdkYsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtDQUFrQyxDQUFDLGNBQThCLEVBQUUsR0FBWTtRQUM3RSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsY0FBYyxDQUFDO1FBQ2xELElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUcsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQzFHLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILCtCQUErQixDQUFDLGlCQUF5QixFQUFFLGVBQXVDO1FBQ2hHLHFCQUFxQjtRQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hELElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQztZQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbkcsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUMvSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0YsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDZCxNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDL0MsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDOUQsQ0FBQztnQkFDRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RixDQUFDO1FBQ0gsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEcsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixFQUFFLENBQUM7Z0JBQ2xILFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hELElBQUksSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDL0ksTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDZCxNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFFRCxJQUFJLGNBQWMsR0FBVyxTQUFTLENBQUM7UUFDdkMsSUFBSSxXQUFXLEdBQVcsU0FBUyxDQUFDO1FBRXBDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsMkJBQTJCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDakgsY0FBYyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsV0FBVyxHQUFHLENBQUMsQ0FBQztvQkFDaEIsTUFBTTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksY0FBYyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUM7UUFDakgsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksY0FBYyxHQUFXLFNBQVMsQ0FBQztRQUN2QyxJQUFJLFdBQVcsR0FBVyxTQUFTLENBQUM7UUFFcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNuRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNqSCxjQUFjLEdBQUcsQ0FBQyxDQUFDO29CQUNuQixXQUFXLEdBQUcsQ0FBQyxDQUFDO29CQUNoQixNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxjQUFjLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksZ0JBQWdCLEdBQVcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFN0csSUFBSSxDQUFDLElBQUk7YUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDBCQUEwQixHQUFHLGdCQUFnQixHQUFHLHNCQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDM0ssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRXJJLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0RyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQztRQUM3QyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLGNBQXNCLEVBQUUsY0FBOEIsRUFBRSxjQUFzQixFQUFFLElBQVk7UUFDcEcsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDZixjQUFjLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO1FBQ3BELENBQUM7UUFDRixjQUFjLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3hFLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ25GLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSTthQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMxRixTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUMzQixjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUUzQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUNuRSxJQUFJLENBQUMsOEJBQThCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2SCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixHQUFHLFNBQVMsQ0FBQzthQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFvQjtRQUMvQixJQUFJLFFBQVEsR0FBdUIsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0QsSUFBSSxDQUFDLElBQUk7aUJBQ04sR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxhQUFhLEVBQUUsU0FBUyxDQUFDO2lCQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2lCQUNuRSxTQUFTLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxRQUFRLEdBQXVCLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxJQUFJO2lCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztpQkFDekYsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDakMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2dCQUNELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FBQyxjQUE4QjtRQUN6QyxJQUFJLENBQUMsSUFBSTthQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsMEJBQTBCLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQzthQUNuRyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNuRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixLQUFLLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO3dCQUMvRixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNoRCxNQUFNO29CQUNSLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLGNBQXVCO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGdDQUFnQyxDQUFDLGlCQUF5QjtRQUN4RCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGdDQUFnQztRQUM5QixPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztJQUM1QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsZ0JBQXdCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxnQkFBd0IsRUFBRSxlQUFnQztRQUNoRixJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksZUFBZSxDQUFrQixlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzVHLENBQUM7UUFDRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxnQkFBd0I7UUFDaEQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxnQkFBd0I7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxlQUFlLENBQWtCLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQzs4R0F4b0JVLGdCQUFnQiw0Q0F1Q1AscUJBQXFCLGFBQ3JCLGNBQWM7a0hBeEN2QixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQXdDSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5pbXBvcnQge1dpZGdldENvbXBvbmVudH0gZnJvbSBcIi4uL3dpZGdldC93aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkLCBXaWRnZXQsIFdpZGdldEF0dHJpYnV0ZSwgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLFxyXG4gICAgV2lkZ2V0QXR0cmlidXRlVmFsdWUsIFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0LCBXaWRnZXRDYXRlZ29yeSwgV2lkZ2V0SW5zdGFuY2V9IGZyb20gXCIuLi9tb2RlbC9tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGxldCBVU0VSX1BST0ZJTEVfRU5EUE9JTlQ6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJ1c2VyUHJvZmlsZUVuZHBvaW50XCIpO1xyXG5leHBvcnQgbGV0IERBU0hCT0FSRF9UWVBFOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuKFwiZGFzaGJvYXJkVHlwZVwiKTtcclxuZXhwb3J0IGxldCBXSURHRVRfQ09NUE9ORU5UUzogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+W10+ID0gbmV3IEluamVjdGlvblRva2VuKFwid2lkZ2V0Q29tcG9uZW50c1wiKTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2VydmljZSBob2xkcyB0aGUgY29uZmlndXJhdGlvbiBhcnJheSBmb3IgdGhlIHdpZGdldHMuICBXaWRnZXRzIGNhbiBhY2Nlc3MgdGhlaXIgY29uZmlndXJhdGlvbiBmcm9tIGhlcmUuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBhZGRXaWRnZXRTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFdpZGdldEluc3RhbmNlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0SW5zdGFuY2U+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIHVwZGF0ZVdpZGdldEluc3RhbmNlU3ViamVjdDogU3ViamVjdDxXaWRnZXRJbnN0YW5jZT4gPSBuZXcgU3ViamVjdDxXaWRnZXRJbnN0YW5jZT4oKTtcclxuXHJcbiAgcHVibGljIGRhc2hib2FyZHNTdGF0ZTogU3ViamVjdDxEYXNoYm9hcmRbXT4gPSBuZXcgU3ViamVjdDxEYXNoYm9hcmRbXT4oKTtcclxuXHJcbiAgcHJpdmF0ZSB3aWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3ViamVjdDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG5cclxuICBwcml2YXRlIGRhc2hib2FyZHM6IERhc2hib2FyZFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgd2lkZ2V0czogQmVoYXZpb3JTdWJqZWN0PFdpZGdldFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0W10+KHVuZGVmaW5lZCk7XHJcbiAgcHJpdmF0ZSB3aWRnZXRDYXRlZ29yaWVzOiBXaWRnZXRDYXRlZ29yeVtdO1xyXG5cclxuICBwcml2YXRlIHdpZGdldFJlbmRlcmVkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBlZGl0TW9kZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIGlkTmV3OiBudW1iZXIgPSAtMTtcclxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW107XHJcbiAgcHJpdmF0ZSBhdHRyaWJ1dGVDb250YWluZXJNYXA6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4gPSBuZXcgTWFwPHN0cmluZywgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyPigpO1xyXG5cclxuICBwcml2YXRlIGNvbmZpZ1dpZGdldENvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50O1xyXG4gIHByaXZhdGUgcHJlQ29uZmlnQXR0cmlidXRlVmFsdWVTZXQ6IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0O1xyXG5cclxuICBwcml2YXRlIHdpZGdldENvbXBvbmVudENyZWF0ZWQ6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBwcml2YXRlIHJlZ2lzdGVyZWRXaWRnZXRDb21wb25lbnRzOiBNYXA8bnVtYmVyLCBXaWRnZXRDb21wb25lbnQ+ID0gbmV3IE1hcDxudW1iZXIsIFdpZGdldENvbXBvbmVudD4oKTtcclxuICBwcml2YXRlIHdpZGdldENvbXBvbmVudFN1YmplY3RzOiBNYXA8bnVtYmVyLCBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0Q29tcG9uZW50Pj4gPSBuZXcgTWFwPG51bWJlciwgQmVoYXZpb3JTdWJqZWN0PFdpZGdldENvbXBvbmVudD4+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEludGVyYWN0cyB3aXRoIHRoZSBiYWNrZW5kIHNlcnZpY2UgdG8gZ2V0IHRoZSB1c2VyIHByb2ZpbGUgYW5kIHdpZGdldHMuICBBbHNvIG1hbmFnZXMgd2lkZ2V0cyBhcyB0aGV5IGFyZSBhZGRlZCBhbmRcclxuICAgKiBlZGl0ZWQgc3VjaCB0aGF0IHdpZGdldCBhdHRyaWJ1dGVzIGFyZSBzdG9yZWQgaW4gb25lIHBsYWNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGh0dHBcclxuICAgKiBAcGFyYW0gdXNlclByb2ZpbGVFbmRwb2ludFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBASW5qZWN0KFVTRVJfUFJPRklMRV9FTkRQT0lOVCkgcHJpdmF0ZSB1c2VyUHJvZmlsZUVuZHBvaW50OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgQEluamVjdChEQVNIQk9BUkRfVFlQRSkgcHJpdmF0ZSBkYXNoYm9hcmRUeXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRGFzaGJvYXJkU2VydmljZSBjb25zdHJ1Y3RvclwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcC5zZXQoXCJDb21tb25cIiwgbmV3IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcigpKTtcclxuXHJcbiAgICB0aGlzLndpZGdldFJlbmRlcmVkLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5lZGl0TW9kZVN1YmplY3QubmV4dCh0aGlzLmVkaXRNb2RlKTtcclxuXHJcbiAgICB0aGlzLmh0dHAuZ2V0KHRoaXMudXNlclByb2ZpbGVFbmRwb2ludCArIFwiL3VzZXItcHJvZmlsZS9teVwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgZm9ya0pvaW4oW1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvYXR0cmlidXRlL2NvbW1vbi1hdHRyaWJ1dGVzXCIpLFxyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L3dpZGdldC1jYXRlZ29yaWVzXCIpLFxyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L3dpZGdldC1saXN0XCIsIHtwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiZGFzaGJvYXJkVHlwZVwiLCB0aGlzLmRhc2hib2FyZFR5cGUpfSksXHJcbiAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLnVzZXJQcm9maWxlRW5kcG9pbnQgKyBcIi9kYXNoYm9hcmRcIiwge3BhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJkYXNoYm9hcmRUeXBlXCIsIHRoaXMuZGFzaGJvYXJkVHlwZSl9KVxyXG4gICAgICBdKS5zdWJzY3JpYmUocmVzcG9uc2VzID0+IHtcclxuICAgICAgICB0aGlzLnNldENvbW1vbkF0dHJpYnV0ZXMocmVzcG9uc2VzWzBdKTtcclxuICAgICAgICB0aGlzLnNldFdpZGdldENhdGVnb3JpZXMocmVzcG9uc2VzWzFdKTtcclxuICAgICAgICB0aGlzLnNldFdpZGdldHMocmVzcG9uc2VzWzJdKTtcclxuICAgICAgICB0aGlzLnNldERhc2hib2FyZHMocmVzcG9uc2VzWzNdKTtcclxuXHJcbiAgICAgICAgdGhpcy5wdXNoRGFzaGJvYXJkU3RhdGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbmZpZ1dpZGdldENvbXBvbmVudChjb25maWdXaWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudCkge1xyXG4gICAgdGhpcy5jb25maWdXaWRnZXRDb21wb25lbnQgPSBjb25maWdXaWRnZXRDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRDb25maWdXaWRnZXRDb21wb25lbnQoKTogV2lkZ2V0Q29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1dpZGdldENvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIGRvQWRkV2lkZ2V0KCkge1xyXG4gICAgdGhpcy5hZGRXaWRnZXRTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tb25BdHRyaWJ1dGVzKCk6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29tbW9uQXR0cmlidXRlcyhyZXNwb25zZTogYW55KSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkRhc2hib2FyZFNlcnZpY2Uuc2V0Q29tbW9uQXR0cmlidXRlcygpXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21tb25BdHRyaWJ1dGVDb250YWluZXI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lciA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXIoKTtcclxuICAgIGNvbW1vbkF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID0gXCJDb21tb25cIjtcclxuICAgIGNvbW1vbkF0dHJpYnV0ZUNvbnRhaW5lci5zb3J0T3JkZXIgPSAwO1xyXG4gICAgY29tbW9uQXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXMgPSBuZXcgV2lkZ2V0QXR0cmlidXRlKCkuZGVzZXJpYWxpemVBcnJheShyZXNwb25zZSk7XHJcbiAgICBjb21tb25BdHRyaWJ1dGVDb250YWluZXIuZ2VuZXJhdGVBdHRyaWJ1dGVNYXAoKTtcclxuICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwID0gbmV3IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4oKTtcclxuICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwLnNldChcIkNvbW1vblwiLCBjb21tb25BdHRyaWJ1dGVDb250YWluZXIpO1xyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRGFzaGJvYXJkU2VydmljZS5zZXRDb21tb25BdHRyaWJ1dGVzKCk7IFNldHRpbmcgY29tbW9uIGF0dHJpYnV0ZXM6XCIpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKGNvbW1vbkF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiB0aGUgYXJyYXkgb2YgZGFzaGJvYXJkcy4gIEVhY2ggZGFzaGJvYXJkIGNvbnRhaW5zIGFuIGFycmF5IG9mIHdpZGdldHMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7RGFzaGJvYXJkW119XHJcbiAgICovXHJcbiAgZ2V0RGFzaGJvYXJkcygpOiBEYXNoYm9hcmRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXNoYm9hcmRzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbHMgdGhlIGJhY2tlbmQgdG8gZmV0Y2ggdGhlIGxpc3Qgb2Ygd2lkZ2V0cyBhdmFpbGFibGUuXHJcbiAgICpcclxuICAgKi9cclxuICBzZXRXaWRnZXRzKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRGFzaGJvYXJkU2VydmljZS5zZXRXaWRnZXRzKClcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53aWRnZXRzLm5leHQoPFdpZGdldFtdPnJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxzIHRoZSBiYWNrZW5kIHRvIGZldGNoIHRoZSBsaXN0IG9mIHdpZGdldCBjYXRlZ29yaWVzIGF2YWlsYWJsZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIHNldFdpZGdldENhdGVnb3JpZXMocmVzcG9uc2U6IGFueSkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJEYXNoYm9hcmRTZXJ2aWNlLnNldFdpZGdldENhdGVnb3JpZXMoKVwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndpZGdldENhdGVnb3JpZXMgPSA8V2lkZ2V0Q2F0ZWdvcnlbXT5yZXNwb25zZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRhc2hib2FyZHMgYWZ0ZXIgdGhlIHVzZXIgcHJvZmlsZSBpcyBmZXRjaGVkLiAgVXBvbiBmZXRjaCwgdGhlIHdpZGdldHMgd2l0aGluIGVhY2ggZGFzaGJvYXJkIGFyZSBzb3J0ZWRcclxuICAgKiBieSB0aGVpciBzb3J0T3JkZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGFzaGJvYXJkc1xyXG4gICAqL1xyXG4gIHNldERhc2hib2FyZHMocmVzcG9uc2U6IGFueSkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJEYXNoYm9hcmRTZXJ2aWNlLnNldERhc2hib2FyZHMoKVwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhc2hib2FyZHMgPSBuZXcgRGFzaGJvYXJkKCkuZGVzZXJpYWxpemVBcnJheShyZXNwb25zZSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmRhc2hib2FyZHMpIHtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcodGhpcy5kYXNoYm9hcmRzKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKHZhciBkID0gMDsgZCA8IHRoaXMuZGFzaGJvYXJkcy5sZW5ndGg7IGQrKykge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzID0gdGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlcy5zb3J0KChhOiBXaWRnZXRJbnN0YW5jZSwgYjogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgICBpZiAoYS5zb3J0T3JkZXIgIT09IHVuZGVmaW5lZCAmJiBiLnNvcnRPcmRlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBsZXQgYWE6IG51bWJlciA9IDxudW1iZXI+YS5zb3J0T3JkZXI7XHJcbiAgICAgICAgICBsZXQgYmI6IG51bWJlciA9IDxudW1iZXI+Yi5zb3J0T3JkZXI7XHJcbiAgICAgICAgICBpZiAoYWEgPCBiYikge1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGFhID4gYmIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGEuc29ydE9yZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9IGVsc2UgaWYgKGIuc29ydE9yZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1c2hEYXNoYm9hcmRTdGF0ZSgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkc1N0YXRlLm5leHQodGhpcy5kYXNoYm9hcmRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygd2lkZ2V0IGNhdGVnb3JpZXMgZm9yIHNlYXJjaGluZy9maWx0ZXJpbmcgd2lkZ2V0cy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtXaWRnZXRDYXRlZ29yeVtdfVxyXG4gICAqL1xyXG4gIGdldFdpZGdldENhdGVnb3JpZXMoKSA6IFdpZGdldENhdGVnb3J5W10ge1xyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0Q2F0ZWdvcmllcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciB3aWRnZXRzIGJ5IHRpdGxlIG9yIGtleXdvcmQuXHJcbiAgICogVE9ETzogQWRkIGFueSBvdGhlciBtZXRyaWNzIG9uIHdoaWNoIHRvIGZpbHRlciBieS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWx0ZXJcclxuICAgKiBAcmV0dXJucyB7V2lkZ2V0W119XHJcbiAgICovXHJcbiAgZ2V0V2lkZ2V0c0J5RmlsdGVyKGZpbHRlcjogc3RyaW5nKTogV2lkZ2V0W10ge1xyXG4gICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBsZXQgZmlsdGVyZWRMaXN0OiBXaWRnZXRbXSA9IFtdO1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpW2ldLmluc3RhbnRpYWJsZSkge1xyXG4gICAgICAgICAgZmlsdGVyZWRMaXN0LnB1c2godGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmlsdGVyZWRMaXN0O1xyXG4gICAgfSBlbHNlIGlmIChmaWx0ZXIpIHtcclxuICAgICAgbGV0IGZpbHRlcmVkTGlzdDogV2lkZ2V0W10gPSBbXTtcclxuICAgICAgZmlsdGVyID0gZmlsdGVyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy53aWRnZXRzLmdldFZhbHVlKCkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0uaW5zdGFudGlhYmxlKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0udGl0bGUgJiYgdGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0udGl0bGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkTGlzdC5wdXNoKHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpW2ldKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0uZGVzY3JpcHRpb24gJiYgdGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0uZGVzY3JpcHRpb24udG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkTGlzdC5wdXNoKHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZpbHRlcmVkTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpZGdldHMuZ2V0VmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvciBhIHBhcnRpY3VsYXIgYXR0cmlidXRlLCByZXR1cm4gYWxsIGN1cnJlbnQgYXR0cmlidXRlIHZhbHVlcyBmb3IgaXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWRXaWRnZXRJbnN0YW5jZVxyXG4gICAqIEBwYXJhbSBpZFdpZGdldEF0dHJpYnV0ZVxyXG4gICAqIEByZXR1cm5zIHtXaWRnZXRJbnN0YW5jZUF0dHJpYnV0ZVZhbHVlW119XHJcbiAgICovXHJcbiAgZ2V0QXR0cmlidXRlVmFsdWVzKGlkV2lkZ2V0SW5zdGFuY2U6IG51bWJlciwgaWRXaWRnZXRBdHRyaWJ1dGU6IG51bWJlcik6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10ge1xyXG4gICAgbGV0IGF0dHJpYnV0ZVZhbHVlczogV2lkZ2V0QXR0cmlidXRlVmFsdWVbXSA9IFtdO1xyXG5cclxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgdGhpcy5kYXNoYm9hcmRzLmxlbmd0aDsgZCsrKSB7XHJcbiAgICAgIGZvciAodmFyIHcgPSAwOyB3IDwgdGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlcy5sZW5ndGg7IHcrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLmlkV2lkZ2V0SW5zdGFuY2UgPT09IGlkV2lkZ2V0SW5zdGFuY2UpIHtcclxuICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkc1tkXS53aWRnZXRJbnN0YW5jZXNbd10uYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzLmZpbHRlcigodmFsdWU6IFdpZGdldEF0dHJpYnV0ZVZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pZFdpZGdldEF0dHJpYnV0ZSA9PT0gaWRXaWRnZXRBdHRyaWJ1dGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLndpZGdldC5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXMuZmlsdGVyKCh2YWx1ZTogV2lkZ2V0QXR0cmlidXRlVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaWRXaWRnZXRBdHRyaWJ1dGUgPT09IGlkV2lkZ2V0QXR0cmlidXRlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnMoY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnM6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkRhc2hib2FyZFNlcnZpY2Uuc2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnMoKVwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1Zyhjb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyA9IGNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9yIGEgcGFydGljdWxhciBhdHRyaWJ1dGUsIHJldHVybiBhbGwgY3VycmVudCBhdHRyaWJ1dGUgdmFsdWVzIGZvciBpdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFdpZGdldEF0dHJpYnV0ZVxyXG4gICAqIEByZXR1cm5zIHtXaWRnZXRJbnN0YW5jZUF0dHJpYnV0ZVZhbHVlW119XHJcbiAgICovXHJcbiAgZ2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZVZhbHVlcyhpZFdpZGdldEF0dHJpYnV0ZTogbnVtYmVyKTogV2lkZ2V0QXR0cmlidXRlVmFsdWVbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkRhc2hib2FyZFNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZVZhbHVlcygpOyBpZFdpZGdldEF0dHJpYnV0ZSA9IFwiICsgaWRXaWRnZXRBdHRyaWJ1dGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycykge1xyXG4gICAgICBmb3IgKHZhciBhYyA9IDA7IGFjIDwgdGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycy5sZW5ndGg7IGFjKyspIHtcclxuICAgICAgICBmb3IgKHZhciBhID0gMDsgYSA8IHRoaXMuY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnNbYWNdLmF0dHJpYnV0ZXMubGVuZ3RoOyBhKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzW2FjXS5hdHRyaWJ1dGVzW2FdLmlkV2lkZ2V0QXR0cmlidXRlID09PSBpZFdpZGdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciB2ID0gMDsgdiA8IHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IHYrKykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzW2FjXS5hdHRyaWJ1dGVzW2FdLmlkV2lkZ2V0QXR0cmlidXRlID09PSB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXNbdl0uaWRXaWRnZXRBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5wdXNoKHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZVZhbHVlOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlLmlkV2lkZ2V0QXR0cmlidXRlVmFsdWUgPSB0aGlzLmdldElkTmV3KCk7XHJcbiAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUuaWRXaWRnZXRBdHRyaWJ1dGUgPSBpZFdpZGdldEF0dHJpYnV0ZTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnNbYWNdLmF0dHJpYnV0ZXNbYV0uZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyc1thY10uYXR0cmlidXRlc1thXS5kYXRhVHlwZSA9PT0gXCJpbnRlZ2VyXCIpIHtcclxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUudmFsdWVJbnRlZ2VyID0gcGFyc2VJbnQodGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyc1thY10uYXR0cmlidXRlc1thXS5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzW2FjXS5hdHRyaWJ1dGVzW2FdLmRhdGFUeXBlID09PSBcImNoZWNrYm94XCIpIHtcclxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUudmFsdWVCb29sZWFuID0gdGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyc1thY10uYXR0cmlidXRlc1thXS5kZWZhdWx0VmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZS52YWx1ZVN0cmluZyA9IHRoaXMuY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnNbYWNdLmF0dHJpYnV0ZXNbYV0uZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzLnB1c2goYXR0cmlidXRlVmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKGF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFmdGVyIGNvbXBsZXRpb24gb2YgYSBkcmFnIGFuZCBkcm9wLCBpdGVyYXRlIHRoZSBlbGVtZW50IHNlbGVjdG9yIHdpdGggYSBudW1iZXIgc3RhcnRpbmcgYXQgMSBhbmQgc2F2ZSBlYWNoXHJcbiAgICogd2lkZ2V0IGluc3RhbmNlIHdpdGggdGhlIG5ldyBzb3J0IG9yZGVyLiAgSWYgdGhlIGV4aXN0aW5nIHNvcnQgb3JkZXIgaXMgdGhlIHNhbWUsIHRoZW4gZG9uJ3QgdXBkYXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlbGVjdGVkRGFzaGJvYXJkXHJcbiAgICogQHBhcmFtIGlkV2lkZ2V0SW5zdGFuY2VcclxuICAgKiBAcGFyYW0gc29ydE9yZGVyXHJcbiAgICovXHJcbiAgc2F2ZVdpZGdldFNvcnRPcmRlcihzZWxlY3RlZERhc2hib2FyZDogbnVtYmVyLCBpZFdpZGdldEluc3RhbmNlOiBudW1iZXIsIHNvcnRPcmRlcjogbnVtYmVyKSB7XHJcbiAgICBmb3IgKHZhciB3ID0gMDsgdyA8IHRoaXMuZGFzaGJvYXJkc1tzZWxlY3RlZERhc2hib2FyZF0ud2lkZ2V0SW5zdGFuY2VzLmxlbmd0aDsgdysrKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbc2VsZWN0ZWREYXNoYm9hcmRdLndpZGdldEluc3RhbmNlc1t3XS5pZFdpZGdldEluc3RhbmNlID09PSBpZFdpZGdldEluc3RhbmNlXHJcbiAgICAgICAgICAmJiB0aGlzLmRhc2hib2FyZHNbc2VsZWN0ZWREYXNoYm9hcmRdLndpZGdldEluc3RhbmNlc1t3XS5zb3J0T3JkZXIgIT09IHNvcnRPcmRlcikge1xyXG4gICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3QodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L3dpZGdldC1pbnN0YW5jZS9cIiArIGlkV2lkZ2V0SW5zdGFuY2UgKyBcIi9zb3J0LW9yZGVyXCIsIHsgXCJzb3J0T3JkZXJcIjogc29ydE9yZGVyIH0pXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgLy8gMjAwXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB3aWRnZXQgaW5zdGFuY2UgdG8gYmUgZWRpdGVkIChvciBhZGRlZCkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gd2lkZ2V0SW5zdGFuY2UgVGhlIHdpZGdldCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBwZXJzaXN0ZWQuXHJcbiAgICogQHBhcmFtIGFkZCBJbmRpY2F0ZSBpZiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGFkZGVkIG9yIGFuIGV4aXN0aW5nIHdpZGdldCBiZWluZyBjb25maWd1cmVkLlxyXG4gICAqL1xyXG4gIHNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UsIHdpZGdldENvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50LCBhZGQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0Q29uZmlnV2lkZ2V0Q29tcG9uZW50KHdpZGdldENvbXBvbmVudCk7XHJcblxyXG4gICAgaWYgKCF3aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldCkge1xyXG4gICAgICB0aGlzLmh0dHBcclxuICAgICAgICAucHV0KHRoaXMudXNlclByb2ZpbGVFbmRwb2ludCArIFwiL3dpZGdldC93aWRnZXQtaW5zdGFuY2UvXCIgKyB3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlICsgXCIvYXR0cmlidXRlLXZhbHVlLXNldFwiLCBKU09OLnN0cmluZ2lmeShuZXcgV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXQoKSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgd2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQgPSBuZXcgV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXQoKS5kZXNlcmlhbGl6ZShyZXNwb25zZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5wb3N0U2V0Q29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlKHdpZGdldEluc3RhbmNlLCBhZGQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3N0U2V0Q29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlKHdpZGdldEluc3RhbmNlLCBhZGQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zdFNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UsIGFkZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJwb3N0U2V0Q29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlID0gd2lkZ2V0SW5zdGFuY2U7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh3aWRnZXRJbnN0YW5jZSk7XHJcblxyXG4gICAgdGhpcy5wcmVDb25maWdBdHRyaWJ1dGVWYWx1ZVNldCA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldCgpLmRlc2VyaWFsaXplKHdpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0KTtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwicG9zdFNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZTogXCIgKyBKU09OLnN0cmluZ2lmeSh0aGlzLnByZUNvbmZpZ0F0dHJpYnV0ZVZhbHVlU2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHZhbHVlcyBhcmUgdXBkYXRlZCBpbiB0aGUgYWRkL2NvbmZpZyBzY3JlZW4sIHB1c2ggdGhlbSB0byB0aGUgc3RvcmVkIGluc3RhbmNlLiAgSWYgYW55IHRoZXJlIGFyZSBuZXcgdmFsdWVzLFxyXG4gICAqIHRoZW4gdGhleSBtdXN0IGJlIHB1c2hlZC4gIElmIHRoZXJlIGFyZSB2YWx1ZXMgdGhhdCBubyBsb25nZXIgZXhpc3QsIHRoZW4gdGhleSBtdXN0IGJlIGRlbGV0ZWQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWRXaWRnZXRBdHRyaWJ1dGVcclxuICAgKiBAcGFyYW0gYXR0cmlidXRlVmFsdWVzXHJcbiAgICogQHJldHVybnMge1dpZGdldEluc3RhbmNlQXR0cmlidXRlVmFsdWVbXX1cclxuICAgKi9cclxuICBzZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKGlkV2lkZ2V0QXR0cmlidXRlOiBudW1iZXIsIGF0dHJpYnV0ZVZhbHVlczogV2lkZ2V0QXR0cmlidXRlVmFsdWVbXSk6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10ge1xyXG4gICAgLyogQWRkIG5ldyB2YWx1ZXMuICovXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZXhpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGZvciAodmFyIHYgPSAwOyB2IDwgdGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzLmxlbmd0aDsgdisrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XS5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlID09PSBhdHRyaWJ1dGVWYWx1ZXNbaV0uaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzW3ZdID0gYXR0cmlidXRlVmFsdWVzW2ldO1xyXG4gICAgICAgICAgZXhpc3RzID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFleGlzdHMpIHtcclxuICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlc1tpXS5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlKSB7XHJcbiAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXNbaV0uaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuZ2V0SWROZXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzLnB1c2goYXR0cmlidXRlVmFsdWVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIERlbGV0ZSBvbGQgdmFsdWVzLiAqL1xyXG4gICAgZm9yICh2YXIgdiA9IHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGggLSAxOyB2ID49IDA7IHYtLSkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzW3ZdLmlkV2lkZ2V0QXR0cmlidXRlICE9PSBpZFdpZGdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgZXhpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmlidXRlVmFsdWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XS5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlID09PSBhdHRyaWJ1dGVWYWx1ZXNbaV0uaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZSkge1xyXG4gICAgICAgICAgZXhpc3RzID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIWV4aXN0cykge1xyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5zcGxpY2UodiwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXR0cmlidXRlVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFpbnRhaW4gdW5pcXVlbmVzcyBvZiBuZXcgaW5zdGFuY2VzLiAgQXQgc29tZSBwb2ludCB3ZSBtdXN0IGRlY2lkZSB3aGVuIHRvIHBlcnNpc3QgdG8gZGF0YWJhc2UgdG8gaGF2ZSB0aGUgaWRzIGdlbmVyYXRlZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XHJcbiAgICovXHJcbiAgZ2V0SWROZXcoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmlkTmV3LS07XHJcbiAgfVxyXG5cclxuICBjYW5jZWxDb25maWd1cmF0aW9uV2lkZ2V0KCkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJjYW5jZWxDb25maWd1cmF0aW9uV2lkZ2V0OiBcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMucHJlQ29uZmlnQXR0cmlidXRlVmFsdWVTZXQpKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGFzaGJvYXJkSW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICAgIGxldCB3aWRnZXRJbmRleDogbnVtYmVyID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgdGhpcy5kYXNoYm9hcmRzLmxlbmd0aDsgZCsrKSB7XHJcbiAgICAgIGZvciAodmFyIHcgPSAwOyB3IDwgdGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlcy5sZW5ndGg7IHcrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLmlkV2lkZ2V0SW5zdGFuY2UgPT09IHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UpIHtcclxuICAgICAgICAgIGRhc2hib2FyZEluZGV4ID0gZDtcclxuICAgICAgICAgIHdpZGdldEluZGV4ID0gdztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZGFzaGJvYXJkSW5kZXggJiYgd2lkZ2V0SW5kZXgpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkc1tkYXNoYm9hcmRJbmRleF0ud2lkZ2V0SW5zdGFuY2VzW3dpZGdldEluZGV4XS5hdHRyaWJ1dGVWYWx1ZVNldCA9IHRoaXMucHJlQ29uZmlnQXR0cmlidXRlVmFsdWVTZXQ7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy51cGRhdGVXaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh0aGlzLmRhc2hib2FyZHNbZGFzaGJvYXJkSW5kZXhdLndpZGdldEluc3RhbmNlc1t3aWRnZXRJbmRleF0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhdHRyaWJ1dGVzIGFyZSBmaW5hbGl6ZWQgYWZ0ZXIgYWRkaW5nL2VkaXRpbmcgYSB3aWRnZXQsIHRoaXMgd2lsbCBzZXQgdGhvc2UgYXR0cmlidXRlcyB0byB0aGUgd2lkZ2V0IGluc3RhbmNlLlxyXG4gICAqL1xyXG4gIHNhdmVDb25maWd1cmF0aW9uV2lkZ2V0KCkge1xyXG4gICAgbGV0IGRhc2hib2FyZEluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBsZXQgd2lkZ2V0SW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb3IgKHZhciBkID0gMDsgZCA8IHRoaXMuZGFzaGJvYXJkcy5sZW5ndGg7IGQrKykge1xyXG4gICAgICBmb3IgKHZhciB3ID0gMDsgdyA8IHRoaXMuZGFzaGJvYXJkc1tkXS53aWRnZXRJbnN0YW5jZXMubGVuZ3RoOyB3KyspIHtcclxuICAgICAgICBpZiAodGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlc1t3XS5pZFdpZGdldEluc3RhbmNlID09PSB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgICAgICBkYXNoYm9hcmRJbmRleCA9IGQ7XHJcbiAgICAgICAgICB3aWRnZXRJbmRleCA9IHc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRhc2hib2FyZEluZGV4ICYmIHdpZGdldEluZGV4KSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgaWRXaWRnZXRJbnN0YW5jZTogbnVtYmVyID0gdGhpcy5kYXNoYm9hcmRzW2Rhc2hib2FyZEluZGV4XS53aWRnZXRJbnN0YW5jZXNbd2lkZ2V0SW5kZXhdLmlkV2lkZ2V0SW5zdGFuY2U7XHJcblxyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMudXNlclByb2ZpbGVFbmRwb2ludCArIFwiL3dpZGdldC93aWRnZXQtaW5zdGFuY2UvXCIgKyBpZFdpZGdldEluc3RhbmNlICsgXCIvYXR0cmlidXRlLXZhbHVlLXNldFwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRzW2Rhc2hib2FyZEluZGV4XS53aWRnZXRJbnN0YW5jZXNbd2lkZ2V0SW5kZXhdLmF0dHJpYnV0ZVZhbHVlU2V0ID0gbmV3IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0KCkuZGVzZXJpYWxpemUocmVzcG9uc2UpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVdpZGdldEluc3RhbmNlU3ViamVjdC5uZXh0KHRoaXMuZGFzaGJvYXJkc1tkYXNoYm9hcmRJbmRleF0ud2lkZ2V0SW5zdGFuY2VzW3dpZGdldEluZGV4XSk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBuZXcgd2lkZ2V0IGludG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXNoYm9hcmQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VsZWN0ZWRXaWRnZXRcclxuICAgKiBAcGFyYW0gd2lkZ2V0SW5zdGFuY2VcclxuICAgKiBAcGFyYW0gZGFzaGJvYXJkSW5kZXhcclxuICAgKiBAcGFyYW0gc3RlcFxyXG4gICAqL1xyXG4gIGFkZFdpZGdldChzZWxlY3RlZFdpZGdldDogV2lkZ2V0LCB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UsIGRhc2hib2FyZEluZGV4OiBudW1iZXIsIHN0ZXA6IG51bWJlcikge1xyXG4gICAgaWYgKHN0ZXAgPT09IDIpIHtcclxuICAgICAgd2lkZ2V0SW5zdGFuY2UgPSB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZTtcclxuICAgIH1cclxuXHQgIHdpZGdldEluc3RhbmNlLmlkRGFzaGJvYXJkID0gdGhpcy5kYXNoYm9hcmRzW2Rhc2hib2FyZEluZGV4XS5pZERhc2hib2FyZDtcclxuICAgIHdpZGdldEluc3RhbmNlLnNvcnRPcmRlciA9IHRoaXMuZGFzaGJvYXJkc1tkYXNoYm9hcmRJbmRleF0ud2lkZ2V0SW5zdGFuY2VzLmxlbmd0aDtcclxuXHQgIHdpZGdldEluc3RhbmNlLmlkUmVzZXQoKTtcclxuXHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLnB1dCh0aGlzLnVzZXJQcm9maWxlRW5kcG9pbnQgKyBcIi93aWRnZXQvd2lkZ2V0LWluc3RhbmNlL1wiLCBKU09OLnN0cmluZ2lmeSh3aWRnZXRJbnN0YW5jZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB3aWRnZXRJbnN0YW5jZSA9IG5ldyBXaWRnZXRJbnN0YW5jZSgpLmRlc2VyaWFsaXplKHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLmRhc2hib2FyZHNbZGFzaGJvYXJkSW5kZXhdLndpZGdldEluc3RhbmNlcy5wdXNoKHdpZGdldEluc3RhbmNlKTtcclxuICAgICAgICB0aGlzLmRhc2hib2FyZHNTdGF0ZS5uZXh0KHRoaXMuZGFzaGJvYXJkcyk7XHJcblxyXG4gICAgICAgIGlmICh3aWRnZXRJbnN0YW5jZS53aWRnZXQgJiYgd2lkZ2V0SW5zdGFuY2Uud2lkZ2V0Lmhhc0F0dHJpYnV0ZXMoKSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRDb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2Uod2lkZ2V0SW5zdGFuY2UsIHRoaXMuZ2V0V2lkZ2V0Q29tcG9uZW50KHdpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UpLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFdpZGdldChjb21wb25lbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8V2lkZ2V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L2NvbXBvbmVudC9cIiArIGNvbXBvbmVudClcclxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiBuZXcgV2lkZ2V0KCkuZGVzZXJpYWxpemUocmVzcG9uc2UpKSk7XHJcbiAgfVxyXG5cclxuICBhZGREYXNoYm9hcmQoZGFzaGJvYXJkOiBEYXNoYm9hcmQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgbGV0IG5ld0luZGV4OiBPYnNlcnZhYmxlPG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgIC5wdXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvZGFzaGJvYXJkL1wiLCBkYXNoYm9hcmQpXHJcbiAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiBuZXcgRGFzaGJvYXJkKCkuZGVzZXJpYWxpemUocmVzcG9uc2UpKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXNoYm9hcmQ6IERhc2hib2FyZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzLnB1c2goZGFzaGJvYXJkKTtcclxuICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5kYXNoYm9hcmRzLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ld0luZGV4O1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRGFzaGJvYXJkKGluZGV4OiBudW1iZXIpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgbGV0IG5ld0luZGV4OiBPYnNlcnZhYmxlPG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgIC5kZWxldGUodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvZGFzaGJvYXJkL1wiICsgdGhpcy5kYXNoYm9hcmRzW2luZGV4XS5pZERhc2hib2FyZCwge30pXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXNoYm9hcmRzLmxlbmd0aCA9PT0gaW5kZXgpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChpbmRleCAtIDEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChpbmRleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZHNTdGF0ZS5uZXh0KHRoaXMuZGFzaGJvYXJkcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3SW5kZXg7XHJcbiAgfVxyXG5cclxuICBkZWxldGVXaWRnZXQod2lkZ2V0SW5zdGFuY2U6IFdpZGdldEluc3RhbmNlKSB7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLmRlbGV0ZSh0aGlzLnVzZXJQcm9maWxlRW5kcG9pbnQgKyBcIi93aWRnZXQvd2lkZ2V0LWluc3RhbmNlL1wiICsgd2lkZ2V0SW5zdGFuY2UuaWRXaWRnZXRJbnN0YW5jZSwge30pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBmb3IgKHZhciBkID0gMDsgZCA8IHRoaXMuZGFzaGJvYXJkcy5sZW5ndGg7IGQrKykge1xyXG4gICAgICAgICAgZm9yICh2YXIgdyA9IDA7IHcgPCB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzLmxlbmd0aDsgdysrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLmlkV2lkZ2V0SW5zdGFuY2UgPT09IHdpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzLnNwbGljZSh3LCAxKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBzdWJqZWN0IHdoaWNoIGlzIHVzZWQgdG8gbm90aWZ5IHdpZGdldCBhZGQvZWRpdCB3aW5kb3dzIHdoZW4gdGhlIHdpZGdldCBpcyBmaW5pc2hlZCByZW5kZXJpbmcuICBJbiBzb21lXHJcbiAgICogY2FzZXMgYXR0cmlidXRlIGNob2ljZXMgYXJlIGJhc2VkIG9uIGRhdGEgd2hpY2ggdGhlIHdpZGdldCBtaWdodCBmZXRjaC4gIEJlZm9yZSB0cnlpbmcgdG8gcmVuZGVyIGF0dHJpYnV0ZXMgZm9yIGVkaXRpbmdcclxuICAgKiB0aGF0IHdpZGdldCwgd2UgaGF2ZSB0byB3YWl0IGZvciB0aGUgZGF0YSBnZXQgdG8gZmluaXNoIHNvIHRoZSBhdHRyaWJ1dGUgY2hvaWNlcyB3aWxsIGJlIGF2YWlsYWJsZS5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtTdWJqZWN0PGJvb2xlYW4+fVxyXG4gICAqL1xyXG4gIGdldFdpZGdldFJlbmRlcmVkKCk6IFN1YmplY3Q8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0UmVuZGVyZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgYW55IGxpc3RlbmVycyB0byBiZSBtYWRlIGF3YXJlIG9mIHdoZW4gYSB3aWRnZXQgcmVuZGVyaW5nIGhhcyBmaW5pc2hlZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB3aWRnZXRSZW5kZXJlZFxyXG4gICAqL1xyXG4gIHNldFdpZGdldFJlbmRlcmVkKHdpZGdldFJlbmRlcmVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLndpZGdldFJlbmRlcmVkLm5leHQod2lkZ2V0UmVuZGVyZWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdE1vZGUoKTogU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0TW9kZVN1YmplY3Q7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0TW9kZShlZGl0TW9kZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xyXG4gICAgdGhpcy5lZGl0TW9kZVN1YmplY3QubmV4dCh0aGlzLmVkaXRNb2RlKTtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMuZWRpdE1vZGUgPSAhdGhpcy5lZGl0TW9kZTtcclxuICAgIHRoaXMuZWRpdE1vZGVTdWJqZWN0Lm5leHQodGhpcy5lZGl0TW9kZSk7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3ViamVjdChpZFdpZGdldEF0dHJpYnV0ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLndpZGdldEF0dHJpYnV0ZVVwZGF0ZWRTdWJqZWN0Lm5leHQoaWRXaWRnZXRBdHRyaWJ1dGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YmplY3QoKTogU3ViamVjdDxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLndpZGdldEF0dHJpYnV0ZVVwZGF0ZWRTdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0Q29tcG9uZW50KGlkV2lkZ2V0SW5zdGFuY2U6IG51bWJlcik6IFdpZGdldENvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkV2lkZ2V0Q29tcG9uZW50cy5nZXQoaWRXaWRnZXRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlcldpZGdldENvbXBvbmVudChpZFdpZGdldEluc3RhbmNlOiBudW1iZXIsIHdpZGdldENvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50KSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRXaWRnZXRDb21wb25lbnRzLnNldChpZFdpZGdldEluc3RhbmNlLCB3aWRnZXRDb21wb25lbnQpO1xyXG5cclxuICAgIGlmICghdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5oYXMoaWRXaWRnZXRJbnN0YW5jZSkpIHtcclxuICAgICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5zZXQoaWRXaWRnZXRJbnN0YW5jZSwgbmV3IEJlaGF2aW9yU3ViamVjdDxXaWRnZXRDb21wb25lbnQ+KHdpZGdldENvbXBvbmVudCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5nZXQoaWRXaWRnZXRJbnN0YW5jZSkubmV4dCh3aWRnZXRDb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgdW5yZWdpc3RlcldpZGdldGNvbXBvbmVudChpZFdpZGdldEluc3RhbmNlOiBudW1iZXIpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJlZFdpZGdldENvbXBvbmVudHMuZGVsZXRlKGlkV2lkZ2V0SW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdChpZFdpZGdldEluc3RhbmNlOiBudW1iZXIpOiBTdWJqZWN0PFdpZGdldENvbXBvbmVudD4ge1xyXG4gICAgaWYgKCF0aGlzLndpZGdldENvbXBvbmVudFN1YmplY3RzLmhhcyhpZFdpZGdldEluc3RhbmNlKSkge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudFN1YmplY3RzLnNldChpZFdpZGdldEluc3RhbmNlLCBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldENvbXBvbmVudD4odW5kZWZpbmVkKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5nZXQoaWRXaWRnZXRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBnZXRXaWRnZXRDb21wb25lbnRDcmVhdGVkKCk6IFN1YmplY3Q8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRDb21wb25lbnRDcmVhdGVkO1xyXG4gIH1cclxufVxyXG4iXX0=
595
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQU8sTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQ2hFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFrQixjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXpHLE1BQU0sQ0FBQyxJQUFJLHFCQUFxQixHQUEyQixJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3JHLE1BQU0sQ0FBQyxJQUFJLGNBQWMsR0FBMkIsSUFBSSxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDeEYsTUFBTSxDQUFDLElBQUksaUJBQWlCLEdBQWdDLElBQUksY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFbkc7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUErQjNCOzs7Ozs7T0FNRztJQUNILFlBQW9CLElBQWdCLEVBQ2UsbUJBQTJCLEVBQ2xDLGFBQXFCO1FBRjdDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDZSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVE7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUF0QzFELHFCQUFnQixHQUFx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QUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQzsrR0F4b0JVLGdCQUFnQiw0Q0F1Q1AscUJBQXFCLGFBQ3JCLGNBQWM7bUhBeEN2QixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQXdDSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaXNEZXZNb2RlLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5pbXBvcnQge1dpZGdldENvbXBvbmVudH0gZnJvbSBcIi4uL3dpZGdldC93aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkLCBXaWRnZXQsIFdpZGdldEF0dHJpYnV0ZSwgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLFxyXG4gICAgV2lkZ2V0QXR0cmlidXRlVmFsdWUsIFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0LCBXaWRnZXRDYXRlZ29yeSwgV2lkZ2V0SW5zdGFuY2V9IGZyb20gXCIuLi9tb2RlbC9tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGxldCBVU0VSX1BST0ZJTEVfRU5EUE9JTlQ6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJ1c2VyUHJvZmlsZUVuZHBvaW50XCIpO1xyXG5leHBvcnQgbGV0IERBU0hCT0FSRF9UWVBFOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuKFwiZGFzaGJvYXJkVHlwZVwiKTtcclxuZXhwb3J0IGxldCBXSURHRVRfQ09NUE9ORU5UUzogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+W10+ID0gbmV3IEluamVjdGlvblRva2VuKFwid2lkZ2V0Q29tcG9uZW50c1wiKTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2VydmljZSBob2xkcyB0aGUgY29uZmlndXJhdGlvbiBhcnJheSBmb3IgdGhlIHdpZGdldHMuICBXaWRnZXRzIGNhbiBhY2Nlc3MgdGhlaXIgY29uZmlndXJhdGlvbiBmcm9tIGhlcmUuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBhZGRXaWRnZXRTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFdpZGdldEluc3RhbmNlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0SW5zdGFuY2U+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIHVwZGF0ZVdpZGdldEluc3RhbmNlU3ViamVjdDogU3ViamVjdDxXaWRnZXRJbnN0YW5jZT4gPSBuZXcgU3ViamVjdDxXaWRnZXRJbnN0YW5jZT4oKTtcclxuXHJcbiAgcHVibGljIGRhc2hib2FyZHNTdGF0ZTogU3ViamVjdDxEYXNoYm9hcmRbXT4gPSBuZXcgU3ViamVjdDxEYXNoYm9hcmRbXT4oKTtcclxuXHJcbiAgcHJpdmF0ZSB3aWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3ViamVjdDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG5cclxuICBwcml2YXRlIGRhc2hib2FyZHM6IERhc2hib2FyZFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgd2lkZ2V0czogQmVoYXZpb3JTdWJqZWN0PFdpZGdldFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0W10+KHVuZGVmaW5lZCk7XHJcbiAgcHJpdmF0ZSB3aWRnZXRDYXRlZ29yaWVzOiBXaWRnZXRDYXRlZ29yeVtdO1xyXG5cclxuICBwcml2YXRlIHdpZGdldFJlbmRlcmVkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBlZGl0TW9kZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIGlkTmV3OiBudW1iZXIgPSAtMTtcclxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyczogV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyW107XHJcbiAgcHJpdmF0ZSBhdHRyaWJ1dGVDb250YWluZXJNYXA6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4gPSBuZXcgTWFwPHN0cmluZywgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyPigpO1xyXG5cclxuICBwcml2YXRlIGNvbmZpZ1dpZGdldENvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50O1xyXG4gIHByaXZhdGUgcHJlQ29uZmlnQXR0cmlidXRlVmFsdWVTZXQ6IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0O1xyXG5cclxuICBwcml2YXRlIHdpZGdldENvbXBvbmVudENyZWF0ZWQ6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICBwcml2YXRlIHJlZ2lzdGVyZWRXaWRnZXRDb21wb25lbnRzOiBNYXA8bnVtYmVyLCBXaWRnZXRDb21wb25lbnQ+ID0gbmV3IE1hcDxudW1iZXIsIFdpZGdldENvbXBvbmVudD4oKTtcclxuICBwcml2YXRlIHdpZGdldENvbXBvbmVudFN1YmplY3RzOiBNYXA8bnVtYmVyLCBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0Q29tcG9uZW50Pj4gPSBuZXcgTWFwPG51bWJlciwgQmVoYXZpb3JTdWJqZWN0PFdpZGdldENvbXBvbmVudD4+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEludGVyYWN0cyB3aXRoIHRoZSBiYWNrZW5kIHNlcnZpY2UgdG8gZ2V0IHRoZSB1c2VyIHByb2ZpbGUgYW5kIHdpZGdldHMuICBBbHNvIG1hbmFnZXMgd2lkZ2V0cyBhcyB0aGV5IGFyZSBhZGRlZCBhbmRcclxuICAgKiBlZGl0ZWQgc3VjaCB0aGF0IHdpZGdldCBhdHRyaWJ1dGVzIGFyZSBzdG9yZWQgaW4gb25lIHBsYWNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGh0dHBcclxuICAgKiBAcGFyYW0gdXNlclByb2ZpbGVFbmRwb2ludFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBASW5qZWN0KFVTRVJfUFJPRklMRV9FTkRQT0lOVCkgcHJpdmF0ZSB1c2VyUHJvZmlsZUVuZHBvaW50OiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgQEluamVjdChEQVNIQk9BUkRfVFlQRSkgcHJpdmF0ZSBkYXNoYm9hcmRUeXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRGFzaGJvYXJkU2VydmljZSBjb25zdHJ1Y3RvclwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLmF0dHJpYnV0ZUNvbnRhaW5lck1hcC5zZXQoXCJDb21tb25cIiwgbmV3IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcigpKTtcclxuXHJcbiAgICB0aGlzLndpZGdldFJlbmRlcmVkLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5lZGl0TW9kZVN1YmplY3QubmV4dCh0aGlzLmVkaXRNb2RlKTtcclxuXHJcbiAgICB0aGlzLmh0dHAuZ2V0KHRoaXMudXNlclByb2ZpbGVFbmRwb2ludCArIFwiL3VzZXItcHJvZmlsZS9teVwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgZm9ya0pvaW4oW1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvYXR0cmlidXRlL2NvbW1vbi1hdHRyaWJ1dGVzXCIpLFxyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L3dpZGdldC1jYXRlZ29yaWVzXCIpLFxyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L3dpZGdldC1saXN0XCIsIHtwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwiZGFzaGJvYXJkVHlwZVwiLCB0aGlzLmRhc2hib2FyZFR5cGUpfSksXHJcbiAgICAgICAgdGhpcy5odHRwLmdldCh0aGlzLnVzZXJQcm9maWxlRW5kcG9pbnQgKyBcIi9kYXNoYm9hcmRcIiwge3BhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJkYXNoYm9hcmRUeXBlXCIsIHRoaXMuZGFzaGJvYXJkVHlwZSl9KVxyXG4gICAgICBdKS5zdWJzY3JpYmUocmVzcG9uc2VzID0+IHtcclxuICAgICAgICB0aGlzLnNldENvbW1vbkF0dHJpYnV0ZXMocmVzcG9uc2VzWzBdKTtcclxuICAgICAgICB0aGlzLnNldFdpZGdldENhdGVnb3JpZXMocmVzcG9uc2VzWzFdKTtcclxuICAgICAgICB0aGlzLnNldFdpZGdldHMocmVzcG9uc2VzWzJdKTtcclxuICAgICAgICB0aGlzLnNldERhc2hib2FyZHMocmVzcG9uc2VzWzNdKTtcclxuXHJcbiAgICAgICAgdGhpcy5wdXNoRGFzaGJvYXJkU3RhdGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbmZpZ1dpZGdldENvbXBvbmVudChjb25maWdXaWRnZXRDb21wb25lbnQ6IFdpZGdldENvbXBvbmVudCkge1xyXG4gICAgdGhpcy5jb25maWdXaWRnZXRDb21wb25lbnQgPSBjb25maWdXaWRnZXRDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRDb25maWdXaWRnZXRDb21wb25lbnQoKTogV2lkZ2V0Q29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1dpZGdldENvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIGRvQWRkV2lkZ2V0KCkge1xyXG4gICAgdGhpcy5hZGRXaWRnZXRTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tb25BdHRyaWJ1dGVzKCk6IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29tbW9uQXR0cmlidXRlcyhyZXNwb25zZTogYW55KSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkRhc2hib2FyZFNlcnZpY2Uuc2V0Q29tbW9uQXR0cmlidXRlcygpXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21tb25BdHRyaWJ1dGVDb250YWluZXI6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lciA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXIoKTtcclxuICAgIGNvbW1vbkF0dHJpYnV0ZUNvbnRhaW5lci5uYW1lID0gXCJDb21tb25cIjtcclxuICAgIGNvbW1vbkF0dHJpYnV0ZUNvbnRhaW5lci5zb3J0T3JkZXIgPSAwO1xyXG4gICAgY29tbW9uQXR0cmlidXRlQ29udGFpbmVyLmF0dHJpYnV0ZXMgPSBuZXcgV2lkZ2V0QXR0cmlidXRlKCkuZGVzZXJpYWxpemVBcnJheShyZXNwb25zZSk7XHJcbiAgICBjb21tb25BdHRyaWJ1dGVDb250YWluZXIuZ2VuZXJhdGVBdHRyaWJ1dGVNYXAoKTtcclxuICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwID0gbmV3IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4oKTtcclxuICAgIHRoaXMuYXR0cmlidXRlQ29udGFpbmVyTWFwLnNldChcIkNvbW1vblwiLCBjb21tb25BdHRyaWJ1dGVDb250YWluZXIpO1xyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRGFzaGJvYXJkU2VydmljZS5zZXRDb21tb25BdHRyaWJ1dGVzKCk7IFNldHRpbmcgY29tbW9uIGF0dHJpYnV0ZXM6XCIpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKGNvbW1vbkF0dHJpYnV0ZUNvbnRhaW5lci5hdHRyaWJ1dGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiB0aGUgYXJyYXkgb2YgZGFzaGJvYXJkcy4gIEVhY2ggZGFzaGJvYXJkIGNvbnRhaW5zIGFuIGFycmF5IG9mIHdpZGdldHMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7RGFzaGJvYXJkW119XHJcbiAgICovXHJcbiAgZ2V0RGFzaGJvYXJkcygpOiBEYXNoYm9hcmRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXNoYm9hcmRzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbHMgdGhlIGJhY2tlbmQgdG8gZmV0Y2ggdGhlIGxpc3Qgb2Ygd2lkZ2V0cyBhdmFpbGFibGUuXHJcbiAgICpcclxuICAgKi9cclxuICBzZXRXaWRnZXRzKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiRGFzaGJvYXJkU2VydmljZS5zZXRXaWRnZXRzKClcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53aWRnZXRzLm5leHQoPFdpZGdldFtdPnJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxzIHRoZSBiYWNrZW5kIHRvIGZldGNoIHRoZSBsaXN0IG9mIHdpZGdldCBjYXRlZ29yaWVzIGF2YWlsYWJsZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIHNldFdpZGdldENhdGVnb3JpZXMocmVzcG9uc2U6IGFueSkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJEYXNoYm9hcmRTZXJ2aWNlLnNldFdpZGdldENhdGVnb3JpZXMoKVwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndpZGdldENhdGVnb3JpZXMgPSA8V2lkZ2V0Q2F0ZWdvcnlbXT5yZXNwb25zZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRhc2hib2FyZHMgYWZ0ZXIgdGhlIHVzZXIgcHJvZmlsZSBpcyBmZXRjaGVkLiAgVXBvbiBmZXRjaCwgdGhlIHdpZGdldHMgd2l0aGluIGVhY2ggZGFzaGJvYXJkIGFyZSBzb3J0ZWRcclxuICAgKiBieSB0aGVpciBzb3J0T3JkZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGFzaGJvYXJkc1xyXG4gICAqL1xyXG4gIHNldERhc2hib2FyZHMocmVzcG9uc2U6IGFueSkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJEYXNoYm9hcmRTZXJ2aWNlLnNldERhc2hib2FyZHMoKVwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhc2hib2FyZHMgPSBuZXcgRGFzaGJvYXJkKCkuZGVzZXJpYWxpemVBcnJheShyZXNwb25zZSk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmRhc2hib2FyZHMpIHtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcodGhpcy5kYXNoYm9hcmRzKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKHZhciBkID0gMDsgZCA8IHRoaXMuZGFzaGJvYXJkcy5sZW5ndGg7IGQrKykge1xyXG4gICAgICB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzID0gdGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlcy5zb3J0KChhOiBXaWRnZXRJbnN0YW5jZSwgYjogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgICBpZiAoYS5zb3J0T3JkZXIgIT09IHVuZGVmaW5lZCAmJiBiLnNvcnRPcmRlciAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBsZXQgYWE6IG51bWJlciA9IDxudW1iZXI+YS5zb3J0T3JkZXI7XHJcbiAgICAgICAgICBsZXQgYmI6IG51bWJlciA9IDxudW1iZXI+Yi5zb3J0T3JkZXI7XHJcbiAgICAgICAgICBpZiAoYWEgPCBiYikge1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGFhID4gYmIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGEuc29ydE9yZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9IGVsc2UgaWYgKGIuc29ydE9yZGVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1c2hEYXNoYm9hcmRTdGF0ZSgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkc1N0YXRlLm5leHQodGhpcy5kYXNoYm9hcmRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygd2lkZ2V0IGNhdGVnb3JpZXMgZm9yIHNlYXJjaGluZy9maWx0ZXJpbmcgd2lkZ2V0cy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtXaWRnZXRDYXRlZ29yeVtdfVxyXG4gICAqL1xyXG4gIGdldFdpZGdldENhdGVnb3JpZXMoKSA6IFdpZGdldENhdGVnb3J5W10ge1xyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0Q2F0ZWdvcmllcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciB3aWRnZXRzIGJ5IHRpdGxlIG9yIGtleXdvcmQuXHJcbiAgICogVE9ETzogQWRkIGFueSBvdGhlciBtZXRyaWNzIG9uIHdoaWNoIHRvIGZpbHRlciBieS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWx0ZXJcclxuICAgKiBAcmV0dXJucyB7V2lkZ2V0W119XHJcbiAgICovXHJcbiAgZ2V0V2lkZ2V0c0J5RmlsdGVyKGZpbHRlcjogc3RyaW5nKTogV2lkZ2V0W10ge1xyXG4gICAgaWYgKCFmaWx0ZXIgfHwgZmlsdGVyLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBsZXQgZmlsdGVyZWRMaXN0OiBXaWRnZXRbXSA9IFtdO1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpW2ldLmluc3RhbnRpYWJsZSkge1xyXG4gICAgICAgICAgZmlsdGVyZWRMaXN0LnB1c2godGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmlsdGVyZWRMaXN0O1xyXG4gICAgfSBlbHNlIGlmIChmaWx0ZXIpIHtcclxuICAgICAgbGV0IGZpbHRlcmVkTGlzdDogV2lkZ2V0W10gPSBbXTtcclxuICAgICAgZmlsdGVyID0gZmlsdGVyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy53aWRnZXRzLmdldFZhbHVlKCkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0uaW5zdGFudGlhYmxlKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0udGl0bGUgJiYgdGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0udGl0bGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkTGlzdC5wdXNoKHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpW2ldKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0uZGVzY3JpcHRpb24gJiYgdGhpcy53aWRnZXRzLmdldFZhbHVlKClbaV0uZGVzY3JpcHRpb24udG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcmVkTGlzdC5wdXNoKHRoaXMud2lkZ2V0cy5nZXRWYWx1ZSgpW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZpbHRlcmVkTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpZGdldHMuZ2V0VmFsdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvciBhIHBhcnRpY3VsYXIgYXR0cmlidXRlLCByZXR1cm4gYWxsIGN1cnJlbnQgYXR0cmlidXRlIHZhbHVlcyBmb3IgaXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWRXaWRnZXRJbnN0YW5jZVxyXG4gICAqIEBwYXJhbSBpZFdpZGdldEF0dHJpYnV0ZVxyXG4gICAqIEByZXR1cm5zIHtXaWRnZXRJbnN0YW5jZUF0dHJpYnV0ZVZhbHVlW119XHJcbiAgICovXHJcbiAgZ2V0QXR0cmlidXRlVmFsdWVzKGlkV2lkZ2V0SW5zdGFuY2U6IG51bWJlciwgaWRXaWRnZXRBdHRyaWJ1dGU6IG51bWJlcik6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10ge1xyXG4gICAgbGV0IGF0dHJpYnV0ZVZhbHVlczogV2lkZ2V0QXR0cmlidXRlVmFsdWVbXSA9IFtdO1xyXG5cclxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgdGhpcy5kYXNoYm9hcmRzLmxlbmd0aDsgZCsrKSB7XHJcbiAgICAgIGZvciAodmFyIHcgPSAwOyB3IDwgdGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlcy5sZW5ndGg7IHcrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLmlkV2lkZ2V0SW5zdGFuY2UgPT09IGlkV2lkZ2V0SW5zdGFuY2UpIHtcclxuICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcyA9IHRoaXMuZGFzaGJvYXJkc1tkXS53aWRnZXRJbnN0YW5jZXNbd10uYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzLmZpbHRlcigodmFsdWU6IFdpZGdldEF0dHJpYnV0ZVZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pZFdpZGdldEF0dHJpYnV0ZSA9PT0gaWRXaWRnZXRBdHRyaWJ1dGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLndpZGdldC5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXMuZmlsdGVyKCh2YWx1ZTogV2lkZ2V0QXR0cmlidXRlVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuaWRXaWRnZXRBdHRyaWJ1dGUgPT09IGlkV2lkZ2V0QXR0cmlidXRlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnMoY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnM6IFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcltdKSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkRhc2hib2FyZFNlcnZpY2Uuc2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnMoKVwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1Zyhjb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycyA9IGNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9yIGEgcGFydGljdWxhciBhdHRyaWJ1dGUsIHJldHVybiBhbGwgY3VycmVudCBhdHRyaWJ1dGUgdmFsdWVzIGZvciBpdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFdpZGdldEF0dHJpYnV0ZVxyXG4gICAqIEByZXR1cm5zIHtXaWRnZXRJbnN0YW5jZUF0dHJpYnV0ZVZhbHVlW119XHJcbiAgICovXHJcbiAgZ2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZVZhbHVlcyhpZFdpZGdldEF0dHJpYnV0ZTogbnVtYmVyKTogV2lkZ2V0QXR0cmlidXRlVmFsdWVbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkRhc2hib2FyZFNlcnZpY2UuZ2V0Q29uZmlndXJhdGlvbkF0dHJpYnV0ZVZhbHVlcygpOyBpZFdpZGdldEF0dHJpYnV0ZSA9IFwiICsgaWRXaWRnZXRBdHRyaWJ1dGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycykge1xyXG4gICAgICBmb3IgKHZhciBhYyA9IDA7IGFjIDwgdGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVycy5sZW5ndGg7IGFjKyspIHtcclxuICAgICAgICBmb3IgKHZhciBhID0gMDsgYSA8IHRoaXMuY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnNbYWNdLmF0dHJpYnV0ZXMubGVuZ3RoOyBhKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzW2FjXS5hdHRyaWJ1dGVzW2FdLmlkV2lkZ2V0QXR0cmlidXRlID09PSBpZFdpZGdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciB2ID0gMDsgdiA8IHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IHYrKykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzW2FjXS5hdHRyaWJ1dGVzW2FdLmlkV2lkZ2V0QXR0cmlidXRlID09PSB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXNbdl0uaWRXaWRnZXRBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5wdXNoKHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZVZhbHVlOiBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlLmlkV2lkZ2V0QXR0cmlidXRlVmFsdWUgPSB0aGlzLmdldElkTmV3KCk7XHJcbiAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUuaWRXaWRnZXRBdHRyaWJ1dGUgPSBpZFdpZGdldEF0dHJpYnV0ZTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnNbYWNdLmF0dHJpYnV0ZXNbYV0uZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyc1thY10uYXR0cmlidXRlc1thXS5kYXRhVHlwZSA9PT0gXCJpbnRlZ2VyXCIpIHtcclxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUudmFsdWVJbnRlZ2VyID0gcGFyc2VJbnQodGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyc1thY10uYXR0cmlidXRlc1thXS5kZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVDb250YWluZXJzW2FjXS5hdHRyaWJ1dGVzW2FdLmRhdGFUeXBlID09PSBcImNoZWNrYm94XCIpIHtcclxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUudmFsdWVCb29sZWFuID0gdGhpcy5jb25maWd1cmF0aW9uQXR0cmlidXRlQ29udGFpbmVyc1thY10uYXR0cmlidXRlc1thXS5kZWZhdWx0VmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZS52YWx1ZVN0cmluZyA9IHRoaXMuY29uZmlndXJhdGlvbkF0dHJpYnV0ZUNvbnRhaW5lcnNbYWNdLmF0dHJpYnV0ZXNbYV0uZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzLnB1c2goYXR0cmlidXRlVmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKGF0dHJpYnV0ZVZhbHVlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFmdGVyIGNvbXBsZXRpb24gb2YgYSBkcmFnIGFuZCBkcm9wLCBpdGVyYXRlIHRoZSBlbGVtZW50IHNlbGVjdG9yIHdpdGggYSBudW1iZXIgc3RhcnRpbmcgYXQgMSBhbmQgc2F2ZSBlYWNoXHJcbiAgICogd2lkZ2V0IGluc3RhbmNlIHdpdGggdGhlIG5ldyBzb3J0IG9yZGVyLiAgSWYgdGhlIGV4aXN0aW5nIHNvcnQgb3JkZXIgaXMgdGhlIHNhbWUsIHRoZW4gZG9uJ3QgdXBkYXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlbGVjdGVkRGFzaGJvYXJkXHJcbiAgICogQHBhcmFtIGlkV2lkZ2V0SW5zdGFuY2VcclxuICAgKiBAcGFyYW0gc29ydE9yZGVyXHJcbiAgICovXHJcbiAgc2F2ZVdpZGdldFNvcnRPcmRlcihzZWxlY3RlZERhc2hib2FyZDogbnVtYmVyLCBpZFdpZGdldEluc3RhbmNlOiBudW1iZXIsIHNvcnRPcmRlcjogbnVtYmVyKSB7XHJcbiAgICBmb3IgKHZhciB3ID0gMDsgdyA8IHRoaXMuZGFzaGJvYXJkc1tzZWxlY3RlZERhc2hib2FyZF0ud2lkZ2V0SW5zdGFuY2VzLmxlbmd0aDsgdysrKSB7XHJcbiAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbc2VsZWN0ZWREYXNoYm9hcmRdLndpZGdldEluc3RhbmNlc1t3XS5pZFdpZGdldEluc3RhbmNlID09PSBpZFdpZGdldEluc3RhbmNlXHJcbiAgICAgICAgICAmJiB0aGlzLmRhc2hib2FyZHNbc2VsZWN0ZWREYXNoYm9hcmRdLndpZGdldEluc3RhbmNlc1t3XS5zb3J0T3JkZXIgIT09IHNvcnRPcmRlcikge1xyXG4gICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3QodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L3dpZGdldC1pbnN0YW5jZS9cIiArIGlkV2lkZ2V0SW5zdGFuY2UgKyBcIi9zb3J0LW9yZGVyXCIsIHsgXCJzb3J0T3JkZXJcIjogc29ydE9yZGVyIH0pXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgLy8gMjAwXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB3aWRnZXQgaW5zdGFuY2UgdG8gYmUgZWRpdGVkIChvciBhZGRlZCkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gd2lkZ2V0SW5zdGFuY2UgVGhlIHdpZGdldCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBwZXJzaXN0ZWQuXHJcbiAgICogQHBhcmFtIGFkZCBJbmRpY2F0ZSBpZiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGFkZGVkIG9yIGFuIGV4aXN0aW5nIHdpZGdldCBiZWluZyBjb25maWd1cmVkLlxyXG4gICAqL1xyXG4gIHNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UsIHdpZGdldENvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50LCBhZGQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0Q29uZmlnV2lkZ2V0Q29tcG9uZW50KHdpZGdldENvbXBvbmVudCk7XHJcblxyXG4gICAgaWYgKCF3aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldCkge1xyXG4gICAgICB0aGlzLmh0dHBcclxuICAgICAgICAucHV0KHRoaXMudXNlclByb2ZpbGVFbmRwb2ludCArIFwiL3dpZGdldC93aWRnZXQtaW5zdGFuY2UvXCIgKyB3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlICsgXCIvYXR0cmlidXRlLXZhbHVlLXNldFwiLCBKU09OLnN0cmluZ2lmeShuZXcgV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXQoKSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgd2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQgPSBuZXcgV2lkZ2V0QXR0cmlidXRlVmFsdWVTZXQoKS5kZXNlcmlhbGl6ZShyZXNwb25zZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5wb3N0U2V0Q29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlKHdpZGdldEluc3RhbmNlLCBhZGQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3N0U2V0Q29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlKHdpZGdldEluc3RhbmNlLCBhZGQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zdFNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UsIGFkZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJwb3N0U2V0Q29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlID0gd2lkZ2V0SW5zdGFuY2U7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh3aWRnZXRJbnN0YW5jZSk7XHJcblxyXG4gICAgdGhpcy5wcmVDb25maWdBdHRyaWJ1dGVWYWx1ZVNldCA9IG5ldyBXaWRnZXRBdHRyaWJ1dGVWYWx1ZVNldCgpLmRlc2VyaWFsaXplKHdpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0KTtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwicG9zdFNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZTogXCIgKyBKU09OLnN0cmluZ2lmeSh0aGlzLnByZUNvbmZpZ0F0dHJpYnV0ZVZhbHVlU2V0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHZhbHVlcyBhcmUgdXBkYXRlZCBpbiB0aGUgYWRkL2NvbmZpZyBzY3JlZW4sIHB1c2ggdGhlbSB0byB0aGUgc3RvcmVkIGluc3RhbmNlLiAgSWYgYW55IHRoZXJlIGFyZSBuZXcgdmFsdWVzLFxyXG4gICAqIHRoZW4gdGhleSBtdXN0IGJlIHB1c2hlZC4gIElmIHRoZXJlIGFyZSB2YWx1ZXMgdGhhdCBubyBsb25nZXIgZXhpc3QsIHRoZW4gdGhleSBtdXN0IGJlIGRlbGV0ZWQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWRXaWRnZXRBdHRyaWJ1dGVcclxuICAgKiBAcGFyYW0gYXR0cmlidXRlVmFsdWVzXHJcbiAgICogQHJldHVybnMge1dpZGdldEluc3RhbmNlQXR0cmlidXRlVmFsdWVbXX1cclxuICAgKi9cclxuICBzZXRDb25maWd1cmF0aW9uQXR0cmlidXRlVmFsdWVzKGlkV2lkZ2V0QXR0cmlidXRlOiBudW1iZXIsIGF0dHJpYnV0ZVZhbHVlczogV2lkZ2V0QXR0cmlidXRlVmFsdWVbXSk6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10ge1xyXG4gICAgLyogQWRkIG5ldyB2YWx1ZXMuICovXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgZXhpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGZvciAodmFyIHYgPSAwOyB2IDwgdGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzLmxlbmd0aDsgdisrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XS5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlID09PSBhdHRyaWJ1dGVWYWx1ZXNbaV0uaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzW3ZdID0gYXR0cmlidXRlVmFsdWVzW2ldO1xyXG4gICAgICAgICAgZXhpc3RzID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFleGlzdHMpIHtcclxuICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlc1tpXS5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlKSB7XHJcbiAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXNbaV0uaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuZ2V0SWROZXcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzLnB1c2goYXR0cmlidXRlVmFsdWVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIERlbGV0ZSBvbGQgdmFsdWVzLiAqL1xyXG4gICAgZm9yICh2YXIgdiA9IHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGggLSAxOyB2ID49IDA7IHYtLSkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzW3ZdLmlkV2lkZ2V0QXR0cmlidXRlICE9PSBpZFdpZGdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgZXhpc3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmlidXRlVmFsdWVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XS5pZFdpZGdldEF0dHJpYnV0ZVZhbHVlID09PSBhdHRyaWJ1dGVWYWx1ZXNbaV0uaWRXaWRnZXRBdHRyaWJ1dGVWYWx1ZSkge1xyXG4gICAgICAgICAgZXhpc3RzID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoIWV4aXN0cykge1xyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5zcGxpY2UodiwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXR0cmlidXRlVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFpbnRhaW4gdW5pcXVlbmVzcyBvZiBuZXcgaW5zdGFuY2VzLiAgQXQgc29tZSBwb2ludCB3ZSBtdXN0IGRlY2lkZSB3aGVuIHRvIHBlcnNpc3QgdG8gZGF0YWJhc2UgdG8gaGF2ZSB0aGUgaWRzIGdlbmVyYXRlZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9XHJcbiAgICovXHJcbiAgZ2V0SWROZXcoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmlkTmV3LS07XHJcbiAgfVxyXG5cclxuICBjYW5jZWxDb25maWd1cmF0aW9uV2lkZ2V0KCkge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJjYW5jZWxDb25maWd1cmF0aW9uV2lkZ2V0OiBcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMucHJlQ29uZmlnQXR0cmlidXRlVmFsdWVTZXQpKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGFzaGJvYXJkSW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICAgIGxldCB3aWRnZXRJbmRleDogbnVtYmVyID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvciAodmFyIGQgPSAwOyBkIDwgdGhpcy5kYXNoYm9hcmRzLmxlbmd0aDsgZCsrKSB7XHJcbiAgICAgIGZvciAodmFyIHcgPSAwOyB3IDwgdGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlcy5sZW5ndGg7IHcrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLmlkV2lkZ2V0SW5zdGFuY2UgPT09IHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UpIHtcclxuICAgICAgICAgIGRhc2hib2FyZEluZGV4ID0gZDtcclxuICAgICAgICAgIHdpZGdldEluZGV4ID0gdztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZGFzaGJvYXJkSW5kZXggJiYgd2lkZ2V0SW5kZXgpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkc1tkYXNoYm9hcmRJbmRleF0ud2lkZ2V0SW5zdGFuY2VzW3dpZGdldEluZGV4XS5hdHRyaWJ1dGVWYWx1ZVNldCA9IHRoaXMucHJlQ29uZmlnQXR0cmlidXRlVmFsdWVTZXQ7XHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy51cGRhdGVXaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh0aGlzLmRhc2hib2FyZHNbZGFzaGJvYXJkSW5kZXhdLndpZGdldEluc3RhbmNlc1t3aWRnZXRJbmRleF0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhdHRyaWJ1dGVzIGFyZSBmaW5hbGl6ZWQgYWZ0ZXIgYWRkaW5nL2VkaXRpbmcgYSB3aWRnZXQsIHRoaXMgd2lsbCBzZXQgdGhvc2UgYXR0cmlidXRlcyB0byB0aGUgd2lkZ2V0IGluc3RhbmNlLlxyXG4gICAqL1xyXG4gIHNhdmVDb25maWd1cmF0aW9uV2lkZ2V0KCkge1xyXG4gICAgbGV0IGRhc2hib2FyZEluZGV4OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBsZXQgd2lkZ2V0SW5kZXg6IG51bWJlciA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb3IgKHZhciBkID0gMDsgZCA8IHRoaXMuZGFzaGJvYXJkcy5sZW5ndGg7IGQrKykge1xyXG4gICAgICBmb3IgKHZhciB3ID0gMDsgdyA8IHRoaXMuZGFzaGJvYXJkc1tkXS53aWRnZXRJbnN0YW5jZXMubGVuZ3RoOyB3KyspIHtcclxuICAgICAgICBpZiAodGhpcy5kYXNoYm9hcmRzW2RdLndpZGdldEluc3RhbmNlc1t3XS5pZFdpZGdldEluc3RhbmNlID09PSB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgICAgICBkYXNoYm9hcmRJbmRleCA9IGQ7XHJcbiAgICAgICAgICB3aWRnZXRJbmRleCA9IHc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRhc2hib2FyZEluZGV4ICYmIHdpZGdldEluZGV4KSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgaWRXaWRnZXRJbnN0YW5jZTogbnVtYmVyID0gdGhpcy5kYXNoYm9hcmRzW2Rhc2hib2FyZEluZGV4XS53aWRnZXRJbnN0YW5jZXNbd2lkZ2V0SW5kZXhdLmlkV2lkZ2V0SW5zdGFuY2U7XHJcblxyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMudXNlclByb2ZpbGVFbmRwb2ludCArIFwiL3dpZGdldC93aWRnZXQtaW5zdGFuY2UvXCIgKyBpZFdpZGdldEluc3RhbmNlICsgXCIvYXR0cmlidXRlLXZhbHVlLXNldFwiLCBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXNoYm9hcmRzW2Rhc2hib2FyZEluZGV4XS53aWRnZXRJbnN0YW5jZXNbd2lkZ2V0SW5kZXhdLmF0dHJpYnV0ZVZhbHVlU2V0ID0gbmV3IFdpZGdldEF0dHJpYnV0ZVZhbHVlU2V0KCkuZGVzZXJpYWxpemUocmVzcG9uc2UpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVdpZGdldEluc3RhbmNlU3ViamVjdC5uZXh0KHRoaXMuZGFzaGJvYXJkc1tkYXNoYm9hcmRJbmRleF0ud2lkZ2V0SW5zdGFuY2VzW3dpZGdldEluZGV4XSk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBuZXcgd2lkZ2V0IGludG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXNoYm9hcmQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VsZWN0ZWRXaWRnZXRcclxuICAgKiBAcGFyYW0gd2lkZ2V0SW5zdGFuY2VcclxuICAgKiBAcGFyYW0gZGFzaGJvYXJkSW5kZXhcclxuICAgKiBAcGFyYW0gc3RlcFxyXG4gICAqL1xyXG4gIGFkZFdpZGdldChzZWxlY3RlZFdpZGdldDogV2lkZ2V0LCB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UsIGRhc2hib2FyZEluZGV4OiBudW1iZXIsIHN0ZXA6IG51bWJlcikge1xyXG4gICAgaWYgKHN0ZXAgPT09IDIpIHtcclxuICAgICAgd2lkZ2V0SW5zdGFuY2UgPSB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZTtcclxuICAgIH1cclxuXHQgIHdpZGdldEluc3RhbmNlLmlkRGFzaGJvYXJkID0gdGhpcy5kYXNoYm9hcmRzW2Rhc2hib2FyZEluZGV4XS5pZERhc2hib2FyZDtcclxuICAgIHdpZGdldEluc3RhbmNlLnNvcnRPcmRlciA9IHRoaXMuZGFzaGJvYXJkc1tkYXNoYm9hcmRJbmRleF0ud2lkZ2V0SW5zdGFuY2VzLmxlbmd0aDtcclxuXHQgIHdpZGdldEluc3RhbmNlLmlkUmVzZXQoKTtcclxuXHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLnB1dCh0aGlzLnVzZXJQcm9maWxlRW5kcG9pbnQgKyBcIi93aWRnZXQvd2lkZ2V0LWluc3RhbmNlL1wiLCBKU09OLnN0cmluZ2lmeSh3aWRnZXRJbnN0YW5jZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB3aWRnZXRJbnN0YW5jZSA9IG5ldyBXaWRnZXRJbnN0YW5jZSgpLmRlc2VyaWFsaXplKHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLmRhc2hib2FyZHNbZGFzaGJvYXJkSW5kZXhdLndpZGdldEluc3RhbmNlcy5wdXNoKHdpZGdldEluc3RhbmNlKTtcclxuICAgICAgICB0aGlzLmRhc2hib2FyZHNTdGF0ZS5uZXh0KHRoaXMuZGFzaGJvYXJkcyk7XHJcblxyXG4gICAgICAgIGlmICh3aWRnZXRJbnN0YW5jZS53aWRnZXQgJiYgd2lkZ2V0SW5zdGFuY2Uud2lkZ2V0Lmhhc0F0dHJpYnV0ZXMoKSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRDb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2Uod2lkZ2V0SW5zdGFuY2UsIHRoaXMuZ2V0V2lkZ2V0Q29tcG9uZW50KHdpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UpLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFdpZGdldChjb21wb25lbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8V2lkZ2V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvd2lkZ2V0L2NvbXBvbmVudC9cIiArIGNvbXBvbmVudClcclxuICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiBuZXcgV2lkZ2V0KCkuZGVzZXJpYWxpemUocmVzcG9uc2UpKSk7XHJcbiAgfVxyXG5cclxuICBhZGREYXNoYm9hcmQoZGFzaGJvYXJkOiBEYXNoYm9hcmQpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgbGV0IG5ld0luZGV4OiBPYnNlcnZhYmxlPG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgIC5wdXQodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvZGFzaGJvYXJkL1wiLCBkYXNoYm9hcmQpXHJcbiAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiBuZXcgRGFzaGJvYXJkKCkuZGVzZXJpYWxpemUocmVzcG9uc2UpKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXNoYm9hcmQ6IERhc2hib2FyZCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzLnB1c2goZGFzaGJvYXJkKTtcclxuICAgICAgICAgIG9ic2VydmVyLm5leHQodGhpcy5kYXNoYm9hcmRzLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ld0luZGV4O1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRGFzaGJvYXJkKGluZGV4OiBudW1iZXIpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgbGV0IG5ld0luZGV4OiBPYnNlcnZhYmxlPG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgIC5kZWxldGUodGhpcy51c2VyUHJvZmlsZUVuZHBvaW50ICsgXCIvZGFzaGJvYXJkL1wiICsgdGhpcy5kYXNoYm9hcmRzW2luZGV4XS5pZERhc2hib2FyZCwge30pXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXNoYm9hcmRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXNoYm9hcmRzLmxlbmd0aCA9PT0gaW5kZXgpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChpbmRleCAtIDEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChpbmRleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZHNTdGF0ZS5uZXh0KHRoaXMuZGFzaGJvYXJkcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3SW5kZXg7XHJcbiAgfVxyXG5cclxuICBkZWxldGVXaWRnZXQod2lkZ2V0SW5zdGFuY2U6IFdpZGdldEluc3RhbmNlKSB7XHJcbiAgICB0aGlzLmh0dHBcclxuICAgICAgLmRlbGV0ZSh0aGlzLnVzZXJQcm9maWxlRW5kcG9pbnQgKyBcIi93aWRnZXQvd2lkZ2V0LWluc3RhbmNlL1wiICsgd2lkZ2V0SW5zdGFuY2UuaWRXaWRnZXRJbnN0YW5jZSwge30pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBmb3IgKHZhciBkID0gMDsgZCA8IHRoaXMuZGFzaGJvYXJkcy5sZW5ndGg7IGQrKykge1xyXG4gICAgICAgICAgZm9yICh2YXIgdyA9IDA7IHcgPCB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzLmxlbmd0aDsgdysrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzW3ddLmlkV2lkZ2V0SW5zdGFuY2UgPT09IHdpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhc2hib2FyZHNbZF0ud2lkZ2V0SW5zdGFuY2VzLnNwbGljZSh3LCAxKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3QubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBzdWJqZWN0IHdoaWNoIGlzIHVzZWQgdG8gbm90aWZ5IHdpZGdldCBhZGQvZWRpdCB3aW5kb3dzIHdoZW4gdGhlIHdpZGdldCBpcyBmaW5pc2hlZCByZW5kZXJpbmcuICBJbiBzb21lXHJcbiAgICogY2FzZXMgYXR0cmlidXRlIGNob2ljZXMgYXJlIGJhc2VkIG9uIGRhdGEgd2hpY2ggdGhlIHdpZGdldCBtaWdodCBmZXRjaC4gIEJlZm9yZSB0cnlpbmcgdG8gcmVuZGVyIGF0dHJpYnV0ZXMgZm9yIGVkaXRpbmdcclxuICAgKiB0aGF0IHdpZGdldCwgd2UgaGF2ZSB0byB3YWl0IGZvciB0aGUgZGF0YSBnZXQgdG8gZmluaXNoIHNvIHRoZSBhdHRyaWJ1dGUgY2hvaWNlcyB3aWxsIGJlIGF2YWlsYWJsZS5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtTdWJqZWN0PGJvb2xlYW4+fVxyXG4gICAqL1xyXG4gIGdldFdpZGdldFJlbmRlcmVkKCk6IFN1YmplY3Q8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0UmVuZGVyZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgYW55IGxpc3RlbmVycyB0byBiZSBtYWRlIGF3YXJlIG9mIHdoZW4gYSB3aWRnZXQgcmVuZGVyaW5nIGhhcyBmaW5pc2hlZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB3aWRnZXRSZW5kZXJlZFxyXG4gICAqL1xyXG4gIHNldFdpZGdldFJlbmRlcmVkKHdpZGdldFJlbmRlcmVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLndpZGdldFJlbmRlcmVkLm5leHQod2lkZ2V0UmVuZGVyZWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdE1vZGUoKTogU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0TW9kZVN1YmplY3Q7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0TW9kZShlZGl0TW9kZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xyXG4gICAgdGhpcy5lZGl0TW9kZVN1YmplY3QubmV4dCh0aGlzLmVkaXRNb2RlKTtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbldpZGdldEluc3RhbmNlU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMuZWRpdE1vZGUgPSAhdGhpcy5lZGl0TW9kZTtcclxuICAgIHRoaXMuZWRpdE1vZGVTdWJqZWN0Lm5leHQodGhpcy5lZGl0TW9kZSk7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXRBdHRyaWJ1dGVVcGRhdGVkU3ViamVjdChpZFdpZGdldEF0dHJpYnV0ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLndpZGdldEF0dHJpYnV0ZVVwZGF0ZWRTdWJqZWN0Lm5leHQoaWRXaWRnZXRBdHRyaWJ1dGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0QXR0cmlidXRlVXBkYXRlZFN1YmplY3QoKTogU3ViamVjdDxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLndpZGdldEF0dHJpYnV0ZVVwZGF0ZWRTdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0Q29tcG9uZW50KGlkV2lkZ2V0SW5zdGFuY2U6IG51bWJlcik6IFdpZGdldENvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkV2lkZ2V0Q29tcG9uZW50cy5nZXQoaWRXaWRnZXRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlcldpZGdldENvbXBvbmVudChpZFdpZGdldEluc3RhbmNlOiBudW1iZXIsIHdpZGdldENvbXBvbmVudDogV2lkZ2V0Q29tcG9uZW50KSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRXaWRnZXRDb21wb25lbnRzLnNldChpZFdpZGdldEluc3RhbmNlLCB3aWRnZXRDb21wb25lbnQpO1xyXG5cclxuICAgIGlmICghdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5oYXMoaWRXaWRnZXRJbnN0YW5jZSkpIHtcclxuICAgICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5zZXQoaWRXaWRnZXRJbnN0YW5jZSwgbmV3IEJlaGF2aW9yU3ViamVjdDxXaWRnZXRDb21wb25lbnQ+KHdpZGdldENvbXBvbmVudCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5nZXQoaWRXaWRnZXRJbnN0YW5jZSkubmV4dCh3aWRnZXRDb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgdW5yZWdpc3RlcldpZGdldGNvbXBvbmVudChpZFdpZGdldEluc3RhbmNlOiBudW1iZXIpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJlZFdpZGdldENvbXBvbmVudHMuZGVsZXRlKGlkV2lkZ2V0SW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0Q29tcG9uZW50U3ViamVjdChpZFdpZGdldEluc3RhbmNlOiBudW1iZXIpOiBTdWJqZWN0PFdpZGdldENvbXBvbmVudD4ge1xyXG4gICAgaWYgKCF0aGlzLndpZGdldENvbXBvbmVudFN1YmplY3RzLmhhcyhpZFdpZGdldEluc3RhbmNlKSkge1xyXG4gICAgICB0aGlzLndpZGdldENvbXBvbmVudFN1YmplY3RzLnNldChpZFdpZGdldEluc3RhbmNlLCBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldENvbXBvbmVudD4odW5kZWZpbmVkKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRDb21wb25lbnRTdWJqZWN0cy5nZXQoaWRXaWRnZXRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBnZXRXaWRnZXRDb21wb25lbnRDcmVhdGVkKCk6IFN1YmplY3Q8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRDb21wb25lbnRDcmVhdGVkO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -75,8 +75,8 @@ export class WidgetContainerComponent {
75
75
  addWidget() {
76
76
  this.dashboardService.addWidgetSubject.next(true);
77
77
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: WidgetContainerComponent, deps: [{ token: i0.ElementRef }, { token: i1.DashboardService }, { token: i2.DragulaService }], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: WidgetContainerComponent, selector: "widget-container", inputs: { dashboard: "dashboard", dashboardIndex: "dashboardIndex" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class": "this.classList" } }, ngImport: i0, template: `
78
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetContainerComponent, deps: [{ token: i0.ElementRef }, { token: i1.DashboardService }, { token: i2.DragulaService }], target: i0.ɵɵFactoryTarget.Component }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetContainerComponent, selector: "widget-container", inputs: { dashboard: "dashboard", dashboardIndex: "dashboardIndex" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class": "this.classList" } }, ngImport: i0, template: `
80
80
  <div [id]="'widget-container-' + dashboardIndex"
81
81
  [dragula]="'widget-container-' + dashboardIndex"
82
82
  class="d-flex flex-grow-1 flex-wrap y-auto p-3 pb-5">
@@ -104,7 +104,7 @@ export class WidgetContainerComponent {
104
104
  </div>
105
105
  `, isInline: true, styles: [".gu-mirror{position:fixed!important;margin:0!important;z-index:9999!important;opacity:.8;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)\";filter:alpha(opacity=80)}.gu-hide{display:none!important}.gu-unselectable{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.gu-transit{opacity:.2;-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)\";filter:alpha(opacity=20)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DragulaDirective, selector: "[dragula]", inputs: ["dragula", "dragulaModel"], outputs: ["dragulaModelChange"] }, { kind: "component", type: i4.WidgetHostComponent, selector: "widget-host", inputs: ["widgetInstance"] }] }); }
106
106
  }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: WidgetContainerComponent, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetContainerComponent, decorators: [{
108
108
  type: Component,
109
109
  args: [{ selector: "widget-container", template: `
110
110
  <div [id]="'widget-container-' + dashboardIndex"
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
144
144
  type: HostListener,
145
145
  args: ["window:resize", ["$event"]]
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL3dpZGdldC93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFM0MsT0FBTyxFQUFDLFNBQVMsRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBRS9EOzs7Ozs7R0FNRztBQWtDSCxNQUFNLE9BQU8sd0JBQXdCO0lBZ0JuQyxZQUFvQixVQUFzQixFQUFVLGdCQUFrQyxFQUFVLGNBQThCO1FBQTFHLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZHhHLGNBQVMsR0FBVyxZQUFZLENBQUM7UUFRaEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHlCQUFvQixHQUFXLENBQUMsQ0FBQztRQUNqQywwQkFBcUIsR0FBVyxDQUFDLENBQUM7SUFFK0YsQ0FBQztJQUVsSSxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWlCLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUV6QixnRUFBZ0U7WUFDaEUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJB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KSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nLCBpc0Rldk1vZGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0RyYWd1bGFTZXJ2aWNlfSBmcm9tIFwibmcyLWRyYWd1bGFcIjtcclxuXHJcbmltcG9ydCB7RGFzaGJvYXJkLCBXaWRnZXRJbnN0YW5jZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogRGFzaGJvYXJkICh3aXRoaW4gYSBjYXJkLWdyb3VwKSBpdGVyYXRlcyBvdmVyIGNvbmZpZ3VyZWQgd2lkZ2V0cyB0byBwcm9kdWNlIGVhY2ggb25lIGluIGEgY2FyZC4gIFRoZSB3aWRnZXRzIGNhblxyXG4gKiBhbHdheXMgZ2V0IGFjY2VzcyB0byBhbnkgY29uZmlndXJhdGlvbiBoZWxkIGJ5IHRoZSBkYXNoYm9hcmQgc2VydmljZSwgYnV0IHRoZXkgYXJlIGludGVuZGVkIHRvIGJlIGxhcmdlbHlcclxuICogaW5kZXBlbmRlbnQuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWNvbnRhaW5lclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFtpZF09XCInd2lkZ2V0LWNvbnRhaW5lci0nICsgZGFzaGJvYXJkSW5kZXhcIlxyXG4gICAgICAgICBbZHJhZ3VsYV09XCInd2lkZ2V0LWNvbnRhaW5lci0nICsgZGFzaGJvYXJkSW5kZXhcIlxyXG4gICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMSBmbGV4LXdyYXAgeS1hdXRvIHAtMyBwYi01XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXNoYm9hcmQ/LndpZGdldEluc3RhbmNlcz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgb25lLXRoaXJkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWhvc3QgY2FyZC1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGhlaWdodDogMjAwcHg7IGRpc3BsYXk6IGlubGluZS1ncmlkOyB3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW46IGF1dG87XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRXaWRnZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBmYS00eFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgPGg0PkFkZCBXaWRnZXQ8L2g0PlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtd2lkZ2V0SW5zdGFuY2UgW25nRm9yT2ZdPVwiZGFzaGJvYXJkLndpZGdldEluc3RhbmNlc1wiIGxldC13aWRnZXRJbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgPHdpZGdldC1ob3N0IFtpZF09XCJ3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3dpZGdldEluc3RhbmNlXT1cIndpZGdldEluc3RhbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkXCI+PC93aWRnZXQtaG9zdD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLmd1LW1pcnJvcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3otaW5kZXg6OTk5OSFpbXBvcnRhbnQ7b3BhY2l0eTouODstbXMtZmlsdGVyOlwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9ODApXCI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfS5ndS1oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Lmd1LXVuc2VsZWN0YWJsZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50Oy1tb3otdXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnQ7LW1zLXVzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50O3VzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50fS5ndS10cmFuc2l0e29wYWNpdHk6LjI7LW1zLWZpbHRlcjpcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTIwKVwiO2ZpbHRlcjphbHBoYShvcGFjaXR5PTIwKX1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY2xhc3NMaXN0OiBzdHJpbmcgPSBcIm91dGxldC1yb3dcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRhc2hib2FyZEluZGV4OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25maWdNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgd2lkZ2V0Q29udGFpbmVyV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgd2lkZ2V0Q29udGFpbmVySGVpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSwgcHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldEVkaXRNb2RlKCkuc3Vic2NyaWJlKChlZGl0TW9kZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICB0aGlzLmVkaXRNb2RlID0gZWRpdE1vZGU7XHJcblxyXG4gICAgICAvLyBVcG9uIHN3aXRjaCBlZGl0TW9kZSwgZGVzdHJveSBvciByZS1hZGQgZHJhZ3VsYSB0byBjb250YWluZXIuXHJcbiAgICAgIHZhciBiYWcgPSB0aGlzLmRyYWd1bGFTZXJ2aWNlLmZpbmQoXCJ3aWRnZXQtY29udGFpbmVyLVwiICsgdGhpcy5kYXNoYm9hcmRJbmRleCk7XHJcbiAgICAgIGlmIChiYWcgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZGVzdHJveShcIndpZGdldC1jb250YWluZXItXCIgKyB0aGlzLmRhc2hib2FyZEluZGV4KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyYWd1bGFTZXJ2aWNlLmNyZWF0ZUdyb3VwKFwid2lkZ2V0LWNvbnRhaW5lci1cIiArIHRoaXMuZGFzaGJvYXJkSW5kZXgsIHtcclxuICAgICAgICBtb3ZlczogZnVuY3Rpb24gKGVsOiBhbnksIGNvbnRhaW5lcjogYW55LCBoYW5kbGU6IGFueSkge1xyXG4gICAgICAgICAgcmV0dXJuIGVkaXRNb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZmluZChcIndpZGdldC1jb250YWluZXItXCIgKyB0aGlzLmRhc2hib2FyZEluZGV4KVxyXG4gICAgICAgIC5kcmFrZVxyXG4gICAgICAgIC5jb250YWluZXJzXHJcbiAgICAgICAgLnB1c2godGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIiN3aWRnZXQtY29udGFpbmVyLVwiICsgdGhpcy5kYXNoYm9hcmRJbmRleCkpO1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIFVwb24gZHJvcCwgcGVyc2lzdCB0aGUgbmV3IHNvcnRPcmRlciB0byB0aGUgYmFja2VuZC5cclxuICAgICAgICovXHJcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZHJvcChcIndpZGdldC1jb250YWluZXItXCIgKyB0aGlzLmRhc2hib2FyZEluZGV4KS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgbjogbnVtYmVyID0gMTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgZWwgb2YgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIndpZGdldC1ob3N0XCIpKSB7XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2Uuc2F2ZVdpZGdldFNvcnRPcmRlcih0aGlzLmRhc2hib2FyZEluZGV4LCArZWwuZ2V0QXR0cmlidXRlKFwiaWRcIiksIG4rKyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2VTdWJqZWN0LnN1YnNjcmliZSgod2lkZ2V0SW5zdGFuY2U6IFdpZGdldEluc3RhbmNlKSA9PiB7XHJcbiAgICAgIGlmICh3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2l6ZSgpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnTW9kZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdNb2RlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTaXplKCkge1xyXG4gICAgdGhpcy53aWRnZXRDb250YWluZXJXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy53aWRnZXRDb250YWluZXJIZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBhZGRXaWRnZXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuYWRkV2lkZ2V0U3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL3dpZGdldC93aWRnZXQtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFM0MsT0FBTyxFQUFDLFNBQVMsRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBRS9EOzs7Ozs7R0FNRztBQWtDSCxNQUFNLE9BQU8sd0JBQXdCO0lBZ0JuQyxZQUFvQixVQUFzQixFQUFVLGdCQUFrQyxFQUFVLGNBQThCO1FBQTFHLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZHhHLGNBQVMsR0FBVyxZQUFZLENBQUM7UUFRaEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHlCQUFvQixHQUFXLENBQUMsQ0FBQztRQUNqQywwQkFBcUIsR0FBVyxDQUFDLENBQUM7SUFFK0YsQ0FBQztJQUVsSSxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWlCLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUV6QixnRUFBZ0U7WUFDaEUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJB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KSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nLCBpc0Rldk1vZGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0RyYWd1bGFTZXJ2aWNlfSBmcm9tIFwibmcyLWRyYWd1bGFcIjtcclxuXHJcbmltcG9ydCB7RGFzaGJvYXJkLCBXaWRnZXRJbnN0YW5jZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogRGFzaGJvYXJkICh3aXRoaW4gYSBjYXJkLWdyb3VwKSBpdGVyYXRlcyBvdmVyIGNvbmZpZ3VyZWQgd2lkZ2V0cyB0byBwcm9kdWNlIGVhY2ggb25lIGluIGEgY2FyZC4gIFRoZSB3aWRnZXRzIGNhblxyXG4gKiBhbHdheXMgZ2V0IGFjY2VzcyB0byBhbnkgY29uZmlndXJhdGlvbiBoZWxkIGJ5IHRoZSBkYXNoYm9hcmQgc2VydmljZSwgYnV0IHRoZXkgYXJlIGludGVuZGVkIHRvIGJlIGxhcmdlbHlcclxuICogaW5kZXBlbmRlbnQuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWNvbnRhaW5lclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFtpZF09XCInd2lkZ2V0LWNvbnRhaW5lci0nICsgZGFzaGJvYXJkSW5kZXhcIlxyXG4gICAgICAgICBbZHJhZ3VsYV09XCInd2lkZ2V0LWNvbnRhaW5lci0nICsgZGFzaGJvYXJkSW5kZXhcIlxyXG4gICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMSBmbGV4LXdyYXAgeS1hdXRvIHAtMyBwYi01XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXNoYm9hcmQ/LndpZGdldEluc3RhbmNlcz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgb25lLXRoaXJkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWhvc3QgY2FyZC1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGhlaWdodDogMjAwcHg7IGRpc3BsYXk6IGlubGluZS1ncmlkOyB3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW46IGF1dG87XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRXaWRnZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBmYS00eFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgPGg0PkFkZCBXaWRnZXQ8L2g0PlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtd2lkZ2V0SW5zdGFuY2UgW25nRm9yT2ZdPVwiZGFzaGJvYXJkLndpZGdldEluc3RhbmNlc1wiIGxldC13aWRnZXRJbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgPHdpZGdldC1ob3N0IFtpZF09XCJ3aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW3dpZGdldEluc3RhbmNlXT1cIndpZGdldEluc3RhbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkXCI+PC93aWRnZXQtaG9zdD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLmd1LW1pcnJvcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3otaW5kZXg6OTk5OSFpbXBvcnRhbnQ7b3BhY2l0eTouODstbXMtZmlsdGVyOlwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9ODApXCI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfS5ndS1oaWRle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Lmd1LXVuc2VsZWN0YWJsZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50Oy1tb3otdXNlci1zZWxlY3Q6bm9uZSFpbXBvcnRhbnQ7LW1zLXVzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50O3VzZXItc2VsZWN0Om5vbmUhaW1wb3J0YW50fS5ndS10cmFuc2l0e29wYWNpdHk6LjI7LW1zLWZpbHRlcjpcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTIwKVwiO2ZpbHRlcjphbHBoYShvcGFjaXR5PTIwKX1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY2xhc3NMaXN0OiBzdHJpbmcgPSBcIm91dGxldC1yb3dcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRhc2hib2FyZEluZGV4OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25maWdNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgd2lkZ2V0Q29udGFpbmVyV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgd2lkZ2V0Q29udGFpbmVySGVpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSwgcHJpdmF0ZSBkcmFndWxhU2VydmljZTogRHJhZ3VsYVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldEVkaXRNb2RlKCkuc3Vic2NyaWJlKChlZGl0TW9kZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICB0aGlzLmVkaXRNb2RlID0gZWRpdE1vZGU7XHJcblxyXG4gICAgICAvLyBVcG9uIHN3aXRjaCBlZGl0TW9kZSwgZGVzdHJveSBvciByZS1hZGQgZHJhZ3VsYSB0byBjb250YWluZXIuXHJcbiAgICAgIHZhciBiYWcgPSB0aGlzLmRyYWd1bGFTZXJ2aWNlLmZpbmQoXCJ3aWRnZXQtY29udGFpbmVyLVwiICsgdGhpcy5kYXNoYm9hcmRJbmRleCk7XHJcbiAgICAgIGlmIChiYWcgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZGVzdHJveShcIndpZGdldC1jb250YWluZXItXCIgKyB0aGlzLmRhc2hib2FyZEluZGV4KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyYWd1bGFTZXJ2aWNlLmNyZWF0ZUdyb3VwKFwid2lkZ2V0LWNvbnRhaW5lci1cIiArIHRoaXMuZGFzaGJvYXJkSW5kZXgsIHtcclxuICAgICAgICBtb3ZlczogZnVuY3Rpb24gKGVsOiBhbnksIGNvbnRhaW5lcjogYW55LCBoYW5kbGU6IGFueSkge1xyXG4gICAgICAgICAgcmV0dXJuIGVkaXRNb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZmluZChcIndpZGdldC1jb250YWluZXItXCIgKyB0aGlzLmRhc2hib2FyZEluZGV4KVxyXG4gICAgICAgIC5kcmFrZVxyXG4gICAgICAgIC5jb250YWluZXJzXHJcbiAgICAgICAgLnB1c2godGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIiN3aWRnZXQtY29udGFpbmVyLVwiICsgdGhpcy5kYXNoYm9hcmRJbmRleCkpO1xyXG5cclxuICAgICAgLyoqXHJcbiAgICAgICAqIFVwb24gZHJvcCwgcGVyc2lzdCB0aGUgbmV3IHNvcnRPcmRlciB0byB0aGUgYmFja2VuZC5cclxuICAgICAgICovXHJcbiAgICAgIHRoaXMuZHJhZ3VsYVNlcnZpY2UuZHJvcChcIndpZGdldC1jb250YWluZXItXCIgKyB0aGlzLmRhc2hib2FyZEluZGV4KS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgbjogbnVtYmVyID0gMTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgZWwgb2YgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIndpZGdldC1ob3N0XCIpKSB7XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2Uuc2F2ZVdpZGdldFNvcnRPcmRlcih0aGlzLmRhc2hib2FyZEluZGV4LCArZWwuZ2V0QXR0cmlidXRlKFwiaWRcIiksIG4rKyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jb25maWd1cmF0aW9uV2lkZ2V0SW5zdGFuY2VTdWJqZWN0LnN1YnNjcmliZSgod2lkZ2V0SW5zdGFuY2U6IFdpZGdldEluc3RhbmNlKSA9PiB7XHJcbiAgICAgIGlmICh3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2l6ZSgpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnTW9kZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25maWdNb2RlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTaXplKCkge1xyXG4gICAgdGhpcy53aWRnZXRDb250YWluZXJXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgdGhpcy53aWRnZXRDb250YWluZXJIZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBhZGRXaWRnZXQoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuYWRkV2lkZ2V0U3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -124,14 +124,14 @@ export class WidgetHostComponent {
124
124
  this.showIcons = false;
125
125
  this.renderer.removeClass(this.elementRef.nativeElement, "widget-fullscreen");
126
126
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: WidgetHostComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: WidgetHostComponent, selector: "widget-host", inputs: { widgetInstance: "widgetInstance" }, viewQueries: [{ propertyName: "widgetHolderRef", first: true, predicate: ["widgetComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetHostComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetHostComponent, selector: "widget-host", inputs: { widgetInstance: "widgetInstance" }, viewQueries: [{ propertyName: "widgetHolderRef", first: true, predicate: ["widgetComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
129
129
  <div class="widget-host card-padding" (dblclick)="openConfiguration()">
130
130
  <ng-container #widgetComponent></ng-container>
131
131
  </div>
132
132
  `, isInline: true, styles: [".card-padding{padding:.75rem;border:1px solid rgba(0,0,0,.125);height:100%;background-color:#f8f8fc}.widget-right-corner{float:right;margin-right:0;margin-left:auto}.widget-right-corner.next{padding-right:10px}.widget-right-corner.light{color:#ddd}.no-dropdown-icon.dropdown-toggle:after{display:none}.dropdown-menu{top:0!important;margin-top:-2px}.dropdown-menu.submenu{padding-left:15px;border:none;position:relative}\n"] }); }
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: WidgetHostComponent, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetHostComponent, decorators: [{
135
135
  type: Component,
136
136
  args: [{ selector: "widget-host", template: `
137
137
  <div class="widget-host card-padding" (dblclick)="openConfiguration()">
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
144
144
  type: ViewChild,
145
145
  args: ["widgetComponent", { read: ViewContainerRef, static: true }]
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkL3NyYy93aWRnZXQvd2lkZ2V0LWhvc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQVEsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBRS9EOzs7OztHQUtHO0FBMENILE1BQU0sT0FBTyxtQkFBbUI7SUFnQjlCLFlBQW9CLFFBQW1CLEVBQVUsVUFBc0IsRUFBVSxRQUFrQyxFQUFVLGdCQUFrQztRQUEzSSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVp4SixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFJckMsZUFBVSxHQUFZLEtBQUssQ0FBQztJQUtzSSxDQUFDO0lBRW5LLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWlCLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMs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QUNoRixDQUFDOzhHQWpJVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixnTUFhUSxnQkFBZ0IsMkNBcEQ1Qzs7OztHQUlUOzsyRkFtQ1UsbUJBQW1CO2tCQXpDL0IsU0FBUzsrQkFDRSxhQUFhLFlBQ2I7Ozs7R0FJVDs2S0FxQ1EsY0FBYztzQkFBdEIsS0FBSztnQkFZRSxlQUFlO3NCQUR0QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBJbnB1dCwgaXNEZXZNb2RlLCBSZW5kZXJlcjIsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29tcG9uZW50SW5qZWN0b3J9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXRJbnN0YW5jZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi93aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQmFzZWQgdXBvbiB0aGUgbWFpbiBjb25maWd1cmF0aW9uIHByb3BlcnR5IHdoaWNoIGlzIHsgd2lkZ2V0OiBcIldpZGdldENvbXBvbmVudFwiIH0sIHRoaXMgd2lsbCBkeW5hbWljYWxseSBpbmplY3RcclxuICogYW4gaW5zdGFuY2Ugb2YgdGhhdCB3aWRnZXQgYmFzZWQgb24gaXRzIGNsYXNzIG5hbWUuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWhvc3RcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cIndpZGdldC1ob3N0IGNhcmQtcGFkZGluZ1wiIChkYmxjbGljayk9XCJvcGVuQ29uZmlndXJhdGlvbigpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgI3dpZGdldENvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG5cclxuICAgIC5jYXJkLXBhZGRpbmcge1xyXG4gICAgICBwYWRkaW5nOiAuNzVyZW07XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSk7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmYztcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LXJpZ2h0LWNvcm5lciB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgfVxyXG4gICAgLndpZGdldC1yaWdodC1jb3JuZXIubmV4dCB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgICAud2lkZ2V0LXJpZ2h0LWNvcm5lci5saWdodCB7XHJcbiAgICAgIGNvbG9yOiAjZGRkZGRkO1xyXG4gICAgfVxyXG4gICAgLm5vLWRyb3Bkb3duLWljb24uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAuZHJvcGRvd24tbWVudSB7XHJcbiAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgfVxyXG4gICAgLmRyb3Bkb3duLW1lbnUuc3VibWVudSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldEhvc3RDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcblxyXG4gIHB1YmxpYyBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93SWNvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2l6ZUNvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGlzRnVsbHNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgd2lkZ2V0Q29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQ7XHJcblxyXG4gIGNvbmZpZ01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndpZGdldENvbXBvbmVudFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgd2lkZ2V0SG9sZGVyUmVmOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZVdpZGdldCgpO1xyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRFZGl0TW9kZSgpLnN1YnNjcmliZSgoZWRpdE1vZGU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlKCh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgaWYgKCF3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMuc2V0Q29uZmlnTW9kZShmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAod2lkZ2V0SW5zdGFuY2UuaWRXaWRnZXRJbnN0YW5jZSA9PT0gdGhpcy53aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDb25maWdNb2RlKHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Q29uZmlnTW9kZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS51cGRhdGVXaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlKCh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgaWYgKHdpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UgPT09IHRoaXMud2lkZ2V0SW5zdGFuY2UuaWRXaWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB3aWRnZXRJbnN0YW5jZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyZUNvbXBvbmVudFJlZigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbmZpZ01vZGUoY29uZmlnTW9kZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5jb25maWdNb2RlID0gY29uZmlnTW9kZTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWdNb2RlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiei1pbmRleFwiLCBcIjhcIik7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiYmFja2dyb3VuZC1jb2xvclwiLCBcInJnYmEoMjU1LCAwLCAwLCAwLjI1KVwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiei1pbmRleFwiKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSB3aWRnZXQgYmFzZWQgdXBvbiB0aGUgd2lkZ2V0J3Mgc3BlY2lmaWVkIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBjcmVhdGVXaWRnZXQoKSB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQpIHtcclxuICAgICAgbGV0IGZhY3RvcmllczogVHlwZTxhbnk+W107XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcImNyZWF0ZVdpZGdldDogXCIgKyB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5jb21wb25lbnQpO1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLndpZGdldEluc3RhbmNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50ID0gQ29tcG9uZW50SW5qZWN0b3IuZ2V0Q29tcG9uZW50KHRoaXMucmVzb2x2ZXIsIHRoaXMud2lkZ2V0SG9sZGVyUmVmLCB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5jb21wb25lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UucmVnaXN0ZXJXaWRnZXRDb21wb25lbnQodGhpcy53aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlLCB0aGlzLndpZGdldENvbXBvbmVudCk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlQ29tcG9uZW50UmVmKCk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBsZXQgd2lkZ2V0TmFtZTogc3RyaW5nID0gKHRoaXMud2lkZ2V0SW5zdGFuY2UpID8gKCh0aGlzLndpZGdldEluc3RhbmNlLndpZGdldCkgPyB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5jb21wb25lbnQgOiBcIlVuZGVmaW5lZCBXaWRnZXRcIikgOiBcIlVuZGVmaW5lZCBXaWRnZXRJbnN0YW5jZVwiO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJjcmVhdGVXaWRnZXQgZm9yICdcIiArIHdpZGdldE5hbWUgKyBcIidcIiwgZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRPRE86IFVwZGF0ZSBhY3R1YWwgYXR0cmlidXRlIHZhbHVlLiAgSWYgb25lIGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjYXJkQ2xhc3NcclxuICAgKi9cclxuICBzZXRTaXplKGNhcmRDbGFzczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJjbGFzc1wiLCBcIlwiKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiY2FyZFwiKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNhcmRDbGFzcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOb3RpZnkgYW55IHNlcnZpY2UgbGlzdGVuZXJzIHRoYXQgd2Ugd2FudCB0byBvcGVuIGEgdXNlciBjb25maWd1cmF0aW9uIHdpbmRvdyBvbiB0aGlzIHdpZGdldC5cclxuICAgKi9cclxuICBvcGVuQ29uZmlndXJhdGlvbigpIHtcclxuICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSh0aGlzLndpZGdldEluc3RhbmNlLCB0aGlzLndpZGdldENvbXBvbmVudCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlQ29tcG9uZW50UmVmKCkge1xyXG4gICAgdGhpcy53aWRnZXRDb21wb25lbnQuc2V0V2lkZ2V0SW5zdGFuY2UodGhpcy53aWRnZXRJbnN0YW5jZSk7XHJcbiAgICB0aGlzLndpZGdldENvbXBvbmVudC5jb25maWcodW5kZWZpbmVkKTtcclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudC5nZXRDYXJkQ2xhc3MoKSAmJiB0aGlzLndpZGdldENvbXBvbmVudC5nZXRDYXJkQ2xhc3MoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImNsYXNzXCIsIFwiXCIpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImNhcmRcIik7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMud2lkZ2V0Q29tcG9uZW50LmdldENhcmRDbGFzcygpKTtcclxuICAgIH1cclxuICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50LmNhcmRDbGFzc0V2ZW50LnN1YnNjcmliZSgoY2FyZENsYXNzOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5zZXRTaXplKGNhcmRDbGFzcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVdpZGdldCgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5kZWxldGVXaWRnZXQodGhpcy53aWRnZXRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBmdWxsc2NyZWVuT3BlbigpIHtcclxuICAgIHRoaXMuaXNGdWxsc2NyZWVuID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0ljb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcIndpZGdldC1mdWxsc2NyZWVuXCIpO1xyXG4gIH1cclxuXHJcbiAgZnVsbHNjcmVlbkNsb3NlKCkge1xyXG4gICAgdGhpcy5pc0Z1bGxzY3JlZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0ljb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcIndpZGdldC1mdWxsc2NyZWVuXCIpO1xyXG4gIH1cclxufVxyXG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkL3NyYy93aWRnZXQvd2lkZ2V0LWhvc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQVEsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBRS9EOzs7OztHQUtHO0FBMENILE1BQU0sT0FBTyxtQkFBbUI7SUFnQjlCLFlBQW9CLFFBQW1CLEVBQVUsVUFBc0IsRUFBVSxRQUFrQyxFQUFVLGdCQUFrQztRQUEzSSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVp4SixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFJckMsZUFBVSxHQUFZLEtBQUssQ0FBQztJQUtzSSxDQUFDO0lBRW5LLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWlCLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMs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QUNoRixDQUFDOytHQWpJVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixnTUFhUSxnQkFBZ0IsMkNBcEQ1Qzs7OztHQUlUOzs0RkFtQ1UsbUJBQW1CO2tCQXpDL0IsU0FBUzsrQkFDRSxhQUFhLFlBQ2I7Ozs7R0FJVDs2S0FxQ1EsY0FBYztzQkFBdEIsS0FBSztnQkFZRSxlQUFlO3NCQUR0QixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBJbnB1dCwgaXNEZXZNb2RlLCBSZW5kZXJlcjIsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29tcG9uZW50SW5qZWN0b3J9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXRJbnN0YW5jZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7V2lkZ2V0Q29tcG9uZW50fSBmcm9tIFwiLi93aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQmFzZWQgdXBvbiB0aGUgbWFpbiBjb25maWd1cmF0aW9uIHByb3BlcnR5IHdoaWNoIGlzIHsgd2lkZ2V0OiBcIldpZGdldENvbXBvbmVudFwiIH0sIHRoaXMgd2lsbCBkeW5hbWljYWxseSBpbmplY3RcclxuICogYW4gaW5zdGFuY2Ugb2YgdGhhdCB3aWRnZXQgYmFzZWQgb24gaXRzIGNsYXNzIG5hbWUuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwid2lkZ2V0LWhvc3RcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cIndpZGdldC1ob3N0IGNhcmQtcGFkZGluZ1wiIChkYmxjbGljayk9XCJvcGVuQ29uZmlndXJhdGlvbigpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgI3dpZGdldENvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG5cclxuICAgIC5jYXJkLXBhZGRpbmcge1xyXG4gICAgICBwYWRkaW5nOiAuNzVyZW07XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSk7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmYztcclxuICAgIH1cclxuXHJcbiAgICAud2lkZ2V0LXJpZ2h0LWNvcm5lciB7XHJcbiAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgfVxyXG4gICAgLndpZGdldC1yaWdodC1jb3JuZXIubmV4dCB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICB9XHJcbiAgICAud2lkZ2V0LXJpZ2h0LWNvcm5lci5saWdodCB7XHJcbiAgICAgIGNvbG9yOiAjZGRkZGRkO1xyXG4gICAgfVxyXG4gICAgLm5vLWRyb3Bkb3duLWljb24uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAuZHJvcGRvd24tbWVudSB7XHJcbiAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMnB4O1xyXG4gICAgfVxyXG4gICAgLmRyb3Bkb3duLW1lbnUuc3VibWVudSB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldEhvc3RDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSB3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2U7XHJcblxyXG4gIHB1YmxpYyBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93SWNvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2l6ZUNvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGlzRnVsbHNjcmVlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgd2lkZ2V0Q29tcG9uZW50OiBXaWRnZXRDb21wb25lbnQ7XHJcblxyXG4gIGNvbmZpZ01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndpZGdldENvbXBvbmVudFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgd2lkZ2V0SG9sZGVyUmVmOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZVdpZGdldCgpO1xyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRFZGl0TW9kZSgpLnN1YnNjcmliZSgoZWRpdE1vZGU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlKCh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgaWYgKCF3aWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMuc2V0Q29uZmlnTW9kZShmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAod2lkZ2V0SW5zdGFuY2UuaWRXaWRnZXRJbnN0YW5jZSA9PT0gdGhpcy53aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDb25maWdNb2RlKHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Q29uZmlnTW9kZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS51cGRhdGVXaWRnZXRJbnN0YW5jZVN1YmplY3Quc3Vic2NyaWJlKCh3aWRnZXRJbnN0YW5jZTogV2lkZ2V0SW5zdGFuY2UpID0+IHtcclxuICAgICAgaWYgKHdpZGdldEluc3RhbmNlLmlkV2lkZ2V0SW5zdGFuY2UgPT09IHRoaXMud2lkZ2V0SW5zdGFuY2UuaWRXaWRnZXRJbnN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMud2lkZ2V0SW5zdGFuY2UgPSB3aWRnZXRJbnN0YW5jZTtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyZUNvbXBvbmVudFJlZigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbmZpZ01vZGUoY29uZmlnTW9kZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5jb25maWdNb2RlID0gY29uZmlnTW9kZTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWdNb2RlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiei1pbmRleFwiLCBcIjhcIik7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiYmFja2dyb3VuZC1jb2xvclwiLCBcInJnYmEoMjU1LCAwLCAwLCAwLjI1KVwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiei1pbmRleFwiKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSB3aWRnZXQgYmFzZWQgdXBvbiB0aGUgd2lkZ2V0J3Mgc3BlY2lmaWVkIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBjcmVhdGVXaWRnZXQoKSB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQpIHtcclxuICAgICAgbGV0IGZhY3RvcmllczogVHlwZTxhbnk+W107XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZyhcImNyZWF0ZVdpZGdldDogXCIgKyB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5jb21wb25lbnQpO1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLndpZGdldEluc3RhbmNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50ID0gQ29tcG9uZW50SW5qZWN0b3IuZ2V0Q29tcG9uZW50KHRoaXMucmVzb2x2ZXIsIHRoaXMud2lkZ2V0SG9sZGVyUmVmLCB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5jb21wb25lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UucmVnaXN0ZXJXaWRnZXRDb21wb25lbnQodGhpcy53aWRnZXRJbnN0YW5jZS5pZFdpZGdldEluc3RhbmNlLCB0aGlzLndpZGdldENvbXBvbmVudCk7XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlndXJlQ29tcG9uZW50UmVmKCk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBsZXQgd2lkZ2V0TmFtZTogc3RyaW5nID0gKHRoaXMud2lkZ2V0SW5zdGFuY2UpID8gKCh0aGlzLndpZGdldEluc3RhbmNlLndpZGdldCkgPyB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5jb21wb25lbnQgOiBcIlVuZGVmaW5lZCBXaWRnZXRcIikgOiBcIlVuZGVmaW5lZCBXaWRnZXRJbnN0YW5jZVwiO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJjcmVhdGVXaWRnZXQgZm9yICdcIiArIHdpZGdldE5hbWUgKyBcIidcIiwgZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRPRE86IFVwZGF0ZSBhY3R1YWwgYXR0cmlidXRlIHZhbHVlLiAgSWYgb25lIGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjYXJkQ2xhc3NcclxuICAgKi9cclxuICBzZXRTaXplKGNhcmRDbGFzczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJjbGFzc1wiLCBcIlwiKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiY2FyZFwiKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNhcmRDbGFzcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOb3RpZnkgYW55IHNlcnZpY2UgbGlzdGVuZXJzIHRoYXQgd2Ugd2FudCB0byBvcGVuIGEgdXNlciBjb25maWd1cmF0aW9uIHdpbmRvdyBvbiB0aGlzIHdpZGdldC5cclxuICAgKi9cclxuICBvcGVuQ29uZmlndXJhdGlvbigpIHtcclxuICAgIGlmICghdGhpcy5lZGl0TW9kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnNldENvbmZpZ3VyYXRpb25XaWRnZXRJbnN0YW5jZSh0aGlzLndpZGdldEluc3RhbmNlLCB0aGlzLndpZGdldENvbXBvbmVudCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlQ29tcG9uZW50UmVmKCkge1xyXG4gICAgdGhpcy53aWRnZXRDb21wb25lbnQuc2V0V2lkZ2V0SW5zdGFuY2UodGhpcy53aWRnZXRJbnN0YW5jZSk7XHJcbiAgICB0aGlzLndpZGdldENvbXBvbmVudC5jb25maWcodW5kZWZpbmVkKTtcclxuICAgIGlmICh0aGlzLndpZGdldENvbXBvbmVudC5nZXRDYXJkQ2xhc3MoKSAmJiB0aGlzLndpZGdldENvbXBvbmVudC5nZXRDYXJkQ2xhc3MoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImNsYXNzXCIsIFwiXCIpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImNhcmRcIik7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMud2lkZ2V0Q29tcG9uZW50LmdldENhcmRDbGFzcygpKTtcclxuICAgIH1cclxuICAgIHRoaXMud2lkZ2V0Q29tcG9uZW50LmNhcmRDbGFzc0V2ZW50LnN1YnNjcmliZSgoY2FyZENsYXNzOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5zZXRTaXplKGNhcmRDbGFzcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVdpZGdldCgpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5kZWxldGVXaWRnZXQodGhpcy53aWRnZXRJbnN0YW5jZSk7XHJcbiAgfVxyXG5cclxuICBmdWxsc2NyZWVuT3BlbigpIHtcclxuICAgIHRoaXMuaXNGdWxsc2NyZWVuID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0ljb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcIndpZGdldC1mdWxsc2NyZWVuXCIpO1xyXG4gIH1cclxuXHJcbiAgZnVsbHNjcmVlbkNsb3NlKCkge1xyXG4gICAgdGhpcy5pc0Z1bGxzY3JlZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0ljb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcIndpZGdldC1mdWxsc2NyZWVuXCIpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -143,12 +143,12 @@ export class WidgetComponent {
143
143
  return new Map();
144
144
  }
145
145
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: WidgetComponent, deps: [{ token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: WidgetComponent, selector: "widget", outputs: { cardClassEvent: "cardClassEvent" }, ngImport: i0, template: `
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetComponent, deps: [{ token: i1.DashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetComponent, selector: "widget", outputs: { cardClassEvent: "cardClassEvent" }, ngImport: i0, template: `
148
148
  <ng-template></ng-template>
149
149
  `, isInline: true }); }
150
150
  }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: WidgetComponent, decorators: [{
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetComponent, decorators: [{
152
152
  type: Component,
153
153
  args: [{
154
154
  selector: "widget",
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
159
159
  }], ctorParameters: () => [{ type: i1.DashboardService }], propDecorators: { cardClassEvent: [{
160
160
  type: Output
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvd2lkZ2V0L3dpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7QUFFL0QsTUFBTSxVQUFVLEdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDOUIsTUFBTSxVQUFVLEdBQVcsQ0FBQyxDQUFDLENBQUM7QUFFOUI7O0dBRUc7QUFPSCxNQUFNLE9BQU8sZUFBZTtJQWtCMUIsWUFBWSxnQkFBa0M7UUFoQnBDLG1CQUFjLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckUsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixjQUFTLEdBQVcsV0FBVyxDQUFDO1FBTWhDLGFBQVEsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDekUsd0JBQW1CLEdBQTJELElBQUksZUFBZSxDQUF3QyxTQUFTLENBQUMsQ0FBQztRQUluSix1QkFBa0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUdwRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFpQixFQUFFLEVBQUU7WUFDNUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDZCxJ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Q0FBQyw4Q0FBOEMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25GLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsT0FBTyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQzs4R0E5SlUsZUFBZTtrR0FBZixlQUFlLDZGQUpoQjs7R0FFVDs7MkZBRVUsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFOztHQUVUO2lCQUNGO3FGQUdXLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgaXNEZXZNb2RlLCBPdXRwdXQsIEV2ZW50RW1pdHRlcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXQsIFdpZGdldEF0dHJpYnV0ZUNob2ljZSwgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSwgV2lkZ2V0SW5zdGFuY2UsIFdpZGdldEF0dHJpYnV0ZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcblxyXG5jb25zdCBDQVJEX0NMQVNTOiBudW1iZXIgPSAtMTtcclxuY29uc3QgU0hPV19USVRMRTogbnVtYmVyID0gLTI7XHJcblxyXG4vKipcclxuICogQHNpbmNlIDEuMC4wXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ3aWRnZXRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29tcG9uZW50IHtcclxuXHJcbiAgQE91dHB1dCgpIGNhcmRDbGFzc0V2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwdWJsaWMgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgY2FyZENsYXNzOiBzdHJpbmcgPSBcIm9uZS10aGlyZFwiO1xyXG4gIHB1YmxpYyBjYXJkUGFkZGluZ0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB3aWRnZXQ6IFdpZGdldDtcclxuICBwdWJsaWMgd2lkZ2V0SW5zdGFuY2U6IFdpZGdldEluc3RhbmNlO1xyXG5cclxuICBwdWJsaWMgcmVuZGVyZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyBhdHRyaWJ1dGVDb250YWluZXJzOiBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHByb3RlY3RlZCBkYXNoYm9hcmRTZXJ2aWNlOiBEYXNoYm9hcmRTZXJ2aWNlO1xyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVkU3ViamVjdDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhc2hib2FyZFNlcnZpY2U6IERhc2hib2FyZFNlcnZpY2UpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29tcG9uZW50KClcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVkLnN1YnNjcmliZSgocmVuZGVyZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKHJlbmRlcmVkKSB7XHJcblx0ICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLm5leHQodGhpcy5nZXRBdHRyaWJ1dGVDb250YWluZXJzKCkpO1xyXG5cdCAgICB9XHJcblx0ICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpZyhhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10pOiB2b2lkIHtcclxuICAgIGxldCBjb21tb25BdHRyaWJ1dGVzOiBXaWRnZXRBdHRyaWJ1dGVbXSA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRDb21tb25BdHRyaWJ1dGVzKCkuZ2V0KFwiQ29tbW9uXCIpLmF0dHJpYnV0ZXM7XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXQuY29uZmlnXCIpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKGNvbW1vbkF0dHJpYnV0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghY29tbW9uQXR0cmlidXRlcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2UgJiYgdGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQuYXR0cmlidXRlVmFsdWVTZXQgJiYgdGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzKSB7XHJcbiAgICAgIGZvciAobGV0IGNvbW1vbkF0dHJpYnV0ZSBvZiBjb21tb25BdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgdiA9IDA7IHYgPCB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoOyB2KyspIHtcclxuICAgICAgICAgIGlmIChjb21tb25BdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUgPT09IHRoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0LmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XS5pZFdpZGdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICBpZiAoY29tbW9uQXR0cmlidXRlLm5hbWUgPT09IFwiY2FyZENsYXNzXCIgfHwgY29tbW9uQXR0cmlidXRlLm5hbWUgPT09IFwic2hvd1RpdGxlXCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlcyhjb21tb25BdHRyaWJ1dGUubmFtZSwgW3RoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0LmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZSAmJiB0aGlzLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0ICYmIHRoaXMud2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzKSB7XHJcbiAgICAgIGZvciAobGV0IGNvbW1vbkF0dHJpYnV0ZSBvZiBjb21tb25BdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgdiA9IDA7IHYgPCB0aGlzLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IHYrKykge1xyXG4gICAgICAgICAgaWYgKGNvbW1vbkF0dHJpYnV0ZS5pZFdpZGdldEF0dHJpYnV0ZSA9PT0gdGhpcy53aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXNbdl0uaWRXaWRnZXRBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgaWYgKGNvbW1vbkF0dHJpYnV0ZS5uYW1lID09PSBcImNhcmRDbGFzc1wiIHx8IGNvbW1vbkF0dHJpYnV0ZS5uYW1lID09PSBcInNob3dUaXRsZVwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXMoY29tbW9uQXR0cmlidXRlLm5hbWUsIFt0aGlzLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJbml0aWFsaXplZFN1YmplY3QoKTogU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplZFN1YmplY3Q7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXQod2lkZ2V0OiBXaWRnZXQpIHtcclxuICAgIHRoaXMud2lkZ2V0ID0gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkgIHtcclxuICAgIHRoaXMucmVuZGVyZWQubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHRyeVJlbmRlcigpIHtcclxuICAgIC8vIE92ZXJyaWRlXHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZXMobmFtZTogc3RyaW5nLCBhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10pOiBib29sZWFuIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29tcG9uZW50LnNldFZhbHVlczogXCIgKyBuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlcyB8fCBhdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gaWYgKG5hbWUgPT09IFwiY2FyZENsYXNzXCIpIHtcclxuICAgICAgdGhpcy5jYXJkQ2xhc3MgPSBhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmc7XHJcbiAgICAgIHRoaXMuY2FyZENsYXNzRXZlbnQuZW1pdCh0aGlzLmNhcmRDbGFzcyk7XHJcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09IFwic2hvd1RpdGxlXCIpIHtcclxuICAgICAgdGhpcy5zaG93VGl0bGUgPSBhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVCb29sZWFuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFdpZGdldENob2ljZXMobmFtZTogc3RyaW5nKTogU3ViamVjdDxXaWRnZXRBdHRyaWJ1dGVDaG9pY2VbXT4ge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHNldFdpZGdldEluc3RhbmNlKHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZSkge1xyXG4gICAgdGhpcy53aWRnZXRJbnN0YW5jZSA9IHdpZGdldEluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0SW5zdGFuY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRJbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIGdldENhcmRDbGFzcygpIHtcclxuICAgIHJldHVybiB0aGlzLmNhcmRDbGFzcztcclxuICB9XHJcblxyXG4gIGdldENhcmRQYWRkaW5nQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXJkUGFkZGluZ0NsYXNzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFyZW50RGltZW5zaW9uKGh0bWxFbGVtZW50OiBIVE1MRWxlbWVudCwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB2YXIgeCA9IDMwMDtcclxuICAgIGxldCBwYXJlbnQ6IGFueSA9IGh0bWxFbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB3aGlsZSAocGFyZW50KSB7XHJcbiAgICAgIGlmIChwYXJlbnQuY2xhc3NOYW1lLmluY2x1ZGVzKFwid2lkZ2V0LWhvc3RcIikpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcclxuICAgICAgICB4ID0gcGFyZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHggPSBwYXJlbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKHggPD0gMCkgPyAzMDAgOiB4O1xyXG4gIH1cclxuXHJcbiAgZ2V0QXR0cmlidXRlQ29udGFpbmVycygpOiBNYXA8c3RyaW5nLCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI+IHtcclxuICAgIGlmICh0aGlzLndpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb21wb25lbnQuZ2V0QXR0cmlidXRlQ29udGFpbmVycyBmcm9tIFwiICsgdGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQubmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0LmF0dHJpYnV0ZUNvbnRhaW5lck1hcDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy53aWRnZXQpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIldpZGdldENvbXBvbmVudC5nZXRBdHRyaWJ1dGVDb250YWluZXJzIGZyb20gXCIgKyB0aGlzLndpZGdldC5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy53aWRnZXQuYXR0cmlidXRlQ29udGFpbmVyTWFwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIldpZGdldENvbXBvbmVudC5nZXRBdHRyaWJ1dGVDb250YWluZXJzIGZyb20gbm9uZVwiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvd2lkZ2V0L3dpZGdldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzlDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7QUFFL0QsTUFBTSxVQUFVLEdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDOUIsTUFBTSxVQUFVLEdBQVcsQ0FBQyxDQUFDLENBQUM7QUFFOUI7O0dBRUc7QUFPSCxNQUFNLE9BQU8sZUFBZTtJQWtCMUIsWUFBWSxnQkFBa0M7UUFoQnBDLG1CQUFjLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckUsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixjQUFTLEdBQVcsV0FBVyxDQUFDO1FBTWhDLGFBQVEsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDekUsd0JBQW1CLEdBQTJELElBQUksZUFBZSxDQUF3QyxTQUFTLENBQUMsQ0FBQztRQUluSix1QkFBa0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUdwRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFpQixFQUFFLEVBQUU7WUFDNUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUF1QztRQUM1QyxJQUFJLGdCQUFnQixHQUFzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDO1FBRS9HLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEksS0FBSyxJQUFJLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUM3RixJQUFJLGVBQWUsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDNUgsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDOzRCQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMxRyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxSCxLQUFLLElBQUksZUFBZSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQzdDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDdEYsSUFBSSxlQUFlLENBQUMsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDckgsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDOzRCQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ25HLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTO1FBQ1AsV0FBVztJQUNiLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWSxFQUFFLGVBQXVDO1FBQzdELElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQUMsSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUE4QjtRQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLFdBQXdCLEVBQUUsSUFBWTtRQUN2RCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDWixJQUFJLE1BQU0sR0FBUSxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQzVDLE9BQU8sTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDekIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEcsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDMUQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25GLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsT0FBTyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQzsrR0E5SlUsZUFBZTttR0FBZixlQUFlLDZGQUpoQjs7R0FFVDs7NEZBRVUsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFOztHQUVUO2lCQUNGO3FGQUdXLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge0NvbXBvbmVudCwgaXNEZXZNb2RlLCBPdXRwdXQsIEV2ZW50RW1pdHRlcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHtXaWRnZXQsIFdpZGdldEF0dHJpYnV0ZUNob2ljZSwgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyLCBXaWRnZXRBdHRyaWJ1dGVWYWx1ZSwgV2lkZ2V0SW5zdGFuY2UsIFdpZGdldEF0dHJpYnV0ZX0gZnJvbSBcIi4uL21vZGVsL21vZGVsXCI7XHJcbmltcG9ydCB7RGFzaGJvYXJkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcblxyXG5jb25zdCBDQVJEX0NMQVNTOiBudW1iZXIgPSAtMTtcclxuY29uc3QgU0hPV19USVRMRTogbnVtYmVyID0gLTI7XHJcblxyXG4vKipcclxuICogQHNpbmNlIDEuMC4wXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ3aWRnZXRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29tcG9uZW50IHtcclxuXHJcbiAgQE91dHB1dCgpIGNhcmRDbGFzc0V2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwdWJsaWMgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgY2FyZENsYXNzOiBzdHJpbmcgPSBcIm9uZS10aGlyZFwiO1xyXG4gIHB1YmxpYyBjYXJkUGFkZGluZ0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB3aWRnZXQ6IFdpZGdldDtcclxuICBwdWJsaWMgd2lkZ2V0SW5zdGFuY2U6IFdpZGdldEluc3RhbmNlO1xyXG5cclxuICBwdWJsaWMgcmVuZGVyZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyBhdHRyaWJ1dGVDb250YWluZXJzOiBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgV2lkZ2V0QXR0cmlidXRlQ29udGFpbmVyPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHByb3RlY3RlZCBkYXNoYm9hcmRTZXJ2aWNlOiBEYXNoYm9hcmRTZXJ2aWNlO1xyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVkU3ViamVjdDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhc2hib2FyZFNlcnZpY2U6IERhc2hib2FyZFNlcnZpY2UpIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29tcG9uZW50KClcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlID0gZGFzaGJvYXJkU2VydmljZTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVkLnN1YnNjcmliZSgocmVuZGVyZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKHJlbmRlcmVkKSB7XHJcblx0ICAgICAgdGhpcy5hdHRyaWJ1dGVDb250YWluZXJzLm5leHQodGhpcy5nZXRBdHRyaWJ1dGVDb250YWluZXJzKCkpO1xyXG5cdCAgICB9XHJcblx0ICB9KTtcclxuICB9XHJcblxyXG4gIGNvbmZpZyhhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10pOiB2b2lkIHtcclxuICAgIGxldCBjb21tb25BdHRyaWJ1dGVzOiBXaWRnZXRBdHRyaWJ1dGVbXSA9IHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRDb21tb25BdHRyaWJ1dGVzKCkuZ2V0KFwiQ29tbW9uXCIpLmF0dHJpYnV0ZXM7XHJcblxyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXQuY29uZmlnXCIpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKGNvbW1vbkF0dHJpYnV0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghY29tbW9uQXR0cmlidXRlcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMud2lkZ2V0SW5zdGFuY2UgJiYgdGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQuYXR0cmlidXRlVmFsdWVTZXQgJiYgdGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzKSB7XHJcbiAgICAgIGZvciAobGV0IGNvbW1vbkF0dHJpYnV0ZSBvZiBjb21tb25BdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgdiA9IDA7IHYgPCB0aGlzLndpZGdldEluc3RhbmNlLndpZGdldC5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoOyB2KyspIHtcclxuICAgICAgICAgIGlmIChjb21tb25BdHRyaWJ1dGUuaWRXaWRnZXRBdHRyaWJ1dGUgPT09IHRoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0LmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XS5pZFdpZGdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgICBpZiAoY29tbW9uQXR0cmlidXRlLm5hbWUgPT09IFwiY2FyZENsYXNzXCIgfHwgY29tbW9uQXR0cmlidXRlLm5hbWUgPT09IFwic2hvd1RpdGxlXCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlcyhjb21tb25BdHRyaWJ1dGUubmFtZSwgW3RoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0LmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy53aWRnZXRJbnN0YW5jZSAmJiB0aGlzLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0ICYmIHRoaXMud2lkZ2V0SW5zdGFuY2UuYXR0cmlidXRlVmFsdWVTZXQuYXR0cmlidXRlVmFsdWVzKSB7XHJcbiAgICAgIGZvciAobGV0IGNvbW1vbkF0dHJpYnV0ZSBvZiBjb21tb25BdHRyaWJ1dGVzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgdiA9IDA7IHYgPCB0aGlzLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlcy5sZW5ndGg7IHYrKykge1xyXG4gICAgICAgICAgaWYgKGNvbW1vbkF0dHJpYnV0ZS5pZFdpZGdldEF0dHJpYnV0ZSA9PT0gdGhpcy53aWRnZXRJbnN0YW5jZS5hdHRyaWJ1dGVWYWx1ZVNldC5hdHRyaWJ1dGVWYWx1ZXNbdl0uaWRXaWRnZXRBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgICAgaWYgKGNvbW1vbkF0dHJpYnV0ZS5uYW1lID09PSBcImNhcmRDbGFzc1wiIHx8IGNvbW1vbkF0dHJpYnV0ZS5uYW1lID09PSBcInNob3dUaXRsZVwiKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXMoY29tbW9uQXR0cmlidXRlLm5hbWUsIFt0aGlzLndpZGdldEluc3RhbmNlLmF0dHJpYnV0ZVZhbHVlU2V0LmF0dHJpYnV0ZVZhbHVlc1t2XV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJbml0aWFsaXplZFN1YmplY3QoKTogU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplZFN1YmplY3Q7XHJcbiAgfVxyXG5cclxuICBzZXRXaWRnZXQod2lkZ2V0OiBXaWRnZXQpIHtcclxuICAgIHRoaXMud2lkZ2V0ID0gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkgIHtcclxuICAgIHRoaXMucmVuZGVyZWQubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHRyeVJlbmRlcigpIHtcclxuICAgIC8vIE92ZXJyaWRlXHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZXMobmFtZTogc3RyaW5nLCBhdHRyaWJ1dGVWYWx1ZXM6IFdpZGdldEF0dHJpYnV0ZVZhbHVlW10pOiBib29sZWFuIHtcclxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwiV2lkZ2V0Q29tcG9uZW50LnNldFZhbHVlczogXCIgKyBuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlcyB8fCBhdHRyaWJ1dGVWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gaWYgKG5hbWUgPT09IFwiY2FyZENsYXNzXCIpIHtcclxuICAgICAgdGhpcy5jYXJkQ2xhc3MgPSBhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmc7XHJcbiAgICAgIHRoaXMuY2FyZENsYXNzRXZlbnQuZW1pdCh0aGlzLmNhcmRDbGFzcyk7XHJcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09IFwic2hvd1RpdGxlXCIpIHtcclxuICAgICAgdGhpcy5zaG93VGl0bGUgPSBhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVCb29sZWFuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldFdpZGdldENob2ljZXMobmFtZTogc3RyaW5nKTogU3ViamVjdDxXaWRnZXRBdHRyaWJ1dGVDaG9pY2VbXT4ge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHNldFdpZGdldEluc3RhbmNlKHdpZGdldEluc3RhbmNlOiBXaWRnZXRJbnN0YW5jZSkge1xyXG4gICAgdGhpcy53aWRnZXRJbnN0YW5jZSA9IHdpZGdldEluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkZ2V0SW5zdGFuY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRJbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIGdldENhcmRDbGFzcygpIHtcclxuICAgIHJldHVybiB0aGlzLmNhcmRDbGFzcztcclxuICB9XHJcblxyXG4gIGdldENhcmRQYWRkaW5nQ2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXJkUGFkZGluZ0NsYXNzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFyZW50RGltZW5zaW9uKGh0bWxFbGVtZW50OiBIVE1MRWxlbWVudCwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB2YXIgeCA9IDMwMDtcclxuICAgIGxldCBwYXJlbnQ6IGFueSA9IGh0bWxFbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB3aGlsZSAocGFyZW50KSB7XHJcbiAgICAgIGlmIChwYXJlbnQuY2xhc3NOYW1lLmluY2x1ZGVzKFwid2lkZ2V0LWhvc3RcIikpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcIndpZHRoXCIpIHtcclxuICAgICAgICB4ID0gcGFyZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHggPSBwYXJlbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKHggPD0gMCkgPyAzMDAgOiB4O1xyXG4gIH1cclxuXHJcbiAgZ2V0QXR0cmlidXRlQ29udGFpbmVycygpOiBNYXA8c3RyaW5nLCBXaWRnZXRBdHRyaWJ1dGVDb250YWluZXI+IHtcclxuICAgIGlmICh0aGlzLndpZGdldEluc3RhbmNlKSB7XHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgIGNvbnNvbGUuZGVidWcoXCJXaWRnZXRDb21wb25lbnQuZ2V0QXR0cmlidXRlQ29udGFpbmVycyBmcm9tIFwiICsgdGhpcy53aWRnZXRJbnN0YW5jZS53aWRnZXQubmFtZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0SW5zdGFuY2Uud2lkZ2V0LmF0dHJpYnV0ZUNvbnRhaW5lck1hcDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy53aWRnZXQpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIldpZGdldENvbXBvbmVudC5nZXRBdHRyaWJ1dGVDb250YWluZXJzIGZyb20gXCIgKyB0aGlzLndpZGdldC5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy53aWRnZXQuYXR0cmlidXRlQ29udGFpbmVyTWFwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIldpZGdldENvbXBvbmVudC5nZXRBdHRyaWJ1dGVDb250YWluZXJzIGZyb20gbm9uZVwiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIFdpZGdldEF0dHJpYnV0ZUNvbnRhaW5lcj4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==