@alfresco/adf-process-services-cloud 6.10.0-9874289033 → 7.0.0-alpha.1

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 (59) hide show
  1. package/esm2020/lib/app/app-list-cloud.module.mjs +8 -26
  2. package/esm2020/lib/app/components/app-list-cloud.component.mjs +3 -3
  3. package/esm2020/lib/common/process-common.module.mjs +7 -20
  4. package/esm2020/lib/form/components/form-cloud.component.mjs +7 -5
  5. package/esm2020/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +3 -3
  6. package/esm2020/lib/form/components/widgets/attach-file/file-properties-table-cloud.component.mjs +10 -8
  7. package/esm2020/lib/form/components/widgets/data-table/data-table.widget.mjs +4 -4
  8. package/esm2020/lib/form/components/widgets/date/date-cloud.widget.mjs +131 -72
  9. package/esm2020/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +18 -12
  10. package/esm2020/lib/form/components/widgets/people/people-cloud.widget.mjs +3 -3
  11. package/esm2020/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +16 -4
  12. package/esm2020/lib/form/form-cloud.module.mjs +15 -26
  13. package/esm2020/lib/group/components/group-cloud.component.mjs +3 -3
  14. package/esm2020/lib/group/group-cloud.module.mjs +6 -23
  15. package/esm2020/lib/people/components/people-cloud.component.mjs +47 -3
  16. package/esm2020/lib/people/people-cloud.module.mjs +5 -4
  17. package/esm2020/lib/process/process-cloud.module.mjs +7 -21
  18. package/esm2020/lib/process/process-filters/components/edit-process-filter-cloud.component.mjs +9 -6
  19. package/esm2020/lib/process/process-filters/components/process-filter-dialog-cloud.component.mjs +16 -29
  20. package/esm2020/lib/process/process-filters/components/process-filters-cloud.component.mjs +32 -26
  21. package/esm2020/lib/process/process-filters/services/process-filter-cloud.service.mjs +7 -11
  22. package/esm2020/lib/process/process-list/components/process-list-cloud.component.mjs +1 -1
  23. package/esm2020/lib/process/start-process/components/start-process-cloud.component.mjs +70 -71
  24. package/esm2020/lib/task/start-task/components/start-task-cloud.component.mjs +1 -1
  25. package/esm2020/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.mjs +3 -3
  26. package/esm2020/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.mjs +3 -3
  27. package/esm2020/lib/task/task-filters/components/service-task-filters-cloud.component.mjs +24 -22
  28. package/esm2020/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +1 -1
  29. package/esm2020/lib/task/task-filters/components/task-filters-cloud.component.mjs +28 -25
  30. package/esm2020/lib/task/task-form/components/task-form-cloud.component.mjs +1 -1
  31. package/esm2020/lib/task/task-list/components/service-task-list-cloud.component.mjs +1 -1
  32. package/esm2020/lib/task/task-list/components/task-list-cloud.component.mjs +1 -1
  33. package/fesm2015/adf-process-services-cloud.mjs +579 -528
  34. package/fesm2015/adf-process-services-cloud.mjs.map +1 -1
  35. package/fesm2020/adf-process-services-cloud.mjs +506 -459
  36. package/fesm2020/adf-process-services-cloud.mjs.map +1 -1
  37. package/lib/app/app-list-cloud.module.d.ts +1 -1
  38. package/lib/common/process-common.module.d.ts +2 -1
  39. package/lib/form/components/form-cloud.component.d.ts +3 -2
  40. package/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.d.ts +1 -1
  41. package/lib/form/components/widgets/date/date-cloud.widget.d.ts +17 -14
  42. package/lib/form/components/widgets/date/date-cloud.widget.scss +1 -1
  43. package/lib/form/components/widgets/dropdown/dropdown-cloud.widget.d.ts +4 -2
  44. package/lib/form/components/widgets/dropdown/dropdown-cloud.widget.scss +0 -1
  45. package/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.d.ts +4 -0
  46. package/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.scss +2 -3
  47. package/lib/form/form-cloud.module.d.ts +19 -20
  48. package/lib/group/group-cloud.module.d.ts +2 -1
  49. package/lib/people/components/people-cloud.component.d.ts +22 -3
  50. package/lib/people/people-cloud.module.d.ts +2 -1
  51. package/lib/process/process-filters/components/edit-process-filter-cloud.component.d.ts +1 -0
  52. package/lib/process/process-filters/components/process-filter-dialog-cloud.component.d.ts +7 -27
  53. package/lib/process/process-filters/components/process-filters-cloud.component.d.ts +3 -6
  54. package/lib/process/process-filters/services/process-filter-cloud.service.d.ts +3 -5
  55. package/lib/process/start-process/components/start-process-cloud.component.d.ts +20 -21
  56. package/lib/task/task-filters/components/service-task-filters-cloud.component.d.ts +2 -5
  57. package/lib/task/task-filters/components/task-filters-cloud.component.d.ts +3 -6
  58. package/package.json +4 -4
  59. package/bundles/assets/images/alfresco-flower.svg +0 -1
@@ -173,8 +173,8 @@ export class AttachFileCloudWidgetComponent extends UploadCloudWidgetComponent {
173
173
  downloadContent(file) {
174
174
  this.processCloudContentService.downloadFile(file.id);
175
175
  }
176
- onUploadNewFileVersion(node) {
177
- this.newVersionUploaderService.openUploadNewVersionDialog(node).subscribe((newVersionUploaderData) => {
176
+ onUploadNewFileVersion(config) {
177
+ this.newVersionUploaderService.openUploadNewVersionDialog(config).subscribe((newVersionUploaderData) => {
178
178
  if (newVersionUploaderData.action === NewVersionUploaderDataAction.upload) {
179
179
  this.replaceOldFileVersionWithNew(newVersionUploaderData);
180
180
  }
@@ -247,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
247
247
  }], ctorParameters: function () { return [{ type: i1.FormService }, { type: i1.ThumbnailService }, { type: i2.ProcessCloudContentService }, { type: i1.NotificationService }, { type: i3.ContentCloudNodeSelectorService }, { type: i1.AppConfigService }, { type: i1.AlfrescoApiService }, { type: i4.ContentNodeSelectorPanelService }, { type: i4.NewVersionUploaderService }]; }, propDecorators: { error: [{
248
248
  type: Output
249
249
  }] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFDSCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUVuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFFL0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQVEsUUFBUSxFQUFnQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBOEIseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4SCxPQUFPLEVBQ0gsK0JBQStCLEVBQy9CLDRCQUE0QixFQUU1Qix5QkFBeUIsRUFFNUIs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LFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2daQVFyQyxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1TZXJ2aWNlLFxuICAgIFRodW1ibmFpbFNlcnZpY2UsXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBGb3JtVmFsdWVzLFxuICAgIENvbnRlbnRMaW5rTW9kZWwsXG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgVXBsb2FkV2lkZ2V0Q29udGVudExpbmtNb2RlbCxcbiAgICBEZXN0aW5hdGlvbkZvbGRlclBhdGhcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5vZGUsIE5vZGVzQXBpLCBSZWxhdGVkQ29udGVudFJlcHJlc2VudGF0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb250ZW50Q2xvdWROb2RlU2VsZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGVudC1jbG91ZC1ub2RlLXNlbGVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvY2Vzc0Nsb3VkQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9jZXNzLWNsb3VkLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWRDbG91ZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLWNsb3VkLndpZGdldCc7XG5pbXBvcnQgeyBEZXN0aW5hdGlvbkZvbGRlclBhdGhNb2RlbCwgRGVzdGluYXRpb25Gb2xkZXJQYXRoVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9mb3JtLWNsb3VkLXJlcHJlc2VudGF0aW9uLm1vZGVsJztcbmltcG9ydCB7XG4gICAgQ29udGVudE5vZGVTZWxlY3RvclBhbmVsU2VydmljZSxcbiAgICBOZXdWZXJzaW9uVXBsb2FkZXJEYXRhQWN0aW9uLFxuICAgIE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEsXG4gICAgTmV3VmVyc2lvblVwbG9hZGVyU2VydmljZSxcbiAgICBWZXJzaW9uTWFuYWdlclVwbG9hZERhdGFcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcblxuZXhwb3J0IGNvbnN0IFJFVFJJRVZFX01FVEFEQVRBX09QVElPTiA9ICdyZXRyaWV2ZU1ldGFkYXRhJztcbmV4cG9ydCBjb25zdCBBTElBU19ST09UX0ZPTERFUiA9ICctcm9vdC0nO1xuZXhwb3J0IGNvbnN0IEFMSUFTX1VTRVJfRk9MREVSID0gJy1teS0nO1xuZXhwb3J0IGNvbnN0IEFQUF9OQU1FID0gJy1hcHBuYW1lLSc7XG5leHBvcnQgY29uc3QgVkFMSURfQUxJQVMgPSBbQUxJQVNfUk9PVF9GT0xERVIsIEFMSUFTX1VTRVJfRk9MREVSLCAnLXNoYXJlZC0nXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtY2xvdWQtYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdHRhY2gtZmlsZS1jbG91ZC13aWRnZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBdHRhY2hGaWxlQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBVcGxvYWRDbG91ZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICB0eXBlSWQgPSAnQXR0YWNoRmlsZUNsb3VkV2lkZ2V0Q29tcG9uZW50JztcbiAgICByb290Tm9kZUlkID0gQUxJQVNfVVNFUl9GT0xERVI7XG4gICAgc2VsZWN0ZWROb2RlOiBOb2RlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgcHJldmlld1N0YXRlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICAgIGdldCBub2Rlc0FwaSgpOiBOb2Rlc0FwaSB7XG4gICAgICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICAgIH1cbiAgICBkaXNwbGF5ZWRDb2x1bW5zID0gWydpY29uJywgJ2ZpbGVOYW1lJywgJ2FjdGlvbiddO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICAgICAgdGh1bWJuYWlsczogVGh1bWJuYWlsU2VydmljZSxcbiAgICAgICAgcHJvY2Vzc0Nsb3VkQ29udGVudFNlcnZpY2U6IFByb2Nlc3NDbG91ZENvbnRlbnRTZXJ2aWNlLFxuICAgICAgICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnROb2RlU2VsZWN0b3JTZXJ2aWNlOiBDb250ZW50Q2xvdWROb2RlU2VsZWN0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnROb2RlU2VsZWN0b3JQYW5lbFNlcnZpY2U6IENvbnRlbnROb2RlU2VsZWN0b3JQYW5lbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmV3VmVyc2lvblVwbG9hZGVyU2VydmljZTogTmV3VmVyc2lvblVwbG9hZGVyU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtU2VydmljZSwgdGh1bWJuYWlscywgcHJvY2Vzc0Nsb3VkQ29udGVudFNlcnZpY2UsIG5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5oYXNGaWxlICYmIHRoaXMuZmllbGQudmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSB0aGlzLmZpZWxkLnZhbHVlIHx8IHRoaXMuZmllbGQuZm9ybS52YWx1ZXNbdGhpcy5maWVsZC5pZF07XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRNb2RlbEZvcm1GaWxlSGFuZGxlcihmaWxlc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWVsZC5wYXJhbXMuZGlzcGxheWFibGVDTVByb3BlcnRpZXMgPSB0aGlzLmZpZWxkLnBhcmFtcy5kaXNwbGF5YWJsZUNNUHJvcGVydGllcyA/PyBbXTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnNwbGljZSgyLCAwLCAuLi4odGhpcy5maWVsZC5wYXJhbXMuZGlzcGxheWFibGVDTVByb3BlcnRpZXM/Lm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5Py5uYW1lKSB8fCBbXSkpO1xuICAgICAgICB0aGlzLnNldFByZXZpZXdTdGF0ZSgpO1xuICAgIH1cblxuICAgIGlzUGF0aFN0YXRpY1R5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnBhcmFtcz8uZmlsZVNvdXJjZT8uZGVzdGluYXRpb25Gb2xkZXJQYXRoPy50eXBlID09PSBEZXN0aW5hdGlvbkZvbGRlclBhdGhUeXBlLlNUQVRJQ19UWVBFO1xuICAgIH1cblxuICAgIGlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICghdGhpcy5oYXNGaWxlIHx8IHRoaXMubXVsdGlwbGVPcHRpb24pICYmICF0aGlzLmZpZWxkLnJlYWRPbmx5O1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlOiBGaWxlIHwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbiB8IE5vZGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVGaWxlKGZpbGUpO1xuICAgICAgICBpZiAoZmlsZVsnaWQnXSA9PT0gdGhpcy5zZWxlY3RlZE5vZGU/LmlkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIodGhpcy5maWVsZC52YWx1ZS5sZW5ndGggPiAwID8gdGhpcy5maWVsZC52YWx1ZVswXSA6IG51bGwpO1xuICAgIH1cblxuICAgIGZldGNoQXBwTmFtZUZyb21BcHBDb25maWcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQoJ2FsZnJlc2NvLWRlcGxveWVkLWFwcHMnKVswXT8ubmFtZTtcbiAgICB9XG5cbiAgICByZXBsYWNlQXBwTmFtZUFsaWFzV2l0aFZhbHVlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChwYXRoPy5tYXRjaChBUFBfTkFNRSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcE5hbWUgPSB0aGlzLmZldGNoQXBwTmFtZUZyb21BcHBDb25maWcoKTtcbiAgICAgICAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoQVBQX05BTUUsIGFwcE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIGFzeW5jIG9wZW5TZWxlY3REaWFsb2coKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dXYXJuaW5nKCdGT1JNLlBSRVZJRVcuQVRUQUNIX0ZJTEVfV0lER0VULk9OX0FUVEFDSF9GSUxFX0NMSUNLJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1vZGUgPSB0aGlzLmZpZWxkLnBhcmFtcy5tdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnc2luZ2xlJztcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0RGVzdGluYXRpb25Gb2xkZXJOb2RlSWQoKTtcbiAgICAgICAgICAgIHRoaXMucm9vdE5vZGVJZCA9IG5vZGVJZCA/IG5vZGVJZCA6IEFMSUFTX1VTRVJfRk9MREVSO1xuICAgICAgICAgICAgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yUGFuZWxTZXJ2aWNlLmN1c3RvbU1vZGVscyA9IHRoaXMuZmllbGQucGFyYW1zLmN1c3RvbU1vZGVscztcblxuICAgICAgICAgICAgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5vcGVuVXBsb2FkRmlsZURpYWxvZyh0aGlzLnJvb3ROb2RlSWQsIHNlbGVjdGVkTW9kZSwgdGhpcy5pc0FsZnJlc2NvQW5kTG9jYWwoKSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb25zOiBOb2RlW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9ucy5mb3JFYWNoKChub2RlKSA9PiAobm9kZVsnaXNFeHRlcm5hbCddID0gdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25XaXRob3V0RHVwbGljYXRpb24gPSB0aGlzLnJlbW92ZUV4aXN0aW5nU2VsZWN0aW9uKHNlbGVjdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYWRGaWxlc0F0dGFjaGVkID0gdGhpcy5maWVsZC52YWx1ZT8ubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXhJbmNvbXBhdGliaWxpdHlGcm9tUHJldmlvdXNBbmROZXdGb3JtKHNlbGVjdGlvbldpdGhvdXREdXBsaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFkRmlsZXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIodGhpcy5maWVsZC52YWx1ZS5sZW5ndGggPiAwID8gdGhpcy5maWVsZC52YWx1ZVswXSA6IG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldERlc3RpbmF0aW9uRm9sZGVyTm9kZUlkKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGxldCByb290Tm9kZUlkOiBzdHJpbmc7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmZpZWxkPy5wYXJhbXM/LmZpbGVTb3VyY2U/LmRlc3RpbmF0aW9uRm9sZGVyUGF0aD8udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBEZXN0aW5hdGlvbkZvbGRlclBhdGhUeXBlLlNUQVRJQ19UWVBFOlxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQgPSBhd2FpdCB0aGlzLmdldE5vZGVJZEZyb21QYXRoKHRoaXMuZmllbGQucGFyYW1zLmZpbGVTb3VyY2UuZGVzdGluYXRpb25Gb2xkZXJQYXRoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGVzdGluYXRpb25Gb2xkZXJQYXRoVHlwZS5TVFJJTkdfVFlQRTpcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGF0aCh0aGlzLmZpZWxkLnBhcmFtcy5maWxlU291cmNlLmRlc3RpbmF0aW9uRm9sZGVyUGF0aCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERlc3RpbmF0aW9uRm9sZGVyUGF0aFR5cGUuRk9MREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0Tm9kZUlkRnJvbUZvbGRlclZhcmlhYmxlVmFsdWUodGhpcy5maWVsZC5wYXJhbXMuZmlsZVNvdXJjZS5kZXN0aW5hdGlvbkZvbGRlclBhdGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGF0aCh7IHR5cGU6ICcnLCB2YWx1ZTogQUxJQVNfVVNFUl9GT0xERVIgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm9vdE5vZGVJZDtcbiAgICB9XG5cbiAgICBhc3luYyBnZXROb2RlSWRGcm9tUGF0aChkZXN0aW5hdGlvbkZvbGRlclBhdGg6IERlc3RpbmF0aW9uRm9sZGVyUGF0aCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGxldCBub2RlSWQ6IHN0cmluZztcbiAgICAgICAgY29uc3QgZGVzdGluYXRpb25QYXRoID0gdGhpcy5nZXRBbGlhc0FuZFJlbGF0aXZlUGF0aEZyb21EZXN0aW5hdGlvbkZvbGRlclBhdGgoZGVzdGluYXRpb25Gb2xkZXJQYXRoLnZhbHVlKTtcbiAgICAgICAgZGVzdGluYXRpb25QYXRoLnBhdGggPSB0aGlzLnJlcGxhY2VBcHBOYW1lQWxpYXNXaXRoVmFsdWUoZGVzdGluYXRpb25QYXRoLnBhdGgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm9kZUlkID0gYXdhaXQgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yU2VydmljZS5nZXROb2RlSWRGcm9tUGF0aChkZXN0aW5hdGlvblBhdGgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlSWQ7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0Tm9kZUlkRnJvbUZvbGRlclZhcmlhYmxlVmFsdWUoZGVzdGluYXRpb25Gb2xkZXJQYXRoOiBEZXN0aW5hdGlvbkZvbGRlclBhdGgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBsZXQgbm9kZUlkOiBzdHJpbmc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBub2RlSWQgPSBhd2FpdCB0aGlzLmNvbnRlbnROb2RlU2VsZWN0b3JTZXJ2aWNlLmdldE5vZGVJZEZyb21Gb2xkZXJWYXJpYWJsZVZhbHVlKGRlc3RpbmF0aW9uRm9sZGVyUGF0aC52YWx1ZSwgQUxJQVNfVVNFUl9GT0xERVIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlSWQ7XG4gICAgfVxuXG4gICAgZ2V0QWxpYXNBbmRSZWxhdGl2ZVBhdGhGcm9tRGVzdGluYXRpb25Gb2xkZXJQYXRoKGRlc3RpbmF0aW9uRm9sZGVyUGF0aDogc3RyaW5nKTogRGVzdGluYXRpb25Gb2xkZXJQYXRoTW9kZWwge1xuICAgICAgICBsZXQgYWxpYXM6IHN0cmluZztcbiAgICAgICAgbGV0IHBhdGg6IHN0cmluZztcbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uRm9sZGVyUGF0aCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRPZlJlbGF0aXZlUGF0aEluZGV4ID0gZGVzdGluYXRpb25Gb2xkZXJQYXRoLmluZGV4T2YoJy8nKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mUmVsYXRpdmVQYXRoSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGFsaWFzID0gZGVzdGluYXRpb25Gb2xkZXJQYXRoLnN1YnN0cmluZygwLCBzdGFydE9mUmVsYXRpdmVQYXRoSW5kZXgpO1xuICAgICAgICAgICAgICAgIHBhdGggPSBkZXN0aW5hdGlvbkZvbGRlclBhdGguc3Vic3RyaW5nKHN0YXJ0T2ZSZWxhdGl2ZVBhdGhJbmRleCwgZGVzdGluYXRpb25Gb2xkZXJQYXRoLmxlbmd0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFsaWFzID0gZGVzdGluYXRpb25Gb2xkZXJQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZEFsaWFzKGFsaWFzKSA/IHsgYWxpYXMsIHBhdGggfSA6IHsgYWxpYXM6IEFMSUFTX1VTRVJfRk9MREVSLCBwYXRoOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZW1vdmVFeGlzdGluZ1NlbGVjdGlvbihzZWxlY3Rpb25zOiBOb2RlW10pIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOb2RlOiBOb2RlW10gPSBbLi4uKHRoaXMuZmllbGQudmFsdWUgfHwgW10pXTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbnMuZmlsdGVyKChvcHQpID0+ICFleGlzdGluZ05vZGUuc29tZSgobm9kZSkgPT4gbm9kZS5pZCA9PT0gb3B0LmlkKSk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRDb250ZW50KGZpbGU6IE5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzQ2xvdWRDb250ZW50U2VydmljZS5kb3dubG9hZEZpbGUoZmlsZS5pZCk7XG4gICAgfVxuXG4gICAgb25VcGxvYWROZXdGaWxlVmVyc2lvbihub2RlOiBOZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dEYXRhKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmV3VmVyc2lvblVwbG9hZGVyU2VydmljZS5vcGVuVXBsb2FkTmV3VmVyc2lvbkRpYWxvZyhub2RlKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAobmV3VmVyc2lvblVwbG9hZGVyRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzaW9uVXBsb2FkZXJEYXRhLmFjdGlvbiA9PT0gTmV3VmVyc2lvblVwbG9hZGVyRGF0YUFjdGlvbi51cGxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXBsYWNlT2xkRmlsZVZlcnNpb25XaXRoTmV3KG5ld1ZlcnNpb25VcGxvYWRlckRhdGEgYXMgVmVyc2lvbk1hbmFnZXJVcGxvYWREYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yLnZhbHVlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uQXR0YWNoRmlsZUNsaWNrZWQobm9kZVNlbGVjdG9yOiBhbnkpIHtcbiAgICAgICAgbm9kZVNlbGVjdG9yLm5vZGVJZCA9IG5vZGVTZWxlY3Rvci5pZDtcbiAgICAgICAgdGhpcy5maWxlQ2xpY2tlZChuZXcgQ29udGVudExpbmtNb2RlbChub2RlU2VsZWN0b3IpKTtcbiAgICB9XG5cbiAgICBnZXRXaWRnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQWxmcmVzY29BbmRMb2NhbCgpID8gJ2ZpbGVfdXBsb2FkJyA6ICdhdHRhY2hfZmlsZSc7XG4gICAgfVxuXG4gICAgb25Sb3dDbGlja2VkKGZpbGU/OiBOb2RlKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZT8uaWQgPT09IGZpbGU/LmlkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IGZpbGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIodGhpcy5zZWxlY3RlZE5vZGUpO1xuICAgIH1cblxuICAgIGNvbnRlbnRNb2RlbEZvcm1GaWxlSGFuZGxlcihmaWxlPzogYW55KSB7XG4gICAgICAgIGlmIChmaWxlPy5pZCAmJiB0aGlzLmlzUmV0cmlldmVNZXRhZGF0YU9wdGlvbkVuYWJsZWQoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBGb3JtVmFsdWVzID0ge307XG4gICAgICAgICAgICB0aGlzLm5vZGVzQXBpLmdldE5vZGUoZmlsZS5pZCkudGhlbigoYWNzTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gYWNzTm9kZT8uZW50cnk/LnByb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRLZXkgPSBrZXkucmVwbGFjZSgnOicsICdfJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbc2FuaXRpemVkS2V5XSA9IG1ldGFkYXRhW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZvcm1WYWx1ZXNSZXF1ZXN0ZWQubmV4dCh2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsZUNsaWNrZWQobmV3IFVwbG9hZFdpZGdldENvbnRlbnRMaW5rTW9kZWwoZmlsZSwgdGhpcy5maWVsZC5pZCkpO1xuICAgIH1cblxuICAgIGlzUmV0cmlldmVNZXRhZGF0YU9wdGlvbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkPy5wYXJhbXM/Lm1lbnVPcHRpb25zICYmIHRoaXMuZmllbGQucGFyYW1zLm1lbnVPcHRpb25zW1JFVFJJRVZFX01FVEFEQVRBX09QVElPTl07XG4gICAgfVxuXG4gICAgaXNWYWxpZEFsaWFzKGFsaWFzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGFsaWFzICYmIFZBTElEX0FMSUFTLmluY2x1ZGVzKGFsaWFzKTtcbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNGaWxlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNvbnRlbnROb2RlU2VsZWN0b3JQYW5lbFNlcnZpY2UuY3VzdG9tTW9kZWxzID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQcmV2aWV3U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlld1N0YXRlID0gdGhpcy5mb3JtU2VydmljZS5nZXRQcmV2aWV3U3RhdGUoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLWF0dGFjaC1maWxlLXdpZGdldC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXQge3tmaWVsZC5jbGFzc05hbWV9fVwiXG4gICAgICAgIFtjbGFzcy5hZGYtcmVhZG9ubHldPVwiZmllbGQucmVhZE9ubHlcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+e3tmaWVsZC5uYW1lfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRmLWFzdGVyaXNrXCIgKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXQtY29udGFpbmVyXCIgKGZvY3Vzb3V0KT1cIm1hcmtBc1RvdWNoZWQoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0X19tZW51LXVwbG9hZFwiICpuZ0lmPVwiaXNVcGxvYWRCdXR0b25WaXNpYmxlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0RGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0X19tZW51LXVwbG9hZF9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImZpZWxkLnRvb2x0aXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdGT1JNLkZJRUxELkFUVEFDSCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0X19tZW51LXVwbG9hZF9fYnV0dG9uX19pY29uXCI+e3tnZXRXaWRnZXRJY29uKCl9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1hdHRhY2gtd2lkZ2V0LXJlYWRvbmx5LWxpc3RcIiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0LXJlYWRvbmx5LXRhYmxlXCI+XG4gICAgICAgIDxhZGYtY2xvdWQtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlXG4gICAgICAgICAgICBbdXBsb2FkZWRGaWxlc109XCJ1cGxvYWRlZEZpbGVzXCJcbiAgICAgICAgICAgIFtoYXNGaWxlXT1cImhhc0ZpbGVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkTm9kZV09XCJzZWxlY3RlZE5vZGVcIlxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtkaXNwbGF5ZWRDb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnNcIlxuICAgICAgICAgICAgW21pbWVUeXBlSWNvbl09XCJtaW1lVHlwZUljb25cIlxuICAgICAgICAgICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChhdHRhY2hGaWxlQ2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChkb3dubG9hZEZpbGUpPVwiZG93bmxvYWRDb250ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKHVwbG9hZE5ld0ZpbGVWZXJzaW9uKT1cIm9uVXBsb2FkTmV3RmlsZVZlcnNpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAoY29udGVudE1vZGVsRmlsZUhhbmRsZXIpPVwiY29udGVudE1vZGVsRm9ybUZpbGVIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgKHJlbW92ZUF0dGFjaEZpbGUpPVwib25SZW1vdmVBdHRhY2hGaWxlKCRldmVudClcIlxuICAgICAgICA+PC9hZGYtY2xvdWQtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWhhc0ZpbGUgJiYgZmllbGQucmVhZE9ubHlcIiBpZD1cInt7J2FkZi1hdHRhY2gtZW1wdHktbGlzdC0nK2ZpZWxkLmlkfX1cIj5cbiAgICAgICAgICAgIHt7ICdGT1JNLkZJRUxELk5PX0ZJTEVfQVRUQUNIRUQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZXJyb3Itd2lkZ2V0IFtlcnJvcl09XCJmaWVsZC52YWxpZGF0aW9uU3VtbWFyeVwiPjwvZXJyb3Itd2lkZ2V0PlxuICAgIDxlcnJvci13aWRnZXQgKm5nSWY9XCIhZmllbGQuaXNWYWxpZCAmJiBpc1RvdWNoZWQoKSAmJiAhaXNTZWxlY3RlZCgpXCIgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIj48L2Vycm9yLXdpZGdldD5cbjwvZGl2PlxuIl19
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBcUIsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFDSCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUVuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiw0QkFBNEIsRUFFL0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQVEsUUFBUSxFQUFnQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBOEIseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4SCxPQUFPLEVBQ0gsK0JBQStCLEVBQy9CLDRCQUE0QixFQUU1Qix5QkFBeUIsRUFFNUIs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LFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2daQVFyQyxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1TZXJ2aWNlLFxuICAgIFRodW1ibmFpbFNlcnZpY2UsXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBGb3JtVmFsdWVzLFxuICAgIENvbnRlbnRMaW5rTW9kZWwsXG4gICAgQXBwQ29uZmlnU2VydmljZSxcbiAgICBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgVXBsb2FkV2lkZ2V0Q29udGVudExpbmtNb2RlbCxcbiAgICBEZXN0aW5hdGlvbkZvbGRlclBhdGhcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5vZGUsIE5vZGVzQXBpLCBSZWxhdGVkQ29udGVudFJlcHJlc2VudGF0aW9uIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb250ZW50Q2xvdWROb2RlU2VsZWN0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGVudC1jbG91ZC1ub2RlLXNlbGVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvY2Vzc0Nsb3VkQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9jZXNzLWNsb3VkLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWRDbG91ZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLWNsb3VkLndpZGdldCc7XG5pbXBvcnQgeyBEZXN0aW5hdGlvbkZvbGRlclBhdGhNb2RlbCwgRGVzdGluYXRpb25Gb2xkZXJQYXRoVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9mb3JtLWNsb3VkLXJlcHJlc2VudGF0aW9uLm1vZGVsJztcbmltcG9ydCB7XG4gICAgQ29udGVudE5vZGVTZWxlY3RvclBhbmVsU2VydmljZSxcbiAgICBOZXdWZXJzaW9uVXBsb2FkZXJEYXRhQWN0aW9uLFxuICAgIE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEsXG4gICAgTmV3VmVyc2lvblVwbG9hZGVyU2VydmljZSxcbiAgICBWZXJzaW9uTWFuYWdlclVwbG9hZERhdGFcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcblxuZXhwb3J0IGNvbnN0IFJFVFJJRVZFX01FVEFEQVRBX09QVElPTiA9ICdyZXRyaWV2ZU1ldGFkYXRhJztcbmV4cG9ydCBjb25zdCBBTElBU19ST09UX0ZPTERFUiA9ICctcm9vdC0nO1xuZXhwb3J0IGNvbnN0IEFMSUFTX1VTRVJfRk9MREVSID0gJy1teS0nO1xuZXhwb3J0IGNvbnN0IEFQUF9OQU1FID0gJy1hcHBuYW1lLSc7XG5leHBvcnQgY29uc3QgVkFMSURfQUxJQVMgPSBbQUxJQVNfUk9PVF9GT0xERVIsIEFMSUFTX1VTRVJfRk9MREVSLCAnLXNoYXJlZC0nXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtY2xvdWQtYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdHRhY2gtZmlsZS1jbG91ZC13aWRnZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBdHRhY2hGaWxlQ2xvdWRXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBVcGxvYWRDbG91ZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICB0eXBlSWQgPSAnQXR0YWNoRmlsZUNsb3VkV2lkZ2V0Q29tcG9uZW50JztcbiAgICByb290Tm9kZUlkID0gQUxJQVNfVVNFUl9GT0xERVI7XG4gICAgc2VsZWN0ZWROb2RlOiBOb2RlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgcHJldmlld1N0YXRlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbm9kZXNBcGk6IE5vZGVzQXBpO1xuICAgIGdldCBub2Rlc0FwaSgpOiBOb2Rlc0FwaSB7XG4gICAgICAgIHRoaXMuX25vZGVzQXBpID0gdGhpcy5fbm9kZXNBcGkgPz8gbmV3IE5vZGVzQXBpKHRoaXMuYXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICAgIH1cbiAgICBkaXNwbGF5ZWRDb2x1bW5zID0gWydpY29uJywgJ2ZpbGVOYW1lJywgJ2FjdGlvbiddO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICAgICAgdGh1bWJuYWlsczogVGh1bWJuYWlsU2VydmljZSxcbiAgICAgICAgcHJvY2Vzc0Nsb3VkQ29udGVudFNlcnZpY2U6IFByb2Nlc3NDbG91ZENvbnRlbnRTZXJ2aWNlLFxuICAgICAgICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnROb2RlU2VsZWN0b3JTZXJ2aWNlOiBDb250ZW50Q2xvdWROb2RlU2VsZWN0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnROb2RlU2VsZWN0b3JQYW5lbFNlcnZpY2U6IENvbnRlbnROb2RlU2VsZWN0b3JQYW5lbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmV3VmVyc2lvblVwbG9hZGVyU2VydmljZTogTmV3VmVyc2lvblVwbG9hZGVyU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcihmb3JtU2VydmljZSwgdGh1bWJuYWlscywgcHJvY2Vzc0Nsb3VkQ29udGVudFNlcnZpY2UsIG5vdGlmaWNhdGlvblNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5oYXNGaWxlICYmIHRoaXMuZmllbGQudmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSB0aGlzLmZpZWxkLnZhbHVlIHx8IHRoaXMuZmllbGQuZm9ybS52YWx1ZXNbdGhpcy5maWVsZC5pZF07XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRNb2RlbEZvcm1GaWxlSGFuZGxlcihmaWxlc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWVsZC5wYXJhbXMuZGlzcGxheWFibGVDTVByb3BlcnRpZXMgPSB0aGlzLmZpZWxkLnBhcmFtcy5kaXNwbGF5YWJsZUNNUHJvcGVydGllcyA/PyBbXTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnNwbGljZSgyLCAwLCAuLi4odGhpcy5maWVsZC5wYXJhbXMuZGlzcGxheWFibGVDTVByb3BlcnRpZXM/Lm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5Py5uYW1lKSB8fCBbXSkpO1xuICAgICAgICB0aGlzLnNldFByZXZpZXdTdGF0ZSgpO1xuICAgIH1cblxuICAgIGlzUGF0aFN0YXRpY1R5cGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkLnBhcmFtcz8uZmlsZVNvdXJjZT8uZGVzdGluYXRpb25Gb2xkZXJQYXRoPy50eXBlID09PSBEZXN0aW5hdGlvbkZvbGRlclBhdGhUeXBlLlNUQVRJQ19UWVBFO1xuICAgIH1cblxuICAgIGlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICghdGhpcy5oYXNGaWxlIHx8IHRoaXMubXVsdGlwbGVPcHRpb24pICYmICF0aGlzLmZpZWxkLnJlYWRPbmx5O1xuICAgIH1cblxuICAgIG9uUmVtb3ZlQXR0YWNoRmlsZShmaWxlOiBGaWxlIHwgUmVsYXRlZENvbnRlbnRSZXByZXNlbnRhdGlvbiB8IE5vZGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVGaWxlKGZpbGUpO1xuICAgICAgICBpZiAoZmlsZVsnaWQnXSA9PT0gdGhpcy5zZWxlY3RlZE5vZGU/LmlkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIodGhpcy5maWVsZC52YWx1ZS5sZW5ndGggPiAwID8gdGhpcy5maWVsZC52YWx1ZVswXSA6IG51bGwpO1xuICAgIH1cblxuICAgIGZldGNoQXBwTmFtZUZyb21BcHBDb25maWcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnU2VydmljZS5nZXQoJ2FsZnJlc2NvLWRlcGxveWVkLWFwcHMnKVswXT8ubmFtZTtcbiAgICB9XG5cbiAgICByZXBsYWNlQXBwTmFtZUFsaWFzV2l0aFZhbHVlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChwYXRoPy5tYXRjaChBUFBfTkFNRSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcE5hbWUgPSB0aGlzLmZldGNoQXBwTmFtZUZyb21BcHBDb25maWcoKTtcbiAgICAgICAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoQVBQX05BTUUsIGFwcE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cblxuICAgIGFzeW5jIG9wZW5TZWxlY3REaWFsb2coKSB7XG4gICAgICAgIGlmICh0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dXYXJuaW5nKCdGT1JNLlBSRVZJRVcuQVRUQUNIX0ZJTEVfV0lER0VULk9OX0FUVEFDSF9GSUxFX0NMSUNLJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1vZGUgPSB0aGlzLmZpZWxkLnBhcmFtcy5tdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnc2luZ2xlJztcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0RGVzdGluYXRpb25Gb2xkZXJOb2RlSWQoKTtcbiAgICAgICAgICAgIHRoaXMucm9vdE5vZGVJZCA9IG5vZGVJZCA/IG5vZGVJZCA6IEFMSUFTX1VTRVJfRk9MREVSO1xuICAgICAgICAgICAgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yUGFuZWxTZXJ2aWNlLmN1c3RvbU1vZGVscyA9IHRoaXMuZmllbGQucGFyYW1zLmN1c3RvbU1vZGVscztcblxuICAgICAgICAgICAgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5vcGVuVXBsb2FkRmlsZURpYWxvZyh0aGlzLnJvb3ROb2RlSWQsIHNlbGVjdGVkTW9kZSwgdGhpcy5pc0FsZnJlc2NvQW5kTG9jYWwoKSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb25zOiBOb2RlW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9ucy5mb3JFYWNoKChub2RlKSA9PiAobm9kZVsnaXNFeHRlcm5hbCddID0gdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25XaXRob3V0RHVwbGljYXRpb24gPSB0aGlzLnJlbW92ZUV4aXN0aW5nU2VsZWN0aW9uKHNlbGVjdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYWRGaWxlc0F0dGFjaGVkID0gdGhpcy5maWVsZC52YWx1ZT8ubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXhJbmNvbXBhdGliaWxpdHlGcm9tUHJldmlvdXNBbmROZXdGb3JtKHNlbGVjdGlvbldpdGhvdXREdXBsaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFkRmlsZXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIodGhpcy5maWVsZC52YWx1ZS5sZW5ndGggPiAwID8gdGhpcy5maWVsZC52YWx1ZVswXSA6IG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldERlc3RpbmF0aW9uRm9sZGVyTm9kZUlkKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGxldCByb290Tm9kZUlkOiBzdHJpbmc7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmZpZWxkPy5wYXJhbXM/LmZpbGVTb3VyY2U/LmRlc3RpbmF0aW9uRm9sZGVyUGF0aD8udHlwZSkge1xuICAgICAgICAgICAgY2FzZSBEZXN0aW5hdGlvbkZvbGRlclBhdGhUeXBlLlNUQVRJQ19UWVBFOlxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQgPSBhd2FpdCB0aGlzLmdldE5vZGVJZEZyb21QYXRoKHRoaXMuZmllbGQucGFyYW1zLmZpbGVTb3VyY2UuZGVzdGluYXRpb25Gb2xkZXJQYXRoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGVzdGluYXRpb25Gb2xkZXJQYXRoVHlwZS5TVFJJTkdfVFlQRTpcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGF0aCh0aGlzLmZpZWxkLnBhcmFtcy5maWxlU291cmNlLmRlc3RpbmF0aW9uRm9sZGVyUGF0aCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERlc3RpbmF0aW9uRm9sZGVyUGF0aFR5cGUuRk9MREVSX1RZUEU6XG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCA9IGF3YWl0IHRoaXMuZ2V0Tm9kZUlkRnJvbUZvbGRlclZhcmlhYmxlVmFsdWUodGhpcy5maWVsZC5wYXJhbXMuZmlsZVNvdXJjZS5kZXN0aW5hdGlvbkZvbGRlclBhdGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkID0gYXdhaXQgdGhpcy5nZXROb2RlSWRGcm9tUGF0aCh7IHR5cGU6ICcnLCB2YWx1ZTogQUxJQVNfVVNFUl9GT0xERVIgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm9vdE5vZGVJZDtcbiAgICB9XG5cbiAgICBhc3luYyBnZXROb2RlSWRGcm9tUGF0aChkZXN0aW5hdGlvbkZvbGRlclBhdGg6IERlc3RpbmF0aW9uRm9sZGVyUGF0aCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGxldCBub2RlSWQ6IHN0cmluZztcbiAgICAgICAgY29uc3QgZGVzdGluYXRpb25QYXRoID0gdGhpcy5nZXRBbGlhc0FuZFJlbGF0aXZlUGF0aEZyb21EZXN0aW5hdGlvbkZvbGRlclBhdGgoZGVzdGluYXRpb25Gb2xkZXJQYXRoLnZhbHVlKTtcbiAgICAgICAgZGVzdGluYXRpb25QYXRoLnBhdGggPSB0aGlzLnJlcGxhY2VBcHBOYW1lQWxpYXNXaXRoVmFsdWUoZGVzdGluYXRpb25QYXRoLnBhdGgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm9kZUlkID0gYXdhaXQgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yU2VydmljZS5nZXROb2RlSWRGcm9tUGF0aChkZXN0aW5hdGlvblBhdGgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlSWQ7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0Tm9kZUlkRnJvbUZvbGRlclZhcmlhYmxlVmFsdWUoZGVzdGluYXRpb25Gb2xkZXJQYXRoOiBEZXN0aW5hdGlvbkZvbGRlclBhdGgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBsZXQgbm9kZUlkOiBzdHJpbmc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBub2RlSWQgPSBhd2FpdCB0aGlzLmNvbnRlbnROb2RlU2VsZWN0b3JTZXJ2aWNlLmdldE5vZGVJZEZyb21Gb2xkZXJWYXJpYWJsZVZhbHVlKGRlc3RpbmF0aW9uRm9sZGVyUGF0aC52YWx1ZSwgQUxJQVNfVVNFUl9GT0xERVIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlSWQ7XG4gICAgfVxuXG4gICAgZ2V0QWxpYXNBbmRSZWxhdGl2ZVBhdGhGcm9tRGVzdGluYXRpb25Gb2xkZXJQYXRoKGRlc3RpbmF0aW9uRm9sZGVyUGF0aDogc3RyaW5nKTogRGVzdGluYXRpb25Gb2xkZXJQYXRoTW9kZWwge1xuICAgICAgICBsZXQgYWxpYXM6IHN0cmluZztcbiAgICAgICAgbGV0IHBhdGg6IHN0cmluZztcbiAgICAgICAgaWYgKGRlc3RpbmF0aW9uRm9sZGVyUGF0aCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRPZlJlbGF0aXZlUGF0aEluZGV4ID0gZGVzdGluYXRpb25Gb2xkZXJQYXRoLmluZGV4T2YoJy8nKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mUmVsYXRpdmVQYXRoSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGFsaWFzID0gZGVzdGluYXRpb25Gb2xkZXJQYXRoLnN1YnN0cmluZygwLCBzdGFydE9mUmVsYXRpdmVQYXRoSW5kZXgpO1xuICAgICAgICAgICAgICAgIHBhdGggPSBkZXN0aW5hdGlvbkZvbGRlclBhdGguc3Vic3RyaW5nKHN0YXJ0T2ZSZWxhdGl2ZVBhdGhJbmRleCwgZGVzdGluYXRpb25Gb2xkZXJQYXRoLmxlbmd0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFsaWFzID0gZGVzdGluYXRpb25Gb2xkZXJQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZEFsaWFzKGFsaWFzKSA/IHsgYWxpYXMsIHBhdGggfSA6IHsgYWxpYXM6IEFMSUFTX1VTRVJfRk9MREVSLCBwYXRoOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZW1vdmVFeGlzdGluZ1NlbGVjdGlvbihzZWxlY3Rpb25zOiBOb2RlW10pIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOb2RlOiBOb2RlW10gPSBbLi4uKHRoaXMuZmllbGQudmFsdWUgfHwgW10pXTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbnMuZmlsdGVyKChvcHQpID0+ICFleGlzdGluZ05vZGUuc29tZSgobm9kZSkgPT4gbm9kZS5pZCA9PT0gb3B0LmlkKSk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRDb250ZW50KGZpbGU6IE5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzQ2xvdWRDb250ZW50U2VydmljZS5kb3dubG9hZEZpbGUoZmlsZS5pZCk7XG4gICAgfVxuXG4gICAgb25VcGxvYWROZXdGaWxlVmVyc2lvbihjb25maWc6IE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXdWZXJzaW9uVXBsb2FkZXJTZXJ2aWNlLm9wZW5VcGxvYWROZXdWZXJzaW9uRGlhbG9nKGNvbmZpZykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKG5ld1ZlcnNpb25VcGxvYWRlckRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobmV3VmVyc2lvblVwbG9hZGVyRGF0YS5hY3Rpb24gPT09IE5ld1ZlcnNpb25VcGxvYWRlckRhdGFBY3Rpb24udXBsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVwbGFjZU9sZEZpbGVWZXJzaW9uV2l0aE5ldyhuZXdWZXJzaW9uVXBsb2FkZXJEYXRhIGFzIFZlcnNpb25NYW5hZ2VyVXBsb2FkRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihlcnJvci52YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkF0dGFjaEZpbGVDbGlja2VkKG5vZGVTZWxlY3RvcjogYW55KSB7XG4gICAgICAgIG5vZGVTZWxlY3Rvci5ub2RlSWQgPSBub2RlU2VsZWN0b3IuaWQ7XG4gICAgICAgIHRoaXMuZmlsZUNsaWNrZWQobmV3IENvbnRlbnRMaW5rTW9kZWwobm9kZVNlbGVjdG9yKSk7XG4gICAgfVxuXG4gICAgZ2V0V2lkZ2V0SWNvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FsZnJlc2NvQW5kTG9jYWwoKSA/ICdmaWxlX3VwbG9hZCcgOiAnYXR0YWNoX2ZpbGUnO1xuICAgIH1cblxuICAgIG9uUm93Q2xpY2tlZChmaWxlPzogTm9kZSkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGU/LmlkID09PSBmaWxlPy5pZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBmaWxlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGVudE1vZGVsRm9ybUZpbGVIYW5kbGVyKHRoaXMuc2VsZWN0ZWROb2RlKTtcbiAgICB9XG5cbiAgICBjb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIoZmlsZT86IGFueSkge1xuICAgICAgICBpZiAoZmlsZT8uaWQgJiYgdGhpcy5pc1JldHJpZXZlTWV0YWRhdGFPcHRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlczogRm9ybVZhbHVlcyA9IHt9O1xuICAgICAgICAgICAgdGhpcy5ub2Rlc0FwaS5nZXROb2RlKGZpbGUuaWQpLnRoZW4oKGFjc05vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGFjc05vZGU/LmVudHJ5Py5wcm9wZXJ0aWVzO1xuICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMobWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2FuaXRpemVkS2V5ID0ga2V5LnJlcGxhY2UoJzonLCAnXycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW3Nhbml0aXplZEtleV0gPSBtZXRhZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtU2VydmljZS51cGRhdGVGb3JtVmFsdWVzUmVxdWVzdGVkLm5leHQodmFsdWVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGVDbGlja2VkKG5ldyBVcGxvYWRXaWRnZXRDb250ZW50TGlua01vZGVsKGZpbGUsIHRoaXMuZmllbGQuaWQpKTtcbiAgICB9XG5cbiAgICBpc1JldHJpZXZlTWV0YWRhdGFPcHRpb25FbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZD8ucGFyYW1zPy5tZW51T3B0aW9ucyAmJiB0aGlzLmZpZWxkLnBhcmFtcy5tZW51T3B0aW9uc1tSRVRSSUVWRV9NRVRBREFUQV9PUFRJT05dO1xuICAgIH1cblxuICAgIGlzVmFsaWRBbGlhcyhhbGlhczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhbGlhcyAmJiBWQUxJRF9BTElBUy5pbmNsdWRlcyhhbGlhcyk7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzRmlsZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jb250ZW50Tm9kZVNlbGVjdG9yUGFuZWxTZXJ2aWNlLmN1c3RvbU1vZGVscyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UHJldmlld1N0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdTdGF0ZSA9IHRoaXMuZm9ybVNlcnZpY2UuZ2V0UHJldmlld1N0YXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1hdHRhY2gtZmlsZS13aWRnZXQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0IHt7ZmllbGQuY2xhc3NOYW1lfX1cIlxuICAgICAgICBbY2xhc3MuYWRmLXJlYWRvbmx5XT1cImZpZWxkLnJlYWRPbmx5XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbFwiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPnt7ZmllbGQubmFtZX19XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1hc3Rlcmlza1wiICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0LWNvbnRhaW5lclwiIChmb2N1c291dCk9XCJtYXJrQXNUb3VjaGVkKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9fbWVudS11cGxvYWRcIiAqbmdJZj1cImlzVXBsb2FkQnV0dG9uVmlzaWJsZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbGVjdERpYWxvZygpXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9fbWVudS11cGxvYWRfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWVsZC50b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnRk9STS5GSUVMRC5BVFRBQ0gnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldF9fbWVudS11cGxvYWRfX2J1dHRvbl9faWNvblwiPnt7Z2V0V2lkZ2V0SWNvbigpfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtYXR0YWNoLXdpZGdldC1yZWFkb25seS1saXN0XCIgY2xhc3M9XCJhZGYtYXR0YWNoLXdpZGdldC1yZWFkb25seS10YWJsZVwiPlxuICAgICAgICA8YWRmLWNsb3VkLWZpbGUtcHJvcGVydGllcy10YWJsZVxuICAgICAgICAgICAgW3VwbG9hZGVkRmlsZXNdPVwidXBsb2FkZWRGaWxlc1wiXG4gICAgICAgICAgICBbaGFzRmlsZV09XCJoYXNGaWxlXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZE5vZGVdPVwic2VsZWN0ZWROb2RlXCJcbiAgICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICBbZGlzcGxheWVkQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgICAgICAgIFttaW1lVHlwZUljb25dPVwibWltZVR5cGVJY29uXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYXR0YWNoRmlsZUNsaWNrKT1cIm9uQXR0YWNoRmlsZUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZG93bmxvYWRGaWxlKT1cImRvd25sb2FkQ29udGVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh1cGxvYWROZXdGaWxlVmVyc2lvbik9XCJvblVwbG9hZE5ld0ZpbGVWZXJzaW9uKCRldmVudClcIlxuICAgICAgICAgICAgKGNvbnRlbnRNb2RlbEZpbGVIYW5kbGVyKT1cImNvbnRlbnRNb2RlbEZvcm1GaWxlSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChyZW1vdmVBdHRhY2hGaWxlKT1cIm9uUmVtb3ZlQXR0YWNoRmlsZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvYWRmLWNsb3VkLWZpbGUtcHJvcGVydGllcy10YWJsZT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFoYXNGaWxlICYmIGZpZWxkLnJlYWRPbmx5XCIgaWQ9XCJ7eydhZGYtYXR0YWNoLWVtcHR5LWxpc3QtJytmaWVsZC5pZH19XCI+XG4gICAgICAgICAgICB7eyAnRk9STS5GSUVMRC5OT19GSUxFX0FUVEFDSEVEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGVycm9yLXdpZGdldCBbZXJyb3JdPVwiZmllbGQudmFsaWRhdGlvblN1bW1hcnlcIj48L2Vycm9yLXdpZGdldD5cbiAgICA8ZXJyb3Itd2lkZ2V0ICpuZ0lmPVwiIWZpZWxkLmlzVmFsaWQgJiYgaXNUb3VjaGVkKCkgJiYgIWlzU2VsZWN0ZWQoKVwiIHJlcXVpcmVkPVwie3sgJ0ZPUk0uRklFTEQuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19XCI+PC9lcnJvci13aWRnZXQ+XG48L2Rpdj5cbiJdfQ==
@@ -52,7 +52,9 @@ export class FilePropertiesTableCloudComponent {
52
52
  onUploadNewFileVersion(customEvent, node) {
53
53
  const newVersionUploaderDialogData = {
54
54
  file: customEvent.detail.files[0].file,
55
- node
55
+ node,
56
+ showComments: true,
57
+ allowDownload: true
56
58
  };
57
59
  this.uploadNewFileVersion.emit(newVersionUploaderDialogData);
58
60
  }
@@ -67,12 +69,12 @@ export class FilePropertiesTableCloudComponent {
67
69
  }
68
70
  getColumnValue(file, displayableCMProperty) {
69
71
  if (!file.properties[displayableCMProperty.prefixedName]) {
70
- const fieldProperty = this.field.params.displayableCMProperties?.find(property => property.name === displayableCMProperty.name);
72
+ const fieldProperty = this.field.params.displayableCMProperties?.find((property) => property.name === displayableCMProperty.name);
71
73
  return fieldProperty.defaultValue ? this.checkDateTypeAndTransform(displayableCMProperty.dataType, fieldProperty.defaultValue) : '--';
72
74
  }
73
- return file.properties[displayableCMProperty.prefixedName] ?
74
- this.checkDateTypeAndTransform(displayableCMProperty.dataType, file.properties[displayableCMProperty.prefixedName]) :
75
- '--';
75
+ return file.properties[displayableCMProperty.prefixedName]
76
+ ? this.checkDateTypeAndTransform(displayableCMProperty.dataType, file.properties[displayableCMProperty.prefixedName])
77
+ : '--';
76
78
  }
77
79
  checkDateTypeAndTransform(dataType, value) {
78
80
  if (dataType === 'd:date') {
@@ -88,10 +90,10 @@ export class FilePropertiesTableCloudComponent {
88
90
  }
89
91
  }
90
92
  FilePropertiesTableCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilePropertiesTableCloudComponent, deps: [{ token: i1.LocalizedDatePipe }, { token: i1.ThumbnailService }], target: i0.ɵɵFactoryTarget.Component });
91
- FilePropertiesTableCloudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FilePropertiesTableCloudComponent, selector: "adf-cloud-file-properties-table", inputs: { uploadedFiles: "uploadedFiles", hasFile: "hasFile", selectedNode: "selectedNode", field: "field", displayedColumns: "displayedColumns", mimeTypeIcon: "mimeTypeIcon" }, outputs: { rowClick: "rowClick", attachFileClick: "attachFileClick", downloadFile: "downloadFile", uploadNewFileVersion: "uploadNewFileVersion", contentModelFileHandler: "contentModelFileHandler", removeAttachFile: "removeAttachFile" }, ngImport: i0, template: "<div class=\"adf-file-properties-table-container\">\n <table mat-table [dataSource]=\"uploadedFiles\" class=\"adf-properties-table adf-file-properties-table mat-elevation-z0\" *ngIf=\"hasFile\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td class=\"adf-file-properties-table-cell\" mat-cell *matCellDef=\"let element\">\n <mat-icon matListItemLine class=\"adf-datatable-selected\"\n *ngIf=\"selectedNode && element.id === selectedNode.id\" (click)=\"onRowClicked(element)\">\n check_circle\n </mat-icon>\n <img matListItemLine class=\"adf-attach-widget__icon\"\n *ngIf=\"!selectedNode || element.id !== selectedNode.id\" [id]=\"'file-'+element?.id+'-icon'\"\n (click)=\"onRowClicked(element)\"\n (keyup.enter)=\"onRowClicked(element)\"\n [src]=\"element.content ? getIcon(element.content.mimeType) : getIcon(element['mimeType'])\"\n [alt]=\"mimeTypeIcon\" role=\"button\" tabindex=\"0\" />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.FILE_NAME' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <span matLine id=\"{{'file-'+element?.id}}\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n (keyup.enter)=\"onAttachFileClicked(element)\"\n (click)=\"onAttachFileClicked(element)\"\n >{{ element.name }}</span>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let columnName of field?.params?.displayableCMProperties\"\n [matColumnDef]=\"columnName.name\">\n <th mat-header-cell *matHeaderCellDef>{{\n columnName.title ? columnName.title : columnName.name | titlecase\n }}\n </th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let row\">\n <span matLine id=\"{{'fileProperty-'+row?.id+'-'+columnName?.name}}\" role=\"button\" tabindex=\"0\"\n (keyup.enter)=\"onRowClicked(row)\"\n (click)=\"onRowClicked(row)\">{{ getColumnValue(row, columnName) }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <button id=\"{{'file-'+element?.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n *ngIf=\"!!element.content?.mimeType\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button *ngIf=\"displayMenuOption('show') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-show-file'}}\" mat-menu-item\n (click)=\"onAttachFileClicked(element)\">\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('download') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-download-file'}}\" mat-menu-item\n (click)=\"downloadContent(element)\">\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('retrieveMetadata') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-retrieve-file-metadata'}}\" mat-menu-item\n (click)=\"contentModelFormFileHandler(element)\">\n <mat-icon class=\"mat-24\">low_priority</mat-icon>\n <span>{{ 'ADF_CLOUD_FORM_COMPONENT.RETRIEVE_METADATA' | translate }}</span>\n </button>\n <button *ngIf=\"!field.readOnly && displayMenuOption('remove')\"\n id=\"{{'file-'+element?.id+'-remove-file'}}\" mat-menu-item\n [id]=\"'file-'+element?.id+'-remove'\"\n (click)=\"onRemoveAttachFile(element);\" (keyup.enter)=\"onRemoveAttachFile(element);\">\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n <div *ngIf=\"displayMenuOption('newVersion')\">\n <button [adf-upload]=\"true\" [mode]=\"['click']\"\n (upload-files)=\"onUploadNewFileVersion($event, element);\"\n id=\"{{'file-'+ element?.id +'-upload-new-version'}}\" mat-menu-item>\n <mat-icon class=\"mat-24\">file_upload</mat-icon>\n <span>{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row class=\"adf-file-properties-table-header-row\" *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n\n </table>\n</div>\n", styles: [".adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table{width:100%;border:1px solid var(--adf-theme-foreground-text-color-007);box-shadow:none}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file{cursor:pointer}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file:hover{text-decoration:underline}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-datatable-selected{padding:6px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table tr.adf-file-properties-table-header-row{height:32px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table th{font-weight:700;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:first-of-type,.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:last-of-type{width:18%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatListItemLine, selector: "[matListItemLine]" }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i1.UploadDirective, selector: "[adf-upload]", inputs: ["adf-upload", "adf-upload-data", "mode", "multiple", "accept", "directory"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
93
+ FilePropertiesTableCloudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FilePropertiesTableCloudComponent, selector: "adf-cloud-file-properties-table", inputs: { uploadedFiles: "uploadedFiles", hasFile: "hasFile", selectedNode: "selectedNode", field: "field", displayedColumns: "displayedColumns", mimeTypeIcon: "mimeTypeIcon" }, outputs: { rowClick: "rowClick", attachFileClick: "attachFileClick", downloadFile: "downloadFile", uploadNewFileVersion: "uploadNewFileVersion", contentModelFileHandler: "contentModelFileHandler", removeAttachFile: "removeAttachFile" }, ngImport: i0, template: "<div class=\"adf-file-properties-table-container\">\n <table mat-table [dataSource]=\"uploadedFiles\" class=\"adf-properties-table adf-file-properties-table mat-elevation-z0\" *ngIf=\"hasFile\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td class=\"adf-file-properties-table-cell\" mat-cell *matCellDef=\"let element\">\n <mat-icon matListItemLine class=\"adf-datatable-selected\"\n *ngIf=\"selectedNode && element.id === selectedNode.id\" (click)=\"onRowClicked(element)\">\n check_circle\n </mat-icon>\n <img matListItemLine class=\"adf-attach-widget__icon\"\n *ngIf=\"!selectedNode || element.id !== selectedNode.id\" [id]=\"'file-'+element?.id+'-icon'\"\n (click)=\"onRowClicked(element)\"\n (keyup.enter)=\"onRowClicked(element)\"\n [src]=\"element.content ? getIcon(element.content.mimeType) : getIcon(element['mimeType'])\"\n [alt]=\"mimeTypeIcon\" role=\"button\" tabindex=\"0\" />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.FILE_NAME' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <span matLine id=\"{{'file-'+element?.id}}\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n (keyup.enter)=\"onAttachFileClicked(element)\"\n (click)=\"onAttachFileClicked(element)\"\n >{{ element.name }}</span>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let columnName of field?.params?.displayableCMProperties\"\n [matColumnDef]=\"columnName.name\">\n <th mat-header-cell *matHeaderCellDef>{{\n columnName.title ? columnName.title : columnName.name | titlecase\n }}\n </th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let row\">\n <span matLine id=\"{{'fileProperty-'+row?.id+'-'+columnName?.name}}\" role=\"button\" tabindex=\"0\"\n (keyup.enter)=\"onRowClicked(row)\"\n (click)=\"onRowClicked(row)\">{{ getColumnValue(row, columnName) }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <button id=\"{{'file-'+element?.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n *ngIf=\"!!element.content?.mimeType\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button *ngIf=\"displayMenuOption('show') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-show-file'}}\" mat-menu-item\n (click)=\"onAttachFileClicked(element)\">\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('download') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-download-file'}}\" mat-menu-item\n (click)=\"downloadContent(element)\">\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('retrieveMetadata') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-retrieve-file-metadata'}}\" mat-menu-item\n (click)=\"contentModelFormFileHandler(element)\">\n <mat-icon class=\"mat-24\">low_priority</mat-icon>\n <span>{{ 'ADF_CLOUD_FORM_COMPONENT.RETRIEVE_METADATA' | translate }}</span>\n </button>\n <button *ngIf=\"!field.readOnly && displayMenuOption('remove')\"\n mat-menu-item\n [id]=\"'file-'+element?.id+'-remove'\"\n (click)=\"onRemoveAttachFile(element);\" (keyup.enter)=\"onRemoveAttachFile(element);\">\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n <div *ngIf=\"displayMenuOption('newVersion')\">\n <button [adf-upload]=\"true\" [mode]=\"['click']\"\n (upload-files)=\"onUploadNewFileVersion($event, element);\"\n id=\"{{'file-'+ element?.id +'-upload-new-version'}}\" mat-menu-item>\n <mat-icon class=\"mat-24\">file_upload</mat-icon>\n <span>{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row class=\"adf-file-properties-table-header-row\" *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n\n </table>\n</div>\n", styles: [".adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table{width:100%;border:1px solid var(--adf-theme-foreground-text-color-007);box-shadow:none}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file{cursor:pointer}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file:hover{text-decoration:underline}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-datatable-selected{padding:6px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table tr.adf-file-properties-table-header-row{height:32px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table th{font-weight:700;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:first-of-type,.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:last-of-type{width:18%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatListItemLine, selector: "[matListItemLine]" }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i1.UploadDirective, selector: "[adf-upload]", inputs: ["adf-upload", "adf-upload-data", "mode", "multiple", "accept", "directory"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] });
92
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilePropertiesTableCloudComponent, decorators: [{
93
95
  type: Component,
94
- args: [{ selector: 'adf-cloud-file-properties-table', template: "<div class=\"adf-file-properties-table-container\">\n <table mat-table [dataSource]=\"uploadedFiles\" class=\"adf-properties-table adf-file-properties-table mat-elevation-z0\" *ngIf=\"hasFile\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td class=\"adf-file-properties-table-cell\" mat-cell *matCellDef=\"let element\">\n <mat-icon matListItemLine class=\"adf-datatable-selected\"\n *ngIf=\"selectedNode && element.id === selectedNode.id\" (click)=\"onRowClicked(element)\">\n check_circle\n </mat-icon>\n <img matListItemLine class=\"adf-attach-widget__icon\"\n *ngIf=\"!selectedNode || element.id !== selectedNode.id\" [id]=\"'file-'+element?.id+'-icon'\"\n (click)=\"onRowClicked(element)\"\n (keyup.enter)=\"onRowClicked(element)\"\n [src]=\"element.content ? getIcon(element.content.mimeType) : getIcon(element['mimeType'])\"\n [alt]=\"mimeTypeIcon\" role=\"button\" tabindex=\"0\" />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.FILE_NAME' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <span matLine id=\"{{'file-'+element?.id}}\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n (keyup.enter)=\"onAttachFileClicked(element)\"\n (click)=\"onAttachFileClicked(element)\"\n >{{ element.name }}</span>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let columnName of field?.params?.displayableCMProperties\"\n [matColumnDef]=\"columnName.name\">\n <th mat-header-cell *matHeaderCellDef>{{\n columnName.title ? columnName.title : columnName.name | titlecase\n }}\n </th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let row\">\n <span matLine id=\"{{'fileProperty-'+row?.id+'-'+columnName?.name}}\" role=\"button\" tabindex=\"0\"\n (keyup.enter)=\"onRowClicked(row)\"\n (click)=\"onRowClicked(row)\">{{ getColumnValue(row, columnName) }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <button id=\"{{'file-'+element?.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n *ngIf=\"!!element.content?.mimeType\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button *ngIf=\"displayMenuOption('show') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-show-file'}}\" mat-menu-item\n (click)=\"onAttachFileClicked(element)\">\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('download') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-download-file'}}\" mat-menu-item\n (click)=\"downloadContent(element)\">\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('retrieveMetadata') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-retrieve-file-metadata'}}\" mat-menu-item\n (click)=\"contentModelFormFileHandler(element)\">\n <mat-icon class=\"mat-24\">low_priority</mat-icon>\n <span>{{ 'ADF_CLOUD_FORM_COMPONENT.RETRIEVE_METADATA' | translate }}</span>\n </button>\n <button *ngIf=\"!field.readOnly && displayMenuOption('remove')\"\n id=\"{{'file-'+element?.id+'-remove-file'}}\" mat-menu-item\n [id]=\"'file-'+element?.id+'-remove'\"\n (click)=\"onRemoveAttachFile(element);\" (keyup.enter)=\"onRemoveAttachFile(element);\">\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n <div *ngIf=\"displayMenuOption('newVersion')\">\n <button [adf-upload]=\"true\" [mode]=\"['click']\"\n (upload-files)=\"onUploadNewFileVersion($event, element);\"\n id=\"{{'file-'+ element?.id +'-upload-new-version'}}\" mat-menu-item>\n <mat-icon class=\"mat-24\">file_upload</mat-icon>\n <span>{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row class=\"adf-file-properties-table-header-row\" *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n\n </table>\n</div>\n", styles: [".adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table{width:100%;border:1px solid var(--adf-theme-foreground-text-color-007);box-shadow:none}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file{cursor:pointer}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file:hover{text-decoration:underline}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-datatable-selected{padding:6px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table tr.adf-file-properties-table-header-row{height:32px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table th{font-weight:700;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:first-of-type,.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:last-of-type{width:18%}\n"] }]
96
+ args: [{ selector: 'adf-cloud-file-properties-table', template: "<div class=\"adf-file-properties-table-container\">\n <table mat-table [dataSource]=\"uploadedFiles\" class=\"adf-properties-table adf-file-properties-table mat-elevation-z0\" *ngIf=\"hasFile\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td class=\"adf-file-properties-table-cell\" mat-cell *matCellDef=\"let element\">\n <mat-icon matListItemLine class=\"adf-datatable-selected\"\n *ngIf=\"selectedNode && element.id === selectedNode.id\" (click)=\"onRowClicked(element)\">\n check_circle\n </mat-icon>\n <img matListItemLine class=\"adf-attach-widget__icon\"\n *ngIf=\"!selectedNode || element.id !== selectedNode.id\" [id]=\"'file-'+element?.id+'-icon'\"\n (click)=\"onRowClicked(element)\"\n (keyup.enter)=\"onRowClicked(element)\"\n [src]=\"element.content ? getIcon(element.content.mimeType) : getIcon(element['mimeType'])\"\n [alt]=\"mimeTypeIcon\" role=\"button\" tabindex=\"0\" />\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>{{ 'FORM.FIELD.FILE_NAME' | translate }}</th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <span matLine id=\"{{'file-'+element?.id}}\"\n role=\"button\"\n tabindex=\"0\"\n class=\"adf-file\"\n (keyup.enter)=\"onAttachFileClicked(element)\"\n (click)=\"onAttachFileClicked(element)\"\n >{{ element.name }}</span>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let columnName of field?.params?.displayableCMProperties\"\n [matColumnDef]=\"columnName.name\">\n <th mat-header-cell *matHeaderCellDef>{{\n columnName.title ? columnName.title : columnName.name | titlecase\n }}\n </th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let row\">\n <span matLine id=\"{{'fileProperty-'+row?.id+'-'+columnName?.name}}\" role=\"button\" tabindex=\"0\"\n (keyup.enter)=\"onRowClicked(row)\"\n (click)=\"onRowClicked(row)\">{{ getColumnValue(row, columnName) }}</span>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell class=\"adf-file-properties-table-cell\" *matCellDef=\"let element\">\n <button id=\"{{'file-'+element?.id+'-option-menu'}}\" mat-icon-button [matMenuTriggerFor]=\"fileActionMenu\"\n *ngIf=\"!!element.content?.mimeType\"\n [attr.aria-label]=\"'ADF_PROCESS_LIST.DETAILS.BUTTON.FILE_OPTION_MENU' | translate\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #fileActionMenu=\"matMenu\" xPosition=\"before\">\n <button *ngIf=\"displayMenuOption('show') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-show-file'}}\" mat-menu-item\n (click)=\"onAttachFileClicked(element)\">\n <mat-icon>visibility</mat-icon>\n <span>{{ 'FORM.FIELD.VIEW_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('download') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-download-file'}}\" mat-menu-item\n (click)=\"downloadContent(element)\">\n <mat-icon>file_download</mat-icon>\n <span>{{ 'FORM.FIELD.DOWNLOAD_FILE' | translate }}</span>\n </button>\n <button *ngIf=\"displayMenuOption('retrieveMetadata') && !!element.content?.mimeType\"\n id=\"{{'file-'+element?.id+'-retrieve-file-metadata'}}\" mat-menu-item\n (click)=\"contentModelFormFileHandler(element)\">\n <mat-icon class=\"mat-24\">low_priority</mat-icon>\n <span>{{ 'ADF_CLOUD_FORM_COMPONENT.RETRIEVE_METADATA' | translate }}</span>\n </button>\n <button *ngIf=\"!field.readOnly && displayMenuOption('remove')\"\n mat-menu-item\n [id]=\"'file-'+element?.id+'-remove'\"\n (click)=\"onRemoveAttachFile(element);\" (keyup.enter)=\"onRemoveAttachFile(element);\">\n <mat-icon class=\"mat-24\">highlight_off</mat-icon>\n <span>{{ 'FORM.FIELD.REMOVE_FILE' | translate }}</span>\n </button>\n <div *ngIf=\"displayMenuOption('newVersion')\">\n <button [adf-upload]=\"true\" [mode]=\"['click']\"\n (upload-files)=\"onUploadNewFileVersion($event, element);\"\n id=\"{{'file-'+ element?.id +'-upload-new-version'}}\" mat-menu-item>\n <mat-icon class=\"mat-24\">file_upload</mat-icon>\n <span>{{ 'ADF_VERSION_LIST.ACTIONS.UPLOAD.TITLE' | translate }}</span>\n </button>\n </div>\n </mat-menu>\n </td>\n </ng-container>\n <tr mat-header-row class=\"adf-file-properties-table-header-row\" *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n\n </table>\n</div>\n", styles: [".adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table{width:100%;border:1px solid var(--adf-theme-foreground-text-color-007);box-shadow:none}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file{cursor:pointer}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-file:hover{text-decoration:underline}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table .adf-datatable-selected{padding:6px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table tr.adf-file-properties-table-header-row{height:32px}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table th{font-weight:700;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td{max-width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:first-of-type,.adf-file-properties-table-container .adf-file-properties-table.adf-properties-table table td.adf-file-properties-table-cell:last-of-type{width:18%}\n"] }]
95
97
  }], ctorParameters: function () { return [{ type: i1.LocalizedDatePipe }, { type: i1.ThumbnailService }]; }, propDecorators: { uploadedFiles: [{
96
98
  type: Input
97
99
  }], hasFile: [{
@@ -117,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
117
119
  }], removeAttachFile: [{
118
120
  type: Output
119
121
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFHeEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsa0JBQWtCLENBQUM7QUFPM0QsTUFBTSxPQUFPLGlDQUFpQztJQXFDMUMsWUFBb0IsaUJBQW9DLEVBQVUsZ0JBQWtDO1FBQWhGLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBakJwRyxhQUFRLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHeEQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUc3RCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzVELHlC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QUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLHdCQUF3QixDQUFDO0lBQ3pILENBQUM7OytIQTVGUSxpQ0FBaUM7bUhBQWpDLGlDQUFpQyxzZUMvQjlDLGc0TEE4RkE7NEZEL0RhLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDSSxpQ0FBaUM7dUlBTTNDLGFBQWE7c0JBRFosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU07Z0JBSVAsb0JBQW9CO3NCQURuQixNQUFNO2dCQUlQLHVCQUF1QjtzQkFEdEIsTUFBTTtnQkFJUCxnQkFBZ0I7c0JBRGYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxpemVkRGF0ZVBpcGUsIFRodW1ibmFpbFNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgTmV3VmVyc2lvblVwbG9hZGVyRGlhbG9nRGF0YSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5cbmV4cG9ydCBjb25zdCBSRVRSSUVWRV9NRVRBREFUQV9PUFRJT04gPSAncmV0cmlldmVNZXRhZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNsb3VkLWZpbGUtcHJvcGVydGllcy10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcHJvcGVydGllcy10YWJsZS1jbG91ZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVByb3BlcnRpZXNUYWJsZUNsb3VkQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHVwbG9hZGVkRmlsZXM7XG5cbiAgICBASW5wdXQoKVxuICAgIGhhc0ZpbGU6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkTm9kZTogTm9kZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZmllbGQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXllZENvbHVtbnM7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbWVUeXBlSWNvbjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Tm9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGU+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBhdHRhY2hGaWxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBkb3dubG9hZEZpbGU6IEV2ZW50RW1pdHRlcjxOb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHVwbG9hZE5ld0ZpbGVWZXJzaW9uOiBFdmVudEVtaXR0ZXI8TmV3VmVyc2lvblVwbG9hZGVyRGlhbG9nRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGE+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjb250ZW50TW9kZWxGaWxlSGFuZGxlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGU+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZW1vdmVBdHRhY2hGaWxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbGl6ZWREYXRlUGlwZTogTG9jYWxpemVkRGF0ZVBpcGUsIHByaXZhdGUgdGh1bWJuYWlsU2VydmljZTogVGh1bWJuYWlsU2VydmljZSkge31cblxuICAgIG9uUm93Q2xpY2tlZChmaWxlPzogTm9kZSkge1xuICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQoZmlsZSk7XG4gICAgfVxuXG4gICAgb25BdHRhY2hGaWxlQ2xpY2tlZChub2RlU2VsZWN0b3I6IGFueSkge1xuICAgICAgICB0aGlzLmF0dGFjaEZpbGVDbGljay5lbWl0KG5vZGVTZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgZG93bmxvYWRDb250ZW50KGZpbGU6IE5vZGUpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUuZW1pdChmaWxlKTtcbiAgICB9XG5cbiAgICBvblVwbG9hZE5ld0ZpbGVWZXJzaW9uKGN1c3RvbUV2ZW50OiBhbnksIG5vZGU6IE5vZGUpe1xuICAgICAgICBjb25zdCBuZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dEYXRhOiBOZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dEYXRhID0ge1xuICAgICAgICAgICAgZmlsZTogY3VzdG9tRXZlbnQuZGV0YWlsLmZpbGVzWzBdLmZpbGUsXG4gICAgICAgICAgICBub2RlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBsb2FkTmV3RmlsZVZlcnNpb24uZW1pdChuZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dEYXRhKTtcbiAgICB9XG5cbiAgICBjb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIoZmlsZT86IGFueSkge1xuICAgICAgICB0aGlzLmNvbnRlbnRNb2RlbEZpbGVIYW5kbGVyLmVtaXQoZmlsZSk7XG4gICAgfVxuXG4gICAgb25SZW1vdmVBdHRhY2hGaWxlKGZpbGU6IGFueSkge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dGFjaEZpbGUuZW1pdChmaWxlKTtcbiAgICB9XG5cbiAgICBnZXRJY29uKG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50aHVtYm5haWxTZXJ2aWNlLmdldE1pbWVUeXBlSWNvbihtaW1lVHlwZSk7XG4gICAgfVxuXG4gICAgZ2V0Q29sdW1uVmFsdWUoZmlsZSwgZGlzcGxheWFibGVDTVByb3BlcnR5KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFmaWxlLnByb3BlcnRpZXNbZGlzcGxheWFibGVDTVByb3BlcnR5LnByZWZpeGVkTmFtZV0pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkUHJvcGVydHkgPSB0aGlzLmZpZWxkLnBhcmFtcy5kaXNwbGF5YWJsZUNNUHJvcGVydGllcz8uZmluZChwcm9wZXJ0eSA9PiBwcm9wZXJ0eS5uYW1lID09PSBkaXNwbGF5YWJsZUNNUHJvcGVydHkubmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRQcm9wZXJ0eS5kZWZhdWx0VmFsdWUgPyB0aGlzLmNoZWNrRGF0ZVR5cGVBbmRUcmFuc2Zvcm0oZGlzcGxheWFibGVDTVByb3BlcnR5LmRhdGFUeXBlLCBmaWVsZFByb3BlcnR5LmRlZmF1bHRWYWx1ZSkgOiAnLS0nIDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZS5wcm9wZXJ0aWVzW2Rpc3BsYXlhYmxlQ01Qcm9wZXJ0eS5wcmVmaXhlZE5hbWVdID9cbiAgICAgICAgICAgIHRoaXMuY2hlY2tEYXRlVHlwZUFuZFRyYW5zZm9ybShkaXNwbGF5YWJsZUNNUHJvcGVydHkuZGF0YVR5cGUsIGZpbGUucHJvcGVydGllc1tkaXNwbGF5YWJsZUNNUHJvcGVydHkucHJlZml4ZWROYW1lXSkgOlxuICAgICAgICAgICAgJy0tJyA7XG4gICAgfVxuXG4gICAgY2hlY2tEYXRlVHlwZUFuZFRyYW5zZm9ybShkYXRhVHlwZSwgdmFsdWUpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZGF0YVR5cGUgPT09ICdkOmRhdGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGl6ZWREYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGRhdGFUeXBlID09PSAnZDpkYXRldGltZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplZERhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ21lZGl1bScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBkaXNwbGF5TWVudU9wdGlvbihvcHRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZD8ucGFyYW1zPy5tZW51T3B0aW9ucyA/IHRoaXMuZmllbGQucGFyYW1zLm1lbnVPcHRpb25zW29wdGlvbl0gOiBvcHRpb24gIT09IFJFVFJJRVZFX01FVEFEQVRBX09QVElPTjtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInVwbG9hZGVkRmlsZXNcIiBjbGFzcz1cImFkZi1wcm9wZXJ0aWVzLXRhYmxlIGFkZi1maWxlLXByb3BlcnRpZXMtdGFibGUgbWF0LWVsZXZhdGlvbi16MFwiICpuZ0lmPVwiaGFzRmlsZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImljb25cIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFkZi1maWxlLXByb3BlcnRpZXMtdGFibGUtY2VsbFwiIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1MaW5lIGNsYXNzPVwiYWRmLWRhdGF0YWJsZS1zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWROb2RlICYmIGVsZW1lbnQuaWQgPT09IHNlbGVjdGVkTm9kZS5pZFwiIChjbGljayk9XCJvblJvd0NsaWNrZWQoZWxlbWVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tfY2lyY2xlXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8aW1nIG1hdExpc3RJdGVtTGluZSBjbGFzcz1cImFkZi1hdHRhY2gtd2lkZ2V0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc2VsZWN0ZWROb2RlIHx8IGVsZW1lbnQuaWQgIT09IHNlbGVjdGVkTm9kZS5pZFwiIFtpZF09XCInZmlsZS0nK2VsZW1lbnQ/LmlkKyctaWNvbidcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGlja2VkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uUm93Q2xpY2tlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZWxlbWVudC5jb250ZW50ID8gZ2V0SWNvbihlbGVtZW50LmNvbnRlbnQubWltZVR5cGUpIDogZ2V0SWNvbihlbGVtZW50WydtaW1lVHlwZSddKVwiXG4gICAgICAgICAgICAgICAgICAgIFthbHRdPVwibWltZVR5cGVJY29uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIC8+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImZpbGVOYW1lXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7ICdGT1JNLkZJRUxELkZJTEVfTkFNRScgfCB0cmFuc2xhdGUgfX08L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsIGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1jZWxsXCIgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIG1hdExpbmUgaWQ9XCJ7eydmaWxlLScrZWxlbWVudD8uaWR9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1maWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25BdHRhY2hGaWxlQ2xpY2tlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXR0YWNoRmlsZUNsaWNrZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgID57eyBlbGVtZW50Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW5OYW1lIG9mIGZpZWxkPy5wYXJhbXM/LmRpc3BsYXlhYmxlQ01Qcm9wZXJ0aWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbk5hbWUubmFtZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57e1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lLnRpdGxlID8gY29sdW1uTmFtZS50aXRsZSA6IGNvbHVtbk5hbWUubmFtZSB8IHRpdGxlY2FzZVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsIGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1jZWxsXCIgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0TGluZSBpZD1cInt7J2ZpbGVQcm9wZXJ0eS0nK3Jvdz8uaWQrJy0nK2NvbHVtbk5hbWU/Lm5hbWV9fVwiIHJvbGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvblJvd0NsaWNrZWQocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2tlZChyb3cpXCI+e3sgZ2V0Q29sdW1uVmFsdWUocm93LCBjb2x1bW5OYW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNlbGxcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZCsnLW9wdGlvbi1tZW51J319XCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJmaWxlQWN0aW9uTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEhZWxlbWVudC5jb250ZW50Py5taW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBREZfUFJPQ0VTU19MSVNULkRFVEFJTFMuQlVUVE9OLkZJTEVfT1BUSU9OX01FTlUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjZmlsZUFjdGlvbk1lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJkaXNwbGF5TWVudU9wdGlvbignc2hvdycpICYmICEhZWxlbWVudC5jb250ZW50Py5taW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eydmaWxlLScrZWxlbWVudD8uaWQrJy1zaG93LWZpbGUnfX1cIiBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXR0YWNoRmlsZUNsaWNrZWQoZWxlbWVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj52aXNpYmlsaXR5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdGT1JNLkZJRUxELlZJRVdfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZGlzcGxheU1lbnVPcHRpb24oJ2Rvd25sb2FkJykgJiYgISFlbGVtZW50LmNvbnRlbnQ/Lm1pbWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZCsnLWRvd25sb2FkLWZpbGUnfX1cIiBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkQ29udGVudChlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0ZPUk0uRklFTEQuRE9XTkxPQURfRklMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZGlzcGxheU1lbnVPcHRpb24oJ3JldHJpZXZlTWV0YWRhdGEnKSAmJiAhIWVsZW1lbnQuY29udGVudD8ubWltZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3snZmlsZS0nK2VsZW1lbnQ/LmlkKyctcmV0cmlldmUtZmlsZS1tZXRhZGF0YSd9fVwiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGVudE1vZGVsRm9ybUZpbGVIYW5kbGVyKGVsZW1lbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjRcIj5sb3dfcHJpb3JpdHk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FERl9DTE9VRF9GT1JNX0NPTVBPTkVOVC5SRVRSSUVWRV9NRVRBREFUQScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWZpZWxkLnJlYWRPbmx5ICYmIGRpc3BsYXlNZW51T3B0aW9uKCdyZW1vdmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eydmaWxlLScrZWxlbWVudD8uaWQrJy1yZW1vdmUtZmlsZSd9fVwiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGUtJytlbGVtZW50Py5pZCsnLXJlbW92ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlbW92ZUF0dGFjaEZpbGUoZWxlbWVudCk7XCIgKGtleXVwLmVudGVyKT1cIm9uUmVtb3ZlQXR0YWNoRmlsZShlbGVtZW50KTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC0yNFwiPmhpZ2hsaWdodF9vZmY8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0ZPUk0uRklFTEQuUkVNT1ZFX0ZJTEUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlNZW51T3B0aW9uKCduZXdWZXJzaW9uJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2FkZi11cGxvYWRdPVwidHJ1ZVwiIFttb2RlXT1cIlsnY2xpY2snXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1cGxvYWQtZmlsZXMpPVwib25VcGxvYWROZXdGaWxlVmVyc2lvbigkZXZlbnQsIGVsZW1lbnQpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3snZmlsZS0nKyBlbGVtZW50Py5pZCArJy11cGxvYWQtbmV3LXZlcnNpb24nfX1cIiBtYXQtbWVudS1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC0yNFwiPmZpbGVfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQURGX1ZFUlNJT05fTElTVC5BQ1RJT05TLlVQTE9BRC5USVRMRScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWhlYWRlci1yb3dcIiAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cblxuICAgIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFHeEMsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsa0JBQWtCLENBQUM7QUFPM0QsTUFBTSxPQUFPLGlDQUFpQztJQXFDMUMsWUFBb0IsaUJBQW9DLEVBQVUsZ0JBQWtDO1FBQWhGLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBakJwRyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdwQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3hDLHlCQUFv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LENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyx3QkFBd0IsQ0FBQztJQUN6SCxDQUFDOzsrSEE5RlEsaUNBQWlDO21IQUFqQyxpQ0FBaUMsc2VDL0I5QyxrMUxBOEZBOzRGRC9EYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0ksaUNBQWlDO3VJQU0zQyxhQUFhO3NCQURaLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxlQUFlO3NCQURkLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNO2dCQUlQLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFJUCx1QkFBdUI7c0JBRHRCLE1BQU07Z0JBSVAsZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsaXplZERhdGVQaXBlLCBUaHVtYm5haWxTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuXG5leHBvcnQgY29uc3QgUkVUUklFVkVfTUVUQURBVEFfT1BUSU9OID0gJ3JldHJpZXZlTWV0YWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1maWxlLXByb3BlcnRpZXMtdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXByb3BlcnRpZXMtdGFibGUtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtcHJvcGVydGllcy10YWJsZS1jbG91ZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQcm9wZXJ0aWVzVGFibGVDbG91ZENvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICB1cGxvYWRlZEZpbGVzO1xuXG4gICAgQElucHV0KClcbiAgICBoYXNGaWxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZE5vZGU6IE5vZGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpZWxkO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5ZWRDb2x1bW5zO1xuXG4gICAgQElucHV0KClcbiAgICBtaW1lVHlwZUljb247XG5cbiAgICBAT3V0cHV0KClcbiAgICByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGF0dGFjaEZpbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZG93bmxvYWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdXBsb2FkTmV3RmlsZVZlcnNpb24gPSBuZXcgRXZlbnRFbWl0dGVyPE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGE+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjb250ZW50TW9kZWxGaWxlSGFuZGxlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGU+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZW1vdmVBdHRhY2hGaWxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbGl6ZWREYXRlUGlwZTogTG9jYWxpemVkRGF0ZVBpcGUsIHByaXZhdGUgdGh1bWJuYWlsU2VydmljZTogVGh1bWJuYWlsU2VydmljZSkge31cblxuICAgIG9uUm93Q2xpY2tlZChmaWxlPzogTm9kZSkge1xuICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQoZmlsZSk7XG4gICAgfVxuXG4gICAgb25BdHRhY2hGaWxlQ2xpY2tlZChub2RlU2VsZWN0b3I6IGFueSkge1xuICAgICAgICB0aGlzLmF0dGFjaEZpbGVDbGljay5lbWl0KG5vZGVTZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgZG93bmxvYWRDb250ZW50KGZpbGU6IE5vZGUpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUuZW1pdChmaWxlKTtcbiAgICB9XG5cbiAgICBvblVwbG9hZE5ld0ZpbGVWZXJzaW9uKGN1c3RvbUV2ZW50OiBhbnksIG5vZGU6IE5vZGUpIHtcbiAgICAgICAgY29uc3QgbmV3VmVyc2lvblVwbG9hZGVyRGlhbG9nRGF0YTogTmV3VmVyc2lvblVwbG9hZGVyRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICAgIGZpbGU6IGN1c3RvbUV2ZW50LmRldGFpbC5maWxlc1swXS5maWxlLFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIHNob3dDb21tZW50czogdHJ1ZSxcbiAgICAgICAgICAgIGFsbG93RG93bmxvYWQ6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy51cGxvYWROZXdGaWxlVmVyc2lvbi5lbWl0KG5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0RhdGEpO1xuICAgIH1cblxuICAgIGNvbnRlbnRNb2RlbEZvcm1GaWxlSGFuZGxlcihmaWxlPzogYW55KSB7XG4gICAgICAgIHRoaXMuY29udGVudE1vZGVsRmlsZUhhbmRsZXIuZW1pdChmaWxlKTtcbiAgICB9XG5cbiAgICBvblJlbW92ZUF0dGFjaEZpbGUoZmlsZTogYW55KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0YWNoRmlsZS5lbWl0KGZpbGUpO1xuICAgIH1cblxuICAgIGdldEljb24obWltZVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRodW1ibmFpbFNlcnZpY2UuZ2V0TWltZVR5cGVJY29uKG1pbWVUeXBlKTtcbiAgICB9XG5cbiAgICBnZXRDb2x1bW5WYWx1ZShmaWxlLCBkaXNwbGF5YWJsZUNNUHJvcGVydHkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWZpbGUucHJvcGVydGllc1tkaXNwbGF5YWJsZUNNUHJvcGVydHkucHJlZml4ZWROYW1lXSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRQcm9wZXJ0eSA9IHRoaXMuZmllbGQucGFyYW1zLmRpc3BsYXlhYmxlQ01Qcm9wZXJ0aWVzPy5maW5kKChwcm9wZXJ0eSkgPT4gcHJvcGVydHkubmFtZSA9PT0gZGlzcGxheWFibGVDTVByb3BlcnR5Lm5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkUHJvcGVydHkuZGVmYXVsdFZhbHVlID8gdGhpcy5jaGVja0RhdGVUeXBlQW5kVHJhbnNmb3JtKGRpc3BsYXlhYmxlQ01Qcm9wZXJ0eS5kYXRhVHlwZSwgZmllbGRQcm9wZXJ0eS5kZWZhdWx0VmFsdWUpIDogJy0tJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZS5wcm9wZXJ0aWVzW2Rpc3BsYXlhYmxlQ01Qcm9wZXJ0eS5wcmVmaXhlZE5hbWVdXG4gICAgICAgICAgICA/IHRoaXMuY2hlY2tEYXRlVHlwZUFuZFRyYW5zZm9ybShkaXNwbGF5YWJsZUNNUHJvcGVydHkuZGF0YVR5cGUsIGZpbGUucHJvcGVydGllc1tkaXNwbGF5YWJsZUNNUHJvcGVydHkucHJlZml4ZWROYW1lXSlcbiAgICAgICAgICAgIDogJy0tJztcbiAgICB9XG5cbiAgICBjaGVja0RhdGVUeXBlQW5kVHJhbnNmb3JtKGRhdGFUeXBlLCB2YWx1ZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChkYXRhVHlwZSA9PT0gJ2Q6ZGF0ZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsaXplZERhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT09ICdkOmRhdGV0aW1lJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxpemVkRGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnbWVkaXVtJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGRpc3BsYXlNZW51T3B0aW9uKG9wdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkPy5wYXJhbXM/Lm1lbnVPcHRpb25zID8gdGhpcy5maWVsZC5wYXJhbXMubWVudU9wdGlvbnNbb3B0aW9uXSA6IG9wdGlvbiAhPT0gUkVUUklFVkVfTUVUQURBVEFfT1BUSU9OO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNvbnRhaW5lclwiPlxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwidXBsb2FkZWRGaWxlc1wiIGNsYXNzPVwiYWRmLXByb3BlcnRpZXMtdGFibGUgYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZSBtYXQtZWxldmF0aW9uLXowXCIgKm5nSWY9XCJoYXNGaWxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaWNvblwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUxpbmUgY2xhc3M9XCJhZGYtZGF0YXRhYmxlLXNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZE5vZGUgJiYgZWxlbWVudC5pZCA9PT0gc2VsZWN0ZWROb2RlLmlkXCIgKGNsaWNrKT1cIm9uUm93Q2xpY2tlZChlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICBjaGVja19jaXJjbGVcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDxpbWcgbWF0TGlzdEl0ZW1MaW5lIGNsYXNzPVwiYWRmLWF0dGFjaC13aWRnZXRfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RlZE5vZGUgfHwgZWxlbWVudC5pZCAhPT0gc2VsZWN0ZWROb2RlLmlkXCIgW2lkXT1cIidmaWxlLScrZWxlbWVudD8uaWQrJy1pY29uJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwib25Sb3dDbGlja2VkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbGVtZW50LmNvbnRlbnQgPyBnZXRJY29uKGVsZW1lbnQuY29udGVudC5taW1lVHlwZSkgOiBnZXRJY29uKGVsZW1lbnRbJ21pbWVUeXBlJ10pXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJtaW1lVHlwZUljb25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgLz5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZmlsZU5hbWVcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgJ0ZPUk0uRklFTEQuRklMRV9OQU1FJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNlbGxcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0TGluZSBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZH19XCJcbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvbkF0dGFjaEZpbGVDbGlja2VkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgPnt7IGVsZW1lbnQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbk5hbWUgb2YgZmllbGQ/LnBhcmFtcz8uZGlzcGxheWFibGVDTVByb3BlcnRpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uTmFtZS5uYW1lXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUudGl0bGUgPyBjb2x1bW5OYW1lLnRpdGxlIDogY29sdW1uTmFtZS5uYW1lIHwgdGl0bGVjYXNlXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtZmlsZS1wcm9wZXJ0aWVzLXRhYmxlLWNlbGxcIiAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBtYXRMaW5lIGlkPVwie3snZmlsZVByb3BlcnR5LScrcm93Py5pZCsnLScrY29sdW1uTmFtZT8ubmFtZX19XCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uUm93Q2xpY2tlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGlja2VkKHJvdylcIj57eyBnZXRDb2x1bW5WYWx1ZShyb3csIGNvbHVtbk5hbWUpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25cIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cImFkZi1maWxlLXByb3BlcnRpZXMtdGFibGUtY2VsbFwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwie3snZmlsZS0nK2VsZW1lbnQ/LmlkKyctb3B0aW9uLW1lbnUnfX1cIiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZpbGVBY3Rpb25NZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFlbGVtZW50LmNvbnRlbnQ/Lm1pbWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FERl9QUk9DRVNTX0xJU1QuREVUQUlMUy5CVVRUT04uRklMRV9PUFRJT05fTUVOVScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1tZW51ICNmaWxlQWN0aW9uTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImRpc3BsYXlNZW51T3B0aW9uKCdzaG93JykgJiYgISFlbGVtZW50LmNvbnRlbnQ/Lm1pbWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7J2ZpbGUtJytlbGVtZW50Py5pZCsnLXNob3ctZmlsZSd9fVwiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BdHRhY2hGaWxlQ2xpY2tlZChlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnZpc2liaWxpdHk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0ZPUk0uRklFTEQuVklFV19GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJkaXNwbGF5TWVudU9wdGlvbignZG93bmxvYWQnKSAmJiAhIWVsZW1lbnQuY29udGVudD8ubWltZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3snZmlsZS0nK2VsZW1lbnQ/LmlkKyctZG93bmxvYWQtZmlsZSd9fVwiIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRDb250ZW50KGVsZW1lbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnRk9STS5GSUVMRC5ET1dOTE9BRF9GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJkaXNwbGF5TWVudU9wdGlvbigncmV0cmlldmVNZXRhZGF0YScpICYmICEhZWxlbWVudC5jb250ZW50Py5taW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7eydmaWxlLScrZWxlbWVudD8uaWQrJy1yZXRyaWV2ZS1maWxlLW1ldGFkYXRhJ319XCIgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb250ZW50TW9kZWxGb3JtRmlsZUhhbmRsZXIoZWxlbWVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC0yNFwiPmxvd19wcmlvcml0eTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQURGX0NMT1VEX0ZPUk1fQ09NUE9ORU5ULlJFVFJJRVZFX01FVEFEQVRBJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhZmllbGQucmVhZE9ubHkgJiYgZGlzcGxheU1lbnVPcHRpb24oJ3JlbW92ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmaWxlLScrZWxlbWVudD8uaWQrJy1yZW1vdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZW1vdmVBdHRhY2hGaWxlKGVsZW1lbnQpO1wiIChrZXl1cC5lbnRlcik9XCJvblJlbW92ZUF0dGFjaEZpbGUoZWxlbWVudCk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjRcIj5oaWdobGlnaHRfb2ZmPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdGT1JNLkZJRUxELlJFTU9WRV9GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5TWVudU9wdGlvbignbmV3VmVyc2lvbicpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFthZGYtdXBsb2FkXT1cInRydWVcIiBbbW9kZV09XCJbJ2NsaWNrJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXBsb2FkLWZpbGVzKT1cIm9uVXBsb2FkTmV3RmlsZVZlcnNpb24oJGV2ZW50LCBlbGVtZW50KTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInt7J2ZpbGUtJysgZWxlbWVudD8uaWQgKyctdXBsb2FkLW5ldy12ZXJzaW9uJ319XCIgbWF0LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtMjRcIj5maWxlX3VwbG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FERl9WRVJTSU9OX0xJU1QuQUNUSU9OUy5VUExPQUQuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93IGNsYXNzPVwiYWRmLWZpbGUtcHJvcGVydGllcy10YWJsZS1oZWFkZXItcm93XCIgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG5cbiAgICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -16,7 +16,7 @@
16
16
  */
17
17
  /* eslint-disable @angular-eslint/component-selector */
18
18
  import { Component, ViewEncapsulation } from '@angular/core';
19
- import { WidgetComponent, FormService, DataTableModule, FormBaseModule } from '@alfresco/adf-core';
19
+ import { WidgetComponent, FormService, FormBaseModule, DataTableComponent } from '@alfresco/adf-core';
20
20
  import { CommonModule } from '@angular/common';
21
21
  import { TranslateModule } from '@ngx-translate/core';
22
22
  import { FormCloudService } from '../../../services/form-cloud.service';
@@ -92,10 +92,10 @@ export class DataTableWidgetComponent extends WidgetComponent {
92
92
  }
93
93
  }
94
94
  DataTableWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataTableWidgetComponent, deps: [{ token: i1.FormService }, { token: i2.FormCloudService }], target: i0.ɵɵFactoryTarget.Component });
95
- DataTableWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataTableWidgetComponent, isStandalone: true, selector: "data-table", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\"></adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n required=\"{{ 'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate }}\"></error-widget>\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\"></adf-datatable>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: DataTableModule }, { kind: "component", type: i1.DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged"] }, { kind: "ngmodule", type: FormBaseModule }, { kind: "component", type: i1.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }], encapsulation: i0.ViewEncapsulation.None });
95
+ DataTableWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataTableWidgetComponent, isStandalone: true, selector: "data-table", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\"></adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n required=\"{{ 'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate }}\"></error-widget>\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\"></adf-datatable>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormBaseModule }, { kind: "component", type: i1.ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }, { kind: "component", type: DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize", "displayCheckboxesOnHover"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged", "selectedItemsCountChanged"] }], encapsulation: i0.ViewEncapsulation.None });
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataTableWidgetComponent, decorators: [{
97
97
  type: Component,
98
- args: [{ standalone: true, imports: [CommonModule, TranslateModule, DataTableModule, FormBaseModule], selector: 'data-table', host: {
98
+ args: [{ standalone: true, imports: [CommonModule, TranslateModule, FormBaseModule, DataTableComponent], selector: 'data-table', host: {
99
99
  '(click)': 'event($event)',
100
100
  '(blur)': 'event($event)',
101
101
  '(change)': 'event($event)',
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
107
107
  '(select)': 'event($event)'
108
108
  }, encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-data-table-widget-container\">\n <div class=\"adf-data-table-widget-label\">\n <label\n class=\"adf-label\"\n [class.adf-left-label]=\"field.leftLabels\"\n [attr.for]=\"field.id\">\n {{field.name | translate }}\n </label>\n </div>\n\n <ng-container *ngIf=\"!previewState; else previewTemplate\">\n <adf-datatable data-automation-id=\"adf-data-table-widget\" [data]=\"dataSource\"></adf-datatable>\n\n <error-widget *ngIf=\"dataTableLoadFailed\"\n class=\"adf-data-table-widget-failed-message\"\n required=\"{{ 'FORM.FIELD.DATA_TABLE_LOAD_FAILED' | translate }}\"></error-widget>\n </ng-container>\n\n <ng-template #previewTemplate>\n <adf-datatable data-automation-id=\"adf-data-table-widget-preview\"></adf-datatable>\n </ng-template>\n</div>\n", styles: [".adf-data-table-widget-failed-message{margin:10px}\n"] }]
109
109
  }], ctorParameters: function () { return [{ type: i1.FormService }, { type: i2.FormCloudService }]; } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUF1QixNQUFNLG9CQUFvQixDQUFDO0FBQ3hILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7OztBQXFCcEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGVBQWU7SUFXekQsWUFBbUIsV0FBd0IsRUFBVSxnQkFBa0M7UUFDbkYsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBREosZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBVHZGLHdCQUFtQixHQUFHLEtBQUss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QVcsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDOztzSEE3RVEsd0JBQXdCOzBHQUF4Qix3QkFBd0Isd1dDL0NyQyx1M0JBc0JBLDZHRFFjLFlBQVksa0lBQUUsZUFBZSwyRkFBRSxlQUFlLDRvQkFBRSxjQUFjOzRGQWlCL0Qsd0JBQXdCO2tCQW5CcEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsWUFDL0QsWUFBWSxRQUdoQjt3QkFDRixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsUUFBUSxFQUFFLGVBQWU7d0JBQ3pCLFVBQVUsRUFBRSxlQUFlO3dCQUMzQixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFlBQVksRUFBRSxlQUFlO3dCQUM3QixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxlQUFlO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2lkZ2V0Q29tcG9uZW50LCBGb3JtU2VydmljZSwgRGF0YVRhYmxlTW9kdWxlLCBGb3JtQmFzZU1vZHVsZSwgRGF0YVJvdywgRGF0YUNvbHVtbiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tWYXJpYWJsZUNsb3VkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Rhc2stdmFyaWFibGUtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgV2lkZ2V0RGF0YVRhYmxlQWRhcHRlciB9IGZyb20gJy4vZGF0YS10YWJsZS1hZGFwdGVyLndpZGdldCc7XG5pbXBvcnQgeyBEYXRhVGFibGVQYXRoUGFyc2VySGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzL2RhdGEtdGFibGUtcGF0aC1wYXJzZXIuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIERhdGFUYWJsZU1vZHVsZSwgRm9ybUJhc2VNb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAnZGF0YS10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRhdGFTb3VyY2U6IFdpZGdldERhdGFUYWJsZUFkYXB0ZXI7XG4gICAgZGF0YVRhYmxlTG9hZEZhaWxlZCA9IGZhbHNlO1xuICAgIHByZXZpZXdTdGF0ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByb3dzRGF0YTogRGF0YVJvd1tdO1xuICAgIHByaXZhdGUgY29sdW1uc1NjaGVtYTogRGF0YUNvbHVtbltdO1xuICAgIHByaXZhdGUgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWZhdWx0UmVzcG9uc2VQcm9wZXJ0eSA9ICdkYXRhJztcbiAgICBwcml2YXRlIHBhdGhQYXJzZXJIZWxwZXIgPSBuZXcgRGF0YVRhYmxlUGF0aFBhcnNlckhlbHBlcigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSwgcHJpdmF0ZSBmb3JtQ2xvdWRTZXJ2aWNlOiBGb3JtQ2xvdWRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGZvcm1TZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQcmV2aWV3U3RhdGUoKTtcbiAgICAgICAgdGhpcy5nZXRUYWJsZURhdGEoKTtcbiAgICAgICAgdGhpcy5pbml0RGF0YVRhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWJsZURhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFyaWFibGVOYW1lID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/LnZhcmlhYmxlTmFtZTtcbiAgICAgICAgdGhpcy5jb2x1bW5zU2NoZW1hID0gdGhpcy5maWVsZD8uc2NoZW1hRGVmaW5pdGlvbjtcblxuICAgICAgICB0aGlzLmdldFJvd3NEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0YVRhYmxlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yb3dzRGF0YT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgV2lkZ2V0RGF0YVRhYmxlQWRhcHRlcih0aGlzLnJvd3NEYXRhLCB0aGlzLmNvbHVtbnNTY2hlbWEpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlLmlzRGF0YVNvdXJjZVZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLnVwZGF0ZUZvcm0oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignRGF0YSBzb3VyY2UgaGFzIGNvcnJ1cHRlZCBtb2RlbCBvciBzdHJ1Y3R1cmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoJ0RhdGEgc291cmNlIG5vdCBmb3VuZCBvciBpdCBpcyBub3QgYW4gYXJyYXkvb2JqZWN0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvd3NEYXRhKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcHRpb25zUGF0aCA9IHRoaXMuZmllbGQ/LnZhcmlhYmxlQ29uZmlnPy5vcHRpb25zUGF0aCA/PyB0aGlzLmRlZmF1bHRSZXNwb25zZVByb3BlcnR5O1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5maWVsZD8udmFsdWU7XG4gICAgICAgIGNvbnN0IHJvd3NEYXRhID0gZmllbGRWYWx1ZSB8fCB0aGlzLmdldERhdGFGcm9tVmFyaWFibGUoKTtcblxuICAgICAgICBpZiAocm93c0RhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFGcm9tUGF0aCA9IHRoaXMucGF0aFBhcnNlckhlbHBlci5yZXRyaWV2ZURhdGFGcm9tUGF0aChyb3dzRGF0YSwgb3B0aW9uc1BhdGgpO1xuICAgICAgICAgICAgdGhpcy5yb3dzRGF0YSA9IChkYXRhRnJvbVBhdGg/Lmxlbmd0aCA/IGRhdGFGcm9tUGF0aCA6IHJvd3NEYXRhKSBhcyBEYXRhUm93W107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGFGcm9tVmFyaWFibGUoKTogYW55IHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc1ZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnByb2Nlc3NWYXJpYWJsZXM7XG4gICAgICAgIGNvbnN0IGZvcm1WYXJpYWJsZXMgPSB0aGlzLmZpZWxkPy5mb3JtPy52YXJpYWJsZXM7XG5cbiAgICAgICAgY29uc3QgcHJvY2Vzc1ZhcmlhYmxlRHJvcGRvd25PcHRpb25zID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKHByb2Nlc3NWYXJpYWJsZXMsIHRoaXMudmFyaWFibGVOYW1lKTtcbiAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlRHJvcGRvd25PcHRpb25zID0gdGhpcy5nZXRWYXJpYWJsZVZhbHVlQnlOYW1lKGZvcm1WYXJpYWJsZXMsIHRoaXMudmFyaWFibGVOYW1lKTtcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc1ZhcmlhYmxlRHJvcGRvd25PcHRpb25zID8/IGZvcm1WYXJpYWJsZURyb3Bkb3duT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhcmlhYmxlVmFsdWVCeU5hbWUodmFyaWFibGVzOiBUYXNrVmFyaWFibGVDbG91ZFtdLCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB2YXJpYWJsZXM/LmZpbmQoKHZhcmlhYmxlOiBUYXNrVmFyaWFibGVDbG91ZCkgPT4gdmFyaWFibGU/Lm5hbWUgPT09IGB2YXJpYWJsZXMuJHt2YXJpYWJsZU5hbWV9YCB8fCB2YXJpYWJsZT8ubmFtZSA9PT0gdmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgPy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFByZXZpZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3U3RhdGUgPSB0aGlzLmZvcm1DbG91ZFNlcnZpY2UuZ2V0UHJldmlld1N0YXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5wcmV2aWV3U3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlTG9hZEZhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLndpZGdldEVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1kYXRhLXRhYmxlLXdpZGdldC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWRhdGEtdGFibGUtd2lkZ2V0LWxhYmVsXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtbGFiZWxcIlxuICAgICAgICAgICAgW2NsYXNzLmFkZi1sZWZ0LWxhYmVsXT1cImZpZWxkLmxlZnRMYWJlbHNcIlxuICAgICAgICAgICAgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+XG4gICAgICAgICAgICAgICAge3tmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByZXZpZXdTdGF0ZTsgZWxzZSBwcmV2aWV3VGVtcGxhdGVcIj5cbiAgICAgICAgPGFkZi1kYXRhdGFibGUgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWRhdGEtdGFibGUtd2lkZ2V0XCIgW2RhdGFdPVwiZGF0YVNvdXJjZVwiPjwvYWRmLWRhdGF0YWJsZT5cblxuICAgICAgICA8ZXJyb3Itd2lkZ2V0ICpuZ0lmPVwiZGF0YVRhYmxlTG9hZEZhaWxlZFwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1kYXRhLXRhYmxlLXdpZGdldC1mYWlsZWQtbWVzc2FnZVwiXG4gICAgICAgICAgICByZXF1aXJlZD1cInt7ICdGT1JNLkZJRUxELkRBVEFfVEFCTEVfTE9BRF9GQUlMRUQnIHwgdHJhbnNsYXRlIH19XCI+PC9lcnJvci13aWRnZXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdUZW1wbGF0ZT5cbiAgICAgICAgPGFkZi1kYXRhdGFibGUgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWRhdGEtdGFibGUtd2lkZ2V0LXByZXZpZXdcIj48L2FkZi1kYXRhdGFibGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS53aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS53aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQXVCLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7O0FBcUJwRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQVd6RCxZQUFtQixXQUF3QixFQUFVLGdCQUFrQztRQUNuRixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFESixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUdkYsd0JBQW1CLEdBQUcsS0FB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V0FBVyxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztJQUNMLENBQUM7O3NIQTdFUSx3QkFBd0I7MEdBQXhCLHdCQUF3Qix3V0MvQ3JDLHUzQkFzQkEsNkdEUWMsWUFBWSxrSUFBRSxlQUFlLDJGQUFFLGNBQWMsOElBQUUsa0JBQWtCOzRGQWlCbEUsd0JBQXdCO2tCQW5CcEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxZQUNsRSxZQUFZLFFBR2hCO3dCQUNGLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixRQUFRLEVBQUUsZUFBZTt3QkFDekIsVUFBVSxFQUFFLGVBQWU7d0JBQzNCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsWUFBWSxFQUFFLGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQsIEZvcm1TZXJ2aWNlLCBGb3JtQmFzZU1vZHVsZSwgRGF0YVJvdywgRGF0YUNvbHVtbiwgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEZvcm1DbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay12YXJpYWJsZS1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBXaWRnZXREYXRhVGFibGVBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLXRhYmxlLWFkYXB0ZXIud2lkZ2V0JztcbmltcG9ydCB7IERhdGFUYWJsZVBhdGhQYXJzZXJIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvZGF0YS10YWJsZS1wYXRoLXBhcnNlci5oZWxwZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRm9ybUJhc2VNb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdkYXRhLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS53aWRnZXQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS53aWRnZXQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoYmx1ciknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1cyknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGlucHV0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnZhbGlkKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhzZWxlY3QpJzogJ2V2ZW50KCRldmVudCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZVdpZGdldENvbXBvbmVudCBleHRlbmRzIFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZGF0YVNvdXJjZTogV2lkZ2V0RGF0YVRhYmxlQWRhcHRlcjtcbiAgICBkYXRhVGFibGVMb2FkRmFpbGVkID0gZmFsc2U7XG4gICAgcHJldmlld1N0YXRlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJvd3NEYXRhOiBEYXRhUm93W107XG4gICAgcHJpdmF0ZSBjb2x1bW5zU2NoZW1hOiBEYXRhQ29sdW1uW107XG4gICAgcHJpdmF0ZSB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIGRlZmF1bHRSZXNwb25zZVByb3BlcnR5ID0gJ2RhdGEnO1xuICAgIHByaXZhdGUgcGF0aFBhcnNlckhlbHBlciA9IG5ldyBEYXRhVGFibGVQYXRoUGFyc2VySGVscGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLCBwcml2YXRlIGZvcm1DbG91ZFNlcnZpY2U6IEZvcm1DbG91ZFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFByZXZpZXdTdGF0ZSgpO1xuICAgICAgICB0aGlzLmdldFRhYmxlRGF0YSgpO1xuICAgICAgICB0aGlzLmluaXREYXRhVGFibGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhYmxlRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YXJpYWJsZU5hbWUgPSB0aGlzLmZpZWxkPy52YXJpYWJsZUNvbmZpZz8udmFyaWFibGVOYW1lO1xuICAgICAgICB0aGlzLmNvbHVtbnNTY2hlbWEgPSB0aGlzLmZpZWxkPy5zY2hlbWFEZWZpbml0aW9uO1xuXG4gICAgICAgIHRoaXMuZ2V0Um93c0RhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXREYXRhVGFibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJvd3NEYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBXaWRnZXREYXRhVGFibGVBZGFwdGVyKHRoaXMucm93c0RhdGEsIHRoaXMuY29sdW1uc1NjaGVtYSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuaXNEYXRhU291cmNlVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudXBkYXRlRm9ybSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKCdEYXRhIHNvdXJjZSBoYXMgY29ycnVwdGVkIG1vZGVsIG9yIHN0cnVjdHVyZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignRGF0YSBzb3VyY2Ugbm90IGZvdW5kIG9yIGl0IGlzIG5vdCBhbiBhcnJheS9vYmplY3QnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um93c0RhdGEoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNQYXRoID0gdGhpcy5maWVsZD8udmFyaWFibGVDb25maWc/Lm9wdGlvbnNQYXRoID8/IHRoaXMuZGVmYXVsdFJlc3BvbnNlUHJvcGVydHk7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLmZpZWxkPy52YWx1ZTtcbiAgICAgICAgY29uc3Qgcm93c0RhdGEgPSBmaWVsZFZhbHVlIHx8IHRoaXMuZ2V0RGF0YUZyb21WYXJpYWJsZSgpO1xuXG4gICAgICAgIGlmIChyb3dzRGF0YSkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyb21QYXRoID0gdGhpcy5wYXRoUGFyc2VySGVscGVyLnJldHJpZXZlRGF0YUZyb21QYXRoKHJvd3NEYXRhLCBvcHRpb25zUGF0aCk7XG4gICAgICAgICAgICB0aGlzLnJvd3NEYXRhID0gKGRhdGFGcm9tUGF0aD8ubGVuZ3RoID8gZGF0YUZyb21QYXRoIDogcm93c0RhdGEpIGFzIERhdGFSb3dbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YUZyb21WYXJpYWJsZSgpOiBhbnkge1xuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVzID0gdGhpcy5maWVsZD8uZm9ybT8ucHJvY2Vzc1ZhcmlhYmxlcztcbiAgICAgICAgY29uc3QgZm9ybVZhcmlhYmxlcyA9IHRoaXMuZmllbGQ/LmZvcm0/LnZhcmlhYmxlcztcblxuICAgICAgICBjb25zdCBwcm9jZXNzVmFyaWFibGVEcm9wZG93bk9wdGlvbnMgPSB0aGlzLmdldFZhcmlhYmxlVmFsdWVCeU5hbWUocHJvY2Vzc1ZhcmlhYmxlcywgdGhpcy52YXJpYWJsZU5hbWUpO1xuICAgICAgICBjb25zdCBmb3JtVmFyaWFibGVEcm9wZG93bk9wdGlvbnMgPSB0aGlzLmdldFZhcmlhYmxlVmFsdWVCeU5hbWUoZm9ybVZhcmlhYmxlcywgdGhpcy52YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIHJldHVybiBwcm9jZXNzVmFyaWFibGVEcm9wZG93bk9wdGlvbnMgPz8gZm9ybVZhcmlhYmxlRHJvcGRvd25PcHRpb25zO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmFyaWFibGVWYWx1ZUJ5TmFtZSh2YXJpYWJsZXM6IFRhc2tWYXJpYWJsZUNsb3VkW10sIHZhcmlhYmxlTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlcz8uZmluZCgodmFyaWFibGU6IFRhc2tWYXJpYWJsZUNsb3VkKSA9PiB2YXJpYWJsZT8ubmFtZSA9PT0gYHZhcmlhYmxlcy4ke3ZhcmlhYmxlTmFtZX1gIHx8IHZhcmlhYmxlPy5uYW1lID09PSB2YXJpYWJsZU5hbWUpXG4gICAgICAgICAgICA/LnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UHJldmlld1N0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdTdGF0ZSA9IHRoaXMuZm9ybUNsb3VkU2VydmljZS5nZXRQcmV2aWV3U3RhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByZXZpZXdTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVMb2FkRmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0RXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRmLWRhdGEtdGFibGUtd2lkZ2V0LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtbGFiZWxcIj5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1sYWJlbFwiXG4gICAgICAgICAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWxdPVwiZmllbGQubGVmdExhYmVsc1wiXG4gICAgICAgICAgICBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj5cbiAgICAgICAgICAgICAgICB7e2ZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJldmlld1N0YXRlOyBlbHNlIHByZXZpZXdUZW1wbGF0ZVwiPlxuICAgICAgICA8YWRmLWRhdGF0YWJsZSBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZGF0YS10YWJsZS13aWRnZXRcIiBbZGF0YV09XCJkYXRhU291cmNlXCI+PC9hZGYtZGF0YXRhYmxlPlxuXG4gICAgICAgIDxlcnJvci13aWRnZXQgKm5nSWY9XCJkYXRhVGFibGVMb2FkRmFpbGVkXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLWRhdGEtdGFibGUtd2lkZ2V0LWZhaWxlZC1tZXNzYWdlXCJcbiAgICAgICAgICAgIHJlcXVpcmVkPVwie3sgJ0ZPUk0uRklFTEQuREFUQV9UQUJMRV9MT0FEX0ZBSUxFRCcgfCB0cmFuc2xhdGUgfX1cIj48L2Vycm9yLXdpZGdldD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcHJldmlld1RlbXBsYXRlPlxuICAgICAgICA8YWRmLWRhdGF0YWJsZSBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZGF0YS10YWJsZS13aWRnZXQtcHJldmlld1wiPjwvYWRmLWRhdGF0YWJsZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=