@ieeesa-npm/tenants 0.1.5 → 0.1.7

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.
@@ -8,6 +8,7 @@ import { AlertType, ModalType, } from '@ieeesa-npm/utility';
8
8
  import { TenantStatus, PermissionType, } from '../../models/permission-type.model';
9
9
  import { ViewTenantsColumnSchemaDef, SortOrderBy, } from '../../models/table-column-schema-view-tenant-list.model';
10
10
  import { CreateTenantApplicationComponent } from '../create-tenant-application/create-tenant-application.component';
11
+ import { TenantFunctionType } from '../../models/tenant-function-type.model';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@angular/material/dialog";
13
14
  import * as i2 from "@ieeesa-npm/utility";
@@ -193,6 +194,7 @@ export class ViewTenantsListComponent {
193
194
  * @memberof ViewTenantsListComponent
194
195
  */
195
196
  openCreateTenantForm() {
197
+ this.tenantApplicationsService.setTenantFunctionType(TenantFunctionType.CREATE);
196
198
  const dialogOptions = {
197
199
  heading: this.viewTenantsConstants?.addTenant,
198
200
  isCloseNeeded: true,
@@ -224,7 +226,7 @@ export class ViewTenantsListComponent {
224
226
  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, no-unused-vars
225
227
  .subscribe((result) => {
226
228
  this.dialogRef?.close();
227
- const appTitle = this.tenantApplicationsService.getTenantBasicInfo?.appTitle;
229
+ const appTitle = this.tenantApplicationsService.getNewTenantInfo?.appTitle;
228
230
  this.sharedService.showAlertMessage(AlertType?.SUCCESS, `${appTitle} ${this.createTenantScreenTexts?.message?.success?.submission}`);
229
231
  this.getTenantsAndInitializeTableView({
230
232
  payload: {
@@ -261,7 +263,7 @@ export class ViewTenantsListComponent {
261
263
  this.getTenantsAndInitializeTableView(payload);
262
264
  }
263
265
  /**
264
- * Returning sorting order according to column definition
266
+ * Returning sorting order according to column definition.
265
267
  * @param defaultColumnSortDirection
266
268
  * @returns SortOrderBy.ASC | SortOrderBy.DESC
267
269
  */
@@ -269,7 +271,7 @@ export class ViewTenantsListComponent {
269
271
  return defaultColumnSortDirection ? SortOrderBy.ASC : SortOrderBy.DESC;
270
272
  }
271
273
  /**
272
- * Get the the records according to pagination
274
+ * Get the the records according to pagination.
273
275
  * @param {{
274
276
  * pageOffset: number;
275
277
  * pageLimit: number;
@@ -287,7 +289,8 @@ export class ViewTenantsListComponent {
287
289
  });
288
290
  }
289
291
  /**
290
- * Navigates to view tenants detail component
292
+ * Navigates to view tenants detail component.
293
+ * @param {{tenantInfo: TenantBasicInfo}}
291
294
  * @memberof ViewTenantsListComponent
292
295
  */
293
296
  navigateToViewTenantDetails(tenantInfo) {
@@ -329,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
329
332
  }], viewTenantsDetails: [{
330
333
  type: Output
331
334
  }] } });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUlkLHdCQUF3QixFQUN4QixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLG9DQUFvQyxDQUFDO0FBSzVDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsV0FBVyxHQUVaLE1BQU0seURBQXlELENBQUM7QUFFakUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7OztBQVNwSCxNQUFNLE9BQU8sd0JBQXdCO0lBdUNuQztJQUNFLDBDQUEwQztJQUNuQyxNQUFpQjtJQUN4QiwwQ0FBMEM7SUFDbkMsWUFBMkI7SUFDbEMsMENBQTBDO0lBQ2xDLHlCQUFvRDtJQUM1RCwwQ0FBMEM7SUFDbEMsYUFBNEI7SUFDcEMsMENBQTBDO0lBQ2xDLHlCQUFvRDtJQUM1RCwwQ0FBMEM7SUFDbEMsTUFBYztRQVZmLFdBQU0sR0FBTixNQUFNLENBQVc7UUFFakIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFFMUIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUVwRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU1Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBRXBELFdBQU0sR0FBTixNQUFNLENBQVE7UUFsRHhCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNwRCw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFNBQVMsQ0FBQztRQUMzQix5QkFBb0IsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQztRQUNuRCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNaLG9CQUFlLEdBRXBCO1lBQ0YsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQztRQUNPLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFJaEIsd0JBQW1CLEdBQVcsMEJBQTBCLENBQUMsTUFBTSxDQUFDO1FBQy9ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyx1QkFBa0IsR0FDMUIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUdqQyxpQkFBWSxHQUFpQjtZQUMzQixrQkFBa0IsRUFBRSxJQUFJO1NBQ3pCLENBQUM7UUFDRixpQkFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7UUFDdkQsOEJBQXlCLEdBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQztRQUN2RCxvQkFBZSxHQUFvQjtZQUNqQyxjQUFjLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRCxlQUFlLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWU7WUFDMUQsWUFBWSxFQUFFLENBQUM7U0FDaEIsQ0FBQztRQUVGLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBR2hDLDhEQUE4RDtRQUM5RCw0QkFBdUIsR0FBUSxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQztRQUM1RCwrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFlaEMsSUFBSSxDQUFDLHlCQUF5QjthQUMzQixhQUFhLEVBQUU7YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxNQUE0QixFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsc0JBQXNCO1lBQ3pCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FDMUMsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFlBQVk7U0FDdEQsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztRQUNyRSxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzFELElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztZQUNwQyxPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBYztnQkFDOUMsUUFBUSxFQUFFLDBCQUEwQixDQUFDLE1BQU07Z0JBQzNDLGFBQWEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQ3JDLElBQUksQ0FBQywwQkFBMEIsQ0FDaEM7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FBQyxjQUE4QjtRQUMzQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQ2xELGNBQWMsRUFDZCxJQUFJLENBQUMsc0JBQXNCLENBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEI7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsU0FBUyxFQUFFLDBCQUEwQixDQUFDLE1BQU07Z0JBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUs7Z0JBQ2pDLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDaEMsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDOUMsZ0JBQWdCLEVBQUUsSUFBSTthQUN2QjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxTQUFTO2dCQUMvQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRO2dCQUNwQyxVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FDekIsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtnQkFDekQsZ0JBQWdCLEVBQUUsSUFBSTthQUN2QjtZQUNEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxlQUFlO2dCQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjO2dCQUMxQyxVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FDekIsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRTthQUNoRTtZQUVEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxRQUFRO2dCQUM5QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRO2dCQUNwQyxVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FDekIsR0FDRSxPQUFPLEVBQUUsUUFBUSxJQUFJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUM7b0JBQ2hELENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFDWCxFQUFFO2FBQ0w7WUFDRDtnQkFDRSxFQUFFLEVBQUUsQ0FBQztnQkFDTCxTQUFTLEVBQUUsMEJBQTBCLENBQUMsTUFBTTtnQkFDNUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTTtnQkFDbEMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUNoQyw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxDQUFDLE9BQVksRUFBRSxFQUFFLENBQ3pCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTthQUNwRTtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCLENBQUMsUUFBdUI7UUFDeEMsT0FBTyxRQUFRO2FBQ1osR0FBRyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFO1lBQzVCLGlEQUFpRDtZQUNqRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1lBQ0YsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxnQ0FBZ0MsQ0FBQyxPQUEwQjtRQUN6RCxJQUFJLENBQUMseUJBQXlCO2FBQzNCLGNBQWMsQ0FBQyxPQUFPLENBQUM7YUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRSxVQUEwQixDQUFDO2dCQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxRQUFRLEVBQUUsSUFBSTtvQkFDaEQsRUFBRSxZQUFzQixDQUFDO1lBQzdCLENBQUM7WUFDRCw4REFBOEQ7WUFDOUQsS0FBSyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILG9CQUFvQjtRQUNsQixNQUFNLGFBQWEsR0FBRztZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVM7WUFDN0MsYUFBYSxFQUFFLElBQUk7WUFDbkIsa0JBQWtCLEVBQUUsZ0NBQWdDO1lBQ3BELFNBQVMsRUFBRSxTQUFTLENBQUMsSUFBSTtTQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0gsc0hBQXNIO0lBQ3RILFNBQVM7SUFDUCw4REFBOEQ7SUFDOUQsYUFBa0IsRUFDbEIsU0FBa0I7UUFFbEIsU0FBUyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakQsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUM7WUFDOUMsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0I7YUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsaUhBQWlIO2FBQ2hILFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDeEIsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztZQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUNqQyxTQUFTLEVBQUUsT0FBTyxFQUNsQixHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FDNUUsQ0FBQztZQUNGLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDcEMsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRSxDQUFDO29CQUNULFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLGNBQWM7b0JBQzlDLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxNQUFNO29CQUMzQyxhQUFhLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUNyQyxJQUFJLENBQUMsMEJBQTBCLENBQ2hDO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVU7YUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFVO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQywwQkFBMEI7WUFDN0IsSUFBSSxDQUFDLFNBQVMsS0FBSyx3QkFBd0IsQ0FBQyxTQUFTLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQXNCO1lBQ2pDLE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxjQUFjO2dCQUM5QyxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtnQkFDbEMsYUFBYSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FDckMsSUFBSSxDQUFDLDBCQUEwQixDQUNoQzthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLDBCQUFtQztRQUNyRCxPQUFPLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ3pFLENBQUM7SUFDRDs7Ozs7OztPQU9HO0lBQ0gsdUJBQXVCLENBQUMsU0FBb0I7UUFDMUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDO1lBQ3BDLE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBQVM7Z0JBQzNCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtnQkFDNUIsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7Z0JBQ2xDLGFBQWEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQ3JDLElBQUksQ0FBQywwQkFBMEIsQ0FDaEM7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7O09BR0c7SUFDSCwyQkFBMkIsQ0FBQyxVQUFzQjtRQUNoRCxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxpQkFBaUI7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQzs7WUFDeEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBdlVVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZWQzFEckMsaXNDQWdDQSw4K1NEdUJZLFlBQVksZ09BQUUsZUFBZSw0UUFBRSxrQkFBa0I7OzRGQUdoRCx3QkFBd0I7a0JBUnBDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBR3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsa0JBQWtCLENBQUMsaUJBQzdDLGlCQUFpQixDQUFDLElBQUk7NlBBUTVCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBNb2RhbENvbXBvbmVudCxcclxuICBQYWdpbmF0b3JDb25maWcsXHJcbiAgVGFibGVBY3Rpb25zLFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbixcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgRmVhdHVyZUluZm8sIFRlbmFudEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50cy5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgVGVuYW50c1JvdXRlc0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtcclxuICBUZW5hbnRTdGF0dXMsXHJcbiAgUGVybWlzc2lvblR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLFxyXG4gIFNvcnRPcmRlckJ5LFxyXG4gIEdldFRlbmFudHNQYXlsb2FkLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXZpZXctdGVuYW50LWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDcmVhdGVUZW5hbnRBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS12aWV3LXRlbmFudHMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBEYXRhVGFibGVDb21wb25lbnRdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3VGVuYW50c0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgdmlld1RlbmFudHNDb25zdGFudHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGVuYW50c1BhZ2VJbmZvOiB7XHJcbiAgICB0ZW5hbnRzVGl0bGU6IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgdGVuYW50c1RpdGxlOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwgPSAnJztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBJbnB1dCgpIHJvdXRlUGF0aHMhOiBUZW5hbnRzUm91dGVzQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgQElucHV0KCkgZGVmYXVsdFNvcnRlZENvbHVtbjogc3RyaW5nID0gVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lEO1xyXG4gIEBPdXRwdXQoKSBjcmVhdGVUZW5hbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHZpZXdUZW5hbnRzRGV0YWlsczogRXZlbnRFbWl0dGVyPFRlbmFudEluZm8+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8VGVuYW50SW5mbz4oKTtcclxuICB0YWJsZURhdGEhOiBUZW5hbnRJbmZvW107XHJcbiAgY29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIHRhYmxlQ29sdW1ucyA9IHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LnRhYmxlQ29sdW1ucztcclxuICBlbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5ID1cclxuICAgIHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnk7XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8ucGFnZVNpemVPcHRpb25zPy5bMF0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMudmlld1RlbmFudHNDb25zdGFudHMucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgdXNlclRlbmFudHNQZXJtaXNzaW9ucyE6IFRlbmFudHNQZXJtaXNzaW9uc1tdO1xyXG4gIHBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvblR5cGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZVRlbmFudFNjcmVlblRleHRzOiBhbnkgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlVGVuYW50O1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlOiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogeyBtYXRjaGVzOiBib29sZWFuIH0pID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgcGVybWlzc2lvbnMsIHJvdXRlciBjb25maWcgcGF0aCwgYmFzZSBBUEkgVVJMLCB0YWJsZSBjb2x1bW4gc2NoZW1hIGFuZCBnZXRzIHRoZSB0ZW5hbnRzIGxpc3QuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zID1cclxuICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlPy5maWx0ZXJQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZT8uc2V0QXBwQ29uZmlnKFxyXG4gICAgICB0aGlzLmFwaUJhc2VVUkwsXHJcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy50ZW5hbnRzUGFnZUluZm8gPSB7XHJcbiAgICAgIHRlbmFudHNUaXRsZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8udGVuYW50c1RpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucm91dGVQYXRocyA9IHRoaXMucm91dGVQYXRocyA/PyB0aGlzLmNvbnN0YW50cz8ucm91dGVDb25maWdQYXRoO1xyXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlPy5zZXRSb3V0ZVBhdGhzKHRoaXMucm91dGVQYXRocyk7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZVRhYmxlSW5mbygpO1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMF0uY29sdW1uRGVmO1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzb3J0ZWRCeTogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lELFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyBwZXJtaXNzaW9uIGJhc2VkIGFjY2VzcyBmb3IgcHJvdmlkZWQgZmVhdHVyZS5cclxuICAgKiBAcGFyYW0ge1Blcm1pc3Npb25UeXBlfSBwZXJtaXNzaW9uVHlwZVxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZS52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgcGVybWlzc2lvblR5cGUsXHJcbiAgICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJlcyB0YWJsZSBzY2hlbWEgdG8gZGlzcGxheSB0aGUgdGVuYW50cyBpbiB0YWJsZSB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBjb25maWd1cmVUYWJsZUluZm8oKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lELFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBJZCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTElOSyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmFwcElkfWAsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAyLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX1RJVExFLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBUaXRsZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5hcHBUaXRsZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiBWaWV3VGVuYW50c0NvbHVtblNjaGVtYURlZi5BUFBfREVTQ1JJUFRJT04sXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy50YWJsZUNvbHVtbnM/LmFwcERlc2NyaXB0aW9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50LmFwcERlc2NyaXB0aW9uID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuRkVBVFVSRVMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy50YWJsZUNvbHVtbnM/LmZlYXR1cmVzLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtcclxuICAgICAgICAgICAgZWxlbWVudD8uZmVhdHVyZXMgJiYgZWxlbWVudD8uZmVhdHVyZXM/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0RmVhdHVyZXNOYW1lKGVsZW1lbnQ/LmZlYXR1cmVzKVxyXG4gICAgICAgICAgICAgIDogdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5XHJcbiAgICAgICAgICB9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuU1RBVFVTLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5zdGF0dXMsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuc3RhdHVzID8gVGVuYW50U3RhdHVzLkFDVElWRSA6IFRlbmFudFN0YXR1cy5JTkFDVElWRX1gLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdCB0aGUgZmVhdHVyZXMgbmFtZSBpbiB0byBzaW5nbGUgc2VudGVuY2Ugd2l0aCBjb21tYSBzZXBhcmF0ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1hdEZlYXR1cmVzTmFtZShmZWF0dXJlczogRmVhdHVyZUluZm9bXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZmVhdHVyZXNcclxuICAgICAgLm1hcCgoZmVhdHVyZTogRmVhdHVyZUluZm8pID0+IHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXHJcbiAgICAgICAgcmV0dXJuIGZlYXR1cmUuZmVhdHVyZU5hbWU7XHJcbiAgICAgIH0pXHJcbiAgICAgID8uam9pbignLCAnKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hpbmcgZGV0YWlscyBvZiB0ZW5hbnRzIGFuZCBpbml0aWFsaXplIHRhYmxlIHZpZXdcclxuICAgKiBAcGFyYW0ge0dldFRlbmFudHNQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFRlbmFudHNBbmRJbml0aWFsaXplVGFibGVWaWV3KHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgICAgLmdldFRlbmFudHNMaXN0KHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlc3BvbnNlPy5ib2R5Py5hcHBEZXRhaWxzIGFzIFRlbmFudEluZm9bXTtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yQ29uZmlnLnRvdGFsUmVjb3JkcyA9IHJlc3BvbnNlPy5ib2R5XHJcbiAgICAgICAgICAgID8udG90YWxSZWNvcmRzIGFzIG51bWJlcjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yLCB0aGlzLmNvbnN0YW50cz8uZXJyb3JzKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGlhbG9nIG9wdGlvbnMgZm9yIGNyZWF0ZSB0ZW5hbnQgbW9kYWwgYW5kIGNhbGxzIG9wZW5Nb2RhbCBtZXRob2QuXHJcbiAgICogQHJldHVybiAtcmV0dXJucyBub3RoaW5nXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5DcmVhdGVUZW5hbnRGb3JtKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGluZzogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8uYWRkVGVuYW50LFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZVRlbmFudEFwcGxpY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtY3JlYXRlLXRlbmFudCcpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBtb2RhbCBjb21wb25lbnQgd2l0aCByZWNlaXZlZCBwYXJhbXMgYW5kIGhhbmRsZXMgZm9ybSBzdWJtaXNzaW9uIHN1Y2Nlc3MgYW5kIGVycm9ycy5cclxuICAgKiBAcGFyYW0geyp9IGRpYWxvZ09wdGlvbnNcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2NsYXNzTmFtZV1cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzLCBuby11bnVzZWQtdmFyc1xyXG4gIG9wZW5Nb2RhbChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBkaWFsb2dPcHRpb25zOiBhbnksXHJcbiAgICBjbGFzc05hbWU/OiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZSA/PyAnJztcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c/Lm9wZW4oTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGlhbG9nT3B0aW9ucyxcclxuICAgICAgd2lkdGg6ICcnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCBjbGFzc05hbWVdLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8uc3VibWl0Rm9ybVJlc3BvbnNlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSwgbm8tdW51c2VkLXZhcnNcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBjb25zdCBhcHBUaXRsZSA9XHJcbiAgICAgICAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UuZ2V0VGVuYW50QmFzaWNJbmZvPy5hcHBUaXRsZTtcclxuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2Uuc2hvd0FsZXJ0TWVzc2FnZShcclxuICAgICAgICAgIEFsZXJ0VHlwZT8uU1VDQ0VTUyxcclxuICAgICAgICAgIGAke2FwcFRpdGxlfSAke3RoaXMuY3JlYXRlVGVuYW50U2NyZWVuVGV4dHM/Lm1lc3NhZ2U/LnN1Y2Nlc3M/LnN1Ym1pc3Npb259YFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICAgICAgc29ydGVkQnk6IFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLkFQUF9JRCxcclxuICAgICAgICAgICAgc29ydGVkT3JkZXJCeTogdGhpcy5maWx0ZXJTb3J0ZWRPcmRlckJ5KFxyXG4gICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNvbXBvbmVudEluc3RhbmNlPy5mb3JtQ2FuY2VsXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTb3J0cyB0aGUgdGVuYW50cyBieSBhcHBsaWNhdGlvbiBpZCBvciB0aXRsZSBpbiBhc2NlbmRpbmcgb3IgZGVzY2VuZGluZy5cclxuICAgKiBAcGFyYW0ge1NvcnR9IHNvcnRcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Tb3J0VGVuYW50cyhzb3J0OiBTb3J0KTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4gPSBzb3J0LmFjdGl2ZTtcclxuICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPVxyXG4gICAgICBzb3J0LmRpcmVjdGlvbiA9PT0gVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLkFTQ0VORElORztcclxuICAgIGNvbnN0IHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgb2Zmc2V0OiAwLFxyXG4gICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgc29ydGVkQnk6IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBzb3J0ZWRPcmRlckJ5OiB0aGlzLmZpbHRlclNvcnRlZE9yZGVyQnkoXHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXHJcbiAgICAgICAgKSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdldFRlbmFudHNBbmRJbml0aWFsaXplVGFibGVWaWV3KHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuaW5nIHNvcnRpbmcgb3JkZXIgYWNjb3JkaW5nIHRvIGNvbHVtbiBkZWZpbml0aW9uXHJcbiAgICogQHBhcmFtIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXHJcbiAgICogQHJldHVybnMgU29ydE9yZGVyQnkuQVNDIHwgU29ydE9yZGVyQnkuREVTQ1xyXG4gICAqL1xyXG4gIGZpbHRlclNvcnRlZE9yZGVyQnkoZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb246IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID8gU29ydE9yZGVyQnkuQVNDIDogU29ydE9yZGVyQnkuREVTQztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSB0aGUgcmVjb3JkcyBhY2NvcmRpbmcgdG8gcGFnaW5hdGlvblxyXG4gICAqICBAcGFyYW0ge3tcclxuICAgKiAgICAgcGFnZU9mZnNldDogbnVtYmVyO1xyXG4gICAqICAgICBwYWdlTGltaXQ6IG51bWJlcjtcclxuICAgKiAgIH19IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvblRhYmxlUGFnaW5hdGlvbkNoYW5nZShwYWdlRXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBvZmZzZXQ6IHBhZ2VFdmVudC5wYWdlSW5kZXgsXHJcbiAgICAgICAgcGFnZVNpemU6IHBhZ2VFdmVudC5wYWdlU2l6ZSxcclxuICAgICAgICBzb3J0ZWRCeTogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5hdmlnYXRlcyB0byB2aWV3IHRlbmFudHMgZGV0YWlsIGNvbXBvbmVudFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvVmlld1RlbmFudERldGFpbHModGVuYW50SW5mbzogVGVuYW50SW5mbyk6IHZvaWQge1xyXG4gICAgaWYgKHRlbmFudEluZm8pIHtcclxuICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLnNldFNlbGVjdGVkVGVuYW50SW5mb3JtYXRpb24odGVuYW50SW5mbyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yb3V0ZVBhdGhzPy52aWV3VGVuYW50RGV0YWlscylcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucm91dGVQYXRocz8udmlld1RlbmFudERldGFpbHNdKTtcclxuICAgIGVsc2UgdGhpcy52aWV3VGVuYW50c0RldGFpbHMuZW1pdCh0ZW5hbnRJbmZvKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50cy1saXN0XCJcclxuICBbbmdDbGFzc109XCJ7ICdpZWVlc2Etdmlldy10ZW5hbnRzLWxpc3RfX21vYmlsZSc6IGlzTW9iaWxlVmlldyB9XCJcclxuPlxyXG4gIDxwIGNsYXNzPVwiaWVlZXNhLWhlYWRsaW5lLWxnLTMyIHB5LTMgbWItMFwiPlxyXG4gICAge3sgdGVuYW50c1BhZ2VJbmZvLnRlbmFudHNUaXRsZSB9fVxyXG4gIDwvcD5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLXZpZXctdGVuYW50cy1saXN0X19jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cIm1hdC10ZXJ0aWFyeS1idXR0b24gbWUtM1wiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3VGVuYW50c0NvbnN0YW50cz8uYXJpYUxhYmVsPy5hZGRcIlxyXG4gICAgICAgIChjbGljayk9XCJvcGVuQ3JlYXRlVGVuYW50Rm9ybSgpXCJcclxuICAgICAgICAqbmdJZj1cInZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlLk1BTkFHRV9URU5BTlQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHZpZXdUZW5hbnRzQ29uc3RhbnRzPy5hZGRUZW5hbnQgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpZWVlc2EtZGF0YS10YWJsZVxyXG4gICAgICBbdGFibGVEYXRhSW5mb109XCJ0YWJsZURhdGFcIlxyXG4gICAgICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gICAgICBbaXNDZWxsVGV4dE92ZXJmbG93RWxsaXBzaXNdPVwidHJ1ZVwiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICAgICAgW3BhZ2luYXRvckNvbmZpZ109XCJwYWdpbmF0b3JDb25maWdcIlxyXG4gICAgICBbZGVmYXVsdFNvcnRlZENvbHVtbl09XCJkZWZhdWx0U29ydGVkQ29sdW1uXCJcclxuICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0VGVuYW50cygkZXZlbnQpXCJcclxuICAgICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25UYWJsZVBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChyb3dMaW5rKT1cIm5hdmlnYXRlVG9WaWV3VGVuYW50RGV0YWlscygkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1kYXRhLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUlkLHdCQUF3QixFQUN4QixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLFNBQVMsRUFHVCxTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLG9DQUFvQyxDQUFDO0FBSzVDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsV0FBVyxHQUVaLE1BQU0seURBQXlELENBQUM7QUFFakUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFHcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlD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QUFDLGlCQUM3QyxpQkFBaUIsQ0FBQyxJQUFJOzZQQVE1QixlQUFlO3NCQUF2QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgUGFnaW5hdG9yQ29uZmlnLFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHtcclxuICBBbGVydFR5cGUsXHJcbiAgQWxlcnRzU2VydmljZSxcclxuICBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gIE1vZGFsVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgVGVuYW50c1JvdXRlc0NvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHtcclxuICBUZW5hbnRTdGF0dXMsXHJcbiAgUGVybWlzc2lvblR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFZpZXdUZW5hbnRzQ29sdW1uU2NoZW1hRGVmLFxyXG4gIFNvcnRPcmRlckJ5LFxyXG4gIEdldFRlbmFudHNQYXlsb2FkLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXZpZXctdGVuYW50LWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDcmVhdGVUZW5hbnRBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZW5hbnRCYXNpY0luZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmVhdHVyZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRGdW5jdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS12aWV3LXRlbmFudHMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBEYXRhVGFibGVDb21wb25lbnRdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3VGVuYW50c0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgdmlld1RlbmFudHNDb25zdGFudHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGVuYW50c1BhZ2VJbmZvOiB7XHJcbiAgICB0ZW5hbnRzVGl0bGU6IHN0cmluZztcclxuICB9ID0ge1xyXG4gICAgdGVuYW50c1RpdGxlOiAnJyxcclxuICB9O1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVUkwgPSAnJztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBJbnB1dCgpIHJvdXRlUGF0aHMhOiBUZW5hbnRzUm91dGVzQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgQElucHV0KCkgZGVmYXVsdFNvcnRlZENvbHVtbjogc3RyaW5nID0gVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lEO1xyXG4gIEBPdXRwdXQoKSBjcmVhdGVUZW5hbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHZpZXdUZW5hbnRzRGV0YWlsczogRXZlbnRFbWl0dGVyPFRlbmFudEJhc2ljSW5mbz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxUZW5hbnRCYXNpY0luZm8+KCk7XHJcbiAgdGFibGVEYXRhITogVGVuYW50QmFzaWNJbmZvW107XHJcbiAgY29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICB9O1xyXG4gIHRhYmxlQ29sdW1ucyA9IHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LnRhYmxlQ29sdW1ucztcclxuICBlbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5ID1cclxuICAgIHRoaXMudmlld1RlbmFudHNDb25zdGFudHM/LmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnk7XHJcbiAgcGFnaW5hdG9yQ29uZmlnOiBQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICByZWNvcmRzUGVyUGFnZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8ucGFnZVNpemVPcHRpb25zPy5bMF0sXHJcbiAgICBwYWdlU2l6ZU9wdGlvbnM6IHRoaXMudmlld1RlbmFudHNDb25zdGFudHMucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgdXNlclRlbmFudHNQZXJtaXNzaW9ucyE6IFRlbmFudHNQZXJtaXNzaW9uc1tdO1xyXG4gIHBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvblR5cGU7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNyZWF0ZVRlbmFudFNjcmVlblRleHRzOiBhbnkgPSB0aGlzLmNvbnN0YW50cz8uY3JlYXRlVGVuYW50O1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlOiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogeyBtYXRjaGVzOiBib29sZWFuIH0pID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgcGVybWlzc2lvbnMsIHJvdXRlciBjb25maWcgcGF0aCwgYmFzZSBBUEkgVVJMLCB0YWJsZSBjb2x1bW4gc2NoZW1hIGFuZCBnZXRzIHRoZSB0ZW5hbnRzIGxpc3QuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zID1cclxuICAgICAgdGhpcy50ZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlPy5maWx0ZXJQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZT8uc2V0QXBwQ29uZmlnKFxyXG4gICAgICB0aGlzLmFwaUJhc2VVUkwsXHJcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy50ZW5hbnRzUGFnZUluZm8gPSB7XHJcbiAgICAgIHRlbmFudHNUaXRsZTogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8udGVuYW50c1RpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucm91dGVQYXRocyA9IHRoaXMucm91dGVQYXRocyA/PyB0aGlzLmNvbnN0YW50cz8ucm91dGVDb25maWdQYXRoO1xyXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlPy5zZXRSb3V0ZVBhdGhzKHRoaXMucm91dGVQYXRocyk7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZVRhYmxlSW5mbygpO1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gdGhpcy5jb2x1bW5TY2hlbWFbMF0uY29sdW1uRGVmO1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzb3J0ZWRCeTogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lELFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyBwZXJtaXNzaW9uIGJhc2VkIGFjY2VzcyBmb3IgcHJvdmlkZWQgZmVhdHVyZS5cclxuICAgKiBAcGFyYW0ge1Blcm1pc3Npb25UeXBlfSBwZXJtaXNzaW9uVHlwZVxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzKHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50QXBwbGljYXRpb25zU2VydmljZS52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgcGVybWlzc2lvblR5cGUsXHJcbiAgICAgIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJlcyB0YWJsZSBzY2hlbWEgdG8gZGlzcGxheSB0aGUgdGVuYW50cyBpbiB0YWJsZSB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBjb25maWd1cmVUYWJsZUluZm8oKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX0lELFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBJZCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTElOSyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmFwcElkfWAsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAyLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuQVBQX1RJVExFLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5hcHBUaXRsZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5hcHBUaXRsZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiBWaWV3VGVuYW50c0NvbHVtblNjaGVtYURlZi5BUFBfREVTQ1JJUFRJT04sXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy50YWJsZUNvbHVtbnM/LmFwcERlc2NyaXB0aW9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50LmFwcERlc2NyaXB0aW9uID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuRkVBVFVSRVMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy50YWJsZUNvbHVtbnM/LmZlYXR1cmVzLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtcclxuICAgICAgICAgICAgZWxlbWVudD8uZmVhdHVyZXMgJiYgZWxlbWVudD8uZmVhdHVyZXM/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0RmVhdHVyZXNOYW1lKGVsZW1lbnQ/LmZlYXR1cmVzKVxyXG4gICAgICAgICAgICAgIDogdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5XHJcbiAgICAgICAgICB9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVmlld1RlbmFudHNDb2x1bW5TY2hlbWFEZWYuU1RBVFVTLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMudGFibGVDb2x1bW5zPy5zdGF0dXMsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuc3RhdHVzID8gVGVuYW50U3RhdHVzLkFDVElWRSA6IFRlbmFudFN0YXR1cy5JTkFDVElWRX1gLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdCB0aGUgZmVhdHVyZXMgbmFtZSBpbiB0byBzaW5nbGUgc2VudGVuY2Ugd2l0aCBjb21tYSBzZXBhcmF0ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1hdEZlYXR1cmVzTmFtZShmZWF0dXJlczogRmVhdHVyZXNbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZmVhdHVyZXNcclxuICAgICAgLm1hcCgoZmVhdHVyZTogRmVhdHVyZXMpID0+IHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXHJcbiAgICAgICAgcmV0dXJuIGZlYXR1cmUuZmVhdHVyZU5hbWU7XHJcbiAgICAgIH0pXHJcbiAgICAgID8uam9pbignLCAnKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmV0Y2hpbmcgZGV0YWlscyBvZiB0ZW5hbnRzIGFuZCBpbml0aWFsaXplIHRhYmxlIHZpZXdcclxuICAgKiBAcGFyYW0ge0dldFRlbmFudHNQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFRlbmFudHNBbmRJbml0aWFsaXplVGFibGVWaWV3KHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgICAgLmdldFRlbmFudHNMaXN0KHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlc3BvbnNlPy5ib2R5Py5hcHBEZXRhaWxzIGFzIFRlbmFudEJhc2ljSW5mb1tdO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcudG90YWxSZWNvcmRzID0gcmVzcG9uc2U/LmJvZHlcclxuICAgICAgICAgICAgPy50b3RhbFJlY29yZHMgYXMgbnVtYmVyO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IsIHRoaXMuY29uc3RhbnRzPy5lcnJvcnMpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkaWFsb2cgb3B0aW9ucyBmb3IgY3JlYXRlIHRlbmFudCBtb2RhbCBhbmQgY2FsbHMgb3Blbk1vZGFsIG1ldGhvZC5cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlbkNyZWF0ZVRlbmFudEZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2Uuc2V0VGVuYW50RnVuY3Rpb25UeXBlKFxyXG4gICAgICBUZW5hbnRGdW5jdGlvblR5cGUuQ1JFQVRFXHJcbiAgICApO1xyXG4gICAgY29uc3QgZGlhbG9nT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGluZzogdGhpcy52aWV3VGVuYW50c0NvbnN0YW50cz8uYWRkVGVuYW50LFxyXG4gICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICBjb21wb25lbnRSZWZlcmVuY2U6IENyZWF0ZVRlbmFudEFwcGxpY2F0aW9uQ29tcG9uZW50LFxyXG4gICAgICBtb2RhbFR5cGU6IE1vZGFsVHlwZS5GT1JNLFxyXG4gICAgfTtcclxuICAgIHRoaXMub3Blbk1vZGFsKGRpYWxvZ09wdGlvbnMsICdpZWVlc2EtY3JlYXRlLXRlbmFudCcpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPcGVucyBtb2RhbCBjb21wb25lbnQgd2l0aCByZWNlaXZlZCBwYXJhbXMgYW5kIGhhbmRsZXMgZm9ybSBzdWJtaXNzaW9uIHN1Y2Nlc3MgYW5kIGVycm9ycy5cclxuICAgKiBAcGFyYW0geyp9IGRpYWxvZ09wdGlvbnNcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2NsYXNzTmFtZV1cclxuICAgKiBAcmV0dXJuIC1yZXR1cm5zIG5vdGhpbmdcclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudHNMaXN0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnksIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbmZlcnJhYmxlLXR5cGVzLCBuby11bnVzZWQtdmFyc1xyXG4gIG9wZW5Nb2RhbChcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBkaWFsb2dPcHRpb25zOiBhbnksXHJcbiAgICBjbGFzc05hbWU/OiBzdHJpbmdcclxuICApOiB2b2lkIHtcclxuICAgIGNsYXNzTmFtZSA9IGNsYXNzTmFtZSA/PyAnJztcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c/Lm9wZW4oTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGlhbG9nT3B0aW9ucyxcclxuICAgICAgd2lkdGg6ICcnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCBjbGFzc05hbWVdLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8uc3VibWl0Rm9ybVJlc3BvbnNlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSwgbm8tdW51c2VkLXZhcnNcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcclxuICAgICAgICBjb25zdCBhcHBUaXRsZSA9XHJcbiAgICAgICAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UuZ2V0TmV3VGVuYW50SW5mbz8uYXBwVGl0bGU7XHJcbiAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNob3dBbGVydE1lc3NhZ2UoXHJcbiAgICAgICAgICBBbGVydFR5cGU/LlNVQ0NFU1MsXHJcbiAgICAgICAgICBgJHthcHBUaXRsZX0gJHt0aGlzLmNyZWF0ZVRlbmFudFNjcmVlblRleHRzPy5tZXNzYWdlPy5zdWNjZXNzPy5zdWJtaXNzaW9ufWBcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZ2V0VGVuYW50c0FuZEluaXRpYWxpemVUYWJsZVZpZXcoe1xyXG4gICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgICAgIHNvcnRlZEJ5OiBWaWV3VGVuYW50c0NvbHVtblNjaGVtYURlZi5BUFBfSUQsXHJcbiAgICAgICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jb21wb25lbnRJbnN0YW5jZT8uZm9ybUNhbmNlbFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU29ydHMgdGhlIHRlbmFudHMgYnkgYXBwbGljYXRpb24gaWQgb3IgdGl0bGUgaW4gYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcuXHJcbiAgICogQHBhcmFtIHtTb3J0fSBzb3J0XHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU29ydFRlbmFudHMoc29ydDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uID0gc29ydC5hY3RpdmU7XHJcbiAgICB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uID1cclxuICAgICAgc29ydC5kaXJlY3Rpb24gPT09IFRhYmxlQ29sdW1uU29ydERpcmVjdGlvbi5BU0NFTkRJTkc7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBHZXRUZW5hbnRzUGF5bG9hZCA9IHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNvcnRlZEJ5OiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgc29ydGVkT3JkZXJCeTogdGhpcy5maWx0ZXJTb3J0ZWRPcmRlckJ5KFxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvblxyXG4gICAgICAgICksXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyhwYXlsb2FkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybmluZyBzb3J0aW5nIG9yZGVyIGFjY29yZGluZyB0byBjb2x1bW4gZGVmaW5pdGlvbi5cclxuICAgKiBAcGFyYW0gZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgKiBAcmV0dXJucyBTb3J0T3JkZXJCeS5BU0MgfCBTb3J0T3JkZXJCeS5ERVNDXHJcbiAgICovXHJcbiAgZmlsdGVyU29ydGVkT3JkZXJCeShkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbjogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPyBTb3J0T3JkZXJCeS5BU0MgOiBTb3J0T3JkZXJCeS5ERVNDO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHRoZSByZWNvcmRzIGFjY29yZGluZyB0byBwYWdpbmF0aW9uLlxyXG4gICAqICBAcGFyYW0ge3tcclxuICAgKiAgICAgcGFnZU9mZnNldDogbnVtYmVyO1xyXG4gICAqICAgICBwYWdlTGltaXQ6IG51bWJlcjtcclxuICAgKiAgIH19IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBvblRhYmxlUGFnaW5hdGlvbkNoYW5nZShwYWdlRXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRUZW5hbnRzQW5kSW5pdGlhbGl6ZVRhYmxlVmlldyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBvZmZzZXQ6IHBhZ2VFdmVudC5wYWdlSW5kZXgsXHJcbiAgICAgICAgcGFnZVNpemU6IHBhZ2VFdmVudC5wYWdlU2l6ZSxcclxuICAgICAgICBzb3J0ZWRCeTogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuZmlsdGVyU29ydGVkT3JkZXJCeShcclxuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb25cclxuICAgICAgICApLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5hdmlnYXRlcyB0byB2aWV3IHRlbmFudHMgZGV0YWlsIGNvbXBvbmVudC5cclxuICAgKiBAcGFyYW0ge3t0ZW5hbnRJbmZvOiBUZW5hbnRCYXNpY0luZm99fVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50c0xpc3RDb21wb25lbnRcclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvVmlld1RlbmFudERldGFpbHModGVuYW50SW5mbzogVGVuYW50QmFzaWNJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAodGVuYW50SW5mbykge1xyXG4gICAgICB0aGlzLnRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2Uuc2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbih0ZW5hbnRJbmZvKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJvdXRlUGF0aHM/LnZpZXdUZW5hbnREZXRhaWxzKVxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5yb3V0ZVBhdGhzPy52aWV3VGVuYW50RGV0YWlsc10pO1xyXG4gICAgZWxzZSB0aGlzLnZpZXdUZW5hbnRzRGV0YWlscy5lbWl0KHRlbmFudEluZm8pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRzTGlzdENvbXBvbmVudFxyXG4gICAqIEByZXR1cm4gLXJldHVybnMgbm90aGluZ1xyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2Etdmlldy10ZW5hbnRzLWxpc3RcIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ2llZWVzYS12aWV3LXRlbmFudHMtbGlzdF9fbW9iaWxlJzogaXNNb2JpbGVWaWV3IH1cIlxyXG4+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2EtaGVhZGxpbmUtbGctMzIgcHktMyBtYi0wXCI+XHJcbiAgICB7eyB0ZW5hbnRzUGFnZUluZm8udGVuYW50c1RpdGxlIH19XHJcbiAgPC9wPlxyXG4gIDxkaXYgY2xhc3M9XCJpZWVlc2Etdmlldy10ZW5hbnRzLWxpc3RfX2NvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvbiBtZS0zXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInZpZXdUZW5hbnRzQ29uc3RhbnRzPy5hcmlhTGFiZWw/LmFkZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5DcmVhdGVUZW5hbnRGb3JtKClcIlxyXG4gICAgICAgICpuZ0lmPVwidmFsaWRhdGVBY2Nlc3MocGVybWlzc2lvblR5cGUuTUFOQUdFX1RFTkFOVClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdmlld1RlbmFudHNDb25zdGFudHM/LmFkZFRlbmFudCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAgIFt0YWJsZURhdGFJbmZvXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICAgIFtpc0NlbGxUZXh0T3ZlcmZsb3dFbGxpcHNpc109XCJ0cnVlXCJcclxuICAgICAgW3RhYmxlQWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxyXG4gICAgICBbcGFnaW5hdG9yQ29uZmlnXT1cInBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICAgIFtkZWZhdWx0U29ydGVkQ29sdW1uXT1cImRlZmF1bHRTb3J0ZWRDb2x1bW5cIlxyXG4gICAgICAoc29ydENoYW5nZSk9XCJvblNvcnRUZW5hbnRzKCRldmVudClcIlxyXG4gICAgICAocGFnaW5hdGlvbkNoYW5nZSk9XCJvblRhYmxlUGFnaW5hdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgKHJvd0xpbmspPVwibmF2aWdhdGVUb1ZpZXdUZW5hbnREZXRhaWxzKCRldmVudClcIlxyXG4gICAgPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ /* eslint-disable no-unused-vars */
2
+ export var TenantFunctionType;
3
+ (function (TenantFunctionType) {
4
+ TenantFunctionType["CREATE"] = "CREATE";
5
+ TenantFunctionType["EDIT"] = "EDIT";
6
+ })(TenantFunctionType || (TenantFunctionType = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW5hbnRzL3NyYy9saWIvbW9kZWxzL3RlbmFudC1mdW5jdGlvbi10eXBlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxNQUFNLENBQU4sSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzVCLHVDQUFpQixDQUFBO0lBQ2pCLG1DQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXHJcbmV4cG9ydCBlbnVtIFRlbmFudEZ1bmN0aW9uVHlwZSB7XHJcbiAgQ1JFQVRFID0gJ0NSRUFURScsXHJcbiAgRURJVCA9ICdFRElUJyxcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy90ZW5hbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVJZCB9IGZyb20gJy4vZmVhdHVyZXMubW9kZWwnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudEJhc2ljSW5mbyB7XHJcbiAgYXBwSWQ6IHN0cmluZztcclxuICBhcHBUaXRsZTogc3RyaW5nO1xyXG4gIGFwcExvZ286IHN0cmluZztcclxuICBhcHBIZWFkaW5nOiBzdHJpbmc7XHJcbiAgYXBwRGVzY3JpcHRpb246IHN0cmluZztcclxuICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcclxuICBhcHBIZWxwTGluazogc3RyaW5nO1xyXG4gIGFwcFR5cGU6IHN0cmluZztcclxuICBhcHBEb21haW5Vcmw6IHN0cmluZztcclxuICBmZWF0dXJlczogRmVhdHVyZUlkW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCB7XHJcbiAgcGF5bG9hZDogVGVuYW50QmFzaWNJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50UmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHN0cmluZyB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL21vZGVscy90ZW5hbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVJZCwgRmVhdHVyZXMgfSBmcm9tICcuL2ZlYXR1cmVzLm1vZGVsJztcclxuZXhwb3J0IGludGVyZmFjZSBUZW5hbnRJbmZvIHtcclxuICBhcHBJZDogc3RyaW5nO1xyXG4gIGFwcFRpdGxlOiBzdHJpbmc7XHJcbiAgYXBwTG9nbz86IHN0cmluZztcclxuICBhcHBIZWFkaW5nOiBzdHJpbmc7XHJcbiAgYXBwRGVzY3JpcHRpb246IHN0cmluZztcclxuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgYXBwSGVscExpbms/OiBzdHJpbmc7XHJcbiAgYXBwVHlwZT86IHN0cmluZztcclxuICBhcHBEb21haW5Vcmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmV3VGVuYW50SW5mbyBleHRlbmRzIFRlbmFudEluZm8ge1xyXG4gIGZlYXR1cmVzOiBGZWF0dXJlSWRbXSB8IEZlYXR1cmVzW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGVuYW50QmFzaWNJbmZvIGV4dGVuZHMgVGVuYW50SW5mbyB7XHJcbiAgc3RhdHVzPzogYm9vbGVhbjtcclxuICBmZWF0dXJlczogRmVhdHVyZXNbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVRlbmFudFJlcXVlc3RQYXlsb2FkIHtcclxuICBwYXlsb2FkOiBOZXdUZW5hbnRJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50UmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHN0cmluZyB8IG51bGwgfCB7IGVycm9yQ29kZXM6IHN0cmluZ1tdIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHZXRUZW5hbnRzUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IHtcclxuICAgIHRvdGFsUmVjb3JkczogbnVtYmVyO1xyXG4gICAgYXBwRGV0YWlsczogVGVuYW50QmFzaWNJbmZvW10gfCBudWxsIHwgeyBlcnJvckNvZGVzOiBzdHJpbmdbXSB9O1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUZW5hbnREZXRhaWxzUmVzcG9uc2Uge1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgYm9keT86IFRlbmFudEJhc2ljSW5mbyB8IHsgZXJyb3JDb2Rlczogc3RyaW5nW10gfTtcclxufVxyXG4iXX0=
@@ -17,10 +17,12 @@ export class TenantApplicationsService {
17
17
  this.httpService = httpService;
18
18
  this.tenantPermissionsService = tenantPermissionsService;
19
19
  this.tenantPermissionsMapService = tenantPermissionsMapService;
20
- this.tenantsText = screenTexts?.errors;
20
+ this.tenantsText = screenTexts?.viewTenants?.errors;
21
21
  this.createTenantsText = screenTexts?.createTenant?.errors;
22
22
  this.radioOptions = [];
23
23
  this.checkBoxOptions = [];
24
+ this.appTypeInfo = [];
25
+ this.featureList = [];
24
26
  }
25
27
  setAppConfig(apiBaseUrl, userPermission) {
26
28
  this.apiBaseUrl = apiBaseUrl;
@@ -59,7 +61,7 @@ export class TenantApplicationsService {
59
61
  }
60
62
  /**
61
63
  * Sets the user tenants information
62
- * @param {TenantInfo} tenantInfo
64
+ * @param {TenantBasicInfo} tenantInfo
63
65
  * @memberof TenantApplicationsService
64
66
  */
65
67
  setSelectedTenantInformation(tenantInfo) {
@@ -67,12 +69,28 @@ export class TenantApplicationsService {
67
69
  }
68
70
  /**
69
71
  * Returns the tenants information
70
- * @return {TenantInfo}
72
+ * @return {TenantBasicInfo}
71
73
  * @memberof TenantApplicationsService
72
74
  */
73
75
  getSelectedTenantInformation() {
74
76
  return this.selectedTenantInfo;
75
77
  }
78
+ /**
79
+ * Sets the list of application type information
80
+ * @param {RadioOption} appTypeInfo
81
+ * @memberof TenantApplicationsService
82
+ */
83
+ setApplicationType(appTypeInfo) {
84
+ this.appTypeInfo = appTypeInfo;
85
+ }
86
+ /**
87
+ * Returns the list of application type information
88
+ * @return {RadioOption}
89
+ * @memberof TenantApplicationsService
90
+ */
91
+ getApplicationType() {
92
+ return this.appTypeInfo;
93
+ }
76
94
  /**
77
95
  * Filter permissions
78
96
  * @param usersPermissions
@@ -126,7 +144,9 @@ export class TenantApplicationsService {
126
144
  * @memberof TenantApplicationsService
127
145
  */
128
146
  getRoles(appId) {
129
- return this.httpService.getData(`${this.apiBaseUrl}/groups/getRole/${appId}`).pipe(map((response) => {
147
+ return this.httpService
148
+ .getData(`${this.apiBaseUrl}/groups/getRole/${appId}`)
149
+ .pipe(map((response) => {
130
150
  return response;
131
151
  }), catchError((error) => {
132
152
  throw error;
@@ -140,7 +160,9 @@ export class TenantApplicationsService {
140
160
  * @memberof TenantApplicationsService
141
161
  */
142
162
  getRolesAndPermissionsMappings(appId, payload) {
143
- return this.httpService.postData(`${this.apiBaseUrl}/groups/getRoleBasedPermission/${appId}`, payload).pipe(map((response) => {
163
+ return this.httpService
164
+ .postData(`${this.apiBaseUrl}/groups/getRoleBasedPermission/${appId}`, payload)
165
+ .pipe(map((response) => {
144
166
  return response;
145
167
  }), catchError((error) => {
146
168
  throw error;
@@ -224,17 +246,46 @@ export class TenantApplicationsService {
224
246
  return featureIds;
225
247
  }
226
248
  /**
227
- * Sets the tenant basic information.
228
- * @param {CreateTenantRequestPayload} createTenantPayload
249
+ * Sets the newly created tenant information.
250
+ * @param {NewTenantInfo} newTenantInfo
251
+ */
252
+ setNewTenantInfo(newTenantInfo) {
253
+ this.newTenantInfo = newTenantInfo;
254
+ }
255
+ /**
256
+ * Returns the newly created tenant information.
257
+ */
258
+ get getNewTenantInfo() {
259
+ return this.newTenantInfo;
260
+ }
261
+ /**
262
+ * Sets tenant function type.
263
+ * @param {TenantFunctionType} tenantFunctionType -tenant function type.
229
264
  */
230
- setTenantBasicInfo(createTenantPayload) {
231
- this.tenantBasicInfo = createTenantPayload?.payload;
265
+ setTenantFunctionType(tenantFunctionType) {
266
+ this.tenantFunctionType = tenantFunctionType;
232
267
  }
233
268
  /**
234
- * Returns the tenant basic information.
269
+ * Returns tenant function type.
270
+ * @return {TenantFunctionType} -tenant function type.
235
271
  */
236
- get getTenantBasicInfo() {
237
- return this.tenantBasicInfo;
272
+ getTenantFunctionType() {
273
+ return this.tenantFunctionType;
274
+ }
275
+ /**
276
+ * Posts the edited tenant application form data to server using HttpService for updating the tenant information.
277
+ * @param {CreateTenantPayload} editTenantPayload
278
+ * @return {Observable<CreateTenantResponse>}
279
+ * @memberof TenantApplicationsService
280
+ */
281
+ editTenant(editTenantPayload) {
282
+ return this.httpService
283
+ .putData(`${this.apiBaseUrl}/configurations/app/editTenant`, editTenantPayload)
284
+ .pipe(map((response) => {
285
+ return response;
286
+ }), catchError((error) => {
287
+ throw error;
288
+ }));
238
289
  }
239
290
  /**
240
291
  * Sends update request to the server to update the tenant application status to active/inactive using HttpService and returns the success or failure response.
@@ -251,6 +302,24 @@ export class TenantApplicationsService {
251
302
  throw error;
252
303
  }));
253
304
  }
305
+ /**
306
+ * It generates Feature list from checkbox options generated in form array.
307
+ * @param {CheckboxOption[]} features
308
+ * @return {Features[]}
309
+ * @memberof TenantApplicationsService
310
+ */
311
+ getFeaturesList(features) {
312
+ this.featureList = [];
313
+ features?.forEach((feature) => {
314
+ if (feature.checked)
315
+ this.featureList?.push({
316
+ featureId: feature?.id,
317
+ featureName: feature?.name,
318
+ isDefault: feature?.checked,
319
+ });
320
+ });
321
+ return this.featureList;
322
+ }
254
323
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, deps: [{ token: i1.HttpService }, { token: i2.TenantPermissionsService }, { token: i3.TenantPermissionsMapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
255
324
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantApplicationsService, providedIn: 'root' }); }
256
325
  }
@@ -260,4 +329,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
260
329
  providedIn: 'root',
261
330
  }]
262
331
  }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.TenantPermissionsService }, { type: i3.TenantPermissionsMapService }]; } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBcUN4RCxNQUFNLE9BQU8seUJBQXlCO0lBV3BDO0lBQ0UsMENBQTBDO0lBQ2xDLFdBQXdCO0lBQ2hDLDBDQUEwQztJQUNsQyx3QkFBa0Q7SUFDMUQsMENBQTBDO0lBQ2xDLDJCQUF3RCxDQUFDLDZDQUE2Qzs7UUFKdEcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFeEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUVsRCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBaEJsRSxnQkFBVyxHQUFHLFdBQVcsRUFBRSxNQUFNLENBQUM7UUFNbEMsc0JBQWlCLEdBQUcsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUM7UUFFdEQsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztJQVFwQyxDQUFDO0lBQ0osWUFBWSxDQUFDLFVBQWtCLEVBQUUsY0FBZ0M7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLCtCQUEr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ZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUNoQix5QkFBMkQ7UUFFM0QsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSxrQ0FBa0MsRUFDcEQseUJBQXlCLENBQzFCO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0F0U1UseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7XHJcbiAgR2V0VGVuYW50c1Jlc3BvbnNlLFxyXG4gIFRlbmFudEluZm8sXHJcbiAgVGVuYW50RGV0YWlsc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4uL21vZGVscy90ZW5hbnRzLm1vZGVsJztcclxuaW1wb3J0IHsgR2V0VGVuYW50c1BheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uLXNjaGVtYS12aWV3LXRlbmFudC1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBUZW5hbnRzUGVybWlzc2lvbnMsXHJcbiAgVXNlclBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudHMtcGVybWlzc2lvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25UeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZSB9IGZyb20gJy4vdGVuYW50LXBlcm1pc3Npb25zLW1hcC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCxcclxuICBDcmVhdGVUZW5hbnRSZXNwb25zZSxcclxuICBUZW5hbnRCYXNpY0luZm8sXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3RlbmFudC5tb2RlbCc7XHJcbmltcG9ydCB7IENoZWNrYm94T3B0aW9uLCBSYWRpb09wdGlvbiB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7XHJcbiAgRmVhdHVyZUlkLFxyXG4gIEZlYXR1cmVzLFxyXG4gIEdldEZlYXR1cmVzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2ZlYXR1cmVzLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBBcHBUeXBlQ29uZmlnLFxyXG4gIEdldEFwcFR5cGVzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2FwcC10eXBlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRlbmFudFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4vdGVuYW50LXBlcm1pc3Npb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZXRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZCwgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlLCBHZXRSb2xlc1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL3JvbGVzLWFuZC1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVXBkYXRlVGVuYW50U3RhdHVzUmVxdWVzdFBheWxvYWQsXHJcbiAgVXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2VcclxufSBmcm9tICcuLi9tb2RlbHMvdXBkYXRlLXRlbmFudC1zdGF0dXMubW9kZWwnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB7XHJcbiAgdGVuYW50c1RleHQgPSBzY3JlZW5UZXh0cz8uZXJyb3JzO1xyXG4gIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgdXNlclBlcm1pc3Npb24hOiBVc2VyUGVybWlzc2lvbltdO1xyXG4gIHNlbGVjdGVkVGVuYW50SW5mbyE6IFRlbmFudEluZm8gfCB1bmRlZmluZWQ7XHJcbiAgdXNlclRlbmFudHNQZXJtaXNzaW9ucyE6IFRlbmFudHNQZXJtaXNzaW9uc1tdO1xyXG4gIHRlbmFudHNJbmZvITogVGVuYW50SW5mbztcclxuICBjcmVhdGVUZW5hbnRzVGV4dCA9IHNjcmVlblRleHRzPy5jcmVhdGVUZW5hbnQ/LmVycm9ycztcclxuICB0ZW5hbnRCYXNpY0luZm8hOiBUZW5hbnRCYXNpY0luZm87XHJcbiAgcmFkaW9PcHRpb25zOiBSYWRpb09wdGlvbltdID0gW107XHJcbiAgY2hlY2tCb3hPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHRlbmFudFBlcm1pc3Npb25zU2VydmljZTogVGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZTogVGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuICBzZXRBcHBDb25maWcoYXBpQmFzZVVybDogc3RyaW5nLCB1c2VyUGVybWlzc2lvbjogVXNlclBlcm1pc3Npb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcclxuICAgIHRoaXMudXNlclBlcm1pc3Npb24gPSB1c2VyUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGVuYW50IGRldGFpbHMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2VcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFRlbmFudERldGFpbHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRUZW5hbnREZXRhaWxzKGFwcElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbmFudERldGFpbHNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvZGV0YWlscy8ke2FwcElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdXNlciB0ZW5hbnRzIHBlcm1pc3Npb25zXHJcbiAgICogQHBhcmFtIHtUZW5hbnRzUGVybWlzc2lvbnNbXX0gVGVuYW50c1Blcm1pc3Npb25zXHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBzZXRVc2VyVGVuYW50c1Blcm1pc3Npb25zKHVzZXJUZW5hbnRzUGVybWlzc2lvbnM6IFRlbmFudHNQZXJtaXNzaW9uc1tdKSB7XHJcbiAgICB0aGlzLnVzZXJUZW5hbnRzUGVybWlzc2lvbnMgPSB1c2VyVGVuYW50c1Blcm1pc3Npb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB1c2VyIHRlbmFudHMgcGVybWlzc2lvbnNcclxuICAgKiBAcmV0dXJuIHtUZW5hbnRzUGVybWlzc2lvbnNbXX1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFVzZXJUZW5hbnRzUGVybWlzc2lvbnMoKTogVGVuYW50c1Blcm1pc3Npb25zW10ge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlclRlbmFudHNQZXJtaXNzaW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgdGVuYW50cyBpbmZvcm1hdGlvblxyXG4gICAqIEBwYXJhbSB7VGVuYW50SW5mb30gdGVuYW50SW5mb1xyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbih0ZW5hbnRJbmZvOiBUZW5hbnRJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGVuYW50SW5mbyA9IHRlbmFudEluZm87XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHRlbmFudHMgaW5mb3JtYXRpb25cclxuICAgKiBAcmV0dXJuIHtUZW5hbnRJbmZvfVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbigpOiBUZW5hbnRJbmZvIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIHBlcm1pc3Npb25zXHJcbiAgICogQHBhcmFtIHVzZXJzUGVybWlzc2lvbnNcclxuICAgKiBAcmV0dXJucyBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGZpbHRlclBlcm1pc3Npb24odXNlcnNQZXJtaXNzaW9uczogVXNlclBlcm1pc3Npb25bXSk6IFRlbmFudHNQZXJtaXNzaW9uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudFBlcm1pc3Npb25zU2VydmljZT8uZmlsdGVyVGVuYW50c1Blcm1pc3Npb25zKFxyXG4gICAgICB1c2Vyc1Blcm1pc3Npb25zLFxyXG4gICAgICB0aGlzLnRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZT8uZ2V0R2xvYmFsVGVuYW50c1Blcm1pc3Npb25zKClcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRpbmcgYWNjZXNzIGZvciB0ZW5hbnRzXHJcbiAgICogQHBhcmFtIHBlcm1pc3Npb25UeXBlIFBlcm1pc3Npb24gVHlwZSB0byB2YWxpZGF0ZSBwZXJtaXNzaW9uXHJcbiAgICogQHBhcmFtIG1hcHBlZFVzZXJQZXJtaXNzaW9ucyBQZXJtaXNzaW9uIHdoaWNoIGFyZSBtYXBwZWQgd2l0aCB0ZW5hbnRzXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBwZXJtaXNzaW9uIGlzIGdyYW50ZWRcclxuICAgKi9cclxuICB2YWxpZGF0ZUFjY2VzcyhcclxuICAgIHBlcm1pc3Npb25UeXBlOiBQZXJtaXNzaW9uVHlwZSxcclxuICAgIHBlcm1pc3Npb25zOiBUZW5hbnRzUGVybWlzc2lvbnNbXVxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzUGVybWlzc2lvbihcclxuICAgICAgcGVybWlzc2lvblR5cGUsXHJcbiAgICAgIHBlcm1pc3Npb25zXHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB0ZW5hbnRzLlxyXG4gICAqIEBwYXJhbSB7R2V0VGVuYW50c1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldFRlbmFudHNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRUZW5hbnRzTGlzdChwYXlsb2FkOiBHZXRUZW5hbnRzUGF5bG9hZCk6IE9ic2VydmFibGU8R2V0VGVuYW50c1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvY29uZmlnYCwgcGF5bG9hZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2YgZmVhdHVyZXMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRGZWF0dXJlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEZlYXR1cmVzKCk6IE9ic2VydmFibGU8R2V0RmVhdHVyZXNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvZmVhdHVyZXNgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgbGlzdCBvZiByb2xlcyBmcm9tIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwSWRcclxuICAgKiBAcmV0dXJuIHsqfSAge09ic2VydmFibGU8R2V0Um9sZXNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRSb2xlcyhhcHBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxHZXRSb2xlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2dldFJvbGUvJHthcHBJZH1gKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpPT4ge1xyXG4gICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2Ygcm9sZXMgYW5kIHBlcm1pc3Npb25zIG1hcHBpbmdzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZFxyXG4gICAqIEBwYXJhbSB7R2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAcmV0dXJuIHsqfSAge09ic2VydmFibGU8R2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFJvbGVzQW5kUGVybWlzc2lvbnNNYXBwaW5ncyhhcHBJZDogc3RyaW5nLCBwYXlsb2FkOiBHZXRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZCk6IE9ic2VydmFibGU8R2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9nZXRSb2xlQmFzZWRQZXJtaXNzaW9uLyR7YXBwSWR9YCwgcGF5bG9hZCkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKT0+IHtcclxuICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBsaXN0IG9mIGFwcGxpY2F0aW9uIHR5cGVzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0QXBwVHlwZXNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRBcHBsaWNhdGlvblR5cGVzKCk6IE9ic2VydmFibGU8R2V0QXBwVHlwZXNSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9jb25maWcvYXBwX3R5cGVgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQb3N0cyB0ZW5hbnQgYXBwbGljYXRpb24gZm9ybSBkYXRhIHRvIHNlcnZlciB1c2luZyBIdHRwU2VydmljZSBmb3IgY3JlYXRpbmcgbmV3IHRlbmFudCBhcHBsaWNhdGlvbi5cclxuICAgKiBAcGFyYW0ge0NyZWF0ZVRlbmFudFBheWxvYWR9IGNyZWF0ZVRlbmFudFBheWxvYWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGNyZWF0ZVRlbmFudChcclxuICAgIGNyZWF0ZVRlbmFudFBheWxvYWQ6IENyZWF0ZVRlbmFudFJlcXVlc3RQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxDcmVhdGVUZW5hbnRSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnBvc3REYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2NyZWF0ZVRlbmFudGAsXHJcbiAgICAgICAgY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIGNoZWNrYm94IG9wdGlvbnMgZnJvbSBmZWF0dXJlcyBsaXN0IGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7RmVhdHVyZXNMaXN0W119IGZlYXR1cmVzXHJcbiAgICogQHJldHVybnMge0NoZWNrYm94T3B0aW9uW119XHJcbiAgICovXHJcbiAgZ2V0RmVhdHVyZU9wdGlvbnMoZmVhdHVyZXM6IEZlYXR1cmVzW10pOiBDaGVja2JveE9wdGlvbltdIHtcclxuICAgIHRoaXMuY2hlY2tCb3hPcHRpb25zID0gW107XHJcbiAgICBmZWF0dXJlcz8uZm9yRWFjaCgoZmVhdHVyZTogRmVhdHVyZXMpID0+IHtcclxuICAgICAgdGhpcy5jaGVja0JveE9wdGlvbnM/LnB1c2goe1xyXG4gICAgICAgIGlkOiBmZWF0dXJlPy5mZWF0dXJlSWQsXHJcbiAgICAgICAgbmFtZTogZmVhdHVyZT8uZmVhdHVyZU5hbWUsXHJcbiAgICAgICAgY2hlY2tlZDogZmVhdHVyZT8uaXNEZWZhdWx0LFxyXG4gICAgICAgIGRpc2FibGVkOiBmZWF0dXJlPy5pc0RlZmF1bHQsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0JveE9wdGlvbnM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHJhZGlvIG9wdGlvbnMgZnJvbSBhcHBsaWNhdGlvbiB0eXBlcyBmcm9tIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge0FwcFR5cGVDb25maWdbXX0gYXBwVHlwZU9wdGlvbnNcclxuICAgKiBAcmV0dXJucyB7UmFkaW9PcHRpb25bXX1cclxuICAgKi9cclxuICBnZXRBcHBsaWNhdGlvblR5cGVPcHRpb25zKGFwcFR5cGVPcHRpb25zOiBBcHBUeXBlQ29uZmlnW10pOiBSYWRpb09wdGlvbltdIHtcclxuICAgIHRoaXMucmFkaW9PcHRpb25zID0gW107XHJcbiAgICBhcHBUeXBlT3B0aW9ucz8uZm9yRWFjaCgoYXBwVHlwZTogQXBwVHlwZUNvbmZpZykgPT4ge1xyXG4gICAgICB0aGlzLnJhZGlvT3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgaWQ6IGFwcFR5cGU/LmNvbmZpZ0ZpZWxkSWQsXHJcbiAgICAgICAgbGFiZWw6IGFwcFR5cGU/LmNvbmZpZ0ZpZWxkVmFsdWU/LnR5cGUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5yYWRpb09wdGlvbnM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHNlbGVjdGVkIGZlYXR1cmVzIGlkJ3MuXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbltdfSBmZWF0dXJlT3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtGZWF0dXJlSWRbXX1cclxuICAgKi9cclxuICBnZXRGZWF0dXJlSWRzKGZlYXR1cmVPcHRpb25zOiBDaGVja2JveE9wdGlvbltdKTogRmVhdHVyZUlkW10ge1xyXG4gICAgY29uc3QgZmVhdHVyZUlkczogRmVhdHVyZUlkW10gPSBbXTtcclxuICAgIGZlYXR1cmVPcHRpb25zPy5mb3JFYWNoKChmZWF0dXJlT3B0aW9uOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAoZmVhdHVyZU9wdGlvbj8uY2hlY2tlZCkge1xyXG4gICAgICAgIGZlYXR1cmVJZHMucHVzaCh7XHJcbiAgICAgICAgICBmZWF0dXJlSWQ6IGZlYXR1cmVPcHRpb24uaWQgYXMgc3RyaW5nLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmZWF0dXJlSWRzO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0ZW5hbnQgYmFzaWMgaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHtDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZH0gY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAqL1xyXG4gIHNldFRlbmFudEJhc2ljSW5mbyhjcmVhdGVUZW5hbnRQYXlsb2FkOiBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW5hbnRCYXNpY0luZm8gPSBjcmVhdGVUZW5hbnRQYXlsb2FkPy5wYXlsb2FkO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0ZW5hbnQgYmFzaWMgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0IGdldFRlbmFudEJhc2ljSW5mbygpOiBUZW5hbnRCYXNpY0luZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50QmFzaWNJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZW5kcyB1cGRhdGUgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIHVwZGF0ZSB0aGUgdGVuYW50IGFwcGxpY2F0aW9uIHN0YXR1cyB0byBhY3RpdmUvaW5hY3RpdmUgdXNpbmcgSHR0cFNlcnZpY2UgYW5kIHJldHVybnMgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSByZXNwb25zZS5cclxuICAgKiBAcGFyYW0ge1VwZGF0ZVRlbmFudFN0YXR1c1JlcXVlc3RQYXlsb2FkfSB1cGRhdGVUZW5hbnRTdGF0dXNQYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICB1cGRhdGVUZW5hbnRTdGF0dXMoXHJcbiAgICB1cGRhdGVUZW5hbnRTdGF0dXNQYXlsb2FkOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8VXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL3VwZGF0ZVN0YXR1c2AsXHJcbiAgICAgICAgdXBkYXRlVGVuYW50U3RhdHVzUGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sS0FBSyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBd0N4RCxNQUFNLE9BQU8seUJBQXlCO0lBYXBDO0lBQ0UsMENBQTBDO0lBQ2xDLFdBQXdCO0lBQ2hDLDBDQUEwQztJQUNsQyx3QkFBa0Q7SUFDMUQsMENBQTBDO0lBQ2xDLDJCQUF3RCxDQUFDLDZDQUE2Qzs7UUFKdEcsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFeEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUVsRCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBbEJsRSxnQkFBVyxHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBSy9DLHNCQUFpQixHQUFHLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDO1FBR3RELGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDdkMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQWUsRUFBRSxDQUFDO0lBUTFCLENBQUM7SUFDSixZQUFZLENBQUMsVUFBa0IsRUFBRSxjQUFnQztRQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFhO1FB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Q0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsUUFBMEI7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRTtZQUM1QyxJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztvQkFDckIsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFZO29CQUNoQyxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQWM7b0JBQ3BDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTztpQkFDNUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQzsrR0E1WFUseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdldFRlbmFudHNQYXlsb2FkIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbi1zY2hlbWEtdmlldy10ZW5hbnQtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVGVuYW50c1Blcm1pc3Npb25zLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2UgfSBmcm9tICcuL3RlbmFudC1wZXJtaXNzaW9ucy1tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWQsXHJcbiAgQ3JlYXRlVGVuYW50UmVzcG9uc2UsXHJcbiAgR2V0VGVuYW50c1Jlc3BvbnNlLFxyXG4gIE5ld1RlbmFudEluZm8sXHJcbiAgVGVuYW50QmFzaWNJbmZvLFxyXG4gIFRlbmFudERldGFpbHNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuaW1wb3J0IHsgQ2hlY2tib3hPcHRpb24sIFJhZGlvT3B0aW9uIH0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlSWQsXHJcbiAgRmVhdHVyZXMsXHJcbiAgR2V0RmVhdHVyZXNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvZmVhdHVyZXMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEFwcFR5cGVDb25maWcsXHJcbiAgR2V0QXBwVHlwZXNSZXNwb25zZSxcclxufSBmcm9tICcuLi9tb2RlbHMvYXBwLXR5cGUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi90ZW5hbnQtcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbmFudEZ1bmN0aW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy90ZW5hbnQtZnVuY3Rpb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQsXHJcbiAgR2V0Um9sZXNBbmRQZXJtaXNzaW9uc1Jlc3BvbnNlLFxyXG4gIEdldFJvbGVzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3JvbGVzLWFuZC1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVXBkYXRlVGVuYW50U3RhdHVzUmVxdWVzdFBheWxvYWQsXHJcbiAgVXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL3VwZGF0ZS10ZW5hbnQtc3RhdHVzLm1vZGVsJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2Uge1xyXG4gIHRlbmFudHNUZXh0ID0gc2NyZWVuVGV4dHM/LnZpZXdUZW5hbnRzPy5lcnJvcnM7XHJcbiAgYXBpQmFzZVVybCE6IHN0cmluZztcclxuICB1c2VyUGVybWlzc2lvbiE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgc2VsZWN0ZWRUZW5hbnRJbmZvITogVGVuYW50QmFzaWNJbmZvIHwgdW5kZWZpbmVkO1xyXG4gIHVzZXJUZW5hbnRzUGVybWlzc2lvbnMhOiBUZW5hbnRzUGVybWlzc2lvbnNbXTtcclxuICBjcmVhdGVUZW5hbnRzVGV4dCA9IHNjcmVlblRleHRzPy5jcmVhdGVUZW5hbnQ/LmVycm9ycztcclxuICBuZXdUZW5hbnRJbmZvITogTmV3VGVuYW50SW5mbztcclxuICB0ZW5hbnRGdW5jdGlvblR5cGUhOiBUZW5hbnRGdW5jdGlvblR5cGU7XHJcbiAgcmFkaW9PcHRpb25zOiBSYWRpb09wdGlvbltdID0gW107XHJcbiAgY2hlY2tCb3hPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgYXBwVHlwZUluZm86IFJhZGlvT3B0aW9uW10gPSBbXTtcclxuICBmZWF0dXJlTGlzdDogRmVhdHVyZXNbXSA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2U6IFRlbmFudFBlcm1pc3Npb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSB0ZW5hbnRQZXJtaXNzaW9uc01hcFNlcnZpY2U6IFRlbmFudFBlcm1pc3Npb25zTWFwU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcbiAgc2V0QXBwQ29uZmlnKGFwaUJhc2VVcmw6IHN0cmluZywgdXNlclBlcm1pc3Npb246IFVzZXJQZXJtaXNzaW9uW10pOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XHJcbiAgICB0aGlzLnVzZXJQZXJtaXNzaW9uID0gdXNlclBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRlbmFudCBkZXRhaWxzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUZW5hbnREZXRhaWxzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0VGVuYW50RGV0YWlscyhhcHBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW5hbnREZXRhaWxzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2RldGFpbHMvJHthcHBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHVzZXIgdGVuYW50cyBwZXJtaXNzaW9uc1xyXG4gICAqIEBwYXJhbSB7VGVuYW50c1Blcm1pc3Npb25zW119IFRlbmFudHNQZXJtaXNzaW9uc1xyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0VXNlclRlbmFudHNQZXJtaXNzaW9ucyh1c2VyVGVuYW50c1Blcm1pc3Npb25zOiBUZW5hbnRzUGVybWlzc2lvbnNbXSkge1xyXG4gICAgdGhpcy51c2VyVGVuYW50c1Blcm1pc3Npb25zID0gdXNlclRlbmFudHNQZXJtaXNzaW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdXNlciB0ZW5hbnRzIHBlcm1pc3Npb25zXHJcbiAgICogQHJldHVybiB7VGVuYW50c1Blcm1pc3Npb25zW119XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRVc2VyVGVuYW50c1Blcm1pc3Npb25zKCk6IFRlbmFudHNQZXJtaXNzaW9uc1tdIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJUZW5hbnRzUGVybWlzc2lvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB1c2VyIHRlbmFudHMgaW5mb3JtYXRpb25cclxuICAgKiBAcGFyYW0ge1RlbmFudEJhc2ljSW5mb30gdGVuYW50SW5mb1xyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbih0ZW5hbnRJbmZvOiBUZW5hbnRCYXNpY0luZm8pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW5hbnRJbmZvID0gdGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdGVuYW50cyBpbmZvcm1hdGlvblxyXG4gICAqIEByZXR1cm4ge1RlbmFudEJhc2ljSW5mb31cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFNlbGVjdGVkVGVuYW50SW5mb3JtYXRpb24oKTogVGVuYW50QmFzaWNJbmZvIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbGlzdCBvZiBhcHBsaWNhdGlvbiB0eXBlIGluZm9ybWF0aW9uXHJcbiAgICogQHBhcmFtIHtSYWRpb09wdGlvbn0gYXBwVHlwZUluZm9cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEFwcGxpY2F0aW9uVHlwZShhcHBUeXBlSW5mbzogUmFkaW9PcHRpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5hcHBUeXBlSW5mbyA9IGFwcFR5cGVJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGFwcGxpY2F0aW9uIHR5cGUgaW5mb3JtYXRpb25cclxuICAgKiBAcmV0dXJuIHtSYWRpb09wdGlvbn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZSgpOiBSYWRpb09wdGlvbltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmFwcFR5cGVJbmZvO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaWx0ZXIgcGVybWlzc2lvbnNcclxuICAgKiBAcGFyYW0gdXNlcnNQZXJtaXNzaW9uc1xyXG4gICAqIEByZXR1cm5zIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZmlsdGVyUGVybWlzc2lvbih1c2Vyc1Blcm1pc3Npb25zOiBVc2VyUGVybWlzc2lvbltdKTogVGVuYW50c1Blcm1pc3Npb25zW10ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVuYW50UGVybWlzc2lvbnNTZXJ2aWNlPy5maWx0ZXJUZW5hbnRzUGVybWlzc2lvbnMoXHJcbiAgICAgIHVzZXJzUGVybWlzc2lvbnMsXHJcbiAgICAgIHRoaXMudGVuYW50UGVybWlzc2lvbnNNYXBTZXJ2aWNlPy5nZXRHbG9iYWxUZW5hbnRzUGVybWlzc2lvbnMoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGluZyBhY2Nlc3MgZm9yIHRlbmFudHNcclxuICAgKiBAcGFyYW0gcGVybWlzc2lvblR5cGUgUGVybWlzc2lvbiBUeXBlIHRvIHZhbGlkYXRlIHBlcm1pc3Npb25cclxuICAgKiBAcGFyYW0gbWFwcGVkVXNlclBlcm1pc3Npb25zIFBlcm1pc3Npb24gd2hpY2ggYXJlIG1hcHBlZCB3aXRoIHRlbmFudHNcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzKFxyXG4gICAgcGVybWlzc2lvblR5cGU6IFBlcm1pc3Npb25UeXBlLFxyXG4gICAgcGVybWlzc2lvbnM6IFRlbmFudHNQZXJtaXNzaW9uc1tdXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRQZXJtaXNzaW9uc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3NQZXJtaXNzaW9uKFxyXG4gICAgICBwZXJtaXNzaW9uVHlwZSxcclxuICAgICAgcGVybWlzc2lvbnNcclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHRlbmFudHMuXHJcbiAgICogQHBhcmFtIHtHZXRUZW5hbnRzUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8R2V0VGVuYW50c1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFRlbmFudHNMaXN0KHBheWxvYWQ6IEdldFRlbmFudHNQYXlsb2FkKTogT2JzZXJ2YWJsZTxHZXRUZW5hbnRzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2FwcC9jb25maWdgLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgbGlzdCBvZiBmZWF0dXJlcyBmcm9tIHNlcnZlciB1c2luZyBIdHRwU2VydmljZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldEZlYXR1cmVzUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0RmVhdHVyZXMoKTogT2JzZXJ2YWJsZTxHZXRGZWF0dXJlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2FwcC9mZWF0dXJlc2ApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBsaXN0IG9mIHJvbGVzIGZyb20gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJZFxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxHZXRSb2xlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFJvbGVzKGFwcElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEdldFJvbGVzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2dldFJvbGUvJHthcHBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgbGlzdCBvZiByb2xlcyBhbmQgcGVybWlzc2lvbnMgbWFwcGluZ3MgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHBhcmFtIHtHZXRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEByZXR1cm4geyp9ICB7T2JzZXJ2YWJsZTxHZXRSb2xlc0FuZFBlcm1pc3Npb25zUmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Um9sZXNBbmRQZXJtaXNzaW9uc01hcHBpbmdzKFxyXG4gICAgYXBwSWQ6IHN0cmluZyxcclxuICAgIHBheWxvYWQ6IEdldFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkXHJcbiAgKTogT2JzZXJ2YWJsZTxHZXRSb2xlc0FuZFBlcm1pc3Npb25zUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShcclxuICAgICAgICBgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9nZXRSb2xlQmFzZWRQZXJtaXNzaW9uLyR7YXBwSWR9YCxcclxuICAgICAgICBwYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIGxpc3Qgb2YgYXBwbGljYXRpb24gdHlwZXMgZnJvbSBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QXBwbGljYXRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZXMoKTogT2JzZXJ2YWJsZTxHZXRBcHBUeXBlc1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2NvbmZpZ3VyYXRpb25zL2NvbmZpZy9hcHBfdHlwZWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIHRlbmFudCBhcHBsaWNhdGlvbiBmb3JtIGRhdGEgdG8gc2VydmVyIHVzaW5nIEh0dHBTZXJ2aWNlIGZvciBjcmVhdGluZyBuZXcgdGVuYW50IGFwcGxpY2F0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3JlYXRlVGVuYW50UGF5bG9hZH0gY3JlYXRlVGVuYW50UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgY3JlYXRlVGVuYW50KFxyXG4gICAgY3JlYXRlVGVuYW50UGF5bG9hZDogQ3JlYXRlVGVuYW50UmVxdWVzdFBheWxvYWRcclxuICApOiBPYnNlcnZhYmxlPENyZWF0ZVRlbmFudFJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9jb25maWd1cmF0aW9ucy9hcHAvY3JlYXRlVGVuYW50YCxcclxuICAgICAgICBjcmVhdGVUZW5hbnRQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgY2hlY2tib3ggb3B0aW9ucyBmcm9tIGZlYXR1cmVzIGxpc3QgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQHBhcmFtIHtGZWF0dXJlc0xpc3RbXX0gZmVhdHVyZXNcclxuICAgKiBAcmV0dXJucyB7Q2hlY2tib3hPcHRpb25bXX1cclxuICAgKi9cclxuICBnZXRGZWF0dXJlT3B0aW9ucyhmZWF0dXJlczogRmVhdHVyZXNbXSk6IENoZWNrYm94T3B0aW9uW10ge1xyXG4gICAgdGhpcy5jaGVja0JveE9wdGlvbnMgPSBbXTtcclxuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlOiBGZWF0dXJlcykgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrQm94T3B0aW9ucz8ucHVzaCh7XHJcbiAgICAgICAgaWQ6IGZlYXR1cmU/LmZlYXR1cmVJZCxcclxuICAgICAgICBuYW1lOiBmZWF0dXJlPy5mZWF0dXJlTmFtZSxcclxuICAgICAgICBjaGVja2VkOiBmZWF0dXJlPy5pc0RlZmF1bHQsXHJcbiAgICAgICAgZGlzYWJsZWQ6IGZlYXR1cmU/LmlzRGVmYXVsdCxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrQm94T3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgcmFkaW8gb3B0aW9ucyBmcm9tIGFwcGxpY2F0aW9uIHR5cGVzIGZyb20gc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7QXBwVHlwZUNvbmZpZ1tdfSBhcHBUeXBlT3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtSYWRpb09wdGlvbltdfVxyXG4gICAqL1xyXG4gIGdldEFwcGxpY2F0aW9uVHlwZU9wdGlvbnMoYXBwVHlwZU9wdGlvbnM6IEFwcFR5cGVDb25maWdbXSk6IFJhZGlvT3B0aW9uW10ge1xyXG4gICAgdGhpcy5yYWRpb09wdGlvbnMgPSBbXTtcclxuICAgIGFwcFR5cGVPcHRpb25zPy5mb3JFYWNoKChhcHBUeXBlOiBBcHBUeXBlQ29uZmlnKSA9PiB7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zPy5wdXNoKHtcclxuICAgICAgICBpZDogYXBwVHlwZT8uY29uZmlnRmllbGRJZCxcclxuICAgICAgICBsYWJlbDogYXBwVHlwZT8uY29uZmlnRmllbGRWYWx1ZT8udHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvT3B0aW9ucztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMgaWQncy5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9uW119IGZlYXR1cmVPcHRpb25zXHJcbiAgICogQHJldHVybnMge0ZlYXR1cmVJZFtdfVxyXG4gICAqL1xyXG4gIGdldEZlYXR1cmVJZHMoZmVhdHVyZU9wdGlvbnM6IENoZWNrYm94T3B0aW9uW10pOiBGZWF0dXJlSWRbXSB7XHJcbiAgICBjb25zdCBmZWF0dXJlSWRzOiBGZWF0dXJlSWRbXSA9IFtdO1xyXG4gICAgZmVhdHVyZU9wdGlvbnM/LmZvckVhY2goKGZlYXR1cmVPcHRpb246IENoZWNrYm94T3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChmZWF0dXJlT3B0aW9uPy5jaGVja2VkKSB7XHJcbiAgICAgICAgZmVhdHVyZUlkcy5wdXNoKHtcclxuICAgICAgICAgIGZlYXR1cmVJZDogZmVhdHVyZU9wdGlvbi5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVJZHM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG5ld2x5IGNyZWF0ZWQgdGVuYW50IGluZm9ybWF0aW9uLlxyXG4gICAqIEBwYXJhbSB7TmV3VGVuYW50SW5mb30gbmV3VGVuYW50SW5mb1xyXG4gICAqL1xyXG4gIHNldE5ld1RlbmFudEluZm8obmV3VGVuYW50SW5mbzogTmV3VGVuYW50SW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5uZXdUZW5hbnRJbmZvID0gbmV3VGVuYW50SW5mbztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbmV3bHkgY3JlYXRlZCB0ZW5hbnQgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgZ2V0IGdldE5ld1RlbmFudEluZm8oKTogTmV3VGVuYW50SW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXdUZW5hbnRJbmZvO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcGFyYW0ge1RlbmFudEZ1bmN0aW9uVHlwZX0gdGVuYW50RnVuY3Rpb25UeXBlIC10ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKi9cclxuICBzZXRUZW5hbnRGdW5jdGlvblR5cGUodGVuYW50RnVuY3Rpb25UeXBlOiBUZW5hbnRGdW5jdGlvblR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMudGVuYW50RnVuY3Rpb25UeXBlID0gdGVuYW50RnVuY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKiBAcmV0dXJuIHtUZW5hbnRGdW5jdGlvblR5cGV9IC10ZW5hbnQgZnVuY3Rpb24gdHlwZS5cclxuICAgKi9cclxuICBnZXRUZW5hbnRGdW5jdGlvblR5cGUoKTogVGVuYW50RnVuY3Rpb25UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudEZ1bmN0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc3RzIHRoZSBlZGl0ZWQgdGVuYW50IGFwcGxpY2F0aW9uIGZvcm0gZGF0YSB0byBzZXJ2ZXIgdXNpbmcgSHR0cFNlcnZpY2UgZm9yIHVwZGF0aW5nIHRoZSB0ZW5hbnQgaW5mb3JtYXRpb24uXHJcbiAgICogQHBhcmFtIHtDcmVhdGVUZW5hbnRQYXlsb2FkfSBlZGl0VGVuYW50UGF5bG9hZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+fVxyXG4gICAqIEBtZW1iZXJvZiBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZWRpdFRlbmFudChcclxuICAgIGVkaXRUZW5hbnRQYXlsb2FkOiBDcmVhdGVUZW5hbnRSZXF1ZXN0UGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8Q3JlYXRlVGVuYW50UmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL2VkaXRUZW5hbnRgLFxyXG4gICAgICAgIGVkaXRUZW5hbnRQYXlsb2FkXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZW5kcyB1cGRhdGUgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIHVwZGF0ZSB0aGUgdGVuYW50IGFwcGxpY2F0aW9uIHN0YXR1cyB0byBhY3RpdmUvaW5hY3RpdmUgdXNpbmcgSHR0cFNlcnZpY2UgYW5kIHJldHVybnMgdGhlIHN1Y2Nlc3Mgb3IgZmFpbHVyZSByZXNwb25zZS5cclxuICAgKiBAcGFyYW0ge1VwZGF0ZVRlbmFudFN0YXR1c1JlcXVlc3RQYXlsb2FkfSB1cGRhdGVUZW5hbnRTdGF0dXNQYXlsb2FkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxVcGRhdGVUZW5hbnRTdGF0dXNSZXNwb25zZT59XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICB1cGRhdGVUZW5hbnRTdGF0dXMoXHJcbiAgICB1cGRhdGVUZW5hbnRTdGF0dXNQYXlsb2FkOiBVcGRhdGVUZW5hbnRTdGF0dXNSZXF1ZXN0UGF5bG9hZFxyXG4gICk6IE9ic2VydmFibGU8VXBkYXRlVGVuYW50U3RhdHVzUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vY29uZmlndXJhdGlvbnMvYXBwL3VwZGF0ZVN0YXR1c2AsXHJcbiAgICAgICAgdXBkYXRlVGVuYW50U3RhdHVzUGF5bG9hZFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSXQgZ2VuZXJhdGVzIEZlYXR1cmUgbGlzdCBmcm9tIGNoZWNrYm94IG9wdGlvbnMgZ2VuZXJhdGVkIGluIGZvcm0gYXJyYXkuXHJcbiAgICogQHBhcmFtIHtDaGVja2JveE9wdGlvbltdfSBmZWF0dXJlc1xyXG4gICAqIEByZXR1cm4ge0ZlYXR1cmVzW119XHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2VcclxuICAgKi9cclxuICBnZXRGZWF0dXJlc0xpc3QoZmVhdHVyZXM6IENoZWNrYm94T3B0aW9uW10pOiBGZWF0dXJlc1tdIHtcclxuICAgIHRoaXMuZmVhdHVyZUxpc3QgPSBbXTtcclxuICAgIGZlYXR1cmVzPy5mb3JFYWNoKChmZWF0dXJlOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAoZmVhdHVyZS5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuZmVhdHVyZUxpc3Q/LnB1c2goe1xyXG4gICAgICAgICAgZmVhdHVyZUlkOiBmZWF0dXJlPy5pZCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICBmZWF0dXJlTmFtZTogZmVhdHVyZT8ubmFtZSBhcyBzdHJpbmcsXHJcbiAgICAgICAgICBpc0RlZmF1bHQ6IGZlYXR1cmU/LmNoZWNrZWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmZlYXR1cmVMaXN0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,10 +5,10 @@ export * from './lib/components/view-tenants-list/view-tenants-list.component';
5
5
  export * from './lib/components/view-tenant-details/view-tenant-details.component';
6
6
  export * from './lib/components/create-tenant-application/create-tenant-application.component';
7
7
  export * from './lib/tenant-applications.component';
8
+ export * from './lib/components/tenant-basic-details/tenant-basic-details.component';
8
9
  export * from './lib/models/app-type-config.model';
9
10
  export * from './lib/models/app-type.model';
10
11
  export * from './lib/models/tenant.model';
11
- export * from './lib/models/tenants.model';
12
12
  export * from './lib/models/features.model';
13
13
  export * from './lib/models/form-status.model';
14
14
  export * from './lib/models/permission-type.model';
@@ -17,10 +17,11 @@ export * from './lib/models/route-config.model';
17
17
  export * from './lib/models/table-column-schema-view-tenant-list.model';
18
18
  export * from './lib/models/roles-and-permissions.model';
19
19
  export * from './lib/models/update-tenant-status.model';
20
+ export * from './lib/models/tenant-function-type.model';
20
21
  export * from './lib/services/tenant-applications.service';
21
22
  export * from './lib/services/tenant-permissions-map.service';
22
23
  export * from './lib/services/tenant-permissions.service';
23
24
  export * from './lib/assets/tenant-validations';
24
25
  export * from './lib/tenant-applications.module';
25
26
  export * from './lib/models/feature-permission-id.model';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRlbmFudHNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnRzLWxpc3Qvdmlldy10ZW5hbnRzLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92aWV3LXRlbmFudC1kZXRhaWxzL3ZpZXctdGVuYW50LWRldGFpbHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jcmVhdGUtdGVuYW50LWFwcGxpY2F0aW9uL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LWFwcGxpY2F0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FwcC10eXBlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcHAtdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90ZW5hbnQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50cy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mZWF0dXJlcy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mb3JtLXN0YXR1cy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50cy1wZXJtaXNzaW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JvdXRlLWNvbmZpZy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXZpZXctdGVuYW50LWxpc3QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VwZGF0ZS10ZW5hbnQtc3RhdHVzLm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1wZXJtaXNzaW9ucy1tYXAuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RlbmFudC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy90ZW5hbnQtdmFsaWRhdGlvbnMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVuYW50LWFwcGxpY2F0aW9ucy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmVhdHVyZS1wZXJtaXNzaW9uLWlkLm1vZGVsJzsiXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RlbmFudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsc0VBQXNFLENBQUM7QUFFckYsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFFMUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGVuYW50c1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92aWV3LXRlbmFudHMtbGlzdC92aWV3LXRlbmFudHMtbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZpZXctdGVuYW50LWRldGFpbHMvdmlldy10ZW5hbnQtZGV0YWlscy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10ZW5hbnQtYXBwbGljYXRpb24vY3JlYXRlLXRlbmFudC1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW5hbnQtYXBwbGljYXRpb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVuYW50LWJhc2ljLWRldGFpbHMvdGVuYW50LWJhc2ljLWRldGFpbHMuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcHAtdHlwZS1jb25maWcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBwLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZlYXR1cmVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2Zvcm0tc3RhdHVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90ZW5hbnRzLXBlcm1pc3Npb24ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcm91dGUtY29uZmlnLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RhYmxlLWNvbHVtbi1zY2hlbWEtdmlldy10ZW5hbnQtbGlzdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb2xlcy1hbmQtcGVybWlzc2lvbnMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXBkYXRlLXRlbmFudC1zdGF0dXMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGVuYW50LWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LXBlcm1pc3Npb25zLW1hcC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGVuYW50LXBlcm1pc3Npb25zLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXNzZXRzL3RlbmFudC12YWxpZGF0aW9ucyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW5hbnQtYXBwbGljYXRpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9mZWF0dXJlLXBlcm1pc3Npb24taWQubW9kZWwnO1xyXG4iXX0=