@eo-sdk/client 11.7.0-rc.1 → 11.8.0-rc.2

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 (61) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/dashboard.component.d.ts +3 -2
  3. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts +30 -0
  5. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts.map +1 -0
  6. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.d.ts +23 -0
  7. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.d.ts.map +1 -0
  8. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics.interface.d.ts +20 -0
  9. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics.interface.d.ts.map +1 -0
  10. package/app/eo-client/eo-client.module.d.ts +32 -29
  11. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  12. package/app/eo-client/settings/settings.component.d.ts +15 -16
  13. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  14. package/app/eo-client/settings/settings.interface.d.ts +25 -0
  15. package/app/eo-client/settings/settings.interface.d.ts.map +1 -0
  16. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +0 -1
  17. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  18. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  19. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +78 -23
  20. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  21. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.service.d.ts +24 -0
  22. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.service.d.ts.map +1 -0
  23. package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts +5 -5
  24. package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts.map +1 -1
  25. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  26. package/app/eo-framework/object-form/object-form-helper.service.d.ts +31 -11
  27. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  28. package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts +51 -26
  29. package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts.map +1 -1
  30. package/app/eo-framework-core/agent/agent.service.d.ts +7 -2
  31. package/app/eo-framework-core/agent/agent.service.d.ts.map +1 -1
  32. package/assets/_default/i18n/de.json +21 -3
  33. package/assets/_default/i18n/en.json +21 -3
  34. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  35. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +20 -6
  36. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.mjs +114 -0
  37. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.mjs +80 -0
  38. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics.interface.mjs +2 -0
  39. package/esm2022/app/eo-client/eo-client.module.mjs +11 -1
  40. package/esm2022/app/eo-client/process-state/process-state.component.mjs +1 -1
  41. package/esm2022/app/eo-client/settings/settings.component.mjs +42 -24
  42. package/esm2022/app/eo-client/settings/settings.interface.mjs +2 -0
  43. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +2 -2
  44. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +7 -9
  45. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +3 -2
  46. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +215 -94
  47. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.service.mjs +39 -0
  48. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +2 -2
  49. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +16 -22
  50. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +8 -3
  51. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +2 -2
  52. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  53. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  54. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  55. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +43 -16
  56. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +4 -3
  57. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +163 -92
  58. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +13 -2
  59. package/fesm2022/eo-sdk-client.mjs +727 -266
  60. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  61. package/package.json +3 -2
@@ -85,7 +85,10 @@ export class AgentService {
85
85
  title: title,
86
86
  type: contextFolder.type.name,
87
87
  childType: (treeNode && treeNode.data) ? treeNode.data.type : undefined,
88
- data: (treeNode && treeNode.data) ? treeNode.data.data : undefined
88
+ data: {
89
+ 'description': contextFolder?.description ?? undefined,
90
+ 'treeNode': treeNode?.data?.data ?? undefined
91
+ }
89
92
  }, this.backendService.getAgentBase()).subscribe(r => {
90
93
  this.logger.debug(`added location '${title}' to agent service`);
91
94
  });
@@ -141,6 +144,14 @@ export class AgentService {
141
144
  this.sendMessage('copyToClipboard', documents);
142
145
  }
143
146
  }
147
+ /**
148
+ * Gives the setup informations about the last opened folders
149
+ * @returns Observable<any>
150
+ */
151
+ getLastOpenedFoldersInfo() {
152
+ const uri = '/locations';
153
+ return this.backendService.get(uri, '/agent');
154
+ }
144
155
  /**
145
156
  * Send items as email.
146
157
  *
@@ -179,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
179
190
  type: Inject,
180
191
  args: [CORE_CONFIG]
181
192
  }] }, { type: i1.Logger }, { type: i2.HttpClient }, { type: i1.SystemService }, { type: i1.BackendService }, { type: i1.UserService }, { type: i1.TranslateService }, { type: i1.NotificationsService }, { type: i1.AppCacheService }] });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQThDLFdBQVcsRUFBeUYsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BMLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLcEQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qiw4Q0FBMkIsQ0FBQTtJQUMzQixnREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFXRCxNQUFNLE9BQU8sWUFBWTtJQWdCdkIsWUFDOEIsVUFBc0IsRUFDMUMsTUFBYyxFQUNkLElBQWdCLEVBQ2hCLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLFNBQTJCLEVBQzNCLGFBQW1DLEVBQ25DLGVBQWdDO1FBUlosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUMxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXZCbEMsbUJB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QVcsQ0FBQyxVQUFVLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQzlCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJO1lBQzVDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1NBQ3JCLENBQUM7UUFDRixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDOzhHQXRMVSxZQUFZLGtCQWlCYixXQUFXO2tIQWpCVixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFrQk4sTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlLCBCYWNrZW5kU2VydmljZSwgQ29yZUNvbmZpZywgQ09SRV9DT05GSUcsIERtc09iamVjdCwgTG9nZ2VyLCBOb3RpZmljYXRpb25zU2VydmljZSwgU3lzdGVtU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXNlclNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RyZWVOb2RlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtMb2NrU2V0dGluZ3N9IGZyb20gJy4vLi4vLi4vZW8tY2xpZW50L3NldHRpbmdzL2FnZW50LWxvY2stc2V0dGluZ3MuZW51bSc7XG5pbXBvcnQge0N1c3RvbUVtYWlsfSBmcm9tICcuL2FnZW50LmludGVyZmFjZSc7XG5cbmV4cG9ydCBlbnVtIGFnZW50Q29uZmlnS2V5cyB7XG4gIEFVVE9DT05ORUNUID0gJ2F1dG9jb25uZWN0JyxcbiAgTE9DS1NFVFRJTkdTID0gJ2xvY2tzZXR0aW5ncydcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRDb25maWcge1xuICBhZ2VudDoge1xuICAgIFthZ2VudENvbmZpZ0tleXMuQVVUT0NPTk5FQ1RdPzogYm9vbGVhbjtcbiAgICBbYWdlbnRDb25maWdLZXlzLkxPQ0tTRVRUSU5HU10/OiBMb2NrU2V0dGluZ3NcbiAgfVxufVxuZXhwb3J0IHR5cGUgQWdlbnRDb25uZWN0aW9uQ29uZmlnID0gRXh0ZW5kZWRDb25maWdbJ2FnZW50J11cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWdlbnRTZXJ2aWNlIHtcblxuICBwcml2YXRlIEVOQUlPX1BST1RPQ09MID0gJ3l1dXZpczovLyc7XG5cbiAgYWdlbnRBdmFpbGFiaWxpdHkgPSB7XG4gICAgQ09OTkVDVEVEOiAnZW8uYWdlbnQuYXZhaWxhYmlsaXR5LmNvbm5lY3RlZCcsXG4gICAgQVZBSUxBQkxFOiAnZW8uYWdlbnQuYXZhaWxhYmlsaXR5LmF2YWlsYWJsZScsXG4gICAgVU5BVkFJTEFCTEU6ICdlby5hZ2VudC5hdmFpbGFiaWxpdHkudW5hdmFpbGFibGUnXG4gIH07XG5cbiAgcHJpdmF0ZSBfaXNDb25uZWN0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RlZFNvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBwdWJsaWMgaXNDb25uZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0Nvbm5lY3RlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSBhZ2VudENvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWdlbnRDb25uZWN0aW9uQ29uZmlnPihudWxsKTtcbiAgcHVibGljIGFnZW50Q29uZmlnJDogT2JzZXJ2YWJsZTxBZ2VudENvbm5lY3Rpb25Db25maWc+ID0gdGhpcy5hZ2VudENvbmZpZy5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENPUkVfQ09ORklHKSBwdWJsaWMgY29yZUNvbmZpZzogQ29yZUNvbmZpZyxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZW5kU2VydmljZTogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENhY2hlU2VydmljZTogQXBwQ2FjaGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5nZXRBZ2VudENvbm5lY3Rpb25TdGF0dXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWdlbnRDb25uZWN0aW9uU3RhdHVzKCkge1xuICAgIGZvcmtKb2luKFt0aGlzLmFwcENhY2hlU2VydmljZS5nZXRJdGVtKCdlby5hZ2VudC5jb25uZWN0ZWQnKSwgdGhpcy5nZXRBZ2VudENvbmZpZygpXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKFtzdG9yYWdlLCBjb25maWddKSA9PiB0aGlzLmlzQ29ubmVjdGVkID0gKGNvbmZpZyAmJiBjb25maWcuaGFzT3duUHJvcGVydHkoYWdlbnRDb25maWdLZXlzLkFVVE9DT05ORUNUKSA/IGNvbmZpZy5hdXRvY29ubmVjdCA6IHN0b3JhZ2UgIT09IG51bGwgPyBzdG9yYWdlIDogbnVsbCkpXG4gICAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0QWdlbnRDb25maWcoKTogT2JzZXJ2YWJsZTxBZ2VudENvbm5lY3Rpb25Db25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFeHRlbmRlZENvbmZpZz4oJ2Fzc2V0cy9fZGVmYXVsdC9jb25maWcvZXh0ZW5kLmpzb24nLCB7d2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzfSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLFxuICAgICAgdGFwKChjb25maWc6IEV4dGVuZGVkQ29uZmlnKSA9PiB0aGlzLmFnZW50Q29uZmlnLm5leHQoey4uLmNvbmZpZz8uYWdlbnR9KSksXG4gICAgICBtYXAoKGNvbmZpZzogRXh0ZW5kZWRDb25maWcpID0+IGNvbmZpZz8uYWdlbnQpKVxuICB9XG5cbiAgc2V0IGlzQ29ubmVjdGVkKGlzQ29ubmVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNDb25uZWN0ZWQgPSBpc0Nvbm5lY3RlZDtcbiAgICB0aGlzLmlzQ29ubmVjdGVkU291cmNlLm5leHQoaXNDb25uZWN0ZWQpO1xuICAgIHRoaXMuYXBwQ2FjaGVTZXJ2aWNlLnNldEl0ZW0oJ2VvLmFnZW50LmNvbm5lY3RlZCcsIGlzQ29ubmVjdGVkKTtcbiAgfVxuXG4gIGdldCBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNDb25uZWN0ZWQ7XG4gIH1cblxuICBzZXRBZ2VudFN0YXR1cyhjb25uZWN0YWdlbnQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodHlwZW9mIGNvbm5lY3RhZ2VudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBjb25uZWN0YWdlbnQ7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsb2NhdGlvbiBlbnRyeSB0byB0aGUgYWdlbnQgc2VydmljZXMgbG9jYXRpb24gaGlzdG9yeS5cbiAgICogQHBhcmFtIGNvbnRleHRGb2xkZXIgVGhlIGxvY2F0aW9ucyBjb250ZXh0IGZvbGRlclxuICAgKiBAcGFyYW0gdHJlZU5vZGUgTm9kZSBmcm9tIHRoZSBjb250ZXh0IGZvbGRlcnMgc3RydWN0dXJlIHRyZWVcbiAgICovXG4gIHVwZGF0ZVVzZXJMb2NhdGlvbihjb250ZXh0Rm9sZGVyOiBEbXNPYmplY3QsIHRyZWVOb2RlPzogVHJlZU5vZGUpIHtcblxuICAgIGlmICh0cmVlTm9kZSAmJiB0cmVlTm9kZS5kYXRhICYmIHRyZWVOb2RlLmRhdGEudHlwZSkge1xuXG4gICAgICAvLyBpZiBhIGdpdmVuIHRyZWVOb2RlIGNvbnRhaW5zIGEgdGFyZ2V0IHR5cGUsIHdlJ2xsIG9ubHkgYWRkIGEgdXNlciBsb2NhdGlvblxuICAgICAgLy8gd2hlbiB0aGUgdHlwZSBpcyBhYmxlIHRvIGFjY2VwdCBjb250ZW50IChvdGhlcndpc2UgdXNlbGVzcyBmb3Igb2ZmaWNlIEFkZElucylcbiAgICAgIGNvbnN0IHRhcmdldFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZSh0cmVlTm9kZS5kYXRhLnR5cGUpO1xuICAgICAgaWYgKHRhcmdldFR5cGUubWF4RmlsZXMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB0aXRsZSA9IGNvbnRleHRGb2xkZXIudGl0bGU7XG4gICAgaWYgKHRyZWVOb2RlKSB7XG4gICAgICB0aXRsZSArPSAnID4gJyArIHRyZWVOb2RlLnBhdGguam9pbignID4gJyk7XG4gICAgfVxuXG4gICAgbGV0IGlkID0gY29udGV4dEZvbGRlci5pZDtcbiAgICBpZiAodHJlZU5vZGUpIHtcbiAgICAgIGlkICs9ICdfJyArIHRyZWVOb2RlLmRhdGEua2V5O1xuICAgIH1cblxuICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucG9zdCgnL2xvY2F0aW9ucycsIHtcbiAgICAgIGlkOiBpZCxcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIHR5cGU6IGNvbnRleHRGb2xkZXIudHlwZS5uYW1lLFxuICAgICAgY2hpbGRUeXBlOiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSkgPyB0cmVlTm9kZS5kYXRhLnR5cGUgOiB1bmRlZmluZWQsXG4gICAgICBkYXRhOiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSkgPyB0cmVlTm9kZS5kYXRhLmRhdGEgOiB1bmRlZmluZWRcbiAgICB9LCB0aGlzLmJhY2tlbmRTZXJ2aWNlLmdldEFnZW50QmFzZSgpKS5zdWJzY3JpYmUociA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgYWRkZWQgbG9jYXRpb24gJyR7dGl0bGV9JyB0byBhZ2VudCBzZXJ2aWNlYCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBhIGRvY3VtZW50IHZpYSBhZ2VudC5cbiAgICpcbiAgICogQHBhcmFtIGRvY3VtZW50IEEgZG9jdW1lbnQgdG8gb3Blbi5cbiAgICogQHBhcmFtIGxvY2sgQm9vbGVhbiwgaWYgdGhlIGRtcyBpdGVtIHNob3VsZCBiZSBsb2NrZWQuXG4gICAqL1xuICBvcGVuRG9jdW1lbnQoZG9jdW1lbnQsIGxvY2spIHtcbiAgICBjb25zdCBpZCA9IGRvY3VtZW50LmlkO1xuICAgIGlmIChsb2NrKSB7XG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnB1dCgnL2Rtcy9sb2NrLycgKyBpZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQubG9jayA9IHtcbiAgICAgICAgICBieToge1xuICAgICAgICAgICAgbWU6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkubmFtZSxcbiAgICAgICAgICAgIG90aGVyOiBmYWxzZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKCdvcGVuRG9jdW1lbnQnLCBpZCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kTWVzc2FnZSgnb3BlbkRvY3VtZW50JywgaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBjb250ZW50IHZpYSBhZ2VudC5cbiAgICogT24gY29tcGxldGlvbiwgdGhlIGFnZW50IHdpbGwgdmlzdWFsaXplIHRoZSBkb3dubG9hZGVkIGl0ZW1zLlxuICAgKlxuICAgKiBAcGFyYW0gZG9jdW1lbnRzIEEgZG9jdW1lbnQgdG8gb3Blbi5cbiAgICovXG4gIGRvd25sb2FkQ29udGVudChkb2N1bWVudHMpIHtcbiAgICBsZXQgZG9jcyA9IGRvY3VtZW50cy5tYXAoZG9jID0+IHtcbiAgICAgIHJldHVybiB7aWQ6IGRvYy5pZCwgdGl0bGU6IGRvYy50aXRsZSwgdHlwZTogZG9jLnR5cGUubmFtZSB8fCAnJywgdmVyc2lvbjogZG9jLnZlcnNpb259O1xuICAgIH0pO1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2Rvd25sb2FkQ29udGVudCcsIGRvY3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcHkgaXRlbXMgdG8gY2xpcGJvYXJkLlxuICAgKlxuICAgKiBAcGFyYW0gZG9jdW1lbnRzIExpc3Qgb2YgZG9jdW1lbnRzIHdpdGggaWQsIHRpdGxlLCB0eXBlIGFuZCByZW5kaXRpb24uXG4gICAqL1xuICBjb3B5VG9DbGlwYm9hcmQoZG9jdW1lbnRzKSB7XG4gICAgaWYgKCFkb2N1bWVudHMgfHwgZG9jdW1lbnRzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdBZ2VudCBjb3B5VG9DbGlwYm9hcmQgZXJyb3I6IGRvY3VtZW50cyBkb2VzIG5vdCBjb250YWluIGVsZW1lbnRzJyk7XG4gICAgICByZXR1cm4gVXRpbHMudGhyb3cobnVsbCwgJ2RvY3VtZW50cyBkb2VzIG5vdCBjb250YWluIGVsZW1lbnRzJykuY2FsbCh0aGlzLCB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2NvcHlUb0NsaXBib2FyZCcsIGRvY3VtZW50cyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgaXRlbXMgYXMgZW1haWwuXG4gICAqXG4gICAqIEBwYXJhbSBDdXN0b21FbWFpbCBjb250YWluIGF0dGFjaGVtbnRzIGFuZCBtZXNzYWdlLiBNZXNzYWdlIG15IGNvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIG1haWwuXG4gICAqL1xuICBzZW5kQXNNYWlsKHthdHRhY2htZW50cywgbWVzc2FnZX06IEN1c3RvbUVtYWlsKSB7XG4gICAgaWYgKCFhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignQWdlbnQgc2VuZEFzTWFpbCBlcnJvcjogZG9jdW1lbnRzIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gZWxlbWVudHMuIEF0dGFjaG1lbnRzIGNvdWxkIG5vdCBiZSBmb3VuZC4nKTtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5kb2N1bWVudC5vcGVuLmVycm9yLnRpdGxlJyksIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmRvY3VtZW50Lm9wZW4uZXJyb3IubWVzc2FnZScpKTtcbiAgICAgIHJldHVybiBVdGlscy50aHJvdyhudWxsLCAnZG9jdW1lbnRzIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gZWxlbWVudHMnKS5jYWxsKHRoaXMsIHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kTWVzc2FnZSgnc2VuZEFzTWFpbCcsIHthdHRhY2htZW50cywgbWVzc2FnZX0pO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRFeHRlcm5hbEFjdGlvbihleGVjdXRhYmxlLCBhcmdzKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnZXh0ZXJuYWwnLCB7ZXhlY3V0YWJsZSwgYXJnc30pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kTWVzc2FnZShhY3Rpb24sIGRhdGEpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgZGF0YTogZGF0YSxcbiAgICAgIHVzZXI6IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5uYW1lLFxuICAgICAgaG9zdDogdGhpcy5nZXRIb3N0KClcbiAgICB9O1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5FTkFJT19QUk9UT0NPTCArIGFjdGlvbiArICcvJyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEhvc3QoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gIH1cblxufVxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrLWNvcmUvYWdlbnQvYWdlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQThDLFdBQVcsRUFBeUYsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BMLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFLcEQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qiw4Q0FBMkIsQ0FBQTtJQUMzQixnREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFXRCxNQUFNLE9BQU8sWUFBWTtJQWdCdkIsWUFDOEIsVUFBc0IsRUFDMUMsTUFBYyxFQUNkLElBQWdCLEVBQ2hCLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLFNBQTJCLEVBQzNCLGFBQW1DLEVBQ25DLGVBQWdDO1FBUlosZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUMxQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXZCbEMsbUJB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QUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBVSxFQUFFLElBQUk7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQzlCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJO1lBQzVDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1NBQ3JCLENBQUM7UUFDRixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDOzhHQW5NVSxZQUFZLGtCQWlCYixXQUFXO2tIQWpCVixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFrQk4sTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlLCBCYWNrZW5kU2VydmljZSwgQ29yZUNvbmZpZywgQ09SRV9DT05GSUcsIERtc09iamVjdCwgTG9nZ2VyLCBOb3RpZmljYXRpb25zU2VydmljZSwgU3lzdGVtU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXNlclNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RyZWVOb2RlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtMb2NrU2V0dGluZ3N9IGZyb20gJy4vLi4vLi4vZW8tY2xpZW50L3NldHRpbmdzL2FnZW50LWxvY2stc2V0dGluZ3MuZW51bSc7XG5pbXBvcnQge0N1c3RvbUVtYWlsfSBmcm9tICcuL2FnZW50LmludGVyZmFjZSc7XG5cbmV4cG9ydCBlbnVtIGFnZW50Q29uZmlnS2V5cyB7XG4gIEFVVE9DT05ORUNUID0gJ2F1dG9jb25uZWN0JyxcbiAgTE9DS1NFVFRJTkdTID0gJ2xvY2tzZXR0aW5ncydcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRDb25maWcge1xuICBhZ2VudDoge1xuICAgIFthZ2VudENvbmZpZ0tleXMuQVVUT0NPTk5FQ1RdPzogYm9vbGVhbjtcbiAgICBbYWdlbnRDb25maWdLZXlzLkxPQ0tTRVRUSU5HU10/OiBMb2NrU2V0dGluZ3NcbiAgfVxufVxuZXhwb3J0IHR5cGUgQWdlbnRDb25uZWN0aW9uQ29uZmlnID0gRXh0ZW5kZWRDb25maWdbJ2FnZW50J11cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWdlbnRTZXJ2aWNlIHtcblxuICBwcml2YXRlIEVOQUlPX1BST1RPQ09MID0gJ3l1dXZpczovLyc7XG5cbiAgYWdlbnRBdmFpbGFiaWxpdHkgPSB7XG4gICAgQ09OTkVDVEVEOiAnZW8uYWdlbnQuYXZhaWxhYmlsaXR5LmNvbm5lY3RlZCcsXG4gICAgQVZBSUxBQkxFOiAnZW8uYWdlbnQuYXZhaWxhYmlsaXR5LmF2YWlsYWJsZScsXG4gICAgVU5BVkFJTEFCTEU6ICdlby5hZ2VudC5hdmFpbGFiaWxpdHkudW5hdmFpbGFibGUnXG4gIH07XG5cbiAgcHJpdmF0ZSBfaXNDb25uZWN0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc0Nvbm5lY3RlZFNvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBwdWJsaWMgaXNDb25uZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0Nvbm5lY3RlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSBhZ2VudENvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWdlbnRDb25uZWN0aW9uQ29uZmlnPihudWxsKTtcbiAgcHVibGljIGFnZW50Q29uZmlnJDogT2JzZXJ2YWJsZTxBZ2VudENvbm5lY3Rpb25Db25maWc+ID0gdGhpcy5hZ2VudENvbmZpZy5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENPUkVfQ09ORklHKSBwdWJsaWMgY29yZUNvbmZpZzogQ29yZUNvbmZpZyxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZW5kU2VydmljZTogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENhY2hlU2VydmljZTogQXBwQ2FjaGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5nZXRBZ2VudENvbm5lY3Rpb25TdGF0dXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWdlbnRDb25uZWN0aW9uU3RhdHVzKCkge1xuICAgIGZvcmtKb2luKFt0aGlzLmFwcENhY2hlU2VydmljZS5nZXRJdGVtKCdlby5hZ2VudC5jb25uZWN0ZWQnKSwgdGhpcy5nZXRBZ2VudENvbmZpZygpXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKFtzdG9yYWdlLCBjb25maWddKSA9PiB0aGlzLmlzQ29ubmVjdGVkID0gKGNvbmZpZyAmJiBjb25maWcuaGFzT3duUHJvcGVydHkoYWdlbnRDb25maWdLZXlzLkFVVE9DT05ORUNUKSA/IGNvbmZpZy5hdXRvY29ubmVjdCA6IHN0b3JhZ2UgIT09IG51bGwgPyBzdG9yYWdlIDogbnVsbCkpXG4gICAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0QWdlbnRDb25maWcoKTogT2JzZXJ2YWJsZTxBZ2VudENvbm5lY3Rpb25Db25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFeHRlbmRlZENvbmZpZz4oJ2Fzc2V0cy9fZGVmYXVsdC9jb25maWcvZXh0ZW5kLmpzb24nLCB7d2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvcmVDb25maWcud2l0aENyZWRlbnRpYWxzfSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLFxuICAgICAgdGFwKChjb25maWc6IEV4dGVuZGVkQ29uZmlnKSA9PiB0aGlzLmFnZW50Q29uZmlnLm5leHQoey4uLmNvbmZpZz8uYWdlbnR9KSksXG4gICAgICBtYXAoKGNvbmZpZzogRXh0ZW5kZWRDb25maWcpID0+IGNvbmZpZz8uYWdlbnQpKVxuICB9XG5cbiAgc2V0IGlzQ29ubmVjdGVkKGlzQ29ubmVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNDb25uZWN0ZWQgPSBpc0Nvbm5lY3RlZDtcbiAgICB0aGlzLmlzQ29ubmVjdGVkU291cmNlLm5leHQoaXNDb25uZWN0ZWQpO1xuICAgIHRoaXMuYXBwQ2FjaGVTZXJ2aWNlLnNldEl0ZW0oJ2VvLmFnZW50LmNvbm5lY3RlZCcsIGlzQ29ubmVjdGVkKTtcbiAgfVxuXG4gIGdldCBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNDb25uZWN0ZWQ7XG4gIH1cblxuICBzZXRBZ2VudFN0YXR1cyhjb25uZWN0YWdlbnQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodHlwZW9mIGNvbm5lY3RhZ2VudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuaXNDb25uZWN0ZWQgPSBjb25uZWN0YWdlbnQ7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsb2NhdGlvbiBlbnRyeSB0byB0aGUgYWdlbnQgc2VydmljZXMgbG9jYXRpb24gaGlzdG9yeS5cbiAgICogQHBhcmFtIGNvbnRleHRGb2xkZXIgVGhlIGxvY2F0aW9ucyBjb250ZXh0IGZvbGRlclxuICAgKiBAcGFyYW0gdHJlZU5vZGUgTm9kZSBmcm9tIHRoZSBjb250ZXh0IGZvbGRlcnMgc3RydWN0dXJlIHRyZWVcbiAgICovXG4gIHVwZGF0ZVVzZXJMb2NhdGlvbihjb250ZXh0Rm9sZGVyOiBEbXNPYmplY3QsIHRyZWVOb2RlPzogVHJlZU5vZGUpIHtcblxuICAgIGlmICh0cmVlTm9kZSAmJiB0cmVlTm9kZS5kYXRhICYmIHRyZWVOb2RlLmRhdGEudHlwZSkge1xuXG4gICAgICAvLyBpZiBhIGdpdmVuIHRyZWVOb2RlIGNvbnRhaW5zIGEgdGFyZ2V0IHR5cGUsIHdlJ2xsIG9ubHkgYWRkIGEgdXNlciBsb2NhdGlvblxuICAgICAgLy8gd2hlbiB0aGUgdHlwZSBpcyBhYmxlIHRvIGFjY2VwdCBjb250ZW50IChvdGhlcndpc2UgdXNlbGVzcyBmb3Igb2ZmaWNlIEFkZElucylcbiAgICAgIGNvbnN0IHRhcmdldFR5cGUgPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZSh0cmVlTm9kZS5kYXRhLnR5cGUpO1xuICAgICAgaWYgKHRhcmdldFR5cGUubWF4RmlsZXMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB0aXRsZSA9IGNvbnRleHRGb2xkZXIudGl0bGU7XG4gICAgaWYgKHRyZWVOb2RlKSB7XG4gICAgICB0aXRsZSArPSAnID4gJyArIHRyZWVOb2RlLnBhdGguam9pbignID4gJyk7XG4gICAgfVxuXG4gICAgbGV0IGlkID0gY29udGV4dEZvbGRlci5pZDtcbiAgICBpZiAodHJlZU5vZGUpIHtcbiAgICAgIGlkICs9ICdfJyArIHRyZWVOb2RlLmRhdGEua2V5O1xuICAgIH1cblxuICAgIHRoaXMuYmFja2VuZFNlcnZpY2UucG9zdCgnL2xvY2F0aW9ucycsIHtcbiAgICAgIGlkOiBpZCxcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIHR5cGU6IGNvbnRleHRGb2xkZXIudHlwZS5uYW1lLFxuICAgICAgY2hpbGRUeXBlOiAodHJlZU5vZGUgJiYgdHJlZU5vZGUuZGF0YSkgPyB0cmVlTm9kZS5kYXRhLnR5cGUgOiB1bmRlZmluZWQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgICdkZXNjcmlwdGlvbic6IGNvbnRleHRGb2xkZXI/LmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgJ3RyZWVOb2RlJzogdHJlZU5vZGU/LmRhdGE/LmRhdGEgPz8gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICAgICAgICBcbiAgICB9LCB0aGlzLmJhY2tlbmRTZXJ2aWNlLmdldEFnZW50QmFzZSgpKS5zdWJzY3JpYmUociA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgYWRkZWQgbG9jYXRpb24gJyR7dGl0bGV9JyB0byBhZ2VudCBzZXJ2aWNlYCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBhIGRvY3VtZW50IHZpYSBhZ2VudC5cbiAgICpcbiAgICogQHBhcmFtIGRvY3VtZW50IEEgZG9jdW1lbnQgdG8gb3Blbi5cbiAgICogQHBhcmFtIGxvY2sgQm9vbGVhbiwgaWYgdGhlIGRtcyBpdGVtIHNob3VsZCBiZSBsb2NrZWQuXG4gICAqL1xuICBvcGVuRG9jdW1lbnQoZG9jdW1lbnQsIGxvY2spIHtcbiAgICBjb25zdCBpZCA9IGRvY3VtZW50LmlkO1xuICAgIGlmIChsb2NrKSB7XG4gICAgICB0aGlzLmJhY2tlbmRTZXJ2aWNlLnB1dCgnL2Rtcy9sb2NrLycgKyBpZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQubG9jayA9IHtcbiAgICAgICAgICBieToge1xuICAgICAgICAgICAgbWU6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkubmFtZSxcbiAgICAgICAgICAgIG90aGVyOiBmYWxzZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKCdvcGVuRG9jdW1lbnQnLCBpZCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kTWVzc2FnZSgnb3BlbkRvY3VtZW50JywgaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBjb250ZW50IHZpYSBhZ2VudC5cbiAgICogT24gY29tcGxldGlvbiwgdGhlIGFnZW50IHdpbGwgdmlzdWFsaXplIHRoZSBkb3dubG9hZGVkIGl0ZW1zLlxuICAgKlxuICAgKiBAcGFyYW0gZG9jdW1lbnRzIEEgZG9jdW1lbnQgdG8gb3Blbi5cbiAgICovXG4gIGRvd25sb2FkQ29udGVudChkb2N1bWVudHMpIHtcbiAgICBsZXQgZG9jcyA9IGRvY3VtZW50cy5tYXAoZG9jID0+IHtcbiAgICAgIHJldHVybiB7aWQ6IGRvYy5pZCwgdGl0bGU6IGRvYy50aXRsZSwgdHlwZTogZG9jLnR5cGUubmFtZSB8fCAnJywgdmVyc2lvbjogZG9jLnZlcnNpb259O1xuICAgIH0pO1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2Rvd25sb2FkQ29udGVudCcsIGRvY3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcHkgaXRlbXMgdG8gY2xpcGJvYXJkLlxuICAgKlxuICAgKiBAcGFyYW0gZG9jdW1lbnRzIExpc3Qgb2YgZG9jdW1lbnRzIHdpdGggaWQsIHRpdGxlLCB0eXBlIGFuZCByZW5kaXRpb24uXG4gICAqL1xuICBjb3B5VG9DbGlwYm9hcmQoZG9jdW1lbnRzKSB7XG4gICAgaWYgKCFkb2N1bWVudHMgfHwgZG9jdW1lbnRzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdBZ2VudCBjb3B5VG9DbGlwYm9hcmQgZXJyb3I6IGRvY3VtZW50cyBkb2VzIG5vdCBjb250YWluIGVsZW1lbnRzJyk7XG4gICAgICByZXR1cm4gVXRpbHMudGhyb3cobnVsbCwgJ2RvY3VtZW50cyBkb2VzIG5vdCBjb250YWluIGVsZW1lbnRzJykuY2FsbCh0aGlzLCB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoJ2NvcHlUb0NsaXBib2FyZCcsIGRvY3VtZW50cyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVzIHRoZSBzZXR1cCBpbmZvcm1hdGlvbnMgYWJvdXQgdGhlIGxhc3Qgb3BlbmVkIGZvbGRlcnNcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAqL1xuICBnZXRMYXN0T3BlbmVkRm9sZGVyc0luZm8oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgIGNvbnN0IHVyaSA9ICcvbG9jYXRpb25zJztcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmRTZXJ2aWNlLmdldCh1cmksICcvYWdlbnQnKTtcbiAgICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgaXRlbXMgYXMgZW1haWwuXG4gICAqXG4gICAqIEBwYXJhbSBDdXN0b21FbWFpbCBjb250YWluIGF0dGFjaGVtbnRzIGFuZCBtZXNzYWdlLiBNZXNzYWdlIG15IGNvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIG1haWwuXG4gICAqL1xuICBzZW5kQXNNYWlsKHthdHRhY2htZW50cywgbWVzc2FnZX06IEN1c3RvbUVtYWlsKSB7XG4gICAgaWYgKCFhdHRhY2htZW50cz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcignQWdlbnQgc2VuZEFzTWFpbCBlcnJvcjogZG9jdW1lbnRzIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gZWxlbWVudHMuIEF0dGFjaG1lbnRzIGNvdWxkIG5vdCBiZSBmb3VuZC4nKTtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5kb2N1bWVudC5vcGVuLmVycm9yLnRpdGxlJyksIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmRvY3VtZW50Lm9wZW4uZXJyb3IubWVzc2FnZScpKTtcbiAgICAgIHJldHVybiBVdGlscy50aHJvdyhudWxsLCAnZG9jdW1lbnRzIGFycmF5IGRvZXMgbm90IGNvbnRhaW4gZWxlbWVudHMnKS5jYWxsKHRoaXMsIHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kTWVzc2FnZSgnc2VuZEFzTWFpbCcsIHthdHRhY2htZW50cywgbWVzc2FnZX0pO1xuICAgIH1cbiAgfVxuXG4gIHNlbmRFeHRlcm5hbEFjdGlvbihleGVjdXRhYmxlLCBhcmdzKSB7XG4gICAgdGhpcy5zZW5kTWVzc2FnZSgnZXh0ZXJuYWwnLCB7ZXhlY3V0YWJsZSwgYXJnc30pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kTWVzc2FnZShhY3Rpb24sIGRhdGEpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgZGF0YTogZGF0YSxcbiAgICAgIHVzZXI6IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5uYW1lLFxuICAgICAgaG9zdDogdGhpcy5nZXRIb3N0KClcbiAgICB9O1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5FTkFJT19QUk9UT0NPTCArIGFjdGlvbiArICcvJyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwYXlsb2FkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEhvc3QoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gIH1cblxufVxuIl19