@arsedizioni/ars-utils 18.1.173 → 18.1.174

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.
@@ -70,13 +70,13 @@ export class ClipperReferencesComponent extends ClipperSearchResultManager {
70
70
  // Use service snapshot
71
71
  this.snapshot = this.clipperService.referencesSnapshot ?? { searchParams: {}, interval: "-1" };
72
72
  if (this.filterParams.mode !== this.dialogData.mode ||
73
- this.filterParams.documentId !== this.dialogData.id ||
73
+ this.filterParams.id !== this.dialogData.id ||
74
74
  this.filterParams.anchor !== this.dialogData.anchor) {
75
75
  this.filterParams = {
76
76
  mode: this.dialogData.mode,
77
77
  model: this.dialogData.model,
78
78
  anchor: this.dialogData.anchor,
79
- documentId: this.dialogData.id,
79
+ id: this.dialogData.id,
80
80
  useModifierInfo: this.dialogData.mode === ClipperQueryReferencesMode.ChangesOut,
81
81
  returnModifierInfo: this.dialogData.mode !== ClipperQueryReferencesMode.ChangesOut,
82
82
  first: 0,
@@ -335,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
335
335
  type: ViewChild,
336
336
  args: ['filterPane']
337
337
  }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY2xpcHBlci51aS91aS9yZWZlcmVuY2VzL3JlZmVyZW5jZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIudWkvdWkvcmVmZXJlbmNlcy9yZWZlcmVuY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFn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dkIsMEJBQTBCO2tCQTVCdEMsU0FBUzsyQkFDRixFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsY0FHaEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIsNEJBQTRCO3dCQUM1QixnQ0FBZ0M7cUJBRWpDOzhCQUl3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ1RpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyLCBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQge1xyXG4gIENsaXBwZXJEb2N1bWVudEluZm8sXHJcbiAgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUsIENsaXBwZXJTZWFyY2hGYWNldHNTbmFwc2hvdFxyXG59IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24nO1xyXG5pbXBvcnQgeyBTZWxlY3RhYmxlTW9kZWwsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRXh0ZW5kZWRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZXh0ZW5kZWQnO1xyXG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0L2ZsZXgnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENsaXBwZXJEb2N1bWVudE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9kb2N1bWVudC1tZW51L2RvY3VtZW50LW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2xpcHBlclNlYXJjaEZhY2V0c0NvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1mYWNldHMvc2VhcmNoLWZhY2V0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGlwcGVyU2VhcmNoUmVzdWx0TWFuYWdlciB9IGZyb20gJy4uL3NlYXJjaC1yZXN1bHQtbWFuYWdlci9zZWFyY2gtcmVzdWx0LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBDbGlwcGVyU2VhcmNoUmVzdWx0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1yZXN1bHQtaXRlbS9zZWFyY2gtcmVzdWx0LWl0ZW0uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclJlZmVyZW5jZXNEaWFsb2dEYXRhIHtcclxuICBtb2RlPzogQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUgfCBudWxsO1xyXG4gIGFuY2hvcj86IHN0cmluZyB8IG51bGw7XHJcbiAgYW5jaG9yVGl0bGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbW9kZWw6IG51bWJlcjtcclxuXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWZlcmVuY2VzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZWZlcmVuY2VzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGbGV4TW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRCYWRnZU1vZHVsZSxcclxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBFeHRlbmRlZE1vZHVsZSxcclxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIENsaXBwZXJEb2N1bWVudE1lbnVDb21wb25lbnQsXHJcbiAgICBDbGlwcGVyU2VhcmNoRmFjZXRzQ29tcG9uZW50LFxyXG4gICAgQ2xpcHBlclNlYXJjaFJlc3VsdEl0ZW1Db21wb25lbnRcclxuXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaXBwZXJSZWZlcmVuY2VzQ29tcG9uZW50IGV4dGVuZHMgQ2xpcHBlclNlYXJjaFJlc3VsdE1hbmFnZXJcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWx0ZXJQYW5lJykgZmlsdGVyUGFuZSE6IE1hdERyYXdlcjtcclxuXHJcbiAgcHJpdmF0ZSBoZWlnaHQ6IG51bWJlciA9IC0xO1xyXG4gIHByaXZhdGUgZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxDbGlwcGVyUmVmZXJlbmNlc0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBDbGlwcGVyUmVmZXJlbmNlc0RpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKSA/PyB7IG1vZGU6IENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNJbiB9O1xyXG4gIHByb3RlY3RlZCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGl0ZW06IENsaXBwZXJEb2N1bWVudEluZm8gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YSkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuZGlhbG9nRGF0YS5tb2RlKSB7XHJcbiAgICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzSW46XHJcbiAgICAgICAgICB0aGlzLnRpdGxlID0gXCJEb2N1bWVudGkgcmljaGlhbWF0aSBuZWxsZSBub3RlIG8gbmVsIHRlc3RvXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNPdXQ6XHJcbiAgICAgICAgICB0aGlzLnRpdGxlID0gXCJEb2N1bWVudGkgY2hlIHJpY2hpYW1hbm8gcXVlbGxvIGluIHZpc2lvbmVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuQ2hhbmdlc0luOlxyXG4gICAgICAgICAgdGhpcy50aXRsZSA9IFwiTW9kaWZpY2hlIHN1Yml0ZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0OlxyXG4gICAgICAgICAgdGhpcy50aXRsZSA9IFwiTW9kaWZpY2hlIGFwcG9ydGF0ZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5KdXJpczpcclxuICAgICAgICAgIHRoaXMudGl0bGUgPSBcIkdpdXJpc3BydWRlbnphIGFzc29jaWF0YVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5hbmNob3JUaXRsZSkge1xyXG4gICAgICAgIHRoaXMudGl0bGUgKz0gXCIgLSBcIiArIHRoaXMuZGlhbG9nRGF0YS5hbmNob3JUaXRsZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVXNlIHNlcnZpY2Ugc25hcHNob3RcclxuICAgICAgdGhpcy5zbmFwc2hvdCA9IHRoaXMuY2xpcHBlclNlcnZpY2UucmVmZXJlbmNlc1NuYXBzaG90ID8/IHsgc2VhcmNoUGFyYW1zOiB7fSwgaW50ZXJ2YWw6IFwiLTFcIiB9O1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMubW9kZSAhPT0gdGhpcy5kaWFsb2dEYXRhLm1vZGUgfHxcclxuICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy5kb2N1bWVudElkICE9PSB0aGlzLmRpYWxvZ0RhdGEuaWQgfHxcclxuICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy5hbmNob3IgIT09IHRoaXMuZGlhbG9nRGF0YS5hbmNob3JcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtb2RlOiB0aGlzLmRpYWxvZ0RhdGEubW9kZSxcclxuICAgICAgICAgIG1vZGVsOiB0aGlzLmRpYWxvZ0RhdGEubW9kZWwsXHJcbiAgICAgICAgICBhbmNob3I6IHRoaXMuZGlhbG9nRGF0YS5hbmNob3IsXHJcbiAgICAgICAgICBkb2N1bWVudElkOiB0aGlzLmRpYWxvZ0RhdGEuaWQsXHJcbiAgICAgICAgICB1c2VNb2RpZmllckluZm86IHRoaXMuZGlhbG9nRGF0YS5tb2RlID09PSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0LFxyXG4gICAgICAgICAgcmV0dXJuTW9kaWZpZXJJbmZvOiB0aGlzLmRpYWxvZ0RhdGEubW9kZSAhPT0gQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuQ2hhbmdlc091dCxcclxuICAgICAgICAgIGZpcnN0OiAwLFxyXG4gICAgICAgICAgY291bnQ6IDE1LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jbGlwcGVyU2VydmljZS5yZWZlcmVuY2VzU25hcHNob3QgPSB0aGlzLnNuYXBzaG90O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBzZWxlY3Rpb25cclxuICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGFibGVNb2RlbDxhbnksIHN0cmluZz4odHJ1ZSwgJ2RvY3VtZW50SWQnKTtcclxuXHJcbiAgICAvLyBPYnNlcnZlIGxheW91dCBjaGFuZ2VzXHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxyXG4gICAgICAub2JzZXJ2ZShbXHJcbiAgICAgICAgQnJlYWtwb2ludHMuWFNtYWxsLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLlNtYWxsLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLk1lZGl1bSxcclxuICAgICAgICBCcmVha3BvaW50cy5MYXJnZSxcclxuICAgICAgICBCcmVha3BvaW50cy5YTGFyZ2UsXHJcbiAgICAgIF0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgIGZvciAoY29uc3QgcXVlcnkgb2YgT2JqZWN0LmtleXMocmVzdWx0LmJyZWFrcG9pbnRzKSkge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5icmVha3BvaW50c1txdWVyeV0pIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXJQYW5lVmlzaWJpbGl0eSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIC8vIFJlYWN0IHRvIHdpbmRvdyBzaXplIGNoYW5nZVxyXG4gICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSwgZGVib3VuY2VUaW1lKDUwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBIYW5kbGUgZmlsdGVyIHBhbmUgXHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyUGFuZVZpc2liaWxpdHkoKTtcclxuICAgICAgLy8gSGFuZGxlIGZhY2V0c1xyXG4gICAgICBpZiAodGhpcy5mYWNldHMpIHtcclxuICAgICAgICB0aGlzLmZhY2V0cy5jaGFuZ2VkXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogQ2xpcHBlclNlYXJjaEZhY2V0c1NuYXBzaG90KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc25hcHNob3QuZmFjZXRzID0gdmFsdWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90LmZhY2V0cy5mcm9tRGF0ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLmZyb21EYXRlID0gdGhpcy5zbmFwc2hvdC5mYWNldHMuZnJvbURhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMudG9EYXRlID0gdGhpcy5zbmFwc2hvdC5mYWNldHMudG9EYXRlO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLnllYXIgPSB0aGlzLnNuYXBzaG90LmZhY2V0cy5mcm9tRGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc25hcHNob3QuZmFjZXRzLmNoYW5nZWRJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLnllYXIgPSBudWxsO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLmZyb21EYXRlID0gbnVsbDtcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy50b0RhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90LmZhY2V0cy5zZWN0b3IgfHwgdGhpcy5zbmFwc2hvdC5mYWNldHMuY2hhbmdlZFNlY3RvcilcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy5zZWN0b3IgPSB0aGlzLnNuYXBzaG90LmZhY2V0cy5zZWN0b3I7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90LmZhY2V0cy50eXBlIHx8IHRoaXMuc25hcHNob3QuZmFjZXRzLmNoYW5nZWRUeXBlKVxyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLnR5cGUgPSB0aGlzLnNuYXBzaG90LmZhY2V0cy50eXBlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zbmFwc2hvdC5mYWNldHMuYXV0aG9yIHx8IHRoaXMuc25hcHNob3QuZmFjZXRzLmNoYW5nZWRBdXRob3IpXHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMuYXV0aG9yID0gdGhpcy5zbmFwc2hvdC5mYWNldHMuYXV0aG9yO1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoKHRydWUpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG4gICAgdGhpcy5mZXRjaCh0cnVlKTtcclxuICAgIHRoaXMucmVzdG9yZUZhY2V0cygpO1xyXG4gICAgdGhpcy5yZXNpemUoKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzaXplIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzaXplKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsaXBwZXItcmVmZXJlbmNlcy1zY3JvbGxhYmxlJyk7XHJcbiAgICAgIGlmIChlbGVtKSB7XHJcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldEN1cnJlbnREaWFsb2dTY3JvbGxhYmxlSGVpZ2h0KFxyXG4gICAgICAgICAgWydjbGlwcGVyLXJlZmVyZW5jZXMtZml4ZWQnXSxcclxuICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGhlaWdodCAhPSB0aGlzLmhlaWdodCkge1xyXG4gICAgICAgICAgZWxlbS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3BhZGRpbmc6IDIwcHggMCAwIDA7JyArIGhlaWdodCArICdweCAhaW1wb3J0YW50O21heC1oZWlnaHQ6JyArIGhlaWdodCArICdweCAhaW1wb3J0YW50Jyk7XHJcbiAgICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogU2hvdyBoaWRlIGZpbHRlciBwYW5lIG1hbnVhbGx5XHJcbiAqL1xyXG4gIHByb3RlY3RlZCB0b2dnbGVGaWx0ZXJQYW5lKCkge1xyXG4gICAgdGhpcy5maWx0ZXJQYW5lQ2xvc2VkID0gIXRoaXMuZmlsdGVyUGFuZUNsb3NlZDtcclxuICAgIHRoaXMuZmlsdGVyUGFuZT8udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBmaWx0ZXIgcGFuZSB2aXNpYmlsaXR5XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVGaWx0ZXJQYW5lVmlzaWJpbGl0eSgpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlclBhbmUpIHtcclxuICAgICAgaWYgKHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5YU21hbGwpIHx8XHJcbiAgICAgICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlNtYWxsKSB8fFxyXG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5NZWRpdW0pKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyUGFuZS5vcGVuZWQpIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyUGFuZS5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpbHRlclBhbmUubW9kZSA9ICdvdmVyJztcclxuICAgICAgICB0aGlzLmZpbHRlclBhbmUuZGlzYWJsZUNsb3NlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYW5lSGFzQmFja2Ryb3AgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJQYW5lLm9wZW5lZCAmJiAhdGhpcy5maWx0ZXJQYW5lQ2xvc2VkICYmIHRoaXMuaGFzRmFjZXRzKCkpIHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyUGFuZS5vcGVuKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclBhbmUub3BlbmVkICYmIHRoaXMuZmlsdGVyUGFuZUNsb3NlZCkge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJQYW5lLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZS5tb2RlID0gJ3NpZGUnO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZS5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZUhhc0JhY2tkcm9wID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSBkaWFsb2dcclxuICAgKi9cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgZG9jdW1lbnQgbGlua3MgYnkgZW1haWxcclxuICAgKiBAcGFyYW0gaXRlbSA6IHRoZSBpdGVtIHRvIGFkZFxyXG4gICAqL1xyXG4gIHNlbmRUbyhpdGVtOiBhbnkgPSBudWxsKSB7XHJcbiAgICB0aGlzLnNlbmRJdGVtc1RvKGl0ZW0gPyBbaXRlbV0gOiB0aGlzLnNlbGVjdGlvbj8uYWxsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm0gYSBzZWFyY2hcclxuICAgKiBAcGFyYW0gbmV3U2VhcmNoOiB0cnVlIGlmIGlzIGEgbmV3IHNlYXJjaFxyXG4gICAqL1xyXG4gIGZldGNoKG5ld1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAoIXRoaXMuY2xpcHBlclNlcnZpY2UubG9nZ2VkSW4pIHJldHVybjtcclxuICAgIGlmIChuZXdTZWFyY2gpIHRoaXMuZmlsdGVyUGFyYW1zLmZpcnN0ID0gMDtcclxuICAgIHRoaXMuZmlsdGVyUGFyYW1zLnVzZU1vZGlmaWVySW5mbyA9XHJcbiAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLm1vZGUgPT09IENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLkNoYW5nZXNPdXQ7XHJcbiAgICB0aGlzLmZpbHRlclBhcmFtcy5yZXR1cm5Nb2RpZmllckluZm8gPVxyXG4gICAgICB0aGlzLmZpbHRlclBhcmFtcy5tb2RlICE9PSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0O1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmJ1c3koJ1JpY2VyY2EgaW4gY29yc28uLi4nKTtcclxuICAgIHRoaXMuY2xpcHBlclNlcnZpY2UucmVmZXJlbmNlcyh0aGlzLmZpbHRlclBhcmFtcylcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHIpID0+IHtcclxuICAgICAgICAgIGlmICghci5zdWNjZXNzKSB0aGlzLmRpYWxvZ1NlcnZpY2UuZXJyb3Ioci5tZXNzYWdlKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVSZXN1bHRzKHIudmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgLy8gSGFuZGxlIGZhY2V0c1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zbmFwc2hvdC50b3RhbCA+IDApIHtcclxuICAgICAgICAgICAgICBpZiAobmV3U2VhcmNoKVxyXG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGZhY2V0c1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaEZhY2V0cygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmFjZXRzPy5yZXNldCgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFuZS5jbG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAobmV3U2VhcmNoKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yKSB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbCgwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xlYXJCdXN5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgYSBuZXcgcGFnZSByZXN1bHRcclxuICAgKiBAcGFyYW0gZSA6IHRoZSBNYXRQYWdpbmF0b3IgUGFnZUV2ZW50IGRhdGFcclxuICAgKi9cclxuICBmZXRjaE1vcmUoZTogYW55KSB7XHJcbiAgICBsZXQgZmlyc3QgPSBlLnBhZ2VJbmRleCAqIHRoaXMuZmlsdGVyUGFyYW1zLmNvdW50O1xyXG4gICAgdGhpcy5maWx0ZXJQYXJhbXMuZmlyc3QgPSBmaXJzdDtcclxuICAgIHRoaXMuZmV0Y2goKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBmYWNldHNcclxuICAgKi9cclxuICBmZXRjaEZhY2V0cygpIHtcclxuICAgIGlmICghdGhpcy5jbGlwcGVyU2VydmljZS5sb2dnZWRJbikgcmV0dXJuO1xyXG4gICAgaWYgKCF0aGlzLnNuYXBzaG90LmZhY2V0cyB8fCB0aGlzLnNuYXBzaG90LmZhY2V0cz8uaGFzTW9yZUZhY2V0cykge1xyXG4gICAgdGhpcy5maWx0ZXJCdXN5LnNldCh0cnVlKTtcclxuICAgIHRoaXMuY2xpcHBlclNlcnZpY2UucmVmZXJlbmNlc0ZhY2V0cyh0aGlzLmZpbHRlclBhcmFtcylcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHIpID0+IHtcclxuICAgICAgICAgIGlmIChyLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlUmVzdWx0cyhudWxsLCByLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXJQYW5lVmlzaWJpbGl0eSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyQnVzeS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICogVHJ5IHRvIHJlc3RvcmUgc3RvcmVkIGZhY2V0c1xyXG4gKi9cclxuICByZXN0b3JlRmFjZXRzKCkge1xyXG4gICAgaWYgKHRoaXMuc25hcHNob3QuZmFjZXRzKSB7XHJcbiAgICAgIHRoaXMuZmFjZXRzLnJlc3RvcmUodGhpcy5zbmFwc2hvdC5mYWNldHMpO1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSBjdXJyZW50IGRpYWxvZyBhbmQgcmV0dXJuIHRoZSBpZCB0byBuYXZpZ2F0ZSB0b1xyXG4gICAqIEBwYXJhbSBkb2N1bWVudElkIDogdGhlIGRvY3VtZW50IGlkXHJcbiAgICovXHJcbiAgb3Blbihkb2N1bWVudElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgaWQ6IGRvY3VtZW50SWQgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJjbGlwcGVyLXJlZmVyZW5jZXMtZml4ZWRcIj5cclxuICA8ZGl2IGlkPVwiY2xpcHBlci1yZWZlcmVuY2VzLWhlYWRlclwiPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD0nMTBweCcgZnhGaWxsPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIj5cclxuICAgICAgICA8aDIgbWF0LWRpYWxvZy10aXRsZT57e3RpdGxlfX0gPC9oMj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJzdGFydFwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIkNoaXVkaVwiIGFyaWEtbGFiZWw9XCJDaGl1ZGlcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIiBjbGFzcz1cImRpYWxvZy1jbG9zZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoZGlhbG9nRGF0YS5tb2RlID4gMCB8fCBzZWxlY3Rpb24/Lmhhc1ZhbHVlKCkgfHwgKHNuYXBzaG90ICYmIHNuYXBzaG90LmZhY2V0cz8uaGFzRmFjZXRzICYmIGZpbHRlclBhbmUgJiZcclxuICAgICghZmlsdGVyUGFuZS5vcGVuZWQgfHwgZmlsdGVyUGFuZUNsb3NlZCkpKSB7XHJcbiAgICA8ZGl2IHN0eWxlPVwicGFkZGluZzogMCAxMHB4IDAgMjRweDsgaGVpZ2h0OiA0OHB4OyBtaW4taGVpZ2h0OiA0OHB4O1wiPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmlsbD5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIj5cclxuICAgICAgICAgIEBpZiAoZGlhbG9nRGF0YS5tb2RlID09PSAxKSB7XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBuYW1lPVwiZXhjbHVkZVRleHRSZWZlcmVuY2VzXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJQYXJhbXMuZXhjbHVkZVRleHRSZWZlcmVuY2VzXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJmZXRjaCh0cnVlKVwiPlxyXG4gICAgICAgICAgICBNb3N0cmEgc29sbyBzZSBjaXRhdGkgbmVsbGUgbm90ZVxyXG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgfSBAZWxzZSBpZiAoZGlhbG9nRGF0YS5tb2RlID09IDIpIHtcclxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIG5hbWU9XCJleGNsdWRlTm90ZXNSZWZlcmVuY2VzXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJQYXJhbXMuZXhjbHVkZU5vdGVzUmVmZXJlbmNlc1wiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiZmV0Y2godHJ1ZSlcIj5cclxuICAgICAgICAgICAgTW9zdHJhIHNvbG8gc2UgY2l0YW5vIG5lbCB0ZXN0byBpbCBkb2N1bWVudG9cclxuICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmRcIj5cclxuICAgICAgICAgIEBpZiAoc2VsZWN0aW9uPy5oYXNWYWx1ZSgpKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b25cclxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkF6aW9uaSBkYSBlc2VndWlyZSBzdWdsaSBlbGVtZW50aSBzZWxlemlvbmF0aVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01lbnUgb3B6aW9uaSBwZXIgZWxlbWVudGkgc2VsZXppb25hdGknXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVTZWxlY3Rpb25zXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzbmFwc2hvdC50b3RhbFwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1oaWRkZW49XCJmYWxzZVwiIFttYXRCYWRnZV09XCJzZWxlY3Rpb24/LmFsbC5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIj5wbGF5bGlzdF9hZGRfY2hlY2s8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLW1lbnUtZHJvcC1kb3duXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8bWF0LW1lbnUgI21lbnVTZWxlY3Rpb25zPVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICA8Y2xpcHBlci1kb2N1bWVudC1tZW51IFtwYXJlbnRdPVwidGhpc1wiIFtzZWxlY3Rpb25Tb3VyY2VdPVwic2VsZWN0aW9uXCIgW2lzUmVhZGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtpc1JlZmVyZW5jZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvY2xpcHBlci1kb2N1bWVudC1tZW51PlxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgIEBpZiAoc25hcHNob3QgJiYgc25hcHNob3QuZmFjZXRzPy5oYXNGYWNldHMgJiYgZmlsdGVyUGFuZSAmJiAoIWZpbHRlclBhbmUub3BlbmVkIHx8IGZpbHRlclBhbmVDbG9zZWQpKSB7XHJcbiAgICAgICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiQWZmaW5hIHJpY2VyY2FcIiBhcmlhLWxhYmVsPVwiJ0FmZmluYSByaWNlcmNhJ1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlclBhbmUoKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5tZW51X29wZW48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQgaWQ9XCJjbGlwcGVyLXJlZmVyZW5jZXMtc2Nyb2xsYWJsZVwiPlxyXG4gIDxtYXQtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cImZpbGxcIiBbaGFzQmFja2Ryb3BdPVwiZmlsdGVyUGFuZUhhc0JhY2tkcm9wXCI+XHJcbiAgICA8bWF0LWRyYXdlciAjZmlsdGVyUGFuZSBwb3NpdGlvbj1cImVuZFwiIGNsYXNzPVwiZHJhd2VyLXNtYWxsIGRyYXdlci13aXRoLWxvYWRlclwiPlxyXG4gICAgICBAaWYgKGZpbHRlckJ1c3koKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI2cHhcIj5cclxuICAgICAgICAgIEBpZiAoZmlsdGVyQnVzeSgpKSB7XHJcbiAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBzdHlsZT1cInotaW5kZXg6IDExO1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+XHJcbiAgICAgICAgICA8L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI0OHB4XCIgc3R5bGU9XCJwYWRkaW5nOjE0cHggNXB4IDAgNXB4XCI+XHJcbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsPlxyXG4gICAgICAgICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0aXRsZVwiPkFmZmluYSByaWNlcmNhPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVGaWx0ZXJQYW5lKClcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIk5hc2NvbmRpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIiBjbGFzcz1cInNjcm9sbC1oaWRkZW5cIj5cclxuICAgICAgICAgIDxjbGlwcGVyLXNlYXJjaC1mYWNldHMgI2ZhY2V0cz48L2NsaXBwZXItc2VhcmNoLWZhY2V0cz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1kcmF3ZXI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIiBbaWRdPVwic2Nyb2xsZXJJZFwiIGNsYXNzPVwic2Nyb2xsLWF1dG9cIiBzdHlsZT1cInBhZGRpbmc6IDAgNXB4O1wiPlxyXG4gICAgICAgIEBpZiAoIXNuYXBzaG90LnRvdGFsKSB7XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwibWVzc2FnZVwiPjxpPk5lc3N1biBlbGVtZW50byBkYSB2aXN1YWxpenphcmUuPC9pPjwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBzbmFwc2hvdC5pdGVtczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdiAoY29udGV4dG1lbnUpPVwib25Db250ZXh0TWVudSgkZXZlbnQsIGl0ZW0pXCIgKG1vdXNlZW50ZXIpPVwiaXRlbS5pc092ZXIgPSB0cnVlXCJcclxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaXRlbS5pc092ZXIgPSBmYWxzZVwiPlxyXG4gICAgICAgICAgICBAaWYgKGl0ZW0uZ3JvdXApIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zLWdyb3VwLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J3NwYWNlZCc6IGkgPiAwfVwiPnt7aXRlbS5ncm91cH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjZweFwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeEZpbGwgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2l0ZW0tc2VsZWN0ZWQnOiBzZWxlY3Rpb24/LmlzU2VsZWN0ZWQoaXRlbS5kb2N1bWVudElkKSB9XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCI1NHB4XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA2cHg7XCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKHNjcmVlblNlcnZpY2UuaXNUb3VjaGFibGUgfHwgaXRlbS5pc092ZXIgfHwgc2VsZWN0aW9uPy5pc1NlbGVjdGVkKGl0ZW0uZG9jdW1lbnRJZCkpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uPy50b2dnbGUoaXRlbSwgaXRlbS5kb2N1bWVudElkKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24/LmlzU2VsZWN0ZWQoaXRlbS5kb2N1bWVudElkKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cIml0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGNsaXBwZXItc2VhcmNoLXJlc3VsdC1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbcGFyZW50XT1cInRoaXNcIj48L2NsaXBwZXItc2VhcmNoLXJlc3VsdC1pdGVtPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgZnhGbGV4PVwiNDhweFwiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pc092ZXIgfHwgaXRlbS5pc01lbnVPcGVuIHx8IHNlbGVjdGlvbj8uaXNTZWxlY3RlZChpdGVtLmRvY3VtZW50SWQpKSB7XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiTWVudVwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01lbnUgb3B6aW9uaSdcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiY29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJEYXRhXT1cIntpdGVtOiBpdGVtfVwiIChjbGljayk9XCJpdGVtLmlzTWVudU9wZW4gPSB0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAjY29udGV4dE1lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIiBzdHlsZT1cInBvc2l0aW9uOiBmaXhlZFwiIFtzdHlsZS5sZWZ0XT1cImNvbnRleHRNZW51UG9zaXRpb24ueFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUudG9wXT1cImNvbnRleHRNZW51UG9zaXRpb24ueVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb250ZXh0TWVudVwiXHJcbiAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJEYXRhXT1cIntpdGVtOiBpdGVtfVwiPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPG1hdC1tZW51ICNjb250ZXh0TWVudT1cIm1hdE1lbnVcIiAoY2xvc2VkKT1cInVwZGF0ZU1lbnVCdXR0b25zVmlzaWJpbGl0eSgpXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudCBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8Y2xpcHBlci1kb2N1bWVudC1tZW51IFtwYXJlbnRdPVwidGhpc1wiIFtpdGVtXT1cIml0ZW1cIiBbaXNSZWFkYWJsZV09XCJmYWxzZVwiIFtpc1JlZmVyZW5jZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgPC9jbGlwcGVyLWRvY3VtZW50LW1lbnU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gZm9vdGVyIC0tPlxyXG4gICAgICBAaWYgKChzbmFwc2hvdD8udG90YWwgPz8gMCkgPiAwKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtcy1mb290ZXJcIj5cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIiBmeEZpbGw+XHJcbiAgICAgICAgICA8bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIGNsYXNzPVwicGFnaW5hdG9yXCIgW2hpZGVQYWdlU2l6ZV09XCJ0cnVlXCIgW2xlbmd0aF09XCJzbmFwc2hvdD8udG90YWwgPz8gMFwiXHJcbiAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJmaWx0ZXJQYXJhbXMuY291bnQgPz8gMTVcIiBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiIChwYWdlKT1cImZldGNoTW9yZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L21hdC1wYWdpbmF0b3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXItY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY2xpcHBlci51aS91aS9yZWZlcmVuY2VzL3JlZmVyZW5jZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJzLXV0aWxzL2NsaXBwZXIudWkvdWkvcmVmZXJlbmNlcy9yZWZlcmVuY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFn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dkIsMEJBQTBCO2tCQTVCdEMsU0FBUzsyQkFDRixFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsY0FHaEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLDRCQUE0Qjt3QkFDNUIsNEJBQTRCO3dCQUM1QixnQ0FBZ0M7cUJBRWpDOzhCQUl3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ1RpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyLCBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQge1xyXG4gIENsaXBwZXJEb2N1bWVudEluZm8sXHJcbiAgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUsIENsaXBwZXJTZWFyY2hGYWNldHNTbmFwc2hvdFxyXG59IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY2xpcHBlci5jb21tb24nO1xyXG5pbXBvcnQgeyBTZWxlY3RhYmxlTW9kZWwsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRXh0ZW5kZWRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZXh0ZW5kZWQnO1xyXG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0L2ZsZXgnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENsaXBwZXJEb2N1bWVudE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9kb2N1bWVudC1tZW51L2RvY3VtZW50LW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2xpcHBlclNlYXJjaEZhY2V0c0NvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1mYWNldHMvc2VhcmNoLWZhY2V0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGlwcGVyU2VhcmNoUmVzdWx0TWFuYWdlciB9IGZyb20gJy4uL3NlYXJjaC1yZXN1bHQtbWFuYWdlci9zZWFyY2gtcmVzdWx0LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBDbGlwcGVyU2VhcmNoUmVzdWx0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1yZXN1bHQtaXRlbS9zZWFyY2gtcmVzdWx0LWl0ZW0uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcHBlclJlZmVyZW5jZXNEaWFsb2dEYXRhIHtcclxuICBtb2RlPzogQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUgfCBudWxsO1xyXG4gIGFuY2hvcj86IHN0cmluZyB8IG51bGw7XHJcbiAgYW5jaG9yVGl0bGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbW9kZWw6IG51bWJlcjtcclxuXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWZlcmVuY2VzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZWZlcmVuY2VzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGbGV4TW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRCYWRnZU1vZHVsZSxcclxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBFeHRlbmRlZE1vZHVsZSxcclxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIENsaXBwZXJEb2N1bWVudE1lbnVDb21wb25lbnQsXHJcbiAgICBDbGlwcGVyU2VhcmNoRmFjZXRzQ29tcG9uZW50LFxyXG4gICAgQ2xpcHBlclNlYXJjaFJlc3VsdEl0ZW1Db21wb25lbnRcclxuXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaXBwZXJSZWZlcmVuY2VzQ29tcG9uZW50IGV4dGVuZHMgQ2xpcHBlclNlYXJjaFJlc3VsdE1hbmFnZXJcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWx0ZXJQYW5lJykgZmlsdGVyUGFuZSE6IE1hdERyYXdlcjtcclxuXHJcbiAgcHJpdmF0ZSBoZWlnaHQ6IG51bWJlciA9IC0xO1xyXG4gIHByaXZhdGUgZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxDbGlwcGVyUmVmZXJlbmNlc0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBDbGlwcGVyUmVmZXJlbmNlc0RpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKSA/PyB7IG1vZGU6IENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNJbiB9O1xyXG4gIHByb3RlY3RlZCB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGl0ZW06IENsaXBwZXJEb2N1bWVudEluZm8gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YSkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuZGlhbG9nRGF0YS5tb2RlKSB7XHJcbiAgICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5SZWZlcmVuY2VzSW46XHJcbiAgICAgICAgICB0aGlzLnRpdGxlID0gXCJEb2N1bWVudGkgcmljaGlhbWF0aSBuZWxsZSBub3RlIG8gbmVsIHRlc3RvXCI7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLlJlZmVyZW5jZXNPdXQ6XHJcbiAgICAgICAgICB0aGlzLnRpdGxlID0gXCJEb2N1bWVudGkgY2hlIHJpY2hpYW1hbm8gcXVlbGxvIGluIHZpc2lvbmVcIjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuQ2hhbmdlc0luOlxyXG4gICAgICAgICAgdGhpcy50aXRsZSA9IFwiTW9kaWZpY2hlIHN1Yml0ZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0OlxyXG4gICAgICAgICAgdGhpcy50aXRsZSA9IFwiTW9kaWZpY2hlIGFwcG9ydGF0ZVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5KdXJpczpcclxuICAgICAgICAgIHRoaXMudGl0bGUgPSBcIkdpdXJpc3BydWRlbnphIGFzc29jaWF0YVwiO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5hbmNob3JUaXRsZSkge1xyXG4gICAgICAgIHRoaXMudGl0bGUgKz0gXCIgLSBcIiArIHRoaXMuZGlhbG9nRGF0YS5hbmNob3JUaXRsZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVXNlIHNlcnZpY2Ugc25hcHNob3RcclxuICAgICAgdGhpcy5zbmFwc2hvdCA9IHRoaXMuY2xpcHBlclNlcnZpY2UucmVmZXJlbmNlc1NuYXBzaG90ID8/IHsgc2VhcmNoUGFyYW1zOiB7fSwgaW50ZXJ2YWw6IFwiLTFcIiB9O1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMubW9kZSAhPT0gdGhpcy5kaWFsb2dEYXRhLm1vZGUgfHxcclxuICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy5pZCAhPT0gdGhpcy5kaWFsb2dEYXRhLmlkIHx8XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMuYW5jaG9yICE9PSB0aGlzLmRpYWxvZ0RhdGEuYW5jaG9yXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zID0ge1xyXG4gICAgICAgICAgbW9kZTogdGhpcy5kaWFsb2dEYXRhLm1vZGUsXHJcbiAgICAgICAgICBtb2RlbDogdGhpcy5kaWFsb2dEYXRhLm1vZGVsLFxyXG4gICAgICAgICAgYW5jaG9yOiB0aGlzLmRpYWxvZ0RhdGEuYW5jaG9yLFxyXG4gICAgICAgICAgaWQ6IHRoaXMuZGlhbG9nRGF0YS5pZCxcclxuICAgICAgICAgIHVzZU1vZGlmaWVySW5mbzogdGhpcy5kaWFsb2dEYXRhLm1vZGUgPT09IENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLkNoYW5nZXNPdXQsXHJcbiAgICAgICAgICByZXR1cm5Nb2RpZmllckluZm86IHRoaXMuZGlhbG9nRGF0YS5tb2RlICE9PSBDbGlwcGVyUXVlcnlSZWZlcmVuY2VzTW9kZS5DaGFuZ2VzT3V0LFxyXG4gICAgICAgICAgZmlyc3Q6IDAsXHJcbiAgICAgICAgICBjb3VudDogMTUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNsaXBwZXJTZXJ2aWNlLnJlZmVyZW5jZXNTbmFwc2hvdCA9IHRoaXMuc25hcHNob3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBJbml0aWFsaXplIHNlbGVjdGlvblxyXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgU2VsZWN0YWJsZU1vZGVsPGFueSwgc3RyaW5nPih0cnVlLCAnZG9jdW1lbnRJZCcpO1xyXG5cclxuICAgIC8vIE9ic2VydmUgbGF5b3V0IGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAgIC5vYnNlcnZlKFtcclxuICAgICAgICBCcmVha3BvaW50cy5YU21hbGwsXHJcbiAgICAgICAgQnJlYWtwb2ludHMuU21hbGwsXHJcbiAgICAgICAgQnJlYWtwb2ludHMuTWVkaXVtLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLkxhcmdlLFxyXG4gICAgICAgIEJyZWFrcG9pbnRzLlhMYXJnZSxcclxuICAgICAgXSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgZm9yIChjb25zdCBxdWVyeSBvZiBPYmplY3Qua2V5cyhyZXN1bHQuYnJlYWtwb2ludHMpKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmJyZWFrcG9pbnRzW3F1ZXJ5XSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgLy8gUmVhY3QgdG8gd2luZG93IHNpemUgY2hhbmdlXHJcbiAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpLCBkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIEhhbmRsZSBmaWx0ZXIgcGFuZSBcclxuICAgICAgdGhpcy5oYW5kbGVGaWx0ZXJQYW5lVmlzaWJpbGl0eSgpO1xyXG4gICAgICAvLyBIYW5kbGUgZmFjZXRzXHJcbiAgICAgIGlmICh0aGlzLmZhY2V0cykge1xyXG4gICAgICAgIHRoaXMuZmFjZXRzLmNoYW5nZWRcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBDbGlwcGVyU2VhcmNoRmFjZXRzU25hcHNob3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zbmFwc2hvdC5mYWNldHMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc25hcHNob3QuZmFjZXRzLmZyb21EYXRlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMuZnJvbURhdGUgPSB0aGlzLnNuYXBzaG90LmZhY2V0cy5mcm9tRGF0ZTtcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy50b0RhdGUgPSB0aGlzLnNuYXBzaG90LmZhY2V0cy50b0RhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMueWVhciA9IHRoaXMuc25hcHNob3QuZmFjZXRzLmZyb21EYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zbmFwc2hvdC5mYWNldHMuY2hhbmdlZEludGVydmFsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMueWVhciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMuZnJvbURhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLnRvRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuc25hcHNob3QuZmFjZXRzLnNlY3RvciB8fCB0aGlzLnNuYXBzaG90LmZhY2V0cy5jaGFuZ2VkU2VjdG9yKVxyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLnNlY3RvciA9IHRoaXMuc25hcHNob3QuZmFjZXRzLnNlY3RvcjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc25hcHNob3QuZmFjZXRzLnR5cGUgfHwgdGhpcy5zbmFwc2hvdC5mYWNldHMuY2hhbmdlZFR5cGUpXHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXMudHlwZSA9IHRoaXMuc25hcHNob3QuZmFjZXRzLnR5cGU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90LmZhY2V0cy5hdXRob3IgfHwgdGhpcy5zbmFwc2hvdC5mYWNldHMuY2hhbmdlZEF1dGhvcilcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlclBhcmFtcy5hdXRob3IgPSB0aGlzLnNuYXBzaG90LmZhY2V0cy5hdXRob3I7XHJcbiAgICAgICAgICAgIHRoaXMuZmV0Y2godHJ1ZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgICB0aGlzLmZldGNoKHRydWUpO1xyXG4gICAgdGhpcy5yZXN0b3JlRmFjZXRzKCk7XHJcbiAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNpemUgXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNpemUoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbGV0IGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2xpcHBlci1yZWZlcmVuY2VzLXNjcm9sbGFibGUnKTtcclxuICAgICAgaWYgKGVsZW0pIHtcclxuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0Q3VycmVudERpYWxvZ1Njcm9sbGFibGVIZWlnaHQoXHJcbiAgICAgICAgICBbJ2NsaXBwZXItcmVmZXJlbmNlcy1maXhlZCddLFxyXG4gICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0XHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaGVpZ2h0ICE9IHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgICAgICBlbGVtLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAncGFkZGluZzogMjBweCAwIDAgMDsnICsgaGVpZ2h0ICsgJ3B4ICFpbXBvcnRhbnQ7bWF4LWhlaWdodDonICsgaGVpZ2h0ICsgJ3B4ICFpbXBvcnRhbnQnKTtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBTaG93IGhpZGUgZmlsdGVyIHBhbmUgbWFudWFsbHlcclxuICovXHJcbiAgcHJvdGVjdGVkIHRvZ2dsZUZpbHRlclBhbmUoKSB7XHJcbiAgICB0aGlzLmZpbHRlclBhbmVDbG9zZWQgPSAhdGhpcy5maWx0ZXJQYW5lQ2xvc2VkO1xyXG4gICAgdGhpcy5maWx0ZXJQYW5lPy50b2dnbGUoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIGZpbHRlciBwYW5lIHZpc2liaWxpdHlcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCkge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyUGFuZSkge1xyXG4gICAgICBpZiAodGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlhTbWFsbCkgfHxcclxuICAgICAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuU21hbGwpIHx8XHJcbiAgICAgICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLk1lZGl1bSkpIHtcclxuICAgICAgICBpZiAodGhpcy5maWx0ZXJQYW5lLm9wZW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJQYW5lLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZS5tb2RlID0gJ292ZXInO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZS5kaXNhYmxlQ2xvc2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbHRlclBhbmVIYXNCYWNrZHJvcCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpbHRlclBhbmUub3BlbmVkICYmICF0aGlzLmZpbHRlclBhbmVDbG9zZWQgJiYgdGhpcy5oYXNGYWNldHMoKSkge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJQYW5lLm9wZW4oKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyUGFuZS5vcGVuZWQgJiYgdGhpcy5maWx0ZXJQYW5lQ2xvc2VkKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlclBhbmUuY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYW5lLm1vZGUgPSAnc2lkZSc7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYW5lLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYW5lSGFzQmFja2Ryb3AgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlIGRpYWxvZ1xyXG4gICAqL1xyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZCBkb2N1bWVudCBsaW5rcyBieSBlbWFpbFxyXG4gICAqIEBwYXJhbSBpdGVtIDogdGhlIGl0ZW0gdG8gYWRkXHJcbiAgICovXHJcbiAgc2VuZFRvKGl0ZW06IGFueSA9IG51bGwpIHtcclxuICAgIHRoaXMuc2VuZEl0ZW1zVG8oaXRlbSA/IFtpdGVtXSA6IHRoaXMuc2VsZWN0aW9uPy5hbGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSBhIHNlYXJjaFxyXG4gICAqIEBwYXJhbSBuZXdTZWFyY2g6IHRydWUgaWYgaXMgYSBuZXcgc2VhcmNoXHJcbiAgICovXHJcbiAgZmV0Y2gobmV3U2VhcmNoOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmICghdGhpcy5jbGlwcGVyU2VydmljZS5sb2dnZWRJbikgcmV0dXJuO1xyXG4gICAgaWYgKG5ld1NlYXJjaCkgdGhpcy5maWx0ZXJQYXJhbXMuZmlyc3QgPSAwO1xyXG4gICAgdGhpcy5maWx0ZXJQYXJhbXMudXNlTW9kaWZpZXJJbmZvID1cclxuICAgICAgdGhpcy5maWx0ZXJQYXJhbXMubW9kZSA9PT0gQ2xpcHBlclF1ZXJ5UmVmZXJlbmNlc01vZGUuQ2hhbmdlc091dDtcclxuICAgIHRoaXMuZmlsdGVyUGFyYW1zLnJldHVybk1vZGlmaWVySW5mbyA9XHJcbiAgICAgIHRoaXMuZmlsdGVyUGFyYW1zLm1vZGUgIT09IENsaXBwZXJRdWVyeVJlZmVyZW5jZXNNb2RlLkNoYW5nZXNPdXQ7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuYnVzeSgnUmljZXJjYSBpbiBjb3Jzby4uLicpO1xyXG4gICAgdGhpcy5jbGlwcGVyU2VydmljZS5yZWZlcmVuY2VzKHRoaXMuZmlsdGVyUGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocikgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyLnN1Y2Nlc3MpIHRoaXMuZGlhbG9nU2VydmljZS5lcnJvcihyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVJlc3VsdHMoci52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBIYW5kbGUgZmFjZXRzXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90LnRvdGFsID4gMCkge1xyXG4gICAgICAgICAgICAgIGlmIChuZXdTZWFyY2gpXHJcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgZmFjZXRzXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZldGNoRmFjZXRzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5mYWNldHM/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQYW5lLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChuZXdTZWFyY2gpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0b3IpIHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsKDApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jbGVhckJ1c3koKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBhIG5ldyBwYWdlIHJlc3VsdFxyXG4gICAqIEBwYXJhbSBlIDogdGhlIE1hdFBhZ2luYXRvciBQYWdlRXZlbnQgZGF0YVxyXG4gICAqL1xyXG4gIGZldGNoTW9yZShlOiBhbnkpIHtcclxuICAgIGxldCBmaXJzdCA9IGUucGFnZUluZGV4ICogdGhpcy5maWx0ZXJQYXJhbXMuY291bnQ7XHJcbiAgICB0aGlzLmZpbHRlclBhcmFtcy5maXJzdCA9IGZpcnN0O1xyXG4gICAgdGhpcy5mZXRjaCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGZhY2V0c1xyXG4gICAqL1xyXG4gIGZldGNoRmFjZXRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmNsaXBwZXJTZXJ2aWNlLmxvZ2dlZEluKSByZXR1cm47XHJcbiAgICBpZiAoIXRoaXMuc25hcHNob3QuZmFjZXRzIHx8IHRoaXMuc25hcHNob3QuZmFjZXRzPy5oYXNNb3JlRmFjZXRzKSB7XHJcbiAgICB0aGlzLmZpbHRlckJ1c3kuc2V0KHRydWUpO1xyXG4gICAgdGhpcy5jbGlwcGVyU2VydmljZS5yZWZlcmVuY2VzRmFjZXRzKHRoaXMuZmlsdGVyUGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocikgPT4ge1xyXG4gICAgICAgICAgaWYgKHIuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVSZXN1bHRzKG51bGwsIHIudmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpbHRlclBhbmVWaXNpYmlsaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJCdXN5LnNldChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBUcnkgdG8gcmVzdG9yZSBzdG9yZWQgZmFjZXRzXHJcbiAqL1xyXG4gIHJlc3RvcmVGYWNldHMoKSB7XHJcbiAgICBpZiAodGhpcy5zbmFwc2hvdC5mYWNldHMpIHtcclxuICAgICAgdGhpcy5mYWNldHMucmVzdG9yZSh0aGlzLnNuYXBzaG90LmZhY2V0cyk7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyUGFuZVZpc2liaWxpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlIGN1cnJlbnQgZGlhbG9nIGFuZCByZXR1cm4gdGhlIGlkIHRvIG5hdmlnYXRlIHRvXHJcbiAgICogQHBhcmFtIGRvY3VtZW50SWQgOiB0aGUgZG9jdW1lbnQgaWRcclxuICAgKi9cclxuICBvcGVuKGRvY3VtZW50SWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBpZDogZG9jdW1lbnRJZCB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cImNsaXBwZXItcmVmZXJlbmNlcy1maXhlZFwiPlxyXG4gIDxkaXYgaWQ9XCJjbGlwcGVyLXJlZmVyZW5jZXMtaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPScxMHB4JyBmeEZpbGw+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiPlxyXG4gICAgICAgIDxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7dGl0bGV9fSA8L2gyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeExheW91dEFsaWduPVwiZW5kXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cInN0YXJ0XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUb29sdGlwPVwiQ2hpdWRpXCIgYXJpYS1sYWJlbD1cIkNoaXVkaVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwiZGlhbG9nLWNsb3NlXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChkaWFsb2dEYXRhLm1vZGUgPiAwIHx8IHNlbGVjdGlvbj8uaGFzVmFsdWUoKSB8fCAoc25hcHNob3QgJiYgc25hcHNob3QuZmFjZXRzPy5oYXNGYWNldHMgJiYgZmlsdGVyUGFuZSAmJlxyXG4gICAgKCFmaWx0ZXJQYW5lLm9wZW5lZCB8fCBmaWx0ZXJQYW5lQ2xvc2VkKSkpIHtcclxuICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDEwcHggMCAyNHB4OyBoZWlnaHQ6IDQ4cHg7IG1pbi1oZWlnaHQ6IDQ4cHg7XCI+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCIgZnhGaWxsPlxyXG4gICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiPlxyXG4gICAgICAgICAgQGlmIChkaWFsb2dEYXRhLm1vZGUgPT09IDEpIHtcclxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIG5hbWU9XCJleGNsdWRlVGV4dFJlZmVyZW5jZXNcIiBbKG5nTW9kZWwpXT1cImZpbHRlclBhcmFtcy5leGNsdWRlVGV4dFJlZmVyZW5jZXNcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cImZldGNoKHRydWUpXCI+XHJcbiAgICAgICAgICAgIE1vc3RyYSBzb2xvIHNlIGNpdGF0aSBuZWxsZSBub3RlXHJcbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICB9IEBlbHNlIGlmIChkaWFsb2dEYXRhLm1vZGUgPT0gMikge1xyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgbmFtZT1cImV4Y2x1ZGVOb3Rlc1JlZmVyZW5jZXNcIiBbKG5nTW9kZWwpXT1cImZpbHRlclBhcmFtcy5leGNsdWRlTm90ZXNSZWZlcmVuY2VzXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJmZXRjaCh0cnVlKVwiPlxyXG4gICAgICAgICAgICBNb3N0cmEgc29sbyBzZSBjaXRhbm8gbmVsIHRlc3RvIGlsIGRvY3VtZW50b1xyXG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgICAgQGlmIChzZWxlY3Rpb24/Lmhhc1ZhbHVlKCkpIHtcclxuICAgICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQXppb25pIGRhIGVzZWd1aXJlIHN1Z2xpIGVsZW1lbnRpIHNlbGV6aW9uYXRpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTWVudSBvcHppb25pIHBlciBlbGVtZW50aSBzZWxlemlvbmF0aSdcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVNlbGVjdGlvbnNcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNuYXBzaG90LnRvdGFsXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgW21hdEJhZGdlXT1cInNlbGVjdGlvbj8uYWxsLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiPnBsYXlsaXN0X2FkZF9jaGVjazwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tbWVudS1kcm9wLWRvd25cIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxtYXQtbWVudSAjbWVudVNlbGVjdGlvbnM9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgIDxjbGlwcGVyLWRvY3VtZW50LW1lbnUgW3BhcmVudF09XCJ0aGlzXCIgW3NlbGVjdGlvblNvdXJjZV09XCJzZWxlY3Rpb25cIiBbaXNSZWFkYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW2lzUmVmZXJlbmNlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9jbGlwcGVyLWRvY3VtZW50LW1lbnU+XHJcbiAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgQGlmIChzbmFwc2hvdCAmJiBzbmFwc2hvdC5mYWNldHM/Lmhhc0ZhY2V0cyAmJiBmaWx0ZXJQYW5lICYmICghZmlsdGVyUGFuZS5vcGVuZWQgfHwgZmlsdGVyUGFuZUNsb3NlZCkpIHtcclxuICAgICAgICAgIDxkaXYgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJBZmZpbmEgcmljZXJjYVwiIGFyaWEtbGFiZWw9XCInQWZmaW5hIHJpY2VyY2EnXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyUGFuZSgpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPm1lbnVfb3BlbjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBpZD1cImNsaXBwZXItcmVmZXJlbmNlcy1zY3JvbGxhYmxlXCI+XHJcbiAgPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiZmlsbFwiIFtoYXNCYWNrZHJvcF09XCJmaWx0ZXJQYW5lSGFzQmFja2Ryb3BcIj5cclxuICAgIDxtYXQtZHJhd2VyICNmaWx0ZXJQYW5lIHBvc2l0aW9uPVwiZW5kXCIgY2xhc3M9XCJkcmF3ZXItc21hbGwgZHJhd2VyLXdpdGgtbG9hZGVyXCI+XHJcbiAgICAgIEBpZiAoZmlsdGVyQnVzeSgpKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCI+PC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjZweFwiPlxyXG4gICAgICAgICAgQGlmIChmaWx0ZXJCdXN5KCkpIHtcclxuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIHN0eWxlPVwiei1pbmRleDogMTE7XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj5cclxuICAgICAgICAgIDwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjQ4cHhcIiBzdHlsZT1cInBhZGRpbmc6MTRweCA1cHggMCA1cHhcIj5cclxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgICAgICAgIDxkaXYgZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRpdGxlXCI+QWZmaW5hIHJpY2VyY2E8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZUZpbHRlclBhbmUoKVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTmFzY29uZGlcIj48bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGNsYXNzPVwic2Nyb2xsLWhpZGRlblwiPlxyXG4gICAgICAgICAgPGNsaXBwZXItc2VhcmNoLWZhY2V0cyAjZmFjZXRzPjwvY2xpcHBlci1zZWFyY2gtZmFjZXRzPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRyYXdlcj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIFtpZF09XCJzY3JvbGxlcklkXCIgY2xhc3M9XCJzY3JvbGwtYXV0b1wiIHN0eWxlPVwicGFkZGluZzogMCA1cHg7XCI+XHJcbiAgICAgICAgQGlmICghc25hcHNob3QudG90YWwpIHtcclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJtZXNzYWdlXCI+PGk+TmVzc3VuIGVsZW1lbnRvIGRhIHZpc3VhbGl6emFyZS48L2k+PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICBAZm9yIChpdGVtIG9mIHNuYXBzaG90Lml0ZW1zOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICA8ZGl2IChjb250ZXh0bWVudSk9XCJvbkNvbnRleHRNZW51KCRldmVudCwgaXRlbSlcIiAobW91c2VlbnRlcik9XCJpdGVtLmlzT3ZlciA9IHRydWVcIlxyXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJpdGVtLmlzT3ZlciA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoaXRlbS5ncm91cCkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbXMtZ3JvdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnc3BhY2VkJzogaSA+IDB9XCI+e3tpdGVtLmdyb3VwfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNnB4XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmlsbCBjbGFzcz1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXRlbS1zZWxlY3RlZCc6IHNlbGVjdGlvbj8uaXNTZWxlY3RlZChpdGVtLmRvY3VtZW50SWQpIH1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjU0cHhcIiBmeExheW91dEFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDZweDtcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoc2NyZWVuU2VydmljZS5pc1RvdWNoYWJsZSB8fCBpdGVtLmlzT3ZlciB8fCBzZWxlY3Rpb24/LmlzU2VsZWN0ZWQoaXRlbS5kb2N1bWVudElkKSkge1xyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24/LnRvZ2dsZShpdGVtLCBpdGVtLmRvY3VtZW50SWQpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbj8uaXNTZWxlY3RlZChpdGVtLmRvY3VtZW50SWQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8Y2xpcHBlci1zZWFyY2gtcmVzdWx0LWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtwYXJlbnRdPVwidGhpc1wiPjwvY2xpcHBlci1zZWFyY2gtcmVzdWx0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBmeEZsZXg9XCI0OHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmlzT3ZlciB8fCBpdGVtLmlzTWVudU9wZW4gfHwgc2VsZWN0aW9uPy5pc1NlbGVjdGVkKGl0ZW0uZG9jdW1lbnRJZCkpIHtcclxuICAgICAgICAgICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJNZW51XCJcclxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTWVudSBvcHppb25pJ1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb250ZXh0TWVudVwiXHJcbiAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckRhdGFdPVwie2l0ZW06IGl0ZW19XCIgKGNsaWNrKT1cIml0ZW0uaXNNZW51T3BlbiA9IHRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICNjb250ZXh0TWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIHN0eWxlPVwicG9zaXRpb246IGZpeGVkXCIgW3N0eWxlLmxlZnRdPVwiY29udGV4dE1lbnVQb3NpdGlvbi54XCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS50b3BdPVwiY29udGV4dE1lbnVQb3NpdGlvbi55XCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImNvbnRleHRNZW51XCJcclxuICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckRhdGFdPVwie2l0ZW06IGl0ZW19XCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8bWF0LW1lbnUgI2NvbnRleHRNZW51PVwibWF0TWVudVwiIChjbG9zZWQpPVwidXBkYXRlTWVudUJ1dHRvbnNWaXNpYmlsaXR5KClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50IGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxjbGlwcGVyLWRvY3VtZW50LW1lbnUgW3BhcmVudF09XCJ0aGlzXCIgW2l0ZW1dPVwiaXRlbVwiIFtpc1JlYWRhYmxlXT1cImZhbHNlXCIgW2lzUmVmZXJlbmNlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8L2NsaXBwZXItZG9jdW1lbnQtbWVudT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSBmb290ZXIgLS0+XHJcbiAgICAgIEBpZiAoKHNuYXBzaG90Py50b3RhbCA/PyAwKSA+IDApIHtcclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zLWZvb3RlclwiPlxyXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiIGZ4RmlsbD5cclxuICAgICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgY2xhc3M9XCJwYWdpbmF0b3JcIiBbaGlkZVBhZ2VTaXplXT1cInRydWVcIiBbbGVuZ3RoXT1cInNuYXBzaG90Py50b3RhbCA/PyAwXCJcclxuICAgICAgICAgICAgW3BhZ2VTaXplXT1cImZpbHRlclBhcmFtcy5jb3VudCA/PyAxNVwiIFtzaG93Rmlyc3RMYXN0QnV0dG9uc109XCJ0cnVlXCIgKHBhZ2UpPVwiZmV0Y2hNb3JlKCRldmVudClcIj5cclxuICAgICAgICAgIDwvbWF0LXBhZ2luYXRvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlci1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
@@ -1301,7 +1301,7 @@ class ClipperSearchParams {
1301
1301
  this.mode = null;
1302
1302
  this.channels = [...ClipperChannels];
1303
1303
  this.count = 15;
1304
- this.documentId = null;
1304
+ this.id = null;
1305
1305
  this.anchor = null;
1306
1306
  this.excludeTextReferences = false;
1307
1307
  this.excludeNotesReferences = false;