valtech-components 2.0.1022 → 2.0.1024

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.
Files changed (26) hide show
  1. package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
  2. package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +3 -3
  3. package/esm2022/lib/components/organisms/api-key-create-modal/api-key-create-modal.component.mjs +290 -0
  4. package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +316 -0
  5. package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.i18n.mjs +59 -0
  6. package/esm2022/lib/components/organisms/api-keys-view/api-keys.routes.mjs +27 -0
  7. package/esm2022/lib/components/organisms/api-keys-view/types.mjs +2 -0
  8. package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +3 -3
  9. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +8 -14
  10. package/esm2022/lib/components/organisms/organization-view/organization-view.i18n.mjs +3 -3
  11. package/esm2022/lib/components/organisms/organization-view/types.mjs +1 -1
  12. package/esm2022/lib/components/organisms/settings-hub/settings.routes.mjs +4 -1
  13. package/esm2022/lib/version.mjs +2 -2
  14. package/esm2022/public-api.mjs +5 -1
  15. package/fesm2022/valtech-components.mjs +2901 -2252
  16. package/fesm2022/valtech-components.mjs.map +1 -1
  17. package/lib/components/organisms/api-key-create-modal/api-key-create-modal.component.d.ts +56 -0
  18. package/lib/components/organisms/api-keys-view/api-keys-view.component.d.ts +58 -0
  19. package/lib/components/organisms/api-keys-view/api-keys-view.i18n.d.ts +6 -0
  20. package/lib/components/organisms/api-keys-view/api-keys.routes.d.ts +22 -0
  21. package/lib/components/organisms/api-keys-view/types.d.ts +8 -0
  22. package/lib/components/organisms/organization-view/types.d.ts +6 -0
  23. package/lib/components/organisms/settings-hub/settings.routes.d.ts +5 -0
  24. package/lib/version.d.ts +1 -1
  25. package/package.json +1 -1
  26. package/public-api.d.ts +4 -0
@@ -27,12 +27,12 @@ import { InviteMemberModalComponent } from '../invite-member-modal/invite-member
27
27
  import { MemberDetailModalComponent } from '../member-detail-modal/member-detail-modal.component';
28
28
  import { TransferOwnershipModalComponent } from '../transfer-ownership-modal/transfer-ownership-modal.component';
29
29
  import { MemberImportModalComponent } from '../member-import-modal/member-import-modal.component';
30
- import { ApiKeysModalComponent } from '../api-keys-modal/api-keys-modal.component';
31
30
  import { OrgInfoSheetComponent } from '../org-info-sheet/org-info-sheet.component';
32
31
  import { ORGANIZATION_VIEW_I18N } from './organization-view.i18n';
33
32
  import * as i0 from "@angular/core";
34
33
  const DEFAULT_NAMESPACE = 'Settings.Organization';
35
34
  const DEFAULT_VIEW_PERMISSIONS_ROUTE = '/app/settings/permissions';
35
+ const DEFAULT_API_KEYS_ROUTE = '/app/settings/api-keys';
36
36
  const DEFAULT_LEAVE_REDIRECT_ROUTE = '/app/settings/account';
37
37
  /**
38
38
  * `val-organization-view` — vista Gestión de organización full-feature
@@ -90,6 +90,7 @@ export class OrganizationViewComponent {
90
90
  showLeave: merged.showLeave ?? true,
91
91
  i18nNamespace: merged.i18nNamespace ?? DEFAULT_NAMESPACE,
92
92
  viewPermissionsRoute: merged.viewPermissionsRoute ?? DEFAULT_VIEW_PERMISSIONS_ROUTE,
93
+ apiKeysRoute: merged.apiKeysRoute ?? DEFAULT_API_KEYS_ROUTE,
93
94
  leaveRedirectRoute: merged.leaveRedirectRoute ?? DEFAULT_LEAVE_REDIRECT_ROUTE,
94
95
  onOrgEdited: merged.onOrgEdited,
95
96
  onMemberInvited: merged.onMemberInvited,
@@ -358,15 +359,9 @@ export class OrganizationViewComponent {
358
359
  });
359
360
  }
360
361
  onOpenApiKeys() {
361
- void this.modalService.open({
362
- component: ApiKeysModalComponent,
363
- breakpoints: {
364
- breakpoints: [0, 0.92],
365
- initialBreakpoint: 0.92,
366
- showHandle: true,
367
- },
368
- backdropDismiss: true,
369
- });
362
+ // Las API Keys ahora viven en su propia vista (`val-api-keys-view`): crear
363
+ // arriba, lista abajo con creador/fecha. Navegamos en vez de abrir un modal.
364
+ this.nav.navigateByUrl(this.resolvedConfig().apiKeysRoute);
370
365
  }
371
366
  // "Más información" sobre organizaciones — mismo sheet explicativo que muestra
372
367
  // account-view sin org, pero disponible siempre (todo user tiene org por defecto).
@@ -387,7 +382,7 @@ export class OrganizationViewComponent {
387
382
  type: 'button',
388
383
  },
389
384
  },
390
- breakpoints: { breakpoints: [0, 0.85], initialBreakpoint: 0.85, showHandle: true },
385
+ breakpoints: { breakpoints: [0, 0.92], initialBreakpoint: 0.92, showHandle: true },
391
386
  backdropDismiss: true,
392
387
  });
393
388
  }
@@ -412,7 +407,7 @@ export class OrganizationViewComponent {
412
407
  type: 'button',
413
408
  },
414
409
  },
415
- breakpoints: { breakpoints: [0, 0.85], initialBreakpoint: 0.85, showHandle: true },
410
+ breakpoints: { breakpoints: [0, 0.92], initialBreakpoint: 0.92, showHandle: true },
416
411
  backdropDismiss: true,
417
412
  });
418
413
  }
@@ -920,7 +915,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
920
915
  MemberCardComponent,
921
916
  TransferOwnershipModalComponent,
922
917
  MemberImportModalComponent,
923
- ApiKeysModalComponent,
924
918
  OrgInfoSheetComponent,
925
919
  ], template: `
926
920
  <div class="page">
@@ -1212,4 +1206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1212
1206
  }], ctorParameters: () => [], propDecorators: { config: [{
1213
1207
  type: Input
1214
1208
  }] } });
1215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9vcmdhbml6YXRpb24tdmlldy9vcmdhbml6YXRpb24tdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQWtCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV0RixP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SyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBJbnB1dCwgaXNEZXZNb2RlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmUsIGRvYywgZ2V0RG9jIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlRXJyb3JTdGF0ZVByb3BzIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2ZhY3RvcnknO1xuaW1wb3J0IHsgTWVtYmVyQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9tZW1iZXItY2FyZC9tZW1iZXItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2tlbGV0b25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1sYXlvdXQvc2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBIYXNQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9oYXMtcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBpbnRlcnByZXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy9pbnRlcnByZXQtZXJyb3InO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnTWVtYmVyLCBPcmdSb2xlLCBPcmdhbml6YXRpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvdHlwZXMnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgRWRpdE9yZ01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vZWRpdC1vcmctbW9kYWwvZWRpdC1vcmctbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEludml0ZU1lbWJlck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vaW52aXRlLW1lbWJlci1tb2RhbC9pbnZpdGUtbWVtYmVyLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW1iZXJEZXRhaWxNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL21lbWJlci1kZXRhaWwtbW9kYWwvbWVtYmVyLWRldGFpbC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVtYmVyRGV0YWlsIH0gZnJvbSAnLi4vbWVtYmVyLWRldGFpbC1tb2RhbC90eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2Zlck93bmVyc2hpcE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJhbnNmZXItb3duZXJzaGlwLW1vZGFsL3RyYW5zZmVyLW93bmVyc2hpcC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVtYmVySW1wb3J0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tZW1iZXItaW1wb3J0LW1vZGFsL21lbWJlci1pbXBvcnQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFwaUtleXNNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2FwaS1rZXlzLW1vZGFsL2FwaS1rZXlzLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmdJbmZvU2hlZXRDb21wb25lbnQgfSBmcm9tICcuLi9vcmctaW5mby1zaGVldC9vcmctaW5mby1zaGVldC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBPcmdhbml6YXRpb25WaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBPUkdBTklaQVRJT05fVklFV19JMThOIH0gZnJvbSAnLi9vcmdhbml6YXRpb24tdmlldy5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuT3JnYW5pemF0aW9uJztcbmNvbnN0IERFRkFVTFRfVklFV19QRVJNSVNTSU9OU19ST1VURSA9ICcvYXBwL3NldHRpbmdzL3Blcm1pc3Npb25zJztcbmNvbnN0IERFRkFVTFRfTEVBVkVfUkVESVJFQ1RfUk9VVEUgPSAnL2FwcC9zZXR0aW5ncy9hY2NvdW50JztcblxuLyoqXG4gKiBgdmFsLW9yZ2FuaXphdGlvbi12aWV3YCDigJQgdmlzdGEgR2VzdGnDs24gZGUgb3JnYW5pemFjacOzbiBmdWxsLWZlYXR1cmVcbiAqIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS4gUHJvbW92aWRhIGRlc2RlIGBzaG93Y2FzZWAgYmFqbyBlbCBwcm9jZXNvIGRlXG4gKiBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkluZm9ybWFjacOzbioqIOKAlCBub21icmUsIGRlc2NyaXBjacOzbiwgcGxhbiB5IHRpcG8gZGUgbGEgb3JnIGFjdGl2YTsgZWRpdGFyXG4gKiAgICB2w61hIG1vZGFsIGB2YWwtZWRpdC1vcmctbW9kYWxgIChzb2xvIHNpIGBjYW5FZGl0T3JnKClgKS5cbiAqICAtICoqTWllbWJyb3MqKiDigJQgbGlzdGEgcGFnaW5hZGEgKGB2YWwtbWVtYmVyLWNhcmRgKSBlbnJpcXVlY2lkYSBjb24gcGVyZmlsZXNcbiAqICAgIHDDumJsaWNvcyAoRmlyZXN0b3JlKTsgdmVyIGRldGFsbGUgdsOtYSBgdmFsLW1lbWJlci1kZXRhaWwtbW9kYWxgLlxuICogIC0gKipSb2xlcyB5IHBlcm1pc29zKiog4oCUIHNlY2Npw7NuIGV4cGxpY2F0aXZhIGNvbiBDVEEgYSBsYSBydXRhIGRlIHBlcm1pc29zLlxuICogIC0gKipJbnZpdGFyKiog4oCUIENUQSBxdWUgYWJyZSBgdmFsLWludml0ZS1tZW1iZXItbW9kYWxgIChnYXRlYWRhIHBvciBgdXNlcnM6KmApLlxuICogIC0gKipUcmFuc2ZlcmlyIHByb3BpZWRhZCoqIOKAlCBgdmFsLXRyYW5zZmVyLW93bmVyc2hpcC1tb2RhbGAgKHNvbG8gb3duZXIpLlxuICogIC0gKipTYWxpciBkZSBsYSBvcmdhbml6YWNpw7NuKiog4oCUIGBPcmdTZXJ2aWNlLmxlYXZlT3JnYCBjb24gY29uZmlybWFjacOzblxuICogICAgZGVzdHJ1Y3RpdmEuXG4gKlxuICogKipSQkFDIGludGVybm8qKiAoZGVjaXNpw7NuIENUTywgQURSLTAyMSk6IGVsIGdhdGluZyBmaW5vIHNlIHJlc3VlbHZlIGRlbnRybyBkZVxuICogbGEgdmlzdGEgdsOtYSBgQXV0aFNlcnZpY2UuaGFzUGVybWlzc2lvbigpYCArIGAqdmFsSGFzUGVybWlzc2lvbmAgKyBjb21wdXRlZHNcbiAqIGBpc093bmVyKClgL2BjYW5NYW5hZ2VNZW1iZXJzKClgL2BjYW5FZGl0T3JnKClgLiBOTyBzZSBleHBvbmUgY29tbyBjb25maWcuXG4gKlxuICogKipBdXRvLXJlbG9hZCBlbiBvcmctc3dpdGNoKio6IHVuIGBlZmZlY3RgIHJlYWN0aW9uYSBhIGBhY3RpdmVPcmdJZCgpYCB5IHJlY2FyZ2FcbiAqIG9yZyArIG1pZW1icm9zIGN1YW5kbyBlbCB1c3VhcmlvIGNhbWJpYSBkZSBvcmdhbml6YWNpw7NuIGFjdGl2YSBtaWVudHJhcyBsYSB2aXN0YVxuICogZXN0w6EgbW9udGFkYS4gRWwgZWZmZWN0IGN1YnJlIHRhbWJpw6luIGxhIGNhcmdhIGluaWNpYWwgKHNpbiBkb2JsZSBjYXJnYSkuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgIHNlXG4gKiBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnIChuby1vcFxuICogZW1iZWJpZG8pLiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWxcbiAqIG5hbWVzcGFjZSAoZGVmYXVsdCBgU2V0dGluZ3MuT3JnYW5pemF0aW9uYCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1vcmdhbml6YXRpb24tdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgSGFzUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgICBTa2VsZXRvbkxheW91dENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNZW1iZXJDYXJkQ29tcG9uZW50LFxuICAgIFRyYW5zZmVyT3duZXJzaGlwTW9kYWxDb21wb25lbnQsXG4gICAgTWVtYmVySW1wb3J0TW9kYWxDb21wb25lbnQsXG4gICAgQXBpS2V5c01vZGFsQ29tcG9uZW50LFxuICAgIE9yZ0luZm9TaGVldENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicGFnZVwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBjb250ZW50OiBwYWdlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogcGFnZURlc2NyaXB0aW9uKCksXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICAgIDwhLS0gXCJBcHJlbmRlciBtw6FzIHNvYnJlIG9yZ2FuaXphY2lvbmVzXCIg4oCUIGJham8gZWwgdMOtdHVsbytzdWJ0w610dWxvXG4gICAgICAgICAgICAgcHJpbmNpcGFsIGRlIGxhIHZpc3RhIChhYnJlIGVsIGV4cGxhaW5lciBvcmctaW5mby1zaGVldCkuIC0tPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwib3JnLW1vcmUtaW5mby1saW5rXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk9yZ0luZm8oKVwiPlxuICAgICAgICAgIHt7IHR0KCdvcmdzTW9yZUluZm8nKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0luZm8pIHtcbiAgICAgICAgPCEtLSBPcmcgSW5mbyAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnaW5mb1RpdGxlJyksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIEBpZiAoY2FuRWRpdE9yZygpKSB7XG4gICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJlZGl0QnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvbkVkaXQoKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdkZXRhaWwnLCByb3dzOiA0IH1cIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAob3JnRXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cIm9yZ0Vycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIEBpZiAob3JnKCk7IGFzIG8pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWluZm8tY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLWZpZWxkIG9yZy1pbmZvLWZpZWxkLS1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tbGFiZWxcIj57eyB0dCgnaW5mb05hbWUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctaW5mby12YWx1ZVwiPnt7IG8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLWZpZWxkIG9yZy1pbmZvLWZpZWxkLS1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tbGFiZWxcIj57eyB0dCgnaW5mb0Rlc2NyaXB0aW9uJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tdmFsdWUgb3JnLWluZm8tdmFsdWUtLW11dGVkXCI+e3sgby5kZXNjcmlwdGlvbiB8fCAn4oCUJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWluZm8tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1pbmZvLWxhYmVsXCI+e3sgdHQoJ2luZm9QbGFuJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFuLWJhZGdlIHBsYW4tYmFkZ2UtLXt7IG8ucGxhbiB9fVwiPnt7IHBsYW5MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctaW5mby1sYWJlbFwiPnt7IHR0KCdpbmZvVHlwZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tdmFsdWVcIj57eyBvLnR5cGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd01lbWJlcnMpIHtcbiAgICAgICAgPCEtLSBNZW1iZXJzIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogdHQoJ21lbWJlcnNUaXRsZScpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICBAaWYgKG1lbWJlcnNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbi1sYXlvdXQgW3Byb3BzXT1cInsgcHJlc2V0OiAnbGlzdCcsIHJvd3M6IDMgfVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChtZW1iZXJzRXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cIm1lbWJlcnNFcnJvclN0YXRlKCkhXCIgLz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKG1lbWJlcnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdtZW1iZXJzRW1wdHknKSxcbiAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW1iZXJzLWxpc3RcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChtIG9mIHZpc2libGVNZW1iZXJzKCk7IHRyYWNrIG0udXNlcklkKSB7XG4gICAgICAgICAgICAgICAgICA8dmFsLW1lbWJlci1jYXJkXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidvcmctbWVtYmVyLScgKyBtLnVzZXJJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IG0udXNlcklkLFxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IG0uaGFuZGxlLFxuICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBtLmVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgIGF2YXRhclVybDogbS5hdmF0YXIsXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZUxhYmVsOiBtLnJvbGVzWzBdID8gcm9sZUxhYmVsKG0ucm9sZXNbMF0pIDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uQXJpYUxhYmVsOiB0dCgndmlld01lbWJlckN0YScpLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQWN0aW9uKT1cIm9uVmlld01lbWJlcihtKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoIXNob3dBbGxNZW1iZXJzKCkgJiYgbWVtYmVycygpLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVtYmVycy1zaG93LW1vcmVcIiAoY2xpY2spPVwic2hvd0FsbE1lbWJlcnMuc2V0KHRydWUpXCI+XG4gICAgICAgICAgICAgICAgICB7eyB0dCgnbWVtYmVyc1Nob3dNb3JlJykgfX0gKHt7IG1lbWJlcnMoKS5sZW5ndGggLSAzIH19KVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc2hvd0FsbE1lbWJlcnMoKSAmJiBtZW1iZXJzTmV4dFRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVtYmVycy1zaG93LW1vcmVcIiBbZGlzYWJsZWRdPVwibG9hZGluZ01vcmVNZW1iZXJzKClcIiAoY2xpY2spPVwibG9hZE1vcmVNZW1iZXJzKClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGxvYWRpbmdNb3JlTWVtYmVycygpID8gJ+KApicgOiB0dCgnbWVtYmVyc1Nob3dNb3JlJykgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93Um9sZXMpIHtcbiAgICAgICAgPCEtLSBSb2xlcyB5IHBlcm1pc29zOiBzZWNjaW9uIGV4cGxpY2F0aXZhLCBkZXRhbGxlIGVuIGxhIHJ1dGEgZGUgcGVybWlzb3MgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiB0dCgncm9sZXNTZWN0aW9uVGl0bGUnKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogdHQoJ3JvbGVzSGludCcpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwidmlld1Blcm1pc3Npb25zQnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvblZpZXdQZXJtaXNzaW9ucygpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93SW52aXRlKSB7XG4gICAgICAgIDwhLS0gSW52aXRlOiBzb2xvIGFkbWluKyAoZ2F0aW5nIFJCQUMgaW50ZXJubykgLS0+XG4gICAgICAgIDxzZWN0aW9uICp2YWxIYXNQZXJtaXNzaW9uPVwiJ3VzZXJzOionXCIgY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJvcmctaW52aXRlLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52aXRlLWN0YVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludml0ZS1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ2ludml0ZUN0YVRpdGxlJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdpbnZpdGVDdGFIaW50JyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJvcGVuSW52aXRlQnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvbk9wZW5JbnZpdGUoKVwiIC8+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwib3BlbkltcG9ydEJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25PcGVuSW1wb3J0KClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gQVBJIEtleXM6IHNlY2Npw7NuIHByb3BpYS4gSW50ZWdyYWNpb25lcyBNMk0gKGltcG9ydCBkZSBtaWVtYnJvcywgZXRjLikuIC0tPlxuICAgICAgPHNlY3Rpb24gKnZhbEhhc1Blcm1pc3Npb249XCInYXBpLWtleXM6cmVhZCdcIiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIiBkYXRhLXRlc3RpZD1cIm9yZy1hcGlrZXlzLXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImludml0ZS1jdGFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52aXRlLWN0YV9fdGV4dFwiPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgY29udGVudDogdHQoJ2FwaUtleXNTZWN0aW9uVGl0bGUnKSB9XCIgLz5cbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogZmFsc2UsIGNvbnRlbnQ6IHR0KCdhcGlLZXlzU2VjdGlvbkhpbnQnKSB9XCIgLz5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJvcmctbW9yZS1pbmZvLWxpbmtcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQXBpS2V5c0luZm8oKVwiPlxuICAgICAgICAgICAgICB7eyB0dCgnYXBpS2V5c01vcmVJbmZvJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJvcGVuQXBpS2V5c0J1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25PcGVuQXBpS2V5cygpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93VHJhbnNmZXJPd25lcnNoaXAgJiYgaXNPd25lcigpKSB7XG4gICAgICAgIDwhLS0gVHJhbnNmZXIgb3duZXJzaGlwOiBzb2xvIG93bmVyIChnYXRpbmcgUkJBQyBpbnRlcm5vKSAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJvcmctdHJhbnNmZXItc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiB0dCgndHJhbnNmZXJUaXRsZScpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgndHJhbnNmZXJIaW50JyksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmICh0cmFuc2ZlcmFibGVNZW1iZXJzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwidHJhbnNmZXJCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9uT3BlblRyYW5zZmVyKClcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ21lbWJlcnNFbXB0eScpLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dMZWF2ZSkge1xuICAgICAgICA8IS0tIExlYXZlIG9yZyAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdsZWF2ZVRpdGxlJyksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGlzT3duZXIoKSA/IHR0KCdsZWF2ZU93bmVySGludCcpIDogdHQoJ2xlYXZlSGludCcpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwibGVhdmVCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9uTGVhdmUoKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGlzRGVidWcpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uIHJiYWMtZGVidWdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXItcm93XCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1JCQUMgKGxpdmUpJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYmFjLWRlYnVnX19ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmJhYy1kZWJ1Z19fcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmJhYy1kZWJ1Z19fbGFiZWxcIj5Sb2xlczwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYmFjLWRlYnVnX192YWx1ZVwiPnt7IGF1dGgucm9sZXMoKS5qb2luKCcsICcpIHx8ICfigJQnIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmJhYy1kZWJ1Z19fcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmJhYy1kZWJ1Z19fbGFiZWxcIj5QZXJtaXNvczwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYmFjLWRlYnVnX192YWx1ZSByYmFjLWRlYnVnX192YWx1ZS0tcGVybXNcIj57eyBhdXRoLnBlcm1pc3Npb25zKCkuam9pbignLCAnKSB8fCAn4oCUJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5vcmctbW9yZS1pbmZvLWxpbmsge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gKyAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLWhlYWRlci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnJvdy1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucy0tZ2FwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuaW52aXRlLWN0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgLmludml0ZS1jdGFfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby1jYXJkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAub3JnLWluZm8tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAub3JnLWluZm8tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm9yZy1pbmZvLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgICAgfVxuICAgICAgLm9yZy1pbmZvLWZpZWxkIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuICAgICAgfVxuICAgICAgLm9yZy1pbmZvLWZpZWxkLS1mdWxsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAub3JnLWluZm8tZmllbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgICAub3JnLWluZm8tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby1yb3cgLm9yZy1pbmZvLWZpZWxkIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby1yb3cgLm9yZy1pbmZvLWZpZWxkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG4gICAgICB9XG4gICAgICAub3JnLWluZm8tbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby12YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby12YWx1ZS0tbXV0ZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICB9XG4gICAgICAucGxhbi1iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLnBsYW4tYmFkZ2UtLWZyZWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUsICNkN2Q4ZGEpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLnBsYW4tYmFkZ2UtLXBybyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgICAucGxhbi1iYWRnZS0tZW50ZXJwcmlzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWM1NDI7XG4gICAgICAgIGNvbG9yOiAjMjIyO1xuICAgICAgfVxuICAgICAgLm1lbWJlcnMtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm1lbWJlcnMtc2hvdy1tb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1ZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICAgIC5yYmFjLWRlYnVnX19ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgIH1cbiAgICAgIC5yYmFjLWRlYnVnX19yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1Z19fbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIG1pbi13aWR0aDogNzJweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1Z19fdmFsdWUge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1Z19fdmFsdWUtLXBlcm1zIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgZmlyZXN0b3JlID0gaW5qZWN0KEZpcmVzdG9yZSk7XG4gIHByaXZhdGUgY29uZmlybURpYWxvZyA9IGluamVjdChDb25maXJtYXRpb25EaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICByZWFkb25seSBpc0RlYnVnID0gaXNEZXZNb2RlKCk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYG9yZ2FuaXphdGlvbkNvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaE9yZ2FuaXphdGlvblJvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBgQElucHV0YCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBPcmdhbml6YXRpb25WaWV3Q29uZmlnO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxPcmdhbml6YXRpb25WaWV3Q29uZmlnLCAnb25PcmdFZGl0ZWQnIHwgJ29uTWVtYmVySW52aXRlZCcgfCAnb25Pd25lcnNoaXBUcmFuc2ZlcnJlZCcgfCAnb25MZWZ0T3JnJz4+ICZcbiAgICAgIFBpY2s8T3JnYW5pemF0aW9uVmlld0NvbmZpZywgJ29uT3JnRWRpdGVkJyB8ICdvbk1lbWJlckludml0ZWQnIHwgJ29uT3duZXJzaGlwVHJhbnNmZXJyZWQnIHwgJ29uTGVmdE9yZyc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydvcmdhbml6YXRpb25Db25maWcnXSA/PyB7fSkgYXMgT3JnYW5pemF0aW9uVmlld0NvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IE9yZ2FuaXphdGlvblZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93SW5mbzogbWVyZ2VkLnNob3dJbmZvID8/IHRydWUsXG4gICAgICBzaG93TWVtYmVyczogbWVyZ2VkLnNob3dNZW1iZXJzID8/IHRydWUsXG4gICAgICBzaG93Um9sZXM6IG1lcmdlZC5zaG93Um9sZXMgPz8gdHJ1ZSxcbiAgICAgIHNob3dJbnZpdGU6IG1lcmdlZC5zaG93SW52aXRlID8/IHRydWUsXG4gICAgICBzaG93VHJhbnNmZXJPd25lcnNoaXA6IG1lcmdlZC5zaG93VHJhbnNmZXJPd25lcnNoaXAgPz8gdHJ1ZSxcbiAgICAgIHNob3dMZWF2ZTogbWVyZ2VkLnNob3dMZWF2ZSA/PyB0cnVlLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICB2aWV3UGVybWlzc2lvbnNSb3V0ZTogbWVyZ2VkLnZpZXdQZXJtaXNzaW9uc1JvdXRlID8/IERFRkFVTFRfVklFV19QRVJNSVNTSU9OU19ST1VURSxcbiAgICAgIGxlYXZlUmVkaXJlY3RSb3V0ZTogbWVyZ2VkLmxlYXZlUmVkaXJlY3RSb3V0ZSA/PyBERUZBVUxUX0xFQVZFX1JFRElSRUNUX1JPVVRFLFxuICAgICAgb25PcmdFZGl0ZWQ6IG1lcmdlZC5vbk9yZ0VkaXRlZCxcbiAgICAgIG9uTWVtYmVySW52aXRlZDogbWVyZ2VkLm9uTWVtYmVySW52aXRlZCxcbiAgICAgIG9uT3duZXJzaGlwVHJhbnNmZXJyZWQ6IG1lcmdlZC5vbk93bmVyc2hpcFRyYW5zZmVycmVkLFxuICAgICAgb25MZWZ0T3JnOiBtZXJnZWQub25MZWZ0T3JnLFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBvcmcgPSBzaWduYWw8T3JnYW5pemF0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBsZWF2aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcmdMb2FkRXJyb3IgPSBzaWduYWw8dW5rbm93bj4obnVsbCk7XG5cbiAgcmVhZG9ubHkgb3JnRXJyb3JTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YSB8IG51bGw+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGVyciA9IHRoaXMub3JnTG9hZEVycm9yKCk7XG4gICAgaWYgKCFlcnIpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBjcmVhdGVFcnJvclN0YXRlUHJvcHMoZXJyLCB7XG4gICAgICB0aXRsZTogeyBvZmZsaW5lOiB0aGlzLnR0KCdvZmZsaW5lVGl0bGUnKSwgZXJyb3I6IHRoaXMudHQoJ2Vycm9yVGl0bGUnKSB9LFxuICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgb2ZmbGluZTogdGhpcy50dCgnb2ZmbGluZUhpbnQnKSxcbiAgICAgICAgZXJyb3I6IGludGVycHJldEVycm9yKGVycikubWVzc2FnZSxcbiAgICAgIH0sXG4gICAgICByZXRyeUxhYmVsOiB0aGlzLnR0KCdyZXRyeScpLFxuICAgICAgb25SZXRyeTogKCkgPT4gdGhpcy5sb2FkT3JnKCksXG4gICAgICByZXRyeWluZzogdGhpcy5sb2FkaW5nKCksXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG1lbWJlcnMgPSBzaWduYWw8TWVtYmVyRGV0YWlsW10+KFtdKTtcbiAgcmVhZG9ubHkgbWVtYmVyc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lbWJlcnNMb2FkRXJyb3IgPSBzaWduYWw8dW5rbm93bj4obnVsbCk7XG5cbiAgcmVhZG9ubHkgbWVtYmVyc0Vycm9yU3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGEgfCBudWxsPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBlcnIgPSB0aGlzLm1lbWJlcnNMb2FkRXJyb3IoKTtcbiAgICBpZiAoIWVycikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yU3RhdGVQcm9wcyhlcnIsIHtcbiAgICAgIHRpdGxlOiB7IG9mZmxpbmU6IHRoaXMudHQoJ29mZmxpbmVUaXRsZScpLCBlcnJvcjogdGhpcy50dCgnZXJyb3JUaXRsZScpIH0sXG4gICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICBvZmZsaW5lOiB0aGlzLnR0KCdvZmZsaW5lSGludCcpLFxuICAgICAgICBlcnJvcjogaW50ZXJwcmV0RXJyb3IoZXJyKS5tZXNzYWdlLFxuICAgICAgfSxcbiAgICAgIHJldHJ5TGFiZWw6IHRoaXMudHQoJ3JldHJ5JyksXG4gICAgICBvblJldHJ5OiAoKSA9PiB0aGlzLmxvYWRNZW1iZXJzKCksXG4gICAgICByZXRyeWluZzogdGhpcy5tZW1iZXJzTG9hZGluZygpLFxuICAgIH0pO1xuICB9KTtcblxuICByZWFkb25seSBtZW1iZXJzTmV4dFRva2VuID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBsb2FkaW5nTW9yZU1lbWJlcnMgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzaG93QWxsTWVtYmVycyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHZpc2libGVNZW1iZXJzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuc2hvd0FsbE1lbWJlcnMoKSA/IHRoaXMubWVtYmVycygpIDogdGhpcy5tZW1iZXJzKCkuc2xpY2UoMCwgMykpKTtcbiAgcmVhZG9ubHkgdHJhbnNmZXJyaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgYXZhaWxhYmxlUm9sZXMgPSBzaWduYWw8T3JnUm9sZVtdPihbXG4gICAgeyBpZDogJ3ZpZXdlcicsIG5hbWU6ICd2aWV3ZXInIH0sXG4gICAgeyBpZDogJ2VkaXRvcicsIG5hbWU6ICdlZGl0b3InIH0sXG4gICAgeyBpZDogJ2FkbWluJywgbmFtZTogJ2FkbWluJyB9LFxuICBdKTtcblxuICByZWFkb25seSBhY3RpdmVPcmdJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7XG4gICAgICBhY3RpdmVPcmdJZD86IHN0cmluZztcbiAgICAgIGFjdGl2ZU9yZz86IHN0cmluZztcbiAgICB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9KTtcblxuICByZWFkb25seSB1c2VySWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF1dGgudXNlcigpPy51c2VySWQgPz8gJycpO1xuXG4gIHJlYWRvbmx5IGlzT3duZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbyA9IHRoaXMub3JnKCk7XG4gICAgY29uc3QgdWlkID0gdGhpcy51c2VySWQoKTtcbiAgICByZXR1cm4gISFvICYmICEhdWlkICYmIG8ub3duZXJJZCA9PT0gdWlkO1xuICB9KTtcblxuICByZWFkb25seSBjYW5FZGl0T3JnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pc093bmVyKCkgfHwgdGhpcy5hdXRoLmhhc1Blcm1pc3Npb24oJ29yZzptYW5hZ2UnKSk7XG5cbiAgcmVhZG9ubHkgY2FuTWFuYWdlTWVtYmVycyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pc093bmVyKCkpIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IHVpZCA9IHRoaXMudXNlcklkKCk7XG4gICAgY29uc3QgbWUgPSB0aGlzLm1lbWJlcnMoKS5maW5kKG0gPT4gbS51c2VySWQgPT09IHVpZCk7XG4gICAgaWYgKCFtZSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBtZS5yb2xlcy5zb21lKHIgPT4gciA9PT0gJ2FkbWluJyB8fCByID09PSAnc3VwZXJfYWRtaW4nKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgncGFnZVRpdGxlJykpO1xuICByZWFkb25seSBwYWdlRGVzY3JpcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwYWdlRGVzY3JpcHRpb24nKSk7XG5cbiAgcmVhZG9ubHkgcGxhbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHBsYW4gPSB0aGlzLm9yZygpPy5wbGFuO1xuICAgIGlmIChwbGFuID09PSAncHJvJykgcmV0dXJuIHRoaXMudHQoJ3BsYW5Qcm8nKTtcbiAgICBpZiAocGxhbiA9PT0gJ2VudGVycHJpc2UnKSByZXR1cm4gdGhpcy50dCgncGxhbkVudGVycHJpc2UnKTtcbiAgICByZXR1cm4gdGhpcy50dCgncGxhbkZyZWUnKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZWRpdEJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnZWRpdEN0YScpLFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdzbWFsbCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gIH0pKTtcblxuICByZWFkb25seSBsZWF2ZUJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnbGVhdmVDdGEnKSxcbiAgICB0b2tlbjogJ29yZy1sZWF2ZScsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHN0YXRlOiB0aGlzLmlzT3duZXIoKSB8fCB0aGlzLmxlYXZpbmcoKSA/IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgdHJhbnNmZXJhYmxlTWVtYmVycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWVtYmVycygpLmZpbHRlcihtID0+IG0udXNlcklkICE9PSB0aGlzLnVzZXJJZCgpKSk7XG5cbiAgcmVhZG9ubHkgdmlld1Blcm1pc3Npb25zQnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdyb2xlc1ZpZXdQZXJtcycpLFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ29yZy12aWV3LXBlcm1pc3Npb25zJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHRyYW5zZmVyQnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCd0cmFuc2ZlckN0YScpLFxuICAgIHRva2VuOiAnb3JnLXRyYW5zZmVyLXN1Ym1pdCcsXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHN0YXRlOiB0aGlzLnRyYW5zZmVycmluZygpID8gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gIH0pKTtcblxuICByZWFkb25seSBvcGVuSW52aXRlQnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdpbnZpdGVPcGVuJyksXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnc29saWQnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IG9wZW5JbXBvcnRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ2ltcG9ydE9wZW4nKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gIH0pKTtcblxuICByZWFkb25seSBvcGVuQXBpS2V5c0J1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnYXBpS2V5c09wZW4nKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdjbGVhcicsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICB9KSk7XG5cbiAgLyoqIEd1YXJkYSBwYXJhIGRldGVjdGFyIGVsIHByaW1lciBkaXNwYXJvIGRlbCBlZmZlY3QgKGV2aXRhIGRvYmxlIGNhcmdhKS4gKi9cbiAgcHJpdmF0ZSBsYXN0TG9hZGVkT3JnSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UobnMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KG5zLCBPUkdBTklaQVRJT05fVklFV19JMThOKTtcbiAgICB9XG4gICAgdGhpcy5uYXYuc2V0QmFja0hlYWRlcigncGFnZVRpdGxlJywgbnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG5cbiAgICAvLyBBdXRvLXJlbG9hZCBlbiBvcmctc3dpdGNoOiByZWFjY2lvbmEgYSBhY3RpdmVPcmdJZCgpIHkgcmVjYXJnYSBvcmcgKyBtaWVtYnJvc1xuICAgIC8vIGN1YW5kbyBlbCB1c3VhcmlvIGNhbWJpYSBkZSBvcmdhbml6YWNpw7NuIGFjdGl2YSBtaWVudHJhcyBsYSB2aXN0YSBlc3TDoVxuICAgIC8vIG1vbnRhZGEuIEN1YnJlIHRhbWJpw6luIGxhIGNhcmdhIGluaWNpYWwg4oCUIGBsYXN0TG9hZGVkT3JnSWRgIGV2aXRhIHJlY2FyZ2FyXG4gICAgLy8gZG9zIHZlY2VzIGVsIG1pc21vIGlkIChwLmVqLiBzaSBlbCBlZmZlY3QgcmUtY29ycmUgcG9yIG90cmEgZGVwZW5kZW5jaWEpLlxuICAgIC8vIGBhbGxvd1NpZ25hbFdyaXRlc2AgcG9ycXVlIGxhcyBsb2FkIGZucyBlc2NyaWJlbiBzaWduYWxzIHPDrW5jcm9uYW1lbnRlXG4gICAgLy8gKGxvYWRpbmcvZXJyb3IvdG9rZW4pIOKAlCBBbmd1bGFyIDE4IGJsb3F1ZWEgd3JpdGVzIGVuIGVmZmVjdCBzaW4gZWwgZmxhZy5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgICAgICBpZiAob3JnSWQgPT09IHRoaXMubGFzdExvYWRlZE9yZ0lkKSByZXR1cm47XG4gICAgICAgIHRoaXMubGFzdExvYWRlZE9yZ0lkID0gb3JnSWQ7XG4gICAgICAgIHRoaXMubG9hZE9yZygpO1xuICAgICAgICB0aGlzLmxvYWRNZW1iZXJzKCk7XG4gICAgICAgIHRoaXMubG9hZFJvbGVzKCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIGNvbm5lY3RQYWdlUmVmcmVzaChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkT3JnKCksIHRoaXMubG9hZE1lbWJlcnMoKV0pO1xuICAgIH0pO1xuICB9XG5cbiAgb25FZGl0KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IEVkaXRPcmdNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIG9yZzogdGhpcy5vcmcoKSxcbiAgICAgICAgb25TdWNjZXNzOiAodXBkYXRlZDogT3JnYW5pemF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcmcuc2V0KHVwZGF0ZWQpO1xuICAgICAgICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbk9yZ0VkaXRlZD8uKCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgYnJlYWtwb2ludHM6IFswLCAwLjg1XSxcbiAgICAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuODUsXG4gICAgICAgIHNob3dIYW5kbGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25MZWF2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pc093bmVyKCkgfHwgdGhpcy5sZWF2aW5nKCkpIHJldHVybjtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbmZpcm1EaWFsb2cuY29uZmlybURlc3RydWN0aXZlKHtcbiAgICAgIHRpdGxlOiB0aGlzLnR0KCdsZWF2ZVRpdGxlJyksXG4gICAgICBtZXNzYWdlOiB0aGlzLnR0KCdsZWF2ZUNvbmZpcm0nKSxcbiAgICAgIGNvbmZpcm1CdXR0b246IHsgdGV4dDogdGhpcy50dCgnbGVhdmVDdGEnKSB9LFxuICAgICAgY2FuY2VsQnV0dG9uOiB7IHRleHQ6IHRoaXMudHQoJ2NhbmNlbEN0YScpIH0sXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQuY29uZmlybWVkKSByZXR1cm47XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgaWYgKCFvcmdJZCkgcmV0dXJuO1xuICAgIHRoaXMubGVhdmluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMub3JnU2VydmljZS5sZWF2ZU9yZyhvcmdJZCkpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50dCgnbGVhdmVTdWNjZXNzJyksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBjZmcgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCk7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKGNmZy5sZWF2ZVJlZGlyZWN0Um91dGUpO1xuICAgICAgY2ZnLm9uTGVmdE9yZz8uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdvcmdhbml6YXRpb24ubGVhdmUnLFxuICAgICAgICBmYWxsYmFja0tleTogJ2xlYXZlRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubGVhdmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uT3Blbkludml0ZSgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBJbnZpdGVNZW1iZXJNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIG9yZ0lkOiB0aGlzLmFjdGl2ZU9yZ0lkKCksXG4gICAgICAgIGV4aXN0aW5nTWVtYmVySWRzOiB0aGlzLm1lbWJlcnMoKS5tYXAobSA9PiBtLnVzZXJJZCksXG4gICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZE1lbWJlcnMoKTtcbiAgICAgICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25NZW1iZXJJbnZpdGVkPy4oKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuOTJdLFxuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogMC45MixcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvbk9wZW5JbXBvcnQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogTWVtYmVySW1wb3J0TW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBvcmdJZDogdGhpcy5hY3RpdmVPcmdJZCgpLFxuICAgICAgICBhdmFpbGFibGVSb2xlczogdGhpcy5hdmFpbGFibGVSb2xlcygpLm1hcChyID0+IHIubmFtZSksXG4gICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZE1lbWJlcnMoKTtcbiAgICAgICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25NZW1iZXJJbnZpdGVkPy4oKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuOTJdLFxuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogMC45MixcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvbk9wZW5BcGlLZXlzKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IEFwaUtleXNNb2RhbENvbXBvbmVudCxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC45Ml0sXG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjkyLFxuICAgICAgICBzaG93SGFuZGxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFwiTcOhcyBpbmZvcm1hY2nDs25cIiBzb2JyZSBvcmdhbml6YWNpb25lcyDigJQgbWlzbW8gc2hlZXQgZXhwbGljYXRpdm8gcXVlIG11ZXN0cmFcbiAgLy8gYWNjb3VudC12aWV3IHNpbiBvcmcsIHBlcm8gZGlzcG9uaWJsZSBzaWVtcHJlICh0b2RvIHVzZXIgdGllbmUgb3JnIHBvciBkZWZlY3RvKS5cbiAgb25PcmdJbmZvKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IE9yZ0luZm9TaGVldENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdvcmdzSW5mb1RpdGxlJyksXG4gICAgICAgIHN1YnRpdGxlOiB0aGlzLnR0KCdvcmdzSW5mb1N1YnRpdGxlJyksXG4gICAgICAgIGJvZHk6IHRoaXMudHQoJ29yZ3NJbmZvQ29udGVudCcpLFxuICAgICAgICBjbG9zZUxhYmVsOiB0aGlzLnR0KCdvcmdzSW5mb0Nsb3NlJyksXG4gICAgICAgIGNsb3NlUHJvcHM6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLnR0KCdvcmdzSW5mb0Nsb3NlJyksXG4gICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czogeyBicmVha3BvaW50czogWzAsIDAuODVdLCBpbml0aWFsQnJlYWtwb2ludDogMC44NSwgc2hvd0hhbmRsZTogdHJ1ZSB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gXCJNw6FzIGluZm9ybWFjacOzblwiIGRlIGxhIHNlY2Npw7NuIEludGVncmFjaW9uZXMg4oCUIGFicmUgdW4gc2hlZXQgRVhQTElDQVRJVk9cbiAgLy8gKGFydGljbGUtc3R5bGUsIHNpbiBsYXMgZmVhdHVyZS1jYXJkcyBkZSBvcmcpLCBOTyBlbCBtb2RhbCBkZSBnZXN0acOzbiBkZSBBUElcbiAgLy8ga2V5cy4gTGEgZ2VzdGnDs24gc2UgYWJyZSBjb24gZWwgYm90w7NuIFwiR2VzdGlvbmFyXCIgKG9uT3BlbkFwaUtleXMpLlxuICBvbkFwaUtleXNJbmZvKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IE9yZ0luZm9TaGVldENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHNob3dGZWF0dXJlczogZmFsc2UsXG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdhcGlLZXlzSW5mb1RpdGxlJyksXG4gICAgICAgIHN1YnRpdGxlOiB0aGlzLnR0KCdhcGlLZXlzSW5mb1N1YnRpdGxlJyksXG4gICAgICAgIGJvZHk6IHRoaXMudHQoJ2FwaUtleXNJbmZvQ29udGVudCcpLFxuICAgICAgICBjbG9zZUxhYmVsOiB0aGlzLnR0KCdhcGlLZXlzSW5mb0Nsb3NlJyksXG4gICAgICAgIGNsb3NlUHJvcHM6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLnR0KCdhcGlLZXlzSW5mb0Nsb3NlJyksXG4gICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czogeyBicmVha3BvaW50czogWzAsIDAuODVdLCBpbml0aWFsQnJlYWtwb2ludDogMC44NSwgc2hvd0hhbmRsZTogdHJ1ZSB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25WaWV3UGVybWlzc2lvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVCeVVybCh0aGlzLnJlc29sdmVkQ29uZmlnKCkudmlld1Blcm1pc3Npb25zUm91dGUpO1xuICB9XG5cbiAgb25PcGVuVHJhbnNmZXIoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogVHJhbnNmZXJPd25lcnNoaXBNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIG1lbWJlcnM6IHRoaXMudHJhbnNmZXJhYmxlTWVtYmVycygpLFxuICAgICAgICBvbkNvbmZpcm06IChuZXdPd25lcklkOiBzdHJpbmcpID0+IHZvaWQgdGhpcy5vblRyYW5zZmVyKG5ld093bmVySWQpLFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC43NV0sXG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjc1LFxuICAgICAgICBzaG93SGFuZGxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uVHJhbnNmZXIobmV3T3duZXJJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFuZXdPd25lcklkIHx8IHRoaXMudHJhbnNmZXJyaW5nKCkpIHJldHVybjtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbmZpcm1EaWFsb2cuY29uZmlybURlc3RydWN0aXZlKHtcbiAgICAgIHRpdGxlOiB0aGlzLnR0KCd0cmFuc2ZlclRpdGxlJyksXG4gICAgICBtZXNzYWdlOiB0aGlzLnR0KCd0cmFuc2ZlckNvbmZpcm0nKSxcbiAgICAgIGNvbmZpcm1CdXR0b246IHsgdGV4dDogdGhpcy50dCgndHJhbnNmZXJDdGEnKSB9LFxuICAgICAgY2FuY2VsQnV0dG9uOiB7IHRleHQ6IHRoaXMudHQoJ2NhbmNlbEN0YScpIH0sXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQuY29uZmlybWVkKSByZXR1cm47XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgaWYgKCFvcmdJZCkgcmV0dXJuO1xuICAgIHRoaXMudHJhbnNmZXJyaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5vcmdTZXJ2aWNlLnRyYW5zZmVyT3duZXJzaGlwKG9yZ0lkLCBuZXdPd25lcklkKSk7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCd0cmFuc2ZlclN1Y2Nlc3MnKSxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgZHVyYXRpb246IDM1MDAsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubG9hZE9yZygpO1xuICAgICAgdGhpcy5sb2FkTWVtYmVycygpO1xuICAgICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uT3duZXJzaGlwVHJhbnNmZXJyZWQ/LigpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnb3JnYW5pemF0aW9uLnRyYW5zZmVyJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICd0cmFuc2ZlckVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyxcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnRyYW5zZmVycmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9yZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLm9yZ0xvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgdGhpcy5vcmdTZXJ2aWNlLmdldE9yZyhvcmdJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogb3JnID0+IHtcbiAgICAgICAgICB0aGlzLm9yZy5zZXQob3JnKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMub3JnTG9hZEVycm9yLnNldChlcnIpO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZE1lbWJlcnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgaWYgKCFvcmdJZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIHRoaXMubWVtYmVyc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMubWVtYmVyc0xvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgdGhpcy5tZW1iZXJzTmV4dFRva2VuLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dBbGxNZW1iZXJzLnNldChmYWxzZSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgdGhpcy5vcmdTZXJ2aWNlLmdldE9yZ01lbWJlcnMob3JnSWQsIHsgbGltaXQ6IDIwIH0pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGFzeW5jIHJlcyA9PiB7XG4gICAgICAgICAgY29uc3QgY2FyZHMgPSBhd2FpdCB0aGlzLmVucmljaFdpdGhQcm9maWxlcyhyZXMubWVtYmVycyk7XG4gICAgICAgICAgdGhpcy5tZW1iZXJzLnNldChjYXJkcyk7XG4gICAgICAgICAgdGhpcy5tZW1iZXJzTmV4dFRva2VuLnNldChyZXMubmV4dFRva2VuID8/IG51bGwpO1xuICAgICAgICAgIHRoaXMubWVtYmVyc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMubWVtYmVyc0xvYWRFcnJvci5zZXQoZXJyKTtcbiAgICAgICAgICB0aGlzLm1lbWJlcnNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkTW9yZU1lbWJlcnMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLm1lbWJlcnNOZXh0VG9rZW4oKTtcbiAgICBpZiAoIW9yZ0lkIHx8ICF0b2tlbiB8fCB0aGlzLmxvYWRpbmdNb3JlTWVtYmVycygpKSByZXR1cm47XG4gICAgdGhpcy5sb2FkaW5nTW9yZU1lbWJlcnMuc2V0KHRydWUpO1xuICAgIHRoaXMub3JnU2VydmljZS5nZXRPcmdNZW1iZXJzKG9yZ0lkLCB7IGxpbWl0OiAyMCwgbmV4dFRva2VuOiB0b2tlbiB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYXN5bmMgcmVzID0+IHtcbiAgICAgICAgY29uc3QgY2FyZHMgPSBhd2FpdCB0aGlzLmVucmljaFdpdGhQcm9maWxlcyhyZXMubWVtYmVycyk7XG4gICAgICAgIHRoaXMubWVtYmVycy51cGRhdGUocHJldiA9PiBbLi4ucHJldiwgLi4uY2FyZHNdKTtcbiAgICAgICAgdGhpcy5tZW1iZXJzTmV4dFRva2VuLnNldChyZXMubmV4dFRva2VuID8/IG51bGwpO1xuICAgICAgICB0aGlzLmxvYWRpbmdNb3JlTWVtYmVycy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgICAgY29udGV4dDogJ29yZ2FuaXphdGlvbi5sb2FkTW9yZU1lbWJlcnMnLFxuICAgICAgICAgIGZhbGxiYWNrS2V5OiAnbWVtYmVyc0Vycm9yJyxcbiAgICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2FkaW5nTW9yZU1lbWJlcnMuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVucmljaFdpdGhQcm9maWxlcyhtZW1iZXJzOiBPcmdNZW1iZXJbXSk6IFByb21pc2U8TWVtYmVyRGV0YWlsW10+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgbWVtYmVycy5tYXAoYXN5bmMgbSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qgc25hcCA9IGF3YWl0IGdldERvYyhkb2ModGhpcy5maXJlc3RvcmUsIGBwcm9maWxlcy8ke20udXNlcklkfWApKTtcbiAgICAgICAgICBjb25zdCBwID0gc25hcC5leGlzdHMoKSA/IHNuYXAuZGF0YSgpIDoge307XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLm0sXG4gICAgICAgICAgICBoYW5kbGU6IHBbJ2hhbmRsZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGF2YXRhcjogKHBbJ2F2YXRhclVybCddID8/IHBbJ2F2YXRhciddKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiAocFsnbmFtZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgfHwgbS5uYW1lLFxuICAgICAgICAgIH0gYXMgTWVtYmVyRGV0YWlsO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4gbSBhcyBNZW1iZXJEZXRhaWw7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0cy5tYXAociA9PiAoci5zdGF0dXMgPT09ICdmdWxmaWxsZWQnID8gci52YWx1ZSA6ICh7fSBhcyBNZW1iZXJEZXRhaWwpKSk7XG4gIH1cblxuICBsb2FkUm9sZXMoKTogdm9pZCB7XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgaWYgKCFvcmdJZCkgcmV0dXJuO1xuICAgIHRoaXMub3JnU2VydmljZS5saXN0T3JnUm9sZXMob3JnSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByb2xlcyA9PiB7XG4gICAgICAgIGlmIChyb2xlcy5sZW5ndGgpIHRoaXMuYXZhaWxhYmxlUm9sZXMuc2V0KHJvbGVzKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICByb2xlTGFiZWwocm9sZUlkT3JOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRyeSB0byBmaW5kIGJ5IGlkIGZpcnN0IChVVUlEKSwgdGhlbiBieSBuYW1lXG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmF2YWlsYWJsZVJvbGVzKCkuZmluZChyID0+IHIuaWQgPT09IHJvbGVJZE9yTmFtZSB8fCByLm5hbWUgPT09IHJvbGVJZE9yTmFtZSk7XG4gICAgY29uc3QgbmFtZSA9IGZvdW5kPy5uYW1lID8/IHJvbGVJZE9yTmFtZTtcbiAgICBjb25zdCBrZXlNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICB2aWV3ZXI6ICdyb2xlVmlld2VyJyxcbiAgICAgIGVkaXRvcjogJ3JvbGVFZGl0b3InLFxuICAgICAgYWRtaW46ICdyb2xlQWRtaW4nLFxuICAgICAgc3VwZXJfYWRtaW46ICdyb2xlU3VwZXJBZG1pbicsXG4gICAgfTtcbiAgICAvLyAxKSBSb2wgZ2Vuw6lyaWNvIGNvbm9jaWRvIOKGkiBsYWJlbCBpMThuLiAyKSBkaXNwbGF5TmFtZS9kZXNjcmlwY2nDs24gZGVsIGJhY2tlbmQuXG4gICAgLy8gMykgRmFsbGJhY2s6IGh1bWFuaXphciBlbCBub21icmUgY3J1ZG8gKGVqLiBcImJpbmdvX2FkbWluXCIg4oaSIFwiQmluZ28gQWRtaW5cIilcbiAgICAvLyAgICBwYXJhIG5vIG1vc3RyYXIgZWwgY8OzZGlnbyB0w6ljbmljbyBhIGFwcC1zcGVjaWZpYyByb2xlcy5cbiAgICBjb25zdCBtYXBwZWQgPSBrZXlNYXBbbmFtZV07XG4gICAgaWYgKG1hcHBlZCkge1xuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLnR0KG1hcHBlZCk7XG4gICAgICBpZiAobGFiZWwgJiYgIWxhYmVsLnN0YXJ0c1dpdGgoJ1snKSkgcmV0dXJuIGxhYmVsO1xuICAgIH1cbiAgICBpZiAoZm91bmQ/LmRlc2NyaXB0aW9uKSByZXR1cm4gZm91bmQuZGVzY3JpcHRpb247XG4gICAgcmV0dXJuIG5hbWVcbiAgICAgIC5zcGxpdCgvW18tXS8pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAubWFwKHcgPT4gdy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHcuc2xpY2UoMSkpXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgb25WaWV3TWVtYmVyKG1lbWJlcjogTWVtYmVyRGV0YWlsKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogTWVtYmVyRGV0YWlsTW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBtZW1iZXIsXG4gICAgICAgIG9yZ0lkOiB0aGlzLmFjdGl2ZU9yZ0lkKCksXG4gICAgICAgIGF2YWlsYWJsZVJvbGVzOiB0aGlzLmF2YWlsYWJsZVJvbGVzKCksXG4gICAgICAgIGNhbk1hbmFnZTogdGhpcy5jYW5NYW5hZ2VNZW1iZXJzKCkgJiYgbWVtYmVyLnVzZXJJZCAhPT0gdGhpcy51c2VySWQoKSxcbiAgICAgICAgaXNTZWxmOiBtZW1iZXIudXNlcklkID09PSB0aGlzLnVzZXJJZCgpLFxuICAgICAgICBvbkNoYW5nZWQ6ICgpID0+IHRoaXMubG9hZE1lbWJlcnMoKSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuN10sXG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjcsXG4gICAgICAgIHNob3dIYW5kbGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHR0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxufVxuIl19
1209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9vcmdhbml6YXRpb24tdmlldy9vcmdhbml6YXRpb24tdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQWtCLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV0RixP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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThSVCw0cEZBMVNDLGdCQUFnQiwyRUFDaEIsbUJBQW1CLCtFQUNuQixzQkFBc0IsNkZBQ3RCLHVCQUF1QixtRkFDdkIsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLGVBQWUsMEdBQ2YsbUJBQW1COzs0RkErY1YseUJBQXlCO2tCQTFkckMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQiwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIscUJBQXFCO3FCQUN0QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOFJUO3dEQStMUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgSW5wdXQsIGlzRGV2TW9kZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlyZXN0b3JlLCBkb2MsIGdldERvYyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZUVycm9yU3RhdGVQcm9wcyB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9mYWN0b3J5JztcbmltcG9ydCB7IE1lbWJlckNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVtYmVyLWNhcmQvbWVtYmVyLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNrZWxldG9uTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2tlbGV0b24tbGF5b3V0L3NrZWxldG9uLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgSGFzUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvaGFzLXBlcm1pc3Npb24uZGlyZWN0aXZlJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgaW50ZXJwcmV0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvaW50ZXJwcmV0LWVycm9yJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPcmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL29yZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ01lbWJlciwgT3JnUm9sZSwgT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcbmltcG9ydCB7IGNvbm5lY3RQYWdlUmVmcmVzaCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtcmVmcmVzaC9wYWdlLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuc2VydmljZSc7XG5cbmltcG9ydCB7IEVkaXRPcmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2VkaXQtb3JnLW1vZGFsL2VkaXQtb3JnLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnZpdGVNZW1iZXJNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2ludml0ZS1tZW1iZXItbW9kYWwvaW52aXRlLW1lbWJlci1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVtYmVyRGV0YWlsTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tZW1iZXItZGV0YWlsLW1vZGFsL21lbWJlci1kZXRhaWwtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbWJlckRldGFpbCB9IGZyb20gJy4uL21lbWJlci1kZXRhaWwtbW9kYWwvdHlwZXMnO1xuaW1wb3J0IHsgVHJhbnNmZXJPd25lcnNoaXBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3RyYW5zZmVyLW93bmVyc2hpcC1tb2RhbC90cmFuc2Zlci1vd25lcnNoaXAtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbWJlckltcG9ydE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVtYmVyLWltcG9ydC1tb2RhbC9tZW1iZXItaW1wb3J0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmdJbmZvU2hlZXRDb21wb25lbnQgfSBmcm9tICcuLi9vcmctaW5mby1zaGVldC9vcmctaW5mby1zaGVldC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBPcmdhbml6YXRpb25WaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBPUkdBTklaQVRJT05fVklFV19JMThOIH0gZnJvbSAnLi9vcmdhbml6YXRpb24tdmlldy5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuT3JnYW5pemF0aW9uJztcbmNvbnN0IERFRkFVTFRfVklFV19QRVJNSVNTSU9OU19ST1VURSA9ICcvYXBwL3NldHRpbmdzL3Blcm1pc3Npb25zJztcbmNvbnN0IERFRkFVTFRfQVBJX0tFWVNfUk9VVEUgPSAnL2FwcC9zZXR0aW5ncy9hcGkta2V5cyc7XG5jb25zdCBERUZBVUxUX0xFQVZFX1JFRElSRUNUX1JPVVRFID0gJy9hcHAvc2V0dGluZ3MvYWNjb3VudCc7XG5cbi8qKlxuICogYHZhbC1vcmdhbml6YXRpb24tdmlld2Ag4oCUIHZpc3RhIEdlc3Rpw7NuIGRlIG9yZ2FuaXphY2nDs24gZnVsbC1mZWF0dXJlXG4gKiBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZVxuICogQURSLTAyMS4gUmXDum5lOlxuICogIC0gKipJbmZvcm1hY2nDs24qKiDigJQgbm9tYnJlLCBkZXNjcmlwY2nDs24sIHBsYW4geSB0aXBvIGRlIGxhIG9yZyBhY3RpdmE7IGVkaXRhclxuICogICAgdsOtYSBtb2RhbCBgdmFsLWVkaXQtb3JnLW1vZGFsYCAoc29sbyBzaSBgY2FuRWRpdE9yZygpYCkuXG4gKiAgLSAqKk1pZW1icm9zKiog4oCUIGxpc3RhIHBhZ2luYWRhIChgdmFsLW1lbWJlci1jYXJkYCkgZW5yaXF1ZWNpZGEgY29uIHBlcmZpbGVzXG4gKiAgICBww7pibGljb3MgKEZpcmVzdG9yZSk7IHZlciBkZXRhbGxlIHbDrWEgYHZhbC1tZW1iZXItZGV0YWlsLW1vZGFsYC5cbiAqICAtICoqUm9sZXMgeSBwZXJtaXNvcyoqIOKAlCBzZWNjacOzbiBleHBsaWNhdGl2YSBjb24gQ1RBIGEgbGEgcnV0YSBkZSBwZXJtaXNvcy5cbiAqICAtICoqSW52aXRhcioqIOKAlCBDVEEgcXVlIGFicmUgYHZhbC1pbnZpdGUtbWVtYmVyLW1vZGFsYCAoZ2F0ZWFkYSBwb3IgYHVzZXJzOipgKS5cbiAqICAtICoqVHJhbnNmZXJpciBwcm9waWVkYWQqKiDigJQgYHZhbC10cmFuc2Zlci1vd25lcnNoaXAtbW9kYWxgIChzb2xvIG93bmVyKS5cbiAqICAtICoqU2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbioqIOKAlCBgT3JnU2VydmljZS5sZWF2ZU9yZ2AgY29uIGNvbmZpcm1hY2nDs25cbiAqICAgIGRlc3RydWN0aXZhLlxuICpcbiAqICoqUkJBQyBpbnRlcm5vKiogKGRlY2lzacOzbiBDVE8sIEFEUi0wMjEpOiBlbCBnYXRpbmcgZmlubyBzZSByZXN1ZWx2ZSBkZW50cm8gZGVcbiAqIGxhIHZpc3RhIHbDrWEgYEF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24oKWAgKyBgKnZhbEhhc1Blcm1pc3Npb25gICsgY29tcHV0ZWRzXG4gKiBgaXNPd25lcigpYC9gY2FuTWFuYWdlTWVtYmVycygpYC9gY2FuRWRpdE9yZygpYC4gTk8gc2UgZXhwb25lIGNvbW8gY29uZmlnLlxuICpcbiAqICoqQXV0by1yZWxvYWQgZW4gb3JnLXN3aXRjaCoqOiB1biBgZWZmZWN0YCByZWFjdGlvbmEgYSBgYWN0aXZlT3JnSWQoKWAgeSByZWNhcmdhXG4gKiBvcmcgKyBtaWVtYnJvcyBjdWFuZG8gZWwgdXN1YXJpbyBjYW1iaWEgZGUgb3JnYW5pemFjacOzbiBhY3RpdmEgbWllbnRyYXMgbGEgdmlzdGFcbiAqIGVzdMOhIG1vbnRhZGEuIEVsIGVmZmVjdCBjdWJyZSB0YW1iacOpbiBsYSBjYXJnYSBpbmljaWFsIChzaW4gZG9ibGUgY2FyZ2EpLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci4gYEFjdGl2YXRlZFJvdXRlYCBzZVxuICogaW55ZWN0YSBgeyBvcHRpb25hbDogdHJ1ZSB9YCBzb2xvIHBhcmEgbGVlciBlbCByb3V0ZSBkYXRhIGRlIGNvbmZpZyAobm8tb3BcbiAqIGVtYmViaWRvKS4gQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsXG4gKiBuYW1lc3BhY2UgKGRlZmF1bHQgYFNldHRpbmdzLk9yZ2FuaXphdGlvbmApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtb3JnYW5pemF0aW9uLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIEhhc1Blcm1pc3Npb25EaXJlY3RpdmUsXG4gICAgU2tlbGV0b25MYXlvdXRDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgTWVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBUcmFuc2Zlck93bmVyc2hpcE1vZGFsQ29tcG9uZW50LFxuICAgIE1lbWJlckltcG9ydE1vZGFsQ29tcG9uZW50LFxuICAgIE9yZ0luZm9TaGVldENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicGFnZVwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBjb250ZW50OiBwYWdlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogcGFnZURlc2NyaXB0aW9uKCksXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICAgIDwhLS0gXCJBcHJlbmRlciBtw6FzIHNvYnJlIG9yZ2FuaXphY2lvbmVzXCIg4oCUIGJham8gZWwgdMOtdHVsbytzdWJ0w610dWxvXG4gICAgICAgICAgICAgcHJpbmNpcGFsIGRlIGxhIHZpc3RhIChhYnJlIGVsIGV4cGxhaW5lciBvcmctaW5mby1zaGVldCkuIC0tPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwib3JnLW1vcmUtaW5mby1saW5rXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk9yZ0luZm8oKVwiPlxuICAgICAgICAgIHt7IHR0KCdvcmdzTW9yZUluZm8nKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0luZm8pIHtcbiAgICAgICAgPCEtLSBPcmcgSW5mbyAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnaW5mb1RpdGxlJyksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIEBpZiAoY2FuRWRpdE9yZygpKSB7XG4gICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJlZGl0QnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvbkVkaXQoKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdkZXRhaWwnLCByb3dzOiA0IH1cIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAob3JnRXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cIm9yZ0Vycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIEBpZiAob3JnKCk7IGFzIG8pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWluZm8tY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLWZpZWxkIG9yZy1pbmZvLWZpZWxkLS1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tbGFiZWxcIj57eyB0dCgnaW5mb05hbWUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctaW5mby12YWx1ZVwiPnt7IG8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLWZpZWxkIG9yZy1pbmZvLWZpZWxkLS1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tbGFiZWxcIj57eyB0dCgnaW5mb0Rlc2NyaXB0aW9uJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tdmFsdWUgb3JnLWluZm8tdmFsdWUtLW11dGVkXCI+e3sgby5kZXNjcmlwdGlvbiB8fCAn4oCUJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWluZm8tZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1pbmZvLWxhYmVsXCI+e3sgdHQoJ2luZm9QbGFuJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFuLWJhZGdlIHBsYW4tYmFkZ2UtLXt7IG8ucGxhbiB9fVwiPnt7IHBsYW5MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1pbmZvLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctaW5mby1sYWJlbFwiPnt7IHR0KCdpbmZvVHlwZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWluZm8tdmFsdWVcIj57eyBvLnR5cGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd01lbWJlcnMpIHtcbiAgICAgICAgPCEtLSBNZW1iZXJzIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogdHQoJ21lbWJlcnNUaXRsZScpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICBAaWYgKG1lbWJlcnNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbi1sYXlvdXQgW3Byb3BzXT1cInsgcHJlc2V0OiAnbGlzdCcsIHJvd3M6IDMgfVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChtZW1iZXJzRXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cIm1lbWJlcnNFcnJvclN0YXRlKCkhXCIgLz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKG1lbWJlcnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdtZW1iZXJzRW1wdHknKSxcbiAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW1iZXJzLWxpc3RcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChtIG9mIHZpc2libGVNZW1iZXJzKCk7IHRyYWNrIG0udXNlcklkKSB7XG4gICAgICAgICAgICAgICAgICA8dmFsLW1lbWJlci1jYXJkXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidvcmctbWVtYmVyLScgKyBtLnVzZXJJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IG0udXNlcklkLFxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IG0uaGFuZGxlLFxuICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBtLmVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgIGF2YXRhclVybDogbS5hdmF0YXIsXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZUxhYmVsOiBtLnJvbGVzWzBdID8gcm9sZUxhYmVsKG0ucm9sZXNbMF0pIDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uQXJpYUxhYmVsOiB0dCgndmlld01lbWJlckN0YScpLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQWN0aW9uKT1cIm9uVmlld01lbWJlcihtKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoIXNob3dBbGxNZW1iZXJzKCkgJiYgbWVtYmVycygpLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVtYmVycy1zaG93LW1vcmVcIiAoY2xpY2spPVwic2hvd0FsbE1lbWJlcnMuc2V0KHRydWUpXCI+XG4gICAgICAgICAgICAgICAgICB7eyB0dCgnbWVtYmVyc1Nob3dNb3JlJykgfX0gKHt7IG1lbWJlcnMoKS5sZW5ndGggLSAzIH19KVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc2hvd0FsbE1lbWJlcnMoKSAmJiBtZW1iZXJzTmV4dFRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVtYmVycy1zaG93LW1vcmVcIiBbZGlzYWJsZWRdPVwibG9hZGluZ01vcmVNZW1iZXJzKClcIiAoY2xpY2spPVwibG9hZE1vcmVNZW1iZXJzKClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGxvYWRpbmdNb3JlTWVtYmVycygpID8gJ+KApicgOiB0dCgnbWVtYmVyc1Nob3dNb3JlJykgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93Um9sZXMpIHtcbiAgICAgICAgPCEtLSBSb2xlcyB5IHBlcm1pc29zOiBzZWNjaW9uIGV4cGxpY2F0aXZhLCBkZXRhbGxlIGVuIGxhIHJ1dGEgZGUgcGVybWlzb3MgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiB0dCgncm9sZXNTZWN0aW9uVGl0bGUnKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogdHQoJ3JvbGVzSGludCcpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwidmlld1Blcm1pc3Npb25zQnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvblZpZXdQZXJtaXNzaW9ucygpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93SW52aXRlKSB7XG4gICAgICAgIDwhLS0gSW52aXRlOiBzb2xvIGFkbWluKyAoZ2F0aW5nIFJCQUMgaW50ZXJubykgLS0+XG4gICAgICAgIDxzZWN0aW9uICp2YWxIYXNQZXJtaXNzaW9uPVwiJ3VzZXJzOionXCIgY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJvcmctaW52aXRlLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52aXRlLWN0YVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludml0ZS1jdGFfX3RleHRcIj5cbiAgICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ2ludml0ZUN0YVRpdGxlJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdpbnZpdGVDdGFIaW50JyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJvcGVuSW52aXRlQnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvbk9wZW5JbnZpdGUoKVwiIC8+XG4gICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwib3BlbkltcG9ydEJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25PcGVuSW1wb3J0KClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gQVBJIEtleXM6IHNlY2Npw7NuIHByb3BpYS4gSW50ZWdyYWNpb25lcyBNMk0gKGltcG9ydCBkZSBtaWVtYnJvcywgZXRjLikuIC0tPlxuICAgICAgPHNlY3Rpb24gKnZhbEhhc1Blcm1pc3Npb249XCInYXBpLWtleXM6cmVhZCdcIiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIiBkYXRhLXRlc3RpZD1cIm9yZy1hcGlrZXlzLXNlY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImludml0ZS1jdGFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52aXRlLWN0YV9fdGV4dFwiPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgY29udGVudDogdHQoJ2FwaUtleXNTZWN0aW9uVGl0bGUnKSB9XCIgLz5cbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogZmFsc2UsIGNvbnRlbnQ6IHR0KCdhcGlLZXlzU2VjdGlvbkhpbnQnKSB9XCIgLz5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJvcmctbW9yZS1pbmZvLWxpbmtcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQXBpS2V5c0luZm8oKVwiPlxuICAgICAgICAgICAgICB7eyB0dCgnYXBpS2V5c01vcmVJbmZvJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJvcGVuQXBpS2V5c0J1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25PcGVuQXBpS2V5cygpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93VHJhbnNmZXJPd25lcnNoaXAgJiYgaXNPd25lcigpKSB7XG4gICAgICAgIDwhLS0gVHJhbnNmZXIgb3duZXJzaGlwOiBzb2xvIG93bmVyIChnYXRpbmcgUkJBQyBpbnRlcm5vKSAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJvcmctdHJhbnNmZXItc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiB0dCgndHJhbnNmZXJUaXRsZScpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgndHJhbnNmZXJIaW50JyksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmICh0cmFuc2ZlcmFibGVNZW1iZXJzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwidHJhbnNmZXJCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9uT3BlblRyYW5zZmVyKClcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ21lbWJlcnNFbXB0eScpLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dMZWF2ZSkge1xuICAgICAgICA8IS0tIExlYXZlIG9yZyAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdsZWF2ZVRpdGxlJyksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGlzT3duZXIoKSA/IHR0KCdsZWF2ZU93bmVySGludCcpIDogdHQoJ2xlYXZlSGludCcpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwibGVhdmVCdXR0b25Qcm9wcygpXCIgKGNsaWNrKT1cIm9uTGVhdmUoKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGlzRGVidWcpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uIHJiYWMtZGVidWdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXItcm93XCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1JCQUMgKGxpdmUpJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYmFjLWRlYnVnX19ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmJhYy1kZWJ1Z19fcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmJhYy1kZWJ1Z19fbGFiZWxcIj5Sb2xlczwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYmFjLWRlYnVnX192YWx1ZVwiPnt7IGF1dGgucm9sZXMoKS5qb2luKCcsICcpIHx8ICfigJQnIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmJhYy1kZWJ1Z19fcm93XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmJhYy1kZWJ1Z19fbGFiZWxcIj5QZXJtaXNvczwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYmFjLWRlYnVnX192YWx1ZSByYmFjLWRlYnVnX192YWx1ZS0tcGVybXNcIj57eyBhdXRoLnBlcm1pc3Npb25zKCkuam9pbignLCAnKSB8fCAn4oCUJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5vcmctbW9yZS1pbmZvLWxpbmsge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gKyAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLWhlYWRlci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuICAgICAgLnJvdy1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucy0tZ2FwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuaW52aXRlLWN0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgLmludml0ZS1jdGFfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby1jYXJkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAub3JnLWluZm8tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAub3JnLWluZm8tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm9yZy1pbmZvLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgICAgfVxuICAgICAgLm9yZy1pbmZvLWZpZWxkIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuICAgICAgfVxuICAgICAgLm9yZy1pbmZvLWZpZWxkLS1mdWxsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAub3JnLWluZm8tZmllbGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgICAub3JnLWluZm8tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby1yb3cgLm9yZy1pbmZvLWZpZWxkIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby1yb3cgLm9yZy1pbmZvLWZpZWxkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG4gICAgICB9XG4gICAgICAub3JnLWluZm8tbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby12YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctaW5mby12YWx1ZS0tbXV0ZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICB9XG4gICAgICAucGxhbi1iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgfVxuICAgICAgLnBsYW4tYmFkZ2UtLWZyZWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUsICNkN2Q4ZGEpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLnBsYW4tYmFkZ2UtLXBybyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgICAucGxhbi1iYWRnZS0tZW50ZXJwcmlzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWM1NDI7XG4gICAgICAgIGNvbG9yOiAjMjIyO1xuICAgICAgfVxuICAgICAgLm1lbWJlcnMtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm1lbWJlcnMtc2hvdy1tb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1ZyB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICAgIC5yYmFjLWRlYnVnX19ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgIH1cbiAgICAgIC5yYmFjLWRlYnVnX19yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1Z19fbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIG1pbi13aWR0aDogNzJweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1Z19fdmFsdWUge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICB9XG4gICAgICAucmJhYy1kZWJ1Z19fdmFsdWUtLXBlcm1zIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgZmlyZXN0b3JlID0gaW5qZWN0KEZpcmVzdG9yZSk7XG4gIHByaXZhdGUgY29uZmlybURpYWxvZyA9IGluamVjdChDb25maXJtYXRpb25EaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICByZWFkb25seSBpc0RlYnVnID0gaXNEZXZNb2RlKCk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYG9yZ2FuaXphdGlvbkNvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaE9yZ2FuaXphdGlvblJvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBgQElucHV0YCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBPcmdhbml6YXRpb25WaWV3Q29uZmlnO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxPcmdhbml6YXRpb25WaWV3Q29uZmlnLCAnb25PcmdFZGl0ZWQnIHwgJ29uTWVtYmVySW52aXRlZCcgfCAnb25Pd25lcnNoaXBUcmFuc2ZlcnJlZCcgfCAnb25MZWZ0T3JnJz4+ICZcbiAgICAgIFBpY2s8T3JnYW5pemF0aW9uVmlld0NvbmZpZywgJ29uT3JnRWRpdGVkJyB8ICdvbk1lbWJlckludml0ZWQnIHwgJ29uT3duZXJzaGlwVHJhbnNmZXJyZWQnIHwgJ29uTGVmdE9yZyc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydvcmdhbml6YXRpb25Db25maWcnXSA/PyB7fSkgYXMgT3JnYW5pemF0aW9uVmlld0NvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IE9yZ2FuaXphdGlvblZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93SW5mbzogbWVyZ2VkLnNob3dJbmZvID8/IHRydWUsXG4gICAgICBzaG93TWVtYmVyczogbWVyZ2VkLnNob3dNZW1iZXJzID8/IHRydWUsXG4gICAgICBzaG93Um9sZXM6IG1lcmdlZC5zaG93Um9sZXMgPz8gdHJ1ZSxcbiAgICAgIHNob3dJbnZpdGU6IG1lcmdlZC5zaG93SW52aXRlID8/IHRydWUsXG4gICAgICBzaG93VHJhbnNmZXJPd25lcnNoaXA6IG1lcmdlZC5zaG93VHJhbnNmZXJPd25lcnNoaXAgPz8gdHJ1ZSxcbiAgICAgIHNob3dMZWF2ZTogbWVyZ2VkLnNob3dMZWF2ZSA/PyB0cnVlLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICB2aWV3UGVybWlzc2lvbnNSb3V0ZTogbWVyZ2VkLnZpZXdQZXJtaXNzaW9uc1JvdXRlID8/IERFRkFVTFRfVklFV19QRVJNSVNTSU9OU19ST1VURSxcbiAgICAgIGFwaUtleXNSb3V0ZTogbWVyZ2VkLmFwaUtleXNSb3V0ZSA/PyBERUZBVUxUX0FQSV9LRVlTX1JPVVRFLFxuICAgICAgbGVhdmVSZWRpcmVjdFJvdXRlOiBtZXJnZWQubGVhdmVSZWRpcmVjdFJvdXRlID8/IERFRkFVTFRfTEVBVkVfUkVESVJFQ1RfUk9VVEUsXG4gICAgICBvbk9yZ0VkaXRlZDogbWVyZ2VkLm9uT3JnRWRpdGVkLFxuICAgICAgb25NZW1iZXJJbnZpdGVkOiBtZXJnZWQub25NZW1iZXJJbnZpdGVkLFxuICAgICAgb25Pd25lcnNoaXBUcmFuc2ZlcnJlZDogbWVyZ2VkLm9uT3duZXJzaGlwVHJhbnNmZXJyZWQsXG4gICAgICBvbkxlZnRPcmc6IG1lcmdlZC5vbkxlZnRPcmcsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IG9yZyA9IHNpZ25hbDxPcmdhbml6YXRpb24gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGxlYXZpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9yZ0xvYWRFcnJvciA9IHNpZ25hbDx1bmtub3duPihudWxsKTtcblxuICByZWFkb25seSBvcmdFcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgZXJyID0gdGhpcy5vcmdMb2FkRXJyb3IoKTtcbiAgICBpZiAoIWVycikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yU3RhdGVQcm9wcyhlcnIsIHtcbiAgICAgIHRpdGxlOiB7IG9mZmxpbmU6IHRoaXMudHQoJ29mZmxpbmVUaXRsZScpLCBlcnJvcjogdGhpcy50dCgnZXJyb3JUaXRsZScpIH0sXG4gICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICBvZmZsaW5lOiB0aGlzLnR0KCdvZmZsaW5lSGludCcpLFxuICAgICAgICBlcnJvcjogaW50ZXJwcmV0RXJyb3IoZXJyKS5tZXNzYWdlLFxuICAgICAgfSxcbiAgICAgIHJldHJ5TGFiZWw6IHRoaXMudHQoJ3JldHJ5JyksXG4gICAgICBvblJldHJ5OiAoKSA9PiB0aGlzLmxvYWRPcmcoKSxcbiAgICAgIHJldHJ5aW5nOiB0aGlzLmxvYWRpbmcoKSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbWVtYmVycyA9IHNpZ25hbDxNZW1iZXJEZXRhaWxbXT4oW10pO1xuICByZWFkb25seSBtZW1iZXJzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVtYmVyc0xvYWRFcnJvciA9IHNpZ25hbDx1bmtub3duPihudWxsKTtcblxuICByZWFkb25seSBtZW1iZXJzRXJyb3JTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YSB8IG51bGw+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGVyciA9IHRoaXMubWVtYmVyc0xvYWRFcnJvcigpO1xuICAgIGlmICghZXJyKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gY3JlYXRlRXJyb3JTdGF0ZVByb3BzKGVyciwge1xuICAgICAgdGl0bGU6IHsgb2ZmbGluZTogdGhpcy50dCgnb2ZmbGluZVRpdGxlJyksIGVycm9yOiB0aGlzLnR0KCdlcnJvclRpdGxlJykgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgIG9mZmxpbmU6IHRoaXMudHQoJ29mZmxpbmVIaW50JyksXG4gICAgICAgIGVycm9yOiBpbnRlcnByZXRFcnJvcihlcnIpLm1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgcmV0cnlMYWJlbDogdGhpcy50dCgncmV0cnknKSxcbiAgICAgIG9uUmV0cnk6ICgpID0+IHRoaXMubG9hZE1lbWJlcnMoKSxcbiAgICAgIHJldHJ5aW5nOiB0aGlzLm1lbWJlcnNMb2FkaW5nKCksXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG1lbWJlcnNOZXh0VG9rZW4gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxvYWRpbmdNb3JlTWVtYmVycyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dBbGxNZW1iZXJzID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgdmlzaWJsZU1lbWJlcnMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zaG93QWxsTWVtYmVycygpID8gdGhpcy5tZW1iZXJzKCkgOiB0aGlzLm1lbWJlcnMoKS5zbGljZSgwLCAzKSkpO1xuICByZWFkb25seSB0cmFuc2ZlcnJpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBhdmFpbGFibGVSb2xlcyA9IHNpZ25hbDxPcmdSb2xlW10+KFtcbiAgICB7IGlkOiAndmlld2VyJywgbmFtZTogJ3ZpZXdlcicgfSxcbiAgICB7IGlkOiAnZWRpdG9yJywgbmFtZTogJ2VkaXRvcicgfSxcbiAgICB7IGlkOiAnYWRtaW4nLCBuYW1lOiAnYWRtaW4nIH0sXG4gIF0pO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0lkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHtcbiAgICAgIGFjdGl2ZU9yZ0lkPzogc3RyaW5nO1xuICAgICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICAgIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHVzZXJJZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXV0aC51c2VyKCk/LnVzZXJJZCA/PyAnJyk7XG5cbiAgcmVhZG9ubHkgaXNPd25lciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBvID0gdGhpcy5vcmcoKTtcbiAgICBjb25zdCB1aWQgPSB0aGlzLnVzZXJJZCgpO1xuICAgIHJldHVybiAhIW8gJiYgISF1aWQgJiYgby5vd25lcklkID09PSB1aWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNhbkVkaXRPcmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzT3duZXIoKSB8fCB0aGlzLmF1dGguaGFzUGVybWlzc2lvbignb3JnOm1hbmFnZScpKTtcblxuICByZWFkb25seSBjYW5NYW5hZ2VNZW1iZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmlzT3duZXIoKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgdWlkID0gdGhpcy51c2VySWQoKTtcbiAgICBjb25zdCBtZSA9IHRoaXMubWVtYmVycygpLmZpbmQobSA9PiBtLnVzZXJJZCA9PT0gdWlkKTtcbiAgICBpZiAoIW1lKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIG1lLnJvbGVzLnNvbWUociA9PiByID09PSAnYWRtaW4nIHx8IHIgPT09ICdzdXBlcl9hZG1pbicpO1xuICB9KTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwYWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBhZ2VEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3BhZ2VEZXNjcmlwdGlvbicpKTtcblxuICByZWFkb25seSBwbGFuTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcGxhbiA9IHRoaXMub3JnKCk/LnBsYW47XG4gICAgaWYgKHBsYW4gPT09ICdwcm8nKSByZXR1cm4gdGhpcy50dCgncGxhblBybycpO1xuICAgIGlmIChwbGFuID09PSAnZW50ZXJwcmlzZScpIHJldHVybiB0aGlzLnR0KCdwbGFuRW50ZXJwcmlzZScpO1xuICAgIHJldHVybiB0aGlzLnR0KCdwbGFuRnJlZScpO1xuICB9KTtcblxuICByZWFkb25seSBlZGl0QnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdlZGl0Q3RhJyksXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ3NtYWxsJyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGxlYXZlQnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdsZWF2ZUN0YScpLFxuICAgIHRva2VuOiAnb3JnLWxlYXZlJyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMuaXNPd25lcigpIHx8IHRoaXMubGVhdmluZygpID8gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gIH0pKTtcblxuICByZWFkb25seSB0cmFuc2ZlcmFibGVNZW1iZXJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW1iZXJzKCkuZmlsdGVyKG0gPT4gbS51c2VySWQgIT09IHRoaXMudXNlcklkKCkpKTtcblxuICByZWFkb25seSB2aWV3UGVybWlzc2lvbnNCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ3JvbGVzVmlld1Blcm1zJyksXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHRva2VuOiAnb3JnLXZpZXctcGVybWlzc2lvbnMnLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgdHJhbnNmZXJCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ3RyYW5zZmVyQ3RhJyksXG4gICAgdG9rZW46ICdvcmctdHJhbnNmZXItc3VibWl0JyxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMudHJhbnNmZXJyaW5nKCkgPyBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IG9wZW5JbnZpdGVCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ2ludml0ZU9wZW4nKSxcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHNoYXBlOiAncm91bmQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgb3BlbkltcG9ydEJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgnaW1wb3J0T3BlbicpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IG9wZW5BcGlLZXlzQnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdhcGlLZXlzT3BlbicpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ2NsZWFyJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gIH0pKTtcblxuICAvKiogR3VhcmRhIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGRpc3Bhcm8gZGVsIGVmZmVjdCAoZXZpdGEgZG9ibGUgY2FyZ2EpLiAqL1xuICBwcml2YXRlIGxhc3RMb2FkZWRPcmdJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShucykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQobnMsIE9SR0FOSVpBVElPTl9WSUVXX0kxOE4pO1xuICAgIH1cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcblxuICAgIC8vIEF1dG8tcmVsb2FkIGVuIG9yZy1zd2l0Y2g6IHJlYWNjaW9uYSBhIGFjdGl2ZU9yZ0lkKCkgeSByZWNhcmdhIG9yZyArIG1pZW1icm9zXG4gICAgLy8gY3VhbmRvIGVsIHVzdWFyaW8gY2FtYmlhIGRlIG9yZ2FuaXphY2nDs24gYWN0aXZhIG1pZW50cmFzIGxhIHZpc3RhIGVzdMOhXG4gICAgLy8gbW9udGFkYS4gQ3VicmUgdGFtYmnDqW4gbGEgY2FyZ2EgaW5pY2lhbCDigJQgYGxhc3RMb2FkZWRPcmdJZGAgZXZpdGEgcmVjYXJnYXJcbiAgICAvLyBkb3MgdmVjZXMgZWwgbWlzbW8gaWQgKHAuZWouIHNpIGVsIGVmZmVjdCByZS1jb3JyZSBwb3Igb3RyYSBkZXBlbmRlbmNpYSkuXG4gICAgLy8gYGFsbG93U2lnbmFsV3JpdGVzYCBwb3JxdWUgbGFzIGxvYWQgZm5zIGVzY3JpYmVuIHNpZ25hbHMgc8OtbmNyb25hbWVudGVcbiAgICAvLyAobG9hZGluZy9lcnJvci90b2tlbikg4oCUIEFuZ3VsYXIgMTggYmxvcXVlYSB3cml0ZXMgZW4gZWZmZWN0IHNpbiBlbCBmbGFnLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgICAgIGlmIChvcmdJZCA9PT0gdGhpcy5sYXN0TG9hZGVkT3JnSWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5sYXN0TG9hZGVkT3JnSWQgPSBvcmdJZDtcbiAgICAgICAgdGhpcy5sb2FkT3JnKCk7XG4gICAgICAgIHRoaXMubG9hZE1lbWJlcnMoKTtcbiAgICAgICAgdGhpcy5sb2FkUm9sZXMoKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuXG4gICAgY29ubmVjdFBhZ2VSZWZyZXNoKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLmxvYWRPcmcoKSwgdGhpcy5sb2FkTWVtYmVycygpXSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkVkaXQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogRWRpdE9yZ01vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgb3JnOiB0aGlzLm9yZygpLFxuICAgICAgICBvblN1Y2Nlc3M6ICh1cGRhdGVkOiBPcmdhbml6YXRpb24pID0+IHtcbiAgICAgICAgICB0aGlzLm9yZy5zZXQodXBkYXRlZCk7XG4gICAgICAgICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uT3JnRWRpdGVkPy4oKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuODVdLFxuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogMC44NSxcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvbkxlYXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzT3duZXIoKSB8fCB0aGlzLmxlYXZpbmcoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybURpYWxvZy5jb25maXJtRGVzdHJ1Y3RpdmUoe1xuICAgICAgdGl0bGU6IHRoaXMudHQoJ2xlYXZlVGl0bGUnKSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ2xlYXZlQ29uZmlybScpLFxuICAgICAgY29uZmlybUJ1dHRvbjogeyB0ZXh0OiB0aGlzLnR0KCdsZWF2ZUN0YScpIH0sXG4gICAgICBjYW5jZWxCdXR0b246IHsgdGV4dDogdGhpcy50dCgnY2FuY2VsQ3RhJykgfSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3VsdC5jb25maXJtZWQpIHJldHVybjtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5sZWF2aW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5vcmdTZXJ2aWNlLmxlYXZlT3JnKG9yZ0lkKSk7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCdsZWF2ZVN1Y2Nlc3MnKSxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgZHVyYXRpb246IDM1MDAsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGNmZyA9IHRoaXMucmVzb2x2ZWRDb25maWcoKTtcbiAgICAgIHRoaXMubmF2Lm5hdmlnYXRlQnlVcmwoY2ZnLmxlYXZlUmVkaXJlY3RSb3V0ZSk7XG4gICAgICBjZmcub25MZWZ0T3JnPy4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ29yZ2FuaXphdGlvbi5sZWF2ZScsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnbGVhdmVFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sZWF2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgb25PcGVuSW52aXRlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IEludml0ZU1lbWJlck1vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgb3JnSWQ6IHRoaXMuYWN0aXZlT3JnSWQoKSxcbiAgICAgICAgZXhpc3RpbmdNZW1iZXJJZHM6IHRoaXMubWVtYmVycygpLm1hcChtID0+IG0udXNlcklkKSxcbiAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkTWVtYmVycygpO1xuICAgICAgICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbk1lbWJlckludml0ZWQ/LigpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC45Ml0sXG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjkyLFxuICAgICAgICBzaG93SGFuZGxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uT3BlbkltcG9ydCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBNZW1iZXJJbXBvcnRNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIG9yZ0lkOiB0aGlzLmFjdGl2ZU9yZ0lkKCksXG4gICAgICAgIGF2YWlsYWJsZVJvbGVzOiB0aGlzLmF2YWlsYWJsZVJvbGVzKCkubWFwKHIgPT4gci5uYW1lKSxcbiAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkTWVtYmVycygpO1xuICAgICAgICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbk1lbWJlckludml0ZWQ/LigpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC45Ml0sXG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjkyLFxuICAgICAgICBzaG93SGFuZGxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uT3BlbkFwaUtleXMoKTogdm9pZCB7XG4gICAgLy8gTGFzIEFQSSBLZXlzIGFob3JhIHZpdmVuIGVuIHN1IHByb3BpYSB2aXN0YSAoYHZhbC1hcGkta2V5cy12aWV3YCk6IGNyZWFyXG4gICAgLy8gYXJyaWJhLCBsaXN0YSBhYmFqbyBjb24gY3JlYWRvci9mZWNoYS4gTmF2ZWdhbW9zIGVuIHZleiBkZSBhYnJpciB1biBtb2RhbC5cbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRDb25maWcoKS5hcGlLZXlzUm91dGUpO1xuICB9XG5cbiAgLy8gXCJNw6FzIGluZm9ybWFjacOzblwiIHNvYnJlIG9yZ2FuaXphY2lvbmVzIOKAlCBtaXNtbyBzaGVldCBleHBsaWNhdGl2byBxdWUgbXVlc3RyYVxuICAvLyBhY2NvdW50LXZpZXcgc2luIG9yZywgcGVybyBkaXNwb25pYmxlIHNpZW1wcmUgKHRvZG8gdXNlciB0aWVuZSBvcmcgcG9yIGRlZmVjdG8pLlxuICBvbk9yZ0luZm8oKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogT3JnSW5mb1NoZWV0Q29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgdGl0bGU6IHRoaXMudHQoJ29yZ3NJbmZvVGl0bGUnKSxcbiAgICAgICAgc3VidGl0bGU6IHRoaXMudHQoJ29yZ3NJbmZvU3VidGl0bGUnKSxcbiAgICAgICAgYm9keTogdGhpcy50dCgnb3Jnc0luZm9Db250ZW50JyksXG4gICAgICAgIGNsb3NlTGFiZWw6IHRoaXMudHQoJ29yZ3NJbmZvQ2xvc2UnKSxcbiAgICAgICAgY2xvc2VQcm9wczoge1xuICAgICAgICAgIHRleHQ6IHRoaXMudHQoJ29yZ3NJbmZvQ2xvc2UnKSxcbiAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7IGJyZWFrcG9pbnRzOiBbMCwgMC45Ml0sIGluaXRpYWxCcmVha3BvaW50OiAwLjkyLCBzaG93SGFuZGxlOiB0cnVlIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvLyBcIk3DoXMgaW5mb3JtYWNpw7NuXCIgZGUgbGEgc2VjY2nDs24gSW50ZWdyYWNpb25lcyDigJQgYWJyZSB1biBzaGVldCBFWFBMSUNBVElWT1xuICAvLyAoYXJ0aWNsZS1zdHlsZSwgc2luIGxhcyBmZWF0dXJlLWNhcmRzIGRlIG9yZyksIE5PIGVsIG1vZGFsIGRlIGdlc3Rpw7NuIGRlIEFQSVxuICAvLyBrZXlzLiBMYSBnZXN0acOzbiBzZSBhYnJlIGNvbiBlbCBib3TDs24gXCJHZXN0aW9uYXJcIiAob25PcGVuQXBpS2V5cykuXG4gIG9uQXBpS2V5c0luZm8oKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogT3JnSW5mb1NoZWV0Q29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgc2hvd0ZlYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgdGl0bGU6IHRoaXMudHQoJ2FwaUtleXNJbmZvVGl0bGUnKSxcbiAgICAgICAgc3VidGl0bGU6IHRoaXMudHQoJ2FwaUtleXNJbmZvU3VidGl0bGUnKSxcbiAgICAgICAgYm9keTogdGhpcy50dCgnYXBpS2V5c0luZm9Db250ZW50JyksXG4gICAgICAgIGNsb3NlTGFiZWw6IHRoaXMudHQoJ2FwaUtleXNJbmZvQ2xvc2UnKSxcbiAgICAgICAgY2xvc2VQcm9wczoge1xuICAgICAgICAgIHRleHQ6IHRoaXMudHQoJ2FwaUtleXNJbmZvQ2xvc2UnKSxcbiAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7IGJyZWFrcG9pbnRzOiBbMCwgMC45Ml0sIGluaXRpYWxCcmVha3BvaW50OiAwLjkyLCBzaG93SGFuZGxlOiB0cnVlIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvblZpZXdQZXJtaXNzaW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRDb25maWcoKS52aWV3UGVybWlzc2lvbnNSb3V0ZSk7XG4gIH1cblxuICBvbk9wZW5UcmFuc2ZlcigpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBUcmFuc2Zlck93bmVyc2hpcE1vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgbWVtYmVyczogdGhpcy50cmFuc2ZlcmFibGVNZW1iZXJzKCksXG4gICAgICAgIG9uQ29uZmlybTogKG5ld093bmVySWQ6IHN0cmluZykgPT4gdm9pZCB0aGlzLm9uVHJhbnNmZXIobmV3T3duZXJJZCksXG4gICAgICB9LFxuICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgYnJlYWtwb2ludHM6IFswLCAwLjc1XSxcbiAgICAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuNzUsXG4gICAgICAgIHNob3dIYW5kbGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25UcmFuc2ZlcihuZXdPd25lcklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIW5ld093bmVySWQgfHwgdGhpcy50cmFuc2ZlcnJpbmcoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29uZmlybURpYWxvZy5jb25maXJtRGVzdHJ1Y3RpdmUoe1xuICAgICAgdGl0bGU6IHRoaXMudHQoJ3RyYW5zZmVyVGl0bGUnKSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3RyYW5zZmVyQ29uZmlybScpLFxuICAgICAgY29uZmlybUJ1dHRvbjogeyB0ZXh0OiB0aGlzLnR0KCd0cmFuc2ZlckN0YScpIH0sXG4gICAgICBjYW5jZWxCdXR0b246IHsgdGV4dDogdGhpcy50dCgnY2FuY2VsQ3RhJykgfSxcbiAgICB9KTtcbiAgICBpZiAoIXJlc3VsdC5jb25maXJtZWQpIHJldHVybjtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy50cmFuc2ZlcnJpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm9yZ1NlcnZpY2UudHJhbnNmZXJPd25lcnNoaXAob3JnSWQsIG5ld093bmVySWQpKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3RyYW5zZmVyU3VjY2VzcycpLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBkdXJhdGlvbjogMzUwMCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5sb2FkT3JnKCk7XG4gICAgICB0aGlzLmxvYWRNZW1iZXJzKCk7XG4gICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Pd25lcnNoaXBUcmFuc2ZlcnJlZD8uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdvcmdhbml6YXRpb24udHJhbnNmZXInLFxuICAgICAgICBmYWxsYmFja0tleTogJ3RyYW5zZmVyRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMudHJhbnNmZXJyaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3JnKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgIGlmICghb3JnSWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3JnTG9hZEVycm9yLnNldChudWxsKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLm9yZ1NlcnZpY2UuZ2V0T3JnKG9yZ0lkKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBvcmcgPT4ge1xuICAgICAgICAgIHRoaXMub3JnLnNldChvcmcpO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5vcmdMb2FkRXJyb3Iuc2V0KGVycik7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkTWVtYmVycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgdGhpcy5tZW1iZXJzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5tZW1iZXJzTG9hZEVycm9yLnNldChudWxsKTtcbiAgICB0aGlzLm1lbWJlcnNOZXh0VG9rZW4uc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0FsbE1lbWJlcnMuc2V0KGZhbHNlKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLm9yZ1NlcnZpY2UuZ2V0T3JnTWVtYmVycyhvcmdJZCwgeyBsaW1pdDogMjAgfSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogYXN5bmMgcmVzID0+IHtcbiAgICAgICAgICBjb25zdCBjYXJkcyA9IGF3YWl0IHRoaXMuZW5yaWNoV2l0aFByb2ZpbGVzKHJlcy5tZW1iZXJzKTtcbiAgICAgICAgICB0aGlzLm1lbWJlcnMuc2V0KGNhcmRzKTtcbiAgICAgICAgICB0aGlzLm1lbWJlcnNOZXh0VG9rZW4uc2V0KHJlcy5uZXh0VG9rZW4gPz8gbnVsbCk7XG4gICAgICAgICAgdGhpcy5tZW1iZXJzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5tZW1iZXJzTG9hZEVycm9yLnNldChlcnIpO1xuICAgICAgICAgIHRoaXMubWVtYmVyc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRNb3JlTWVtYmVycygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMubWVtYmVyc05leHRUb2tlbigpO1xuICAgIGlmICghb3JnSWQgfHwgIXRva2VuIHx8IHRoaXMubG9hZGluZ01vcmVNZW1iZXJzKCkpIHJldHVybjtcbiAgICB0aGlzLmxvYWRpbmdNb3JlTWVtYmVycy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vcmdTZXJ2aWNlLmdldE9yZ01lbWJlcnMob3JnSWQsIHsgbGltaXQ6IDIwLCBuZXh0VG9rZW46IHRva2VuIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBhc3luYyByZXMgPT4ge1xuICAgICAgICBjb25zdCBjYXJkcyA9IGF3YWl0IHRoaXMuZW5yaWNoV2l0aFByb2ZpbGVzKHJlcy5tZW1iZXJzKTtcbiAgICAgICAgdGhpcy5tZW1iZXJzLnVwZGF0ZShwcmV2ID0+IFsuLi5wcmV2LCAuLi5jYXJkc10pO1xuICAgICAgICB0aGlzLm1lbWJlcnNOZXh0VG9rZW4uc2V0KHJlcy5uZXh0VG9rZW4gPz8gbnVsbCk7XG4gICAgICAgIHRoaXMubG9hZGluZ01vcmVNZW1iZXJzLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgICBjb250ZXh0OiAnb3JnYW5pemF0aW9uLmxvYWRNb3JlTWVtYmVycycsXG4gICAgICAgICAgZmFsbGJhY2tLZXk6ICdtZW1iZXJzRXJyb3InLFxuICAgICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxvYWRpbmdNb3JlTWVtYmVycy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW5yaWNoV2l0aFByb2ZpbGVzKG1lbWJlcnM6IE9yZ01lbWJlcltdKTogUHJvbWlzZTxNZW1iZXJEZXRhaWxbXT4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG4gICAgICBtZW1iZXJzLm1hcChhc3luYyBtID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBzbmFwID0gYXdhaXQgZ2V0RG9jKGRvYyh0aGlzLmZpcmVzdG9yZSwgYHByb2ZpbGVzLyR7bS51c2VySWR9YCkpO1xuICAgICAgICAgIGNvbnN0IHAgPSBzbmFwLmV4aXN0cygpID8gc25hcC5kYXRhKCkgOiB7fTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubSxcbiAgICAgICAgICAgIGhhbmRsZTogcFsnaGFuZGxlJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgYXZhdGFyOiAocFsnYXZhdGFyVXJsJ10gPz8gcFsnYXZhdGFyJ10pIGFzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5hbWU6IChwWyduYW1lJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fCBtLm5hbWUsXG4gICAgICAgICAgfSBhcyBNZW1iZXJEZXRhaWw7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBtIGFzIE1lbWJlckRldGFpbDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiByZXN1bHRzLm1hcChyID0+IChyLnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcgPyByLnZhbHVlIDogKHt9IGFzIE1lbWJlckRldGFpbCkpKTtcbiAgfVxuXG4gIGxvYWRSb2xlcygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5vcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyhvcmdJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJvbGVzID0+IHtcbiAgICAgICAgaWYgKHJvbGVzLmxlbmd0aCkgdGhpcy5hdmFpbGFibGVSb2xlcy5zZXQocm9sZXMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHJvbGVMYWJlbChyb2xlSWRPck5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gVHJ5IHRvIGZpbmQgYnkgaWQgZmlyc3QgKFVVSUQpLCB0aGVuIGJ5IG5hbWVcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYXZhaWxhYmxlUm9sZXMoKS5maW5kKHIgPT4gci5pZCA9PT0gcm9sZUlkT3JOYW1lIHx8IHIubmFtZSA9PT0gcm9sZUlkT3JOYW1lKTtcbiAgICBjb25zdCBuYW1lID0gZm91bmQ/Lm5hbWUgPz8gcm9sZUlkT3JOYW1lO1xuICAgIGNvbnN0IGtleU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHZpZXdlcjogJ3JvbGVWaWV3ZXInLFxuICAgICAgZWRpdG9yOiAncm9sZUVkaXRvcicsXG4gICAgICBhZG1pbjogJ3JvbGVBZG1pbicsXG4gICAgICBzdXBlcl9hZG1pbjogJ3JvbGVTdXBlckFkbWluJyxcbiAgICB9O1xuICAgIC8vIDEpIFJvbCBnZW7DqXJpY28gY29ub2NpZG8g4oaSIGxhYmVsIGkxOG4uIDIpIGRpc3BsYXlOYW1lL2Rlc2NyaXBjacOzbiBkZWwgYmFja2VuZC5cbiAgICAvLyAzKSBGYWxsYmFjazogaHVtYW5pemFyIGVsIG5vbWJyZSBjcnVkbyAoZWouIFwiYmluZ29fYWRtaW5cIiDihpIgXCJCaW5nbyBBZG1pblwiKVxuICAgIC8vICAgIHBhcmEgbm8gbW9zdHJhciBlbCBjw7NkaWdvIHTDqWNuaWNvIGEgYXBwLXNwZWNpZmljIHJvbGVzLlxuICAgIGNvbnN0IG1hcHBlZCA9IGtleU1hcFtuYW1lXTtcbiAgICBpZiAobWFwcGVkKSB7XG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMudHQobWFwcGVkKTtcbiAgICAgIGlmIChsYWJlbCAmJiAhbGFiZWwuc3RhcnRzV2l0aCgnWycpKSByZXR1cm4gbGFiZWw7XG4gICAgfVxuICAgIGlmIChmb3VuZD8uZGVzY3JpcHRpb24pIHJldHVybiBmb3VuZC5kZXNjcmlwdGlvbjtcbiAgICByZXR1cm4gbmFtZVxuICAgICAgLnNwbGl0KC9bXy1dLylcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5tYXAodyA9PiB3LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKSlcbiAgICAgIC5qb2luKCcgJyk7XG4gIH1cblxuICBvblZpZXdNZW1iZXIobWVtYmVyOiBNZW1iZXJEZXRhaWwpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBNZW1iZXJEZXRhaWxNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIG1lbWJlcixcbiAgICAgICAgb3JnSWQ6IHRoaXMuYWN0aXZlT3JnSWQoKSxcbiAgICAgICAgYXZhaWxhYmxlUm9sZXM6IHRoaXMuYXZhaWxhYmxlUm9sZXMoKSxcbiAgICAgICAgY2FuTWFuYWdlOiB0aGlzLmNhbk1hbmFnZU1lbWJlcnMoKSAmJiBtZW1iZXIudXNlcklkICE9PSB0aGlzLnVzZXJJZCgpLFxuICAgICAgICBpc1NlbGY6IG1lbWJlci51c2VySWQgPT09IHRoaXMudXNlcklkKCksXG4gICAgICAgIG9uQ2hhbmdlZDogKCkgPT4gdGhpcy5sb2FkTWVtYmVycygpLFxuICAgICAgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC43XSxcbiAgICAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuNyxcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG59XG4iXX0=
@@ -61,7 +61,7 @@ export const ORGANIZATION_VIEW_I18N = {
61
61
  apiKeysInfoTitle: 'Integraciones por API',
62
62
  apiKeysInfoSubtitle: 'Opera tu organización máquina-a-máquina',
63
63
  apiKeysInfoContent: 'Una API Key te permite operar tu organización desde tus propios sistemas, sin entrar a la app: dar de alta usuarios, asignar roles, leer datos y automatizar flujos.\n\nCada key es org-scopeada y lleva solo los permisos que le asignes — concede el mínimo necesario. Puedes revocarla en cualquier momento.\n\nEl secreto se muestra una sola vez al crearla: guárdalo en un lugar seguro. Si lo pierdes, genera una nueva key y revoca la anterior.',
64
- apiKeysInfoClose: 'Entendido',
64
+ apiKeysInfoClose: 'Cerrar',
65
65
  orgsMoreInfo: 'Aprender más sobre organizaciones',
66
66
  orgsInfoTitle: '¿Qué son las organizaciones?',
67
67
  orgsInfoSubtitle: 'Todo lo que necesitas saber',
@@ -144,7 +144,7 @@ export const ORGANIZATION_VIEW_I18N = {
144
144
  apiKeysInfoTitle: 'API integrations',
145
145
  apiKeysInfoSubtitle: 'Operate your organization machine-to-machine',
146
146
  apiKeysInfoContent: 'An API Key lets you operate your organization from your own systems, without opening the app: provision users, assign roles, read data, and automate flows.\n\nEach key is org-scoped and carries only the permissions you assign — grant the minimum needed. You can revoke it at any time.\n\nThe secret is shown only once at creation: store it somewhere safe. If you lose it, create a new key and revoke the old one.',
147
- apiKeysInfoClose: 'Got it',
147
+ apiKeysInfoClose: 'Close',
148
148
  orgsMoreInfo: 'Learn more about organizations',
149
149
  orgsInfoTitle: 'What are organizations?',
150
150
  orgsInfoSubtitle: 'Everything you need to know',
@@ -173,4 +173,4 @@ export const ORGANIZATION_VIEW_I18N = {
173
173
  membersShowMore: 'Show more',
174
174
  },
175
175
  };
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxTQUFTLEVBQUUsYUFBYTtRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsYUFBYTtRQUM5QixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsVUFBVTtRQUN4QixZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLFlBQVksRUFBRSxxQ0FBcUM7UUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxTQUFTLEVBQUUsOENBQThDO1FBQ3pELFFBQVEsRUFBRSxPQUFPO1FBQ2pCLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsWUFBWSxF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QUUsUUFBUTtRQUMxQixPQUFPLEVBQUUsS0FBSztRQUNkLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLGVBQWUsRUFBRSxXQUFXO0tBQzdCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZW1iZWJpZG9zIGVuIGB2YWwtb3JnYW5pemF0aW9uLXZpZXdgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuXG4gKiBlbCBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIChgU2V0dGluZ3MuT3JnYW5pemF0aW9uYCBwb3IgZGVmYXVsdCkuIFNPTE8gaW5jbHV5ZSBsYXMga2V5cyBxdWUgbGEgdmlzdGEgdXNhLlxuICpcbiAqIFBvcnRhZG8gZGUgYE9SR19JMThOX0NPTlRFTlRgIChzaG93Y2FzZSkgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKi9cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fVklFV19JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHBhZ2VUaXRsZTogJ09yZ2FuaXphY2nDs24nLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ0dlc3Rpb25hIHR1IG9yZ2FuaXphY2nDs24gYWN0aXZhJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hY2nDs24nLFxuICAgIGluZm9OYW1lOiAnTm9tYnJlJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwY2nDs24nLFxuICAgIGluZm9QbGFuOiAnUGxhbicsXG4gICAgaW5mb1R5cGU6ICdUaXBvJyxcbiAgICBlZGl0Q3RhOiAnRWRpdGFyJyxcbiAgICBzYXZlQ3RhOiAnR3VhcmRhcicsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsYXInLFxuICAgIG1lbWJlcnNUaXRsZTogJ01pZW1icm9zJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdTaW4gbWllbWJyb3MgYcO6bi4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRhcicsXG4gICAgaW52aXRlRW1haWw6ICdDb3JyZW8gZWxlY3Ryw7NuaWNvJyxcbiAgICBpbnZpdGVSb2xlOiAnUm9sJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGFyJyxcbiAgICBpbnZpdGVTdWNjZXNzOiAnSW52aXRhY2nDs24gZW52aWFkYS4nLFxuICAgIGludml0ZUVycm9yOiAnTm8gc2UgcHVkbyBlbnZpYXIgbGEgaW52aXRhY2nDs24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdObyBzZSBwdWRpZXJvbiBjYXJnYXIgbG9zIG1pZW1icm9zLicsXG4gICAgbGVhdmVUaXRsZTogJ1NhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24nLFxuICAgIGxlYXZlSGludDogJ0RlamFyw6FzIGRlIHRlbmVyIGFjY2VzbyBhIGVzdGEgb3JnYW5pemFjacOzbi4nLFxuICAgIGxlYXZlQ3RhOiAnU2FsaXInLFxuICAgIGxlYXZlT3duZXJIaW50OiAnRXJlcyBlbCBwcm9waWV0YXJpby4gVHJhbnNmaWVyZSBsYSBwcm9waWVkYWQgYW50ZXMgZGUgc2FsaXIuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICfCv1NhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24/JyxcbiAgICBwbGFuRnJlZTogJ0dyYXR1aXRvJyxcbiAgICBwbGFuUHJvOiAnUHJvJyxcbiAgICBwbGFuRW50ZXJwcmlzZTogJ0VtcHJlc2EnLFxuICAgIHNhdmVTdWNjZXNzOiAnT3JnYW5pemFjacOzbiBhY3R1YWxpemFkYS4nLFxuICAgIGxlYXZlU3VjY2VzczogJ0hhcyBzYWxpZG8gZGUgbGEgb3JnYW5pemFjacOzbi4nLFxuICAgIGVycm9yVGl0bGU6ICdObyBzZSBwdWRvIGNhcmdhciBsYSBvcmdhbml6YWNpw7NuJyxcbiAgICBvZmZsaW5lVGl0bGU6ICdTaW4gY29uZXhpw7NuJyxcbiAgICBvZmZsaW5lSGludDogJ1ZlcmlmaWNhIHR1IGNvbmV4acOzbiBlIGludGVudGEgZGUgbnVldm8uJyxcbiAgICByZXRyeTogJ1JlaW50ZW50YXInLFxuICAgIHNhdmVFcnJvcjogJ05vIHNlIHB1ZG8gZ3VhcmRhci4gSW50ZW50YSBkZSBudWV2by4nLFxuICAgIGxlYXZlRXJyb3I6ICdObyBzZSBwdWRvIHNhbGlyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgdHJhbnNmZXJUaXRsZTogJ1RyYW5zZmVyaXIgcHJvcGllZGFkJyxcbiAgICB0cmFuc2ZlckhpbnQ6ICdFbGlnZSB1biBtaWVtYnJvIHBhcmEgdHJhbnNmZXJpcmxlIGxhIHByb3BpZWRhZCBkZSBsYSBvcmdhbml6YWNpw7NuLicsXG4gICAgdHJhbnNmZXJTZWxlY3Q6ICdTZWxlY2Npb25hciBudWV2byBwcm9waWV0YXJpbycsXG4gICAgdHJhbnNmZXJDdGE6ICdUcmFuc2ZlcmlyJyxcbiAgICB0cmFuc2ZlckNvbmZpcm06ICfCv1RyYW5zZmVyaXIgbGEgcHJvcGllZGFkIGEgZXN0ZSBtaWVtYnJvPyBQZXJkZXLDoXMgZWwgcm9sIGRlIHByb3BpZXRhcmlvLicsXG4gICAgdHJhbnNmZXJTdWNjZXNzOiAnUHJvcGllZGFkIHRyYW5zZmVyaWRhLicsXG4gICAgdHJhbnNmZXJFcnJvcjogJ05vIHNlIHB1ZG8gdHJhbnNmZXJpciBsYSBwcm9waWVkYWQuJyxcbiAgICBpbnZpdGVDdGFUaXRsZTogJ8K/RGVzZWFzIGFncmVnYXIgYSBhbGd1aWVuPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0YSBhIHVzdWFyaW9zIGEgdW5pcnNlIGEgdHUgb3JnYW5pemFjacOzbi4nLFxuICAgIGludml0ZU9wZW46ICdJbnZpdGFyJyxcbiAgICBpbXBvcnRPcGVuOiAnSW1wb3J0YXInLFxuICAgIGFwaUtleXNPcGVuOiAnR2VzdGlvbmFyJyxcbiAgICBhcGlLZXlzU2VjdGlvblRpdGxlOiAnSW50ZWdyYWNpb25lcyAoQVBJIEtleXMpJyxcbiAgICBhcGlLZXlzU2VjdGlvbkhpbnQ6XG4gICAgICAnVGFtYmnDqW4gcHVlZGVzIG9wZXJhciB0dSBvcmdhbml6YWNpw7NuIHbDrWEgQVBJOiBjcmVhIHVuYSBDbGllbnQgQVBJIEtleSBvcmctc2NvcGVhZGEgcGFyYSBpbnRlZ3JhY2lvbmVzIG3DoXF1aW5hLWEtbcOhcXVpbmEgKHBvciBlamVtcGxvLCBkYXIgZGUgYWx0YSBtaWVtYnJvcyBlbiBtYXNhIGRlc2RlIHR1IHByb3BpbyBzaXN0ZW1hKS4nLFxuICAgIGFwaUtleXNNb3JlSW5mbzogJ03DoXMgaW5mb3JtYWNpw7NuJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnSW50ZWdyYWNpb25lcyBwb3IgQVBJJyxcbiAgICBhcGlLZXlzSW5mb1N1YnRpdGxlOiAnT3BlcmEgdHUgb3JnYW5pemFjacOzbiBtw6FxdWluYS1hLW3DoXF1aW5hJyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6XG4gICAgICAnVW5hIEFQSSBLZXkgdGUgcGVybWl0ZSBvcGVyYXIgdHUgb3JnYW5pemFjacOzbiBkZXNkZSB0dXMgcHJvcGlvcyBzaXN0ZW1hcywgc2luIGVudHJhciBhIGxhIGFwcDogZGFyIGRlIGFsdGEgdXN1YXJpb3MsIGFzaWduYXIgcm9sZXMsIGxlZXIgZGF0b3MgeSBhdXRvbWF0aXphciBmbHVqb3MuXFxuXFxuQ2FkYSBrZXkgZXMgb3JnLXNjb3BlYWRhIHkgbGxldmEgc29sbyBsb3MgcGVybWlzb3MgcXVlIGxlIGFzaWduZXMg4oCUIGNvbmNlZGUgZWwgbcOtbmltbyBuZWNlc2FyaW8uIFB1ZWRlcyByZXZvY2FybGEgZW4gY3VhbHF1aWVyIG1vbWVudG8uXFxuXFxuRWwgc2VjcmV0byBzZSBtdWVzdHJhIHVuYSBzb2xhIHZleiBhbCBjcmVhcmxhOiBndcOhcmRhbG8gZW4gdW4gbHVnYXIgc2VndXJvLiBTaSBsbyBwaWVyZGVzLCBnZW5lcmEgdW5hIG51ZXZhIGtleSB5IHJldm9jYSBsYSBhbnRlcmlvci4nLFxuICAgIGFwaUtleXNJbmZvQ2xvc2U6ICdFbnRlbmRpZG8nLFxuICAgIG9yZ3NNb3JlSW5mbzogJ0FwcmVuZGVyIG3DoXMgc29icmUgb3JnYW5pemFjaW9uZXMnLFxuICAgIG9yZ3NJbmZvVGl0bGU6ICfCv1F1w6kgc29uIGxhcyBvcmdhbml6YWNpb25lcz8nLFxuICAgIG9yZ3NJbmZvU3VidGl0bGU6ICdUb2RvIGxvIHF1ZSBuZWNlc2l0YXMgc2FiZXInLFxuICAgIG9yZ3NJbmZvQ2xvc2U6ICdDZXJyYXInLFxuICAgIG9yZ3NJbmZvQ29udGVudDpcbiAgICAgICdMYXMgb3JnYW5pemFjaW9uZXMgdGUgcGVybWl0ZW4gc2VwYXJhciB0dXMgcHJveWVjdG9zIHkgZGF0b3MgcG9yIGVtcHJlc2EsIGVxdWlwbyBvIGNvbnRleHRvLiBQdWVkZXMgcGVydGVuZWNlciBhIHZhcmlhcyBvcmdhbml6YWNpb25lcyB5IGNhbWJpYXIgZW50cmUgZWxsYXMgZW4gY3VhbHF1aWVyIG1vbWVudG8uXFxuXFxuQ2FkYSBvcmdhbml6YWNpw7NuIHRpZW5lIHN1cyBwcm9waW9zIG1pZW1icm9zLCByb2xlcyB5IHBlcm1pc29zLiBMYSBvcmdhbml6YWNpw7NuIGFjdGl2YSBkZXRlcm1pbmEgcXXDqSBkYXRvcyB2ZXMgeSBxdcOpIGFjY2lvbmVzIHB1ZWRlcyByZWFsaXphci5cXG5cXG5QdWVkZXMgY3JlYXIgdW5hIG9yZ2FuaXphY2nDs24gbnVldmEgbyB1bmlydGUgYSB1bmEgZXhpc3RlbnRlIG1lZGlhbnRlIGludml0YWNpw7NuLicsXG4gICAgdmlld01lbWJlckN0YTogJ1ZlciBtaWVtYnJvJyxcbiAgICByb2xlVmlld2VyOiAnVmlzb3InLFxuICAgIHJvbGVFZGl0b3I6ICdFZGl0b3InLFxuICAgIHJvbGVBZG1pbjogJ0FkbWluJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluJyxcbiAgICByb2xlc1NlY3Rpb25UaXRsZTogJ1JvbGVzIHkgcGVybWlzb3MnLFxuICAgIHJvbGVzSGludDpcbiAgICAgICdUdSBvcmdhbml6YWNpw7NuIHRpZW5lIHJvbGVzIHF1ZSBjb250cm9sYW4gbG8gcXVlIGNhZGEgbWllbWJybyBwdWVkZSB2ZXIgeSBoYWNlci4gQ2FkYSByb2wgbGxldmEgdW4gY29uanVudG8gZGUgcGVybWlzb3MgYXNvY2lhZG9zLicsXG4gICAgcm9sZXNWaWV3UGVybXM6ICdWZXIgcm9sZXMgeSBwZXJtaXNvcycsXG4gICAgcm9sZXNTeXN0ZW1CYWRnZTogJ1Npc3RlbWEnLFxuICAgIHBlcm1BbGw6ICdUb2RvJyxcbiAgICBwZXJtVXNlcnM6ICdVc3VhcmlvcycsXG4gICAgcGVybURvY3VtZW50czogJ0RvY3VtZW50b3MnLFxuICAgIHBlcm1Sb2xlczogJ1JvbGVzJyxcbiAgICBwZXJtTWVkaWE6ICdNZWRpYScsXG4gICAgcGVybVRlbXBsYXRlczogJ1BsYW50aWxsYXMnLFxuICAgIHBlcm1SZWFkOiAnTGVlcicsXG4gICAgcGVybVdyaXRlOiAnRXNjcmliaXInLFxuICAgIHBlcm1DcmVhdGU6ICdDcmVhcicsXG4gICAgcGVybURlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICBwZXJtTWFuYWdlOiAnR2VzdGlvbmFyJyxcbiAgICBtZW1iZXJzU2hvd01vcmU6ICdWZXIgbcOhcycsXG4gIH0sXG4gIGVuOiB7XG4gICAgcGFnZVRpdGxlOiAnT3JnYW5pemF0aW9uJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdNYW5hZ2UgeW91ciBhY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hdGlvbicsXG4gICAgaW5mb05hbWU6ICdOYW1lJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgaW5mb1BsYW46ICdQbGFuJyxcbiAgICBpbmZvVHlwZTogJ1R5cGUnLFxuICAgIGVkaXRDdGE6ICdFZGl0JyxcbiAgICBzYXZlQ3RhOiAnU2F2ZScsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsJyxcbiAgICBtZW1iZXJzVGl0bGU6ICdNZW1iZXJzJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdObyBtZW1iZXJzIHlldC4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRlJyxcbiAgICBpbnZpdGVFbWFpbDogJ0VtYWlsIGFkZHJlc3MnLFxuICAgIGludml0ZVJvbGU6ICdSb2xlJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGUnLFxuICAgIGludml0ZVN1Y2Nlc3M6ICdJbnZpdGF0aW9uIHNlbnQuJyxcbiAgICBpbnZpdGVFcnJvcjogJ0NvdWxkIG5vdCBzZW5kIGludml0YXRpb24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdDb3VsZCBub3QgbG9hZCBtZW1iZXJzLicsXG4gICAgbGVhdmVUaXRsZTogJ0xlYXZlIG9yZ2FuaXphdGlvbicsXG4gICAgbGVhdmVIaW50OiAnWW91IHdpbGwgbG9zZSBhY2Nlc3MgdG8gdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICBsZWF2ZUN0YTogJ0xlYXZlJyxcbiAgICBsZWF2ZU93bmVySGludDogJ1lvdSBhcmUgdGhlIG93bmVyLiBUcmFuc2ZlciBvd25lcnNoaXAgYmVmb3JlIGxlYXZpbmcuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICdMZWF2ZSB0aGlzIG9yZ2FuaXphdGlvbj8nLFxuICAgIHBsYW5GcmVlOiAnRnJlZScsXG4gICAgcGxhblBybzogJ1BybycsXG4gICAgcGxhbkVudGVycHJpc2U6ICdFbnRlcnByaXNlJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphdGlvbiB1cGRhdGVkLicsXG4gICAgbGVhdmVTdWNjZXNzOiAnWW91IGhhdmUgbGVmdCB0aGUgb3JnYW5pemF0aW9uLicsXG4gICAgZXJyb3JUaXRsZTogJ0NvdWxkIG5vdCBsb2FkIG9yZ2FuaXphdGlvbicsXG4gICAgb2ZmbGluZVRpdGxlOiAnTm8gY29ubmVjdGlvbicsXG4gICAgb2ZmbGluZUhpbnQ6ICdDaGVjayB5b3VyIGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgIHJldHJ5OiAnUmV0cnknLFxuICAgIHNhdmVFcnJvcjogJ0NvdWxkIG5vdCBzYXZlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgbGVhdmVFcnJvcjogJ0NvdWxkIG5vdCBsZWF2ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIHRyYW5zZmVyVGl0bGU6ICdUcmFuc2ZlciBvd25lcnNoaXAnLFxuICAgIHRyYW5zZmVySGludDogJ0Nob29zZSBhIG1lbWJlciB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICB0cmFuc2ZlclNlbGVjdDogJ1NlbGVjdCBuZXcgb3duZXInLFxuICAgIHRyYW5zZmVyQ3RhOiAnVHJhbnNmZXInLFxuICAgIHRyYW5zZmVyQ29uZmlybTogJ1RyYW5zZmVyIG93bmVyc2hpcCB0byB0aGlzIG1lbWJlcj8gWW91IHdpbGwgbG9zZSB0aGUgb3duZXIgcm9sZS4nLFxuICAgIHRyYW5zZmVyU3VjY2VzczogJ093bmVyc2hpcCB0cmFuc2ZlcnJlZC4nLFxuICAgIHRyYW5zZmVyRXJyb3I6ICdDb3VsZCBub3QgdHJhbnNmZXIgb3duZXJzaGlwLicsXG4gICAgaW52aXRlQ3RhVGl0bGU6ICdXYW50IHRvIGFkZCBzb21lb25lPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0ZSB1c2VycyB0byBqb2luIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgaW52aXRlT3BlbjogJ0ludml0ZScsXG4gICAgaW1wb3J0T3BlbjogJ0ltcG9ydCcsXG4gICAgYXBpS2V5c09wZW46ICdNYW5hZ2UnLFxuICAgIGFwaUtleXNTZWN0aW9uVGl0bGU6ICdJbnRlZ3JhdGlvbnMgKEFQSSBLZXlzKScsXG4gICAgYXBpS2V5c1NlY3Rpb25IaW50OlxuICAgICAgJ1lvdSBjYW4gYWxzbyBvcGVyYXRlIHlvdXIgb3JnYW5pemF0aW9uIHZpYSBBUEk6IGNyZWF0ZSBhbiBvcmctc2NvcGVkIENsaWVudCBBUEkgS2V5IGZvciBtYWNoaW5lLXRvLW1hY2hpbmUgaW50ZWdyYXRpb25zIChmb3IgZXhhbXBsZSwgYnVsay1wcm92aXNpb25pbmcgbWVtYmVycyBmcm9tIHlvdXIgb3duIHN5c3RlbSkuJyxcbiAgICBhcGlLZXlzTW9yZUluZm86ICdNb3JlIGluZm9ybWF0aW9uJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnQVBJIGludGVncmF0aW9ucycsXG4gICAgYXBpS2V5c0luZm9TdWJ0aXRsZTogJ09wZXJhdGUgeW91ciBvcmdhbml6YXRpb24gbWFjaGluZS10by1tYWNoaW5lJyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6XG4gICAgICAnQW4gQVBJIEtleSBsZXRzIHlvdSBvcGVyYXRlIHlvdXIgb3JnYW5pemF0aW9uIGZyb20geW91ciBvd24gc3lzdGVtcywgd2l0aG91dCBvcGVuaW5nIHRoZSBhcHA6IHByb3Zpc2lvbiB1c2VycywgYXNzaWduIHJvbGVzLCByZWFkIGRhdGEsIGFuZCBhdXRvbWF0ZSBmbG93cy5cXG5cXG5FYWNoIGtleSBpcyBvcmctc2NvcGVkIGFuZCBjYXJyaWVzIG9ubHkgdGhlIHBlcm1pc3Npb25zIHlvdSBhc3NpZ24g4oCUIGdyYW50IHRoZSBtaW5pbXVtIG5lZWRlZC4gWW91IGNhbiByZXZva2UgaXQgYXQgYW55IHRpbWUuXFxuXFxuVGhlIHNlY3JldCBpcyBzaG93biBvbmx5IG9uY2UgYXQgY3JlYXRpb246IHN0b3JlIGl0IHNvbWV3aGVyZSBzYWZlLiBJZiB5b3UgbG9zZSBpdCwgY3JlYXRlIGEgbmV3IGtleSBhbmQgcmV2b2tlIHRoZSBvbGQgb25lLicsXG4gICAgYXBpS2V5c0luZm9DbG9zZTogJ0dvdCBpdCcsXG4gICAgb3Jnc01vcmVJbmZvOiAnTGVhcm4gbW9yZSBhYm91dCBvcmdhbml6YXRpb25zJyxcbiAgICBvcmdzSW5mb1RpdGxlOiAnV2hhdCBhcmUgb3JnYW5pemF0aW9ucz8nLFxuICAgIG9yZ3NJbmZvU3VidGl0bGU6ICdFdmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cnLFxuICAgIG9yZ3NJbmZvQ2xvc2U6ICdDbG9zZScsXG4gICAgb3Jnc0luZm9Db250ZW50OlxuICAgICAgJ09yZ2FuaXphdGlvbnMgbGV0IHlvdSBzZXBhcmF0ZSB5b3VyIHByb2plY3RzIGFuZCBkYXRhIGJ5IGNvbXBhbnksIHRlYW0sIG9yIGNvbnRleHQuIFlvdSBjYW4gYmVsb25nIHRvIG11bHRpcGxlIG9yZ2FuaXphdGlvbnMgYW5kIHN3aXRjaCBiZXR3ZWVuIHRoZW0gYXQgYW55IHRpbWUuXFxuXFxuRWFjaCBvcmdhbml6YXRpb24gaGFzIGl0cyBvd24gbWVtYmVycywgcm9sZXMsIGFuZCBwZXJtaXNzaW9ucy4gVGhlIGFjdGl2ZSBvcmdhbml6YXRpb24gZGV0ZXJtaW5lcyB3aGF0IGRhdGEgeW91IHNlZSBhbmQgd2hhdCBhY3Rpb25zIHlvdSBjYW4gdGFrZS5cXG5cXG5Zb3UgY2FuIGNyZWF0ZSBhIG5ldyBvcmdhbml6YXRpb24gb3Igam9pbiBhbiBleGlzdGluZyBvbmUgdmlhIGludml0YXRpb24uJyxcbiAgICB2aWV3TWVtYmVyQ3RhOiAnVmlldyBtZW1iZXInLFxuICAgIHJvbGVWaWV3ZXI6ICdWaWV3ZXInLFxuICAgIHJvbGVFZGl0b3I6ICdFZGl0b3InLFxuICAgIHJvbGVBZG1pbjogJ0FkbWluJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluJyxcbiAgICByb2xlc1NlY3Rpb25UaXRsZTogJ1JvbGVzICYgcGVybWlzc2lvbnMnLFxuICAgIHJvbGVzSGludDpcbiAgICAgICdZb3VyIG9yZ2FuaXphdGlvbiBoYXMgcm9sZXMgdGhhdCBjb250cm9sIHdoYXQgZWFjaCBtZW1iZXIgY2FuIHNlZSBhbmQgZG8uIEVhY2ggcm9sZSBjYXJyaWVzIGEgc2V0IG9mIGFzc29jaWF0ZWQgcGVybWlzc2lvbnMuJyxcbiAgICByb2xlc1ZpZXdQZXJtczogJ1ZpZXcgcm9sZXMgJiBwZXJtaXNzaW9ucycsXG4gICAgcm9sZXNTeXN0ZW1CYWRnZTogJ1N5c3RlbScsXG4gICAgcGVybUFsbDogJ0FsbCcsXG4gICAgcGVybVVzZXJzOiAnVXNlcnMnLFxuICAgIHBlcm1Eb2N1bWVudHM6ICdEb2N1bWVudHMnLFxuICAgIHBlcm1Sb2xlczogJ1JvbGVzJyxcbiAgICBwZXJtTWVkaWE6ICdNZWRpYScsXG4gICAgcGVybVRlbXBsYXRlczogJ1RlbXBsYXRlcycsXG4gICAgcGVybVJlYWQ6ICdSZWFkJyxcbiAgICBwZXJtV3JpdGU6ICdXcml0ZScsXG4gICAgcGVybUNyZWF0ZTogJ0NyZWF0ZScsXG4gICAgcGVybURlbGV0ZTogJ0RlbGV0ZScsXG4gICAgcGVybU1hbmFnZTogJ01hbmFnZScsXG4gICAgbWVtYmVyc1Nob3dNb3JlOiAnU2hvdyBtb3JlJyxcbiAgfSxcbn07XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pemF0aW9uLXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxTQUFTLEVBQUUsYUFBYTtRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsYUFBYTtRQUM5QixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsVUFBVTtRQUN4QixZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxXQUFXLEVBQUUsa0NBQWtDO1FBQy9DLFlBQVksRUFBRSxxQ0FBcUM7UUFDbkQsVUFBVSxFQUFFLDBCQUEwQjtRQUN0QyxTQUFTLEVBQUUsOENBQThDO1FBQ3pELFFBQVEsRUFBRSxPQUFPO1FBQ2pCLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsWUFBWSxF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QUUsUUFBUTtRQUMxQixPQUFPLEVBQUUsS0FBSztRQUNkLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLGVBQWUsRUFBRSxXQUFXO0tBQzdCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZW1iZWJpZG9zIGVuIGB2YWwtb3JnYW5pemF0aW9uLXZpZXdgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuXG4gKiBlbCBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIChgU2V0dGluZ3MuT3JnYW5pemF0aW9uYCBwb3IgZGVmYXVsdCkuIFNPTE8gaW5jbHV5ZSBsYXMga2V5cyBxdWUgbGEgdmlzdGEgdXNhLlxuICpcbiAqIFBvcnRhZG8gZGUgYE9SR19JMThOX0NPTlRFTlRgIChzaG93Y2FzZSkgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuXG4gKi9cbmV4cG9ydCBjb25zdCBPUkdBTklaQVRJT05fVklFV19JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHBhZ2VUaXRsZTogJ09yZ2FuaXphY2nDs24nLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ0dlc3Rpb25hIHR1IG9yZ2FuaXphY2nDs24gYWN0aXZhJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hY2nDs24nLFxuICAgIGluZm9OYW1lOiAnTm9tYnJlJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwY2nDs24nLFxuICAgIGluZm9QbGFuOiAnUGxhbicsXG4gICAgaW5mb1R5cGU6ICdUaXBvJyxcbiAgICBlZGl0Q3RhOiAnRWRpdGFyJyxcbiAgICBzYXZlQ3RhOiAnR3VhcmRhcicsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsYXInLFxuICAgIG1lbWJlcnNUaXRsZTogJ01pZW1icm9zJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdTaW4gbWllbWJyb3MgYcO6bi4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRhcicsXG4gICAgaW52aXRlRW1haWw6ICdDb3JyZW8gZWxlY3Ryw7NuaWNvJyxcbiAgICBpbnZpdGVSb2xlOiAnUm9sJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGFyJyxcbiAgICBpbnZpdGVTdWNjZXNzOiAnSW52aXRhY2nDs24gZW52aWFkYS4nLFxuICAgIGludml0ZUVycm9yOiAnTm8gc2UgcHVkbyBlbnZpYXIgbGEgaW52aXRhY2nDs24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdObyBzZSBwdWRpZXJvbiBjYXJnYXIgbG9zIG1pZW1icm9zLicsXG4gICAgbGVhdmVUaXRsZTogJ1NhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24nLFxuICAgIGxlYXZlSGludDogJ0RlamFyw6FzIGRlIHRlbmVyIGFjY2VzbyBhIGVzdGEgb3JnYW5pemFjacOzbi4nLFxuICAgIGxlYXZlQ3RhOiAnU2FsaXInLFxuICAgIGxlYXZlT3duZXJIaW50OiAnRXJlcyBlbCBwcm9waWV0YXJpby4gVHJhbnNmaWVyZSBsYSBwcm9waWVkYWQgYW50ZXMgZGUgc2FsaXIuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICfCv1NhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24/JyxcbiAgICBwbGFuRnJlZTogJ0dyYXR1aXRvJyxcbiAgICBwbGFuUHJvOiAnUHJvJyxcbiAgICBwbGFuRW50ZXJwcmlzZTogJ0VtcHJlc2EnLFxuICAgIHNhdmVTdWNjZXNzOiAnT3JnYW5pemFjacOzbiBhY3R1YWxpemFkYS4nLFxuICAgIGxlYXZlU3VjY2VzczogJ0hhcyBzYWxpZG8gZGUgbGEgb3JnYW5pemFjacOzbi4nLFxuICAgIGVycm9yVGl0bGU6ICdObyBzZSBwdWRvIGNhcmdhciBsYSBvcmdhbml6YWNpw7NuJyxcbiAgICBvZmZsaW5lVGl0bGU6ICdTaW4gY29uZXhpw7NuJyxcbiAgICBvZmZsaW5lSGludDogJ1ZlcmlmaWNhIHR1IGNvbmV4acOzbiBlIGludGVudGEgZGUgbnVldm8uJyxcbiAgICByZXRyeTogJ1JlaW50ZW50YXInLFxuICAgIHNhdmVFcnJvcjogJ05vIHNlIHB1ZG8gZ3VhcmRhci4gSW50ZW50YSBkZSBudWV2by4nLFxuICAgIGxlYXZlRXJyb3I6ICdObyBzZSBwdWRvIHNhbGlyLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gICAgdHJhbnNmZXJUaXRsZTogJ1RyYW5zZmVyaXIgcHJvcGllZGFkJyxcbiAgICB0cmFuc2ZlckhpbnQ6ICdFbGlnZSB1biBtaWVtYnJvIHBhcmEgdHJhbnNmZXJpcmxlIGxhIHByb3BpZWRhZCBkZSBsYSBvcmdhbml6YWNpw7NuLicsXG4gICAgdHJhbnNmZXJTZWxlY3Q6ICdTZWxlY2Npb25hciBudWV2byBwcm9waWV0YXJpbycsXG4gICAgdHJhbnNmZXJDdGE6ICdUcmFuc2ZlcmlyJyxcbiAgICB0cmFuc2ZlckNvbmZpcm06ICfCv1RyYW5zZmVyaXIgbGEgcHJvcGllZGFkIGEgZXN0ZSBtaWVtYnJvPyBQZXJkZXLDoXMgZWwgcm9sIGRlIHByb3BpZXRhcmlvLicsXG4gICAgdHJhbnNmZXJTdWNjZXNzOiAnUHJvcGllZGFkIHRyYW5zZmVyaWRhLicsXG4gICAgdHJhbnNmZXJFcnJvcjogJ05vIHNlIHB1ZG8gdHJhbnNmZXJpciBsYSBwcm9waWVkYWQuJyxcbiAgICBpbnZpdGVDdGFUaXRsZTogJ8K/RGVzZWFzIGFncmVnYXIgYSBhbGd1aWVuPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0YSBhIHVzdWFyaW9zIGEgdW5pcnNlIGEgdHUgb3JnYW5pemFjacOzbi4nLFxuICAgIGludml0ZU9wZW46ICdJbnZpdGFyJyxcbiAgICBpbXBvcnRPcGVuOiAnSW1wb3J0YXInLFxuICAgIGFwaUtleXNPcGVuOiAnR2VzdGlvbmFyJyxcbiAgICBhcGlLZXlzU2VjdGlvblRpdGxlOiAnSW50ZWdyYWNpb25lcyAoQVBJIEtleXMpJyxcbiAgICBhcGlLZXlzU2VjdGlvbkhpbnQ6XG4gICAgICAnVGFtYmnDqW4gcHVlZGVzIG9wZXJhciB0dSBvcmdhbml6YWNpw7NuIHbDrWEgQVBJOiBjcmVhIHVuYSBDbGllbnQgQVBJIEtleSBvcmctc2NvcGVhZGEgcGFyYSBpbnRlZ3JhY2lvbmVzIG3DoXF1aW5hLWEtbcOhcXVpbmEgKHBvciBlamVtcGxvLCBkYXIgZGUgYWx0YSBtaWVtYnJvcyBlbiBtYXNhIGRlc2RlIHR1IHByb3BpbyBzaXN0ZW1hKS4nLFxuICAgIGFwaUtleXNNb3JlSW5mbzogJ03DoXMgaW5mb3JtYWNpw7NuJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnSW50ZWdyYWNpb25lcyBwb3IgQVBJJyxcbiAgICBhcGlLZXlzSW5mb1N1YnRpdGxlOiAnT3BlcmEgdHUgb3JnYW5pemFjacOzbiBtw6FxdWluYS1hLW3DoXF1aW5hJyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6XG4gICAgICAnVW5hIEFQSSBLZXkgdGUgcGVybWl0ZSBvcGVyYXIgdHUgb3JnYW5pemFjacOzbiBkZXNkZSB0dXMgcHJvcGlvcyBzaXN0ZW1hcywgc2luIGVudHJhciBhIGxhIGFwcDogZGFyIGRlIGFsdGEgdXN1YXJpb3MsIGFzaWduYXIgcm9sZXMsIGxlZXIgZGF0b3MgeSBhdXRvbWF0aXphciBmbHVqb3MuXFxuXFxuQ2FkYSBrZXkgZXMgb3JnLXNjb3BlYWRhIHkgbGxldmEgc29sbyBsb3MgcGVybWlzb3MgcXVlIGxlIGFzaWduZXMg4oCUIGNvbmNlZGUgZWwgbcOtbmltbyBuZWNlc2FyaW8uIFB1ZWRlcyByZXZvY2FybGEgZW4gY3VhbHF1aWVyIG1vbWVudG8uXFxuXFxuRWwgc2VjcmV0byBzZSBtdWVzdHJhIHVuYSBzb2xhIHZleiBhbCBjcmVhcmxhOiBndcOhcmRhbG8gZW4gdW4gbHVnYXIgc2VndXJvLiBTaSBsbyBwaWVyZGVzLCBnZW5lcmEgdW5hIG51ZXZhIGtleSB5IHJldm9jYSBsYSBhbnRlcmlvci4nLFxuICAgIGFwaUtleXNJbmZvQ2xvc2U6ICdDZXJyYXInLFxuICAgIG9yZ3NNb3JlSW5mbzogJ0FwcmVuZGVyIG3DoXMgc29icmUgb3JnYW5pemFjaW9uZXMnLFxuICAgIG9yZ3NJbmZvVGl0bGU6ICfCv1F1w6kgc29uIGxhcyBvcmdhbml6YWNpb25lcz8nLFxuICAgIG9yZ3NJbmZvU3VidGl0bGU6ICdUb2RvIGxvIHF1ZSBuZWNlc2l0YXMgc2FiZXInLFxuICAgIG9yZ3NJbmZvQ2xvc2U6ICdDZXJyYXInLFxuICAgIG9yZ3NJbmZvQ29udGVudDpcbiAgICAgICdMYXMgb3JnYW5pemFjaW9uZXMgdGUgcGVybWl0ZW4gc2VwYXJhciB0dXMgcHJveWVjdG9zIHkgZGF0b3MgcG9yIGVtcHJlc2EsIGVxdWlwbyBvIGNvbnRleHRvLiBQdWVkZXMgcGVydGVuZWNlciBhIHZhcmlhcyBvcmdhbml6YWNpb25lcyB5IGNhbWJpYXIgZW50cmUgZWxsYXMgZW4gY3VhbHF1aWVyIG1vbWVudG8uXFxuXFxuQ2FkYSBvcmdhbml6YWNpw7NuIHRpZW5lIHN1cyBwcm9waW9zIG1pZW1icm9zLCByb2xlcyB5IHBlcm1pc29zLiBMYSBvcmdhbml6YWNpw7NuIGFjdGl2YSBkZXRlcm1pbmEgcXXDqSBkYXRvcyB2ZXMgeSBxdcOpIGFjY2lvbmVzIHB1ZWRlcyByZWFsaXphci5cXG5cXG5QdWVkZXMgY3JlYXIgdW5hIG9yZ2FuaXphY2nDs24gbnVldmEgbyB1bmlydGUgYSB1bmEgZXhpc3RlbnRlIG1lZGlhbnRlIGludml0YWNpw7NuLicsXG4gICAgdmlld01lbWJlckN0YTogJ1ZlciBtaWVtYnJvJyxcbiAgICByb2xlVmlld2VyOiAnVmlzb3InLFxuICAgIHJvbGVFZGl0b3I6ICdFZGl0b3InLFxuICAgIHJvbGVBZG1pbjogJ0FkbWluJyxcbiAgICByb2xlU3VwZXJBZG1pbjogJ1N1cGVyIEFkbWluJyxcbiAgICByb2xlc1NlY3Rpb25UaXRsZTogJ1JvbGVzIHkgcGVybWlzb3MnLFxuICAgIHJvbGVzSGludDpcbiAgICAgICdUdSBvcmdhbml6YWNpw7NuIHRpZW5lIHJvbGVzIHF1ZSBjb250cm9sYW4gbG8gcXVlIGNhZGEgbWllbWJybyBwdWVkZSB2ZXIgeSBoYWNlci4gQ2FkYSByb2wgbGxldmEgdW4gY29uanVudG8gZGUgcGVybWlzb3MgYXNvY2lhZG9zLicsXG4gICAgcm9sZXNWaWV3UGVybXM6ICdWZXIgcm9sZXMgeSBwZXJtaXNvcycsXG4gICAgcm9sZXNTeXN0ZW1CYWRnZTogJ1Npc3RlbWEnLFxuICAgIHBlcm1BbGw6ICdUb2RvJyxcbiAgICBwZXJtVXNlcnM6ICdVc3VhcmlvcycsXG4gICAgcGVybURvY3VtZW50czogJ0RvY3VtZW50b3MnLFxuICAgIHBlcm1Sb2xlczogJ1JvbGVzJyxcbiAgICBwZXJtTWVkaWE6ICdNZWRpYScsXG4gICAgcGVybVRlbXBsYXRlczogJ1BsYW50aWxsYXMnLFxuICAgIHBlcm1SZWFkOiAnTGVlcicsXG4gICAgcGVybVdyaXRlOiAnRXNjcmliaXInLFxuICAgIHBlcm1DcmVhdGU6ICdDcmVhcicsXG4gICAgcGVybURlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICBwZXJtTWFuYWdlOiAnR2VzdGlvbmFyJyxcbiAgICBtZW1iZXJzU2hvd01vcmU6ICdWZXIgbcOhcycsXG4gIH0sXG4gIGVuOiB7XG4gICAgcGFnZVRpdGxlOiAnT3JnYW5pemF0aW9uJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdNYW5hZ2UgeW91ciBhY3RpdmUgb3JnYW5pemF0aW9uJyxcbiAgICBpbmZvVGl0bGU6ICdJbmZvcm1hdGlvbicsXG4gICAgaW5mb05hbWU6ICdOYW1lJyxcbiAgICBpbmZvRGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgaW5mb1BsYW46ICdQbGFuJyxcbiAgICBpbmZvVHlwZTogJ1R5cGUnLFxuICAgIGVkaXRDdGE6ICdFZGl0JyxcbiAgICBzYXZlQ3RhOiAnU2F2ZScsXG4gICAgY2FuY2VsQ3RhOiAnQ2FuY2VsJyxcbiAgICBtZW1iZXJzVGl0bGU6ICdNZW1iZXJzJyxcbiAgICBtZW1iZXJzRW1wdHk6ICdObyBtZW1iZXJzIHlldC4nLFxuICAgIG1lbWJlclJvbGVzOiAnUm9sZXMnLFxuICAgIGludml0ZVRpdGxlOiAnSW52aXRlJyxcbiAgICBpbnZpdGVFbWFpbDogJ0VtYWlsIGFkZHJlc3MnLFxuICAgIGludml0ZVJvbGU6ICdSb2xlJyxcbiAgICBpbnZpdGVDdGE6ICdJbnZpdGUnLFxuICAgIGludml0ZVN1Y2Nlc3M6ICdJbnZpdGF0aW9uIHNlbnQuJyxcbiAgICBpbnZpdGVFcnJvcjogJ0NvdWxkIG5vdCBzZW5kIGludml0YXRpb24uJyxcbiAgICBtZW1iZXJzRXJyb3I6ICdDb3VsZCBub3QgbG9hZCBtZW1iZXJzLicsXG4gICAgbGVhdmVUaXRsZTogJ0xlYXZlIG9yZ2FuaXphdGlvbicsXG4gICAgbGVhdmVIaW50OiAnWW91IHdpbGwgbG9zZSBhY2Nlc3MgdG8gdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICBsZWF2ZUN0YTogJ0xlYXZlJyxcbiAgICBsZWF2ZU93bmVySGludDogJ1lvdSBhcmUgdGhlIG93bmVyLiBUcmFuc2ZlciBvd25lcnNoaXAgYmVmb3JlIGxlYXZpbmcuJyxcbiAgICBsZWF2ZUNvbmZpcm06ICdMZWF2ZSB0aGlzIG9yZ2FuaXphdGlvbj8nLFxuICAgIHBsYW5GcmVlOiAnRnJlZScsXG4gICAgcGxhblBybzogJ1BybycsXG4gICAgcGxhbkVudGVycHJpc2U6ICdFbnRlcnByaXNlJyxcbiAgICBzYXZlU3VjY2VzczogJ09yZ2FuaXphdGlvbiB1cGRhdGVkLicsXG4gICAgbGVhdmVTdWNjZXNzOiAnWW91IGhhdmUgbGVmdCB0aGUgb3JnYW5pemF0aW9uLicsXG4gICAgZXJyb3JUaXRsZTogJ0NvdWxkIG5vdCBsb2FkIG9yZ2FuaXphdGlvbicsXG4gICAgb2ZmbGluZVRpdGxlOiAnTm8gY29ubmVjdGlvbicsXG4gICAgb2ZmbGluZUhpbnQ6ICdDaGVjayB5b3VyIGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgIHJldHJ5OiAnUmV0cnknLFxuICAgIHNhdmVFcnJvcjogJ0NvdWxkIG5vdCBzYXZlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgbGVhdmVFcnJvcjogJ0NvdWxkIG5vdCBsZWF2ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgIHRyYW5zZmVyVGl0bGU6ICdUcmFuc2ZlciBvd25lcnNoaXAnLFxuICAgIHRyYW5zZmVySGludDogJ0Nob29zZSBhIG1lbWJlciB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgdGhpcyBvcmdhbml6YXRpb24uJyxcbiAgICB0cmFuc2ZlclNlbGVjdDogJ1NlbGVjdCBuZXcgb3duZXInLFxuICAgIHRyYW5zZmVyQ3RhOiAnVHJhbnNmZXInLFxuICAgIHRyYW5zZmVyQ29uZmlybTogJ1RyYW5zZmVyIG93bmVyc2hpcCB0byB0aGlzIG1lbWJlcj8gWW91IHdpbGwgbG9zZSB0aGUgb3duZXIgcm9sZS4nLFxuICAgIHRyYW5zZmVyU3VjY2VzczogJ093bmVyc2hpcCB0cmFuc2ZlcnJlZC4nLFxuICAgIHRyYW5zZmVyRXJyb3I6ICdDb3VsZCBub3QgdHJhbnNmZXIgb3duZXJzaGlwLicsXG4gICAgaW52aXRlQ3RhVGl0bGU6ICdXYW50IHRvIGFkZCBzb21lb25lPycsXG4gICAgaW52aXRlQ3RhSGludDogJ0ludml0ZSB1c2VycyB0byBqb2luIHlvdXIgb3JnYW5pemF0aW9uLicsXG4gICAgaW52aXRlT3BlbjogJ0ludml0ZScsXG4gICAgaW1wb3J0T3BlbjogJ0ltcG9ydCcsXG4gICAgYXBpS2V5c09wZW46ICdNYW5hZ2UnLFxuICAgIGFwaUtleXNTZWN0aW9uVGl0bGU6ICdJbnRlZ3JhdGlvbnMgKEFQSSBLZXlzKScsXG4gICAgYXBpS2V5c1NlY3Rpb25IaW50OlxuICAgICAgJ1lvdSBjYW4gYWxzbyBvcGVyYXRlIHlvdXIgb3JnYW5pemF0aW9uIHZpYSBBUEk6IGNyZWF0ZSBhbiBvcmctc2NvcGVkIENsaWVudCBBUEkgS2V5IGZvciBtYWNoaW5lLXRvLW1hY2hpbmUgaW50ZWdyYXRpb25zIChmb3IgZXhhbXBsZSwgYnVsay1wcm92aXNpb25pbmcgbWVtYmVycyBmcm9tIHlvdXIgb3duIHN5c3RlbSkuJyxcbiAgICBhcGlLZXlzTW9yZUluZm86ICdNb3JlIGluZm9ybWF0aW9uJyxcbiAgICBhcGlLZXlzSW5mb1RpdGxlOiAnQVBJIGludGVncmF0aW9ucycsXG4gICAgYXBpS2V5c0luZm9TdWJ0aXRsZTogJ09wZXJhdGUgeW91ciBvcmdhbml6YXRpb24gbWFjaGluZS10by1tYWNoaW5lJyxcbiAgICBhcGlLZXlzSW5mb0NvbnRlbnQ6XG4gICAgICAnQW4gQVBJIEtleSBsZXRzIHlvdSBvcGVyYXRlIHlvdXIgb3JnYW5pemF0aW9uIGZyb20geW91ciBvd24gc3lzdGVtcywgd2l0aG91dCBvcGVuaW5nIHRoZSBhcHA6IHByb3Zpc2lvbiB1c2VycywgYXNzaWduIHJvbGVzLCByZWFkIGRhdGEsIGFuZCBhdXRvbWF0ZSBmbG93cy5cXG5cXG5FYWNoIGtleSBpcyBvcmctc2NvcGVkIGFuZCBjYXJyaWVzIG9ubHkgdGhlIHBlcm1pc3Npb25zIHlvdSBhc3NpZ24g4oCUIGdyYW50IHRoZSBtaW5pbXVtIG5lZWRlZC4gWW91IGNhbiByZXZva2UgaXQgYXQgYW55IHRpbWUuXFxuXFxuVGhlIHNlY3JldCBpcyBzaG93biBvbmx5IG9uY2UgYXQgY3JlYXRpb246IHN0b3JlIGl0IHNvbWV3aGVyZSBzYWZlLiBJZiB5b3UgbG9zZSBpdCwgY3JlYXRlIGEgbmV3IGtleSBhbmQgcmV2b2tlIHRoZSBvbGQgb25lLicsXG4gICAgYXBpS2V5c0luZm9DbG9zZTogJ0Nsb3NlJyxcbiAgICBvcmdzTW9yZUluZm86ICdMZWFybiBtb3JlIGFib3V0IG9yZ2FuaXphdGlvbnMnLFxuICAgIG9yZ3NJbmZvVGl0bGU6ICdXaGF0IGFyZSBvcmdhbml6YXRpb25zPycsXG4gICAgb3Jnc0luZm9TdWJ0aXRsZTogJ0V2ZXJ5dGhpbmcgeW91IG5lZWQgdG8ga25vdycsXG4gICAgb3Jnc0luZm9DbG9zZTogJ0Nsb3NlJyxcbiAgICBvcmdzSW5mb0NvbnRlbnQ6XG4gICAgICAnT3JnYW5pemF0aW9ucyBsZXQgeW91IHNlcGFyYXRlIHlvdXIgcHJvamVjdHMgYW5kIGRhdGEgYnkgY29tcGFueSwgdGVhbSwgb3IgY29udGV4dC4gWW91IGNhbiBiZWxvbmcgdG8gbXVsdGlwbGUgb3JnYW5pemF0aW9ucyBhbmQgc3dpdGNoIGJldHdlZW4gdGhlbSBhdCBhbnkgdGltZS5cXG5cXG5FYWNoIG9yZ2FuaXphdGlvbiBoYXMgaXRzIG93biBtZW1iZXJzLCByb2xlcywgYW5kIHBlcm1pc3Npb25zLiBUaGUgYWN0aXZlIG9yZ2FuaXphdGlvbiBkZXRlcm1pbmVzIHdoYXQgZGF0YSB5b3Ugc2VlIGFuZCB3aGF0IGFjdGlvbnMgeW91IGNhbiB0YWtlLlxcblxcbllvdSBjYW4gY3JlYXRlIGEgbmV3IG9yZ2FuaXphdGlvbiBvciBqb2luIGFuIGV4aXN0aW5nIG9uZSB2aWEgaW52aXRhdGlvbi4nLFxuICAgIHZpZXdNZW1iZXJDdGE6ICdWaWV3IG1lbWJlcicsXG4gICAgcm9sZVZpZXdlcjogJ1ZpZXdlcicsXG4gICAgcm9sZUVkaXRvcjogJ0VkaXRvcicsXG4gICAgcm9sZUFkbWluOiAnQWRtaW4nLFxuICAgIHJvbGVTdXBlckFkbWluOiAnU3VwZXIgQWRtaW4nLFxuICAgIHJvbGVzU2VjdGlvblRpdGxlOiAnUm9sZXMgJiBwZXJtaXNzaW9ucycsXG4gICAgcm9sZXNIaW50OlxuICAgICAgJ1lvdXIgb3JnYW5pemF0aW9uIGhhcyByb2xlcyB0aGF0IGNvbnRyb2wgd2hhdCBlYWNoIG1lbWJlciBjYW4gc2VlIGFuZCBkby4gRWFjaCByb2xlIGNhcnJpZXMgYSBzZXQgb2YgYXNzb2NpYXRlZCBwZXJtaXNzaW9ucy4nLFxuICAgIHJvbGVzVmlld1Blcm1zOiAnVmlldyByb2xlcyAmIHBlcm1pc3Npb25zJyxcbiAgICByb2xlc1N5c3RlbUJhZGdlOiAnU3lzdGVtJyxcbiAgICBwZXJtQWxsOiAnQWxsJyxcbiAgICBwZXJtVXNlcnM6ICdVc2VycycsXG4gICAgcGVybURvY3VtZW50czogJ0RvY3VtZW50cycsXG4gICAgcGVybVJvbGVzOiAnUm9sZXMnLFxuICAgIHBlcm1NZWRpYTogJ01lZGlhJyxcbiAgICBwZXJtVGVtcGxhdGVzOiAnVGVtcGxhdGVzJyxcbiAgICBwZXJtUmVhZDogJ1JlYWQnLFxuICAgIHBlcm1Xcml0ZTogJ1dyaXRlJyxcbiAgICBwZXJtQ3JlYXRlOiAnQ3JlYXRlJyxcbiAgICBwZXJtRGVsZXRlOiAnRGVsZXRlJyxcbiAgICBwZXJtTWFuYWdlOiAnTWFuYWdlJyxcbiAgICBtZW1iZXJzU2hvd01vcmU6ICdTaG93IG1vcmUnLFxuICB9LFxufTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL29yZ2FuaXphdGlvbi12aWV3L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYWNpw7NuIGFjb3RhZGEgZGUgYHZhbC1vcmdhbml6YXRpb24tdmlld2AgKG9iamVjdC1maXJzdCkuIFRyZXMgZWplcyBkZVxuICogdmFyaWFjacOzbiBwZXJtaXRpZG9zIOKAlCAqKk5BREEgZGUgc2xvdHMgYXJiaXRyYXJpb3MqKiAoQURSLTAyMTogdW5hIHZpc3RhXG4gKiBmdWxsLWZlYXR1cmUgbm8gYWJyZSBzbG90czsgc2kgZmFsdGEgYWxnbywgc2UgcHJvbXVldmUgdW4gbnVldm8gcHVudG8gZGVcbiAqIGV4dGVuc2nDs24pOlxuICpcbiAqICAtICoqc2VjY2lvbmVzIHZpc2libGVzKiog4oCUIGdhdGVhbiBlbCByZW5kZXIgZGUgY2FkYSBibG9xdWUgKGluZm9ybWFjacOzbiBkZSBsYVxuICogICAgb3JnLCBtaWVtYnJvcywgcm9sZXMgeSBwZXJtaXNvcywgaW52aXRhciwgdHJhbnNmZXJpciBwcm9waWVkYWQsIHNhbGlyIGRlIGxhXG4gKiAgICBvcmcpLiBFbCBnYXRpbmcgUkJBQyBhZGljaW9uYWwgKGludml0YXIgPSBgdXNlcnM6KmAsIHRyYW5zZmVyaXIgPSBvd25lcikgZXNcbiAqICAgICoqaW50ZXJubyoqIGEgbGEgdmlzdGEgKHbDrWEgYEF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24oKWAgKyBgKnZhbEhhc1Blcm1pc3Npb25gXG4gKiAgICArIGNvbXB1dGVkcyBgaXNPd25lcmAvYGNhbk1hbmFnZU1lbWJlcnNgKSB5IE5PIHNlIGV4cG9uZSBjb21vIGNvbmZpZyDigJQgZGVjaXNpw7NuXG4gKiAgICBDVE8gY29uZmlybWFkYS4gRXN0b3MgZmxhZ3Mgc29sbyBwZXJtaXRlbiBvY3VsdGFyIGxhIHNlY2Npw7NuIHBvciBjb21wbGV0by5cbiAqICAtICoqYnJhbmRpbmcqKiDigJQgYGkxOG5OYW1lc3BhY2VgIHBhcmEgcmVzb2x2ZXIgbG9zIHRleHRvcyAoZGVmYXVsdFxuICogICAgYCdTZXR0aW5ncy5Pcmdhbml6YXRpb24nYCkuXG4gKiAgLSAqKmNvbXBvcnRhbWllbnRvIC8gY2FsbGJhY2tzKiog4oCUIHJ1dGFzIGRlIG5hdmVnYWNpw7NuIChgdmlld1Blcm1pc3Npb25zUm91dGVgLFxuICogICAgYGxlYXZlUmVkaXJlY3RSb3V0ZWApIHkgaG9va3Mgb3BjaW9uYWxlcyB0cmFzIGVkaXRhciAvIGludml0YXIgLyB0cmFuc2ZlcmlyIC9cbiAqICAgIHNhbGlyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZ2FuaXphdGlvblZpZXdDb25maWcge1xuICAvKiogTXVlc3RyYSBsYSBzZWNjacOzbiBcIkluZm9ybWFjacOzblwiIGRlIGxhIG9yZ2FuaXphY2nDs24uIERlZmF1bHQgYHRydWVgLiAqL1xuICBzaG93SW5mbz86IGJvb2xlYW47XG4gIC8qKiBNdWVzdHJhIGxhIHNlY2Npw7NuIFwiTWllbWJyb3NcIi4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dNZW1iZXJzPzogYm9vbGVhbjtcbiAgLyoqIE11ZXN0cmEgbGEgc2VjY2nDs24gXCJSb2xlcyB5IHBlcm1pc29zXCIgKGV4cGxpY2F0aXZhKS4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dSb2xlcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNdWVzdHJhIGxhIHNlY2Npw7NuIGRlIGludml0YXIgbWllbWJyb3MuIERlZmF1bHQgYHRydWVgLiBFbCByZW5kZXIgcmVhbCBleGlnZVxuICAgKiBhZGVtw6FzIHBlcm1pc28gYHVzZXJzOipgIChnYXRpbmcgUkJBQyBpbnRlcm5vIHbDrWEgYCp2YWxIYXNQZXJtaXNzaW9uYCkuXG4gICAqL1xuICBzaG93SW52aXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE11ZXN0cmEgbGEgc2VjY2nDs24gXCJUcmFuc2ZlcmlyIHByb3BpZWRhZFwiLiBEZWZhdWx0IGB0cnVlYC4gRWwgcmVuZGVyIHJlYWwgZXhpZ2VcbiAgICogYWRlbcOhcyBzZXIgb3duZXIgKGdhdGluZyBSQkFDIGludGVybm8gdsOtYSBgaXNPd25lcigpYCkuXG4gICAqL1xuICBzaG93VHJhbnNmZXJPd25lcnNoaXA/OiBib29sZWFuO1xuICAvKiogTXVlc3RyYSBsYSBzZWNjacOzbiBcIlNhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs25cIi4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dMZWF2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWVzcGFjZSBpMThuIGNvbiBlbCBxdWUgbGEgdmlzdGEgcmVzdWVsdmUgc3VzIHRleHRvcy5cbiAgICogRGVmYXVsdCBgJ1NldHRpbmdzLk9yZ2FuaXphdGlvbidgLlxuICAgKi9cbiAgaTE4bk5hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogUnV0YSBhIGxhIHF1ZSBuYXZlZ2FyIGFsIHZlciBlbCBkZXRhbGxlIGRlIHJvbGVzIHkgcGVybWlzb3MgKGJvdMOzblxuICAgKiBcIlZlciByb2xlcyB5IHBlcm1pc29zXCIpLiBEZWZhdWx0IGAnL2FwcC9zZXR0aW5ncy9wZXJtaXNzaW9ucydgLlxuICAgKi9cbiAgdmlld1Blcm1pc3Npb25zUm91dGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1dGEgYSBsYSBxdWUgcmVkaXJpZ2lyIHRyYXMgc2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbi5cbiAgICogRGVmYXVsdCBgJy9hcHAvc2V0dGluZ3MvYWNjb3VudCdgLlxuICAgKi9cbiAgbGVhdmVSZWRpcmVjdFJvdXRlPzogc3RyaW5nO1xuXG4gIC8qKiBIb29rIHRyYXMgZWRpdGFyIGxhIG9yZ2FuaXphY2nDs24gdsOtYSBlbCBtb2RhbCBkZSBlZGljacOzbi4gKi9cbiAgb25PcmdFZGl0ZWQ/OiAoKSA9PiB2b2lkO1xuICAvKiogSG9vayB0cmFzIGludml0YXIgYSB1biBtaWVtYnJvIHbDrWEgZWwgbW9kYWwgZGUgaW52aXRhY2nDs24uICovXG4gIG9uTWVtYmVySW52aXRlZD86ICgpID0+IHZvaWQ7XG4gIC8qKiBIb29rIHRyYXMgdHJhbnNmZXJpciBsYSBwcm9waWVkYWQgZGUgbGEgb3JnYW5pemFjacOzbi4gKi9cbiAgb25Pd25lcnNoaXBUcmFuc2ZlcnJlZD86ICgpID0+IHZvaWQ7XG4gIC8qKiBIb29rIHRyYXMgc2FsaXIgZGUgbGEgb3JnYW5pemFjacOzbi4gKi9cbiAgb25MZWZ0T3JnPzogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL29yZ2FuaXphdGlvbi12aWV3L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYWNpw7NuIGFjb3RhZGEgZGUgYHZhbC1vcmdhbml6YXRpb24tdmlld2AgKG9iamVjdC1maXJzdCkuIFRyZXMgZWplcyBkZVxuICogdmFyaWFjacOzbiBwZXJtaXRpZG9zIOKAlCAqKk5BREEgZGUgc2xvdHMgYXJiaXRyYXJpb3MqKiAoQURSLTAyMTogdW5hIHZpc3RhXG4gKiBmdWxsLWZlYXR1cmUgbm8gYWJyZSBzbG90czsgc2kgZmFsdGEgYWxnbywgc2UgcHJvbXVldmUgdW4gbnVldm8gcHVudG8gZGVcbiAqIGV4dGVuc2nDs24pOlxuICpcbiAqICAtICoqc2VjY2lvbmVzIHZpc2libGVzKiog4oCUIGdhdGVhbiBlbCByZW5kZXIgZGUgY2FkYSBibG9xdWUgKGluZm9ybWFjacOzbiBkZSBsYVxuICogICAgb3JnLCBtaWVtYnJvcywgcm9sZXMgeSBwZXJtaXNvcywgaW52aXRhciwgdHJhbnNmZXJpciBwcm9waWVkYWQsIHNhbGlyIGRlIGxhXG4gKiAgICBvcmcpLiBFbCBnYXRpbmcgUkJBQyBhZGljaW9uYWwgKGludml0YXIgPSBgdXNlcnM6KmAsIHRyYW5zZmVyaXIgPSBvd25lcikgZXNcbiAqICAgICoqaW50ZXJubyoqIGEgbGEgdmlzdGEgKHbDrWEgYEF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24oKWAgKyBgKnZhbEhhc1Blcm1pc3Npb25gXG4gKiAgICArIGNvbXB1dGVkcyBgaXNPd25lcmAvYGNhbk1hbmFnZU1lbWJlcnNgKSB5IE5PIHNlIGV4cG9uZSBjb21vIGNvbmZpZyDigJQgZGVjaXNpw7NuXG4gKiAgICBDVE8gY29uZmlybWFkYS4gRXN0b3MgZmxhZ3Mgc29sbyBwZXJtaXRlbiBvY3VsdGFyIGxhIHNlY2Npw7NuIHBvciBjb21wbGV0by5cbiAqICAtICoqYnJhbmRpbmcqKiDigJQgYGkxOG5OYW1lc3BhY2VgIHBhcmEgcmVzb2x2ZXIgbG9zIHRleHRvcyAoZGVmYXVsdFxuICogICAgYCdTZXR0aW5ncy5Pcmdhbml6YXRpb24nYCkuXG4gKiAgLSAqKmNvbXBvcnRhbWllbnRvIC8gY2FsbGJhY2tzKiog4oCUIHJ1dGFzIGRlIG5hdmVnYWNpw7NuIChgdmlld1Blcm1pc3Npb25zUm91dGVgLFxuICogICAgYGxlYXZlUmVkaXJlY3RSb3V0ZWApIHkgaG9va3Mgb3BjaW9uYWxlcyB0cmFzIGVkaXRhciAvIGludml0YXIgLyB0cmFuc2ZlcmlyIC9cbiAqICAgIHNhbGlyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZ2FuaXphdGlvblZpZXdDb25maWcge1xuICAvKiogTXVlc3RyYSBsYSBzZWNjacOzbiBcIkluZm9ybWFjacOzblwiIGRlIGxhIG9yZ2FuaXphY2nDs24uIERlZmF1bHQgYHRydWVgLiAqL1xuICBzaG93SW5mbz86IGJvb2xlYW47XG4gIC8qKiBNdWVzdHJhIGxhIHNlY2Npw7NuIFwiTWllbWJyb3NcIi4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dNZW1iZXJzPzogYm9vbGVhbjtcbiAgLyoqIE11ZXN0cmEgbGEgc2VjY2nDs24gXCJSb2xlcyB5IHBlcm1pc29zXCIgKGV4cGxpY2F0aXZhKS4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dSb2xlcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBNdWVzdHJhIGxhIHNlY2Npw7NuIGRlIGludml0YXIgbWllbWJyb3MuIERlZmF1bHQgYHRydWVgLiBFbCByZW5kZXIgcmVhbCBleGlnZVxuICAgKiBhZGVtw6FzIHBlcm1pc28gYHVzZXJzOipgIChnYXRpbmcgUkJBQyBpbnRlcm5vIHbDrWEgYCp2YWxIYXNQZXJtaXNzaW9uYCkuXG4gICAqL1xuICBzaG93SW52aXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE11ZXN0cmEgbGEgc2VjY2nDs24gXCJUcmFuc2ZlcmlyIHByb3BpZWRhZFwiLiBEZWZhdWx0IGB0cnVlYC4gRWwgcmVuZGVyIHJlYWwgZXhpZ2VcbiAgICogYWRlbcOhcyBzZXIgb3duZXIgKGdhdGluZyBSQkFDIGludGVybm8gdsOtYSBgaXNPd25lcigpYCkuXG4gICAqL1xuICBzaG93VHJhbnNmZXJPd25lcnNoaXA/OiBib29sZWFuO1xuICAvKiogTXVlc3RyYSBsYSBzZWNjacOzbiBcIlNhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs25cIi4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dMZWF2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWVzcGFjZSBpMThuIGNvbiBlbCBxdWUgbGEgdmlzdGEgcmVzdWVsdmUgc3VzIHRleHRvcy5cbiAgICogRGVmYXVsdCBgJ1NldHRpbmdzLk9yZ2FuaXphdGlvbidgLlxuICAgKi9cbiAgaTE4bk5hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogUnV0YSBhIGxhIHF1ZSBuYXZlZ2FyIGFsIHZlciBlbCBkZXRhbGxlIGRlIHJvbGVzIHkgcGVybWlzb3MgKGJvdMOzblxuICAgKiBcIlZlciByb2xlcyB5IHBlcm1pc29zXCIpLiBEZWZhdWx0IGAnL2FwcC9zZXR0aW5ncy9wZXJtaXNzaW9ucydgLlxuICAgKi9cbiAgdmlld1Blcm1pc3Npb25zUm91dGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1dGEgYSBsYSBxdWUgbmF2ZWdhciBhbCBnZXN0aW9uYXIgbGFzIEFQSSBLZXlzIChib3TDs24gXCJHZXN0aW9uYXJcIiBkZSBsYVxuICAgKiBzZWNjacOzbiBJbnRlZ3JhY2lvbmVzKS4gQXB1bnRhIGEgYHZhbC1hcGkta2V5cy12aWV3YFxuICAgKiAoYHByb3ZpZGVWYWx0ZWNoQXBpS2V5c1JvdXRlc2ApLiBEZWZhdWx0IGAnL2FwcC9zZXR0aW5ncy9hcGkta2V5cydgLlxuICAgKi9cbiAgYXBpS2V5c1JvdXRlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSdXRhIGEgbGEgcXVlIHJlZGlyaWdpciB0cmFzIHNhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24uXG4gICAqIERlZmF1bHQgYCcvYXBwL3NldHRpbmdzL2FjY291bnQnYC5cbiAgICovXG4gIGxlYXZlUmVkaXJlY3RSb3V0ZT86IHN0cmluZztcblxuICAvKiogSG9vayB0cmFzIGVkaXRhciBsYSBvcmdhbml6YWNpw7NuIHbDrWEgZWwgbW9kYWwgZGUgZWRpY2nDs24uICovXG4gIG9uT3JnRWRpdGVkPzogKCkgPT4gdm9pZDtcbiAgLyoqIEhvb2sgdHJhcyBpbnZpdGFyIGEgdW4gbWllbWJybyB2w61hIGVsIG1vZGFsIGRlIGludml0YWNpw7NuLiAqL1xuICBvbk1lbWJlckludml0ZWQ/OiAoKSA9PiB2b2lkO1xuICAvKiogSG9vayB0cmFzIHRyYW5zZmVyaXIgbGEgcHJvcGllZGFkIGRlIGxhIG9yZ2FuaXphY2nDs24uICovXG4gIG9uT3duZXJzaGlwVHJhbnNmZXJyZWQ/OiAoKSA9PiB2b2lkO1xuICAvKiogSG9vayB0cmFzIHNhbGlyIGRlIGxhIG9yZ2FuaXphY2nDs24uICovXG4gIG9uTGVmdE9yZz86ICgpID0+IHZvaWQ7XG59XG4iXX0=