@eo-sdk/client 9.0.1 → 9.0.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 (28) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts +6 -5
  2. package/assets/_default/i18n/de.json +10 -5
  3. package/assets/_default/i18n/en.json +10 -5
  4. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +21 -15
  5. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
  6. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +1 -1
  7. package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
  8. package/bundles/eo-sdk-client.umd.js +36 -37
  9. package/bundles/eo-sdk-client.umd.js.map +1 -1
  10. package/bundles/eo-sdk-client.umd.min.js +1 -1
  11. package/bundles/eo-sdk-client.umd.min.js.map +1 -1
  12. package/eo-sdk-client.metadata.json +1 -1
  13. package/esm2015/app/eo-client/about-state/about-state.component.js +15 -10
  14. package/esm2015/app/eo-framework/actions/action-menu/action-menu.component.js +1 -1
  15. package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +2 -2
  16. package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +3 -3
  17. package/esm2015/app/eo-framework/app-shell/app-bar/app-search/app-search.component.js +1 -13
  18. package/esm2015/app/eo-framework/frame/frame.component.js +1 -1
  19. package/esm2015/app/eo-framework/object-details/edit-icon/edit-icon.component.js +12 -3
  20. package/esm2015/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.js +2 -7
  21. package/esm2015/projects/eo-sdk/core/lib/service/bpm/bpm.service.js +22 -16
  22. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +21 -15
  23. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
  24. package/fesm2015/eo-sdk-client.js +34 -38
  25. package/fesm2015/eo-sdk-client.js.map +1 -1
  26. package/package.json +2 -2
  27. package/projects/eo-sdk/core/lib/service/bpm/bpm.service.d.ts +1 -1
  28. package/projects/eo-sdk/core/package.json +1 -1
@@ -54,9 +54,9 @@ export class BpmService {
54
54
  * @param modelid The process model ID to only return the data for one process
55
55
  * @returns List of executable processes
56
56
  */
57
- getExecutableProcesses(types, useCached, additionalData, modelid) {
57
+ getExecutableProcesses(types, useCached, additionalData, modelid, global) {
58
58
  if (this.capabilities.hasCapability('bpm')) {
59
- return (!!this.executableProcesses && useCached) ? observableOf(this.executableProcesses) : this.fetchExecutableProcesses(types, additionalData, modelid);
59
+ return (!!this.executableProcesses && useCached) ? observableOf(this.executableProcesses) : this.fetchExecutableProcesses(types, additionalData, modelid, global);
60
60
  }
61
61
  else {
62
62
  return observableOf([]);
@@ -82,7 +82,7 @@ export class BpmService {
82
82
  * @param modelid The process model ID to only return the data for one process
83
83
  * @returns List of executable processes
84
84
  */
85
- fetchExecutableProcesses(types, additionalData, modelid) {
85
+ fetchExecutableProcesses(types, additionalData, modelid, global) {
86
86
  let uri = '/bpm/process/executable';
87
87
  if (additionalData) {
88
88
  uri += '?form=true&fields=true';
@@ -95,19 +95,25 @@ export class BpmService {
95
95
  }
96
96
  return this.backend.get(uri).pipe(map(res => res), tap(res => {
97
97
  // Extend existing processes with additional data, instead of overwriting all processes
98
- if (additionalData) {
99
- if (!this.executableProcesses)
100
- this.executableProcesses = [];
101
- res.forEach(proc => {
102
- var existingProcIndex = this.executableProcesses.findIndex(item => item.id == proc.id);
103
- if (existingProcIndex == -1)
104
- this.executableProcesses.push(proc);
105
- else
106
- this.executableProcesses[existingProcIndex] = proc;
107
- });
98
+ if (global) {
99
+ if (additionalData) {
100
+ if (!this.executableProcesses) {
101
+ this.executableProcesses = [];
102
+ }
103
+ res.forEach(proc => {
104
+ const existingProcIndex = this.executableProcesses.findIndex(item => item.id === proc.id);
105
+ if (existingProcIndex === -1) {
106
+ this.executableProcesses.push(proc);
107
+ }
108
+ else {
109
+ this.executableProcesses[existingProcIndex] = proc;
110
+ }
111
+ });
112
+ }
113
+ else {
114
+ this.executableProcesses = res;
115
+ }
108
116
  }
109
- else
110
- this.executableProcesses = res;
111
117
  }));
112
118
  }
113
119
  /**
@@ -277,4 +283,4 @@ BpmService.ctorParameters = () => [
277
283
  { type: EventService },
278
284
  { type: InboxService }
279
285
  ];
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBYyxhQUFhLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBK0IsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkU7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFBb0IsWUFBaUMsRUFDM0MsT0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVDVCLHVCQUFrQixHQUFHLElBQUksYUFBYSxDQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzdEOztXQUVHO1FBQ0gsa0JBQWEsR0FBMEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBTTlFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxPQUFlLElBQUk7UUFDOUIsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixPQUFPLENBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDaEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNoRSxHQUFHLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsU0FBbUIsRUFBRSxjQUF3QixFQUFFLE9BQWdCO1FBQ3RHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDM0o7YUFBTTtZQUNMLE9BQU8sWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUNBQW1DLENBQUMsVUFBdUI7UUFDekQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLHdCQUF3QixDQUFDLEtBQWdCLEVBQUUsY0FBd0IsRUFBRSxPQUFnQjtRQUMzRixJQUFJLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztRQUNwQyxJQUFJLGNBQWMsRUFBRTtZQUNsQixHQUFHLElBQUksd0JBQXdCLENBQUM7U0FDakM7UUFDRCxJQUFJLEtBQUssRUFBRTtZQUNULEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUNqRTtRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLE9BQU8sRUFBRSxDQUFDO1NBQ3JFO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQTBCLENBQUMsRUFDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsdUZBQXVGO1lBQ3ZGLElBQUksY0FBYyxFQUFFO2dCQUNsQixJQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtvQkFBRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO2dCQUM1RCxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNqQixJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDdkYsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7O3dCQUVwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDO2FBQ0o7O2dCQUVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFNBQWlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsT0FBTyxDQUFDLFlBQVksU0FBUyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsT0FBTztnQkFDTCxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2dCQUNkLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztnQkFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dCQUNsQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7YUFDYixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxPQUFhO1FBQzFELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDO1FBQzlELE1BQU0sS0FBSyxHQUFHO1lBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsU0FBUyxJQUFJLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1NBQy9CLENBQUM7UUFDRixPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsTUFBTSxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxJQUFjO1FBQ3pCLE1BQU0sRUFBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFDekMsTUFBTSxPQUFPLEdBQUcsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFFbkQsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsU0FBUyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQzthQUM3RSxJQUFJLENBQ0gsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsSUFBYyxFQUFFLE1BQXVCO1FBQ3JELE1BQU0sTUFBTSxHQUFHLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQzthQUN2RixJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3ZELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsSUFBYztRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQzthQUN0RSxJQUFJLENBQ0gsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDMUQsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLElBQWM7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsbUJBQTJCLEVBQUUsSUFBUyxFQUFFLFFBQXNDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLG1CQUFtQixFQUFFLEVBQUU7WUFDdkUsSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxTQUFpQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLE9BQU8sQ0FBQyxnQkFBZ0IsU0FBUyxVQUFVLENBQUM7YUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsVUFBa0IsRUFBRSxpQkFBeUI7UUFDaEYsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixHQUFHLENBQUMsWUFBWSxTQUFTLFNBQVMsaUJBQWlCLGVBQWUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxlQUFlLENBQUMsU0FBaUIsRUFBRSxVQUFrQixFQUFFLFFBQXFCO1FBQzFFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDMUIsWUFBWSxTQUFTLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxVQUFVLEVBQUUsRUFDakYsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7YUFDN0IsSUFBSSxDQUNILFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsNEJBQTRCLENBQUMsUUFBa0IsRUFBRSxTQUFvQjtRQUNuRSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFO1lBQzFJLElBQUksUUFBcUIsQ0FBQztZQUMxQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN4Qiw4REFBOEQ7Z0JBQzlELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9FO2lCQUFNO2dCQUNMLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQy9CO1lBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN4RTthQUFNO1lBQ0wsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7OztZQTdSRixVQUFVOzs7WUFmSCxtQkFBbUI7WUFMbkIsY0FBYztZQUlkLFlBQVk7WUFEWixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmb3JrSm9pbiBhcyBvYnNlcnZhYmxlRm9ya0pvaW4sIG9mIGFzIG9ic2VydmFibGVPZiwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21lcmdlTWFwLCB0YXAsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrSXRlbUhpc3RvcnlFbnRyeX0gZnJvbSAnLi4vLi4vbW9kZWwvd29yay1pdGVtLWhpc3RvcnkubW9kZWwnO1xuaW1wb3J0IHtEbXNPYmplY3R9IGZyb20gJy4uLy4uL21vZGVsL2Rtcy1vYmplY3QubW9kZWwnO1xuaW1wb3J0IHtJbmJveFNlcnZpY2V9IGZyb20gJy4uL2luYm94L2luYm94LnNlcnZpY2UnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uL2V2ZW50cy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q2FwYWJpbGl0aWVzU2VydmljZX0gZnJvbSAnLi4vY2FwYWJpbGl0aWVzL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7RXhlY3V0YWJsZVByb2Nlc3MsIEZpbGVFbnRyeSwgUHJvY2VzcywgV29ya0l0ZW0sIFdvcmtJdGVtQWN0aW9ufSBmcm9tICcuLi8uLi9tb2RlbC9icG0ubW9kZWwnO1xuaW1wb3J0IHtDbGlwYm9hcmR9IGZyb20gJy4uL2NsaXBib2FyZC9jbGlwYm9hcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7Q2xpcGJvYXJkQWN0aW9ufSBmcm9tICcuLi9jbGlwYm9hcmQvY2xpcGJvYXJkLWFjdGlvbi5lbnVtJztcblxuLyoqXG4gKiBgQnBtU2VydmljZWAgaGFuZGxlcyBpbnRlcmFjdGlvbiByZWxhdGVkIHRvIEJQTSB0YXNrcy5cbiAqXG4gKiBUaGUgbWFpbiBwYXJ0cyBwcm92aWRlZCBhbmQgdXNlZCBieSB0aGlzIHNlcnZpY2UgYXJlIFByb2Nlc3NlcyBhbmQgV29ya0l0ZW1zLlxuICogUHJvY2Vzc2VzIGFyZSBkZWZpbmVkIG9uIHRoZSBiYWNrZW5kIHNpZGUuIFRoZXkgZGVzY3JpYmUgYSBzZXQgb2YgdGFza3MgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGJ5IHRoZSBwcm9jZXNzLlxuICogVGFza3MgdGhhdCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24gYXJlIHJlZmVycmVkIHRvIGFzIFdvcmtJdGVtcy5cbiAqXG4gKiBQcm9jZXNzZXMgY2FuIGJlIHJlbGF0ZWQgdG8gYSBzcGVjaWFsIG9iamVjdCB0eXBlLCBidXQgdGhleSBkb24ndCBoYXZlIHRvLiBJbiBhZGRpdGlvbiB0byB0aGF0IHRoZXkgY2FuIHJlZmVyXG4gKiB0byBkbXMgb2JqZWN0cy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJwbVNlcnZpY2Uge1xuICBoYXNNYWluRXhlY3V0YWJsZVByb2Nlc3NlczogYm9vbGVhbjtcbiAgcHJpdmF0ZSBleGVjdXRhYmxlUHJvY2Vzc2VzOiBFeGVjdXRhYmxlUHJvY2Vzc1tdO1xuICBwcml2YXRlIHByb2Nlc3NJdGVtczogUHJvY2Vzc1tdO1xuICBwcml2YXRlIHByb2Nlc3NJdGVtc1NvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFByb2Nlc3NbXT4oMSk7XG4gIC8qKlxuICAgKiBMb25nIHRlcm0gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCBwcm9jZXNzZXNcbiAgICovXG4gIHByb2Nlc3NJdGVtcyQ6IE9ic2VydmFibGU8UHJvY2Vzc1tdPiA9IHRoaXMucHJvY2Vzc0l0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGluYm94U2VydmljZTogSW5ib3hTZXJ2aWNlKSB7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYWxsIHByb2Nlc3NlcyBvZiB0aGUgY3VycmVudCB1c2VyLlxuICAgKlxuICAgKiBAcGFyYW0gc2l6ZSBNYXhpbXVtIG51bWJlciBvZiBwcm9jZXNzZXMgdG8gYmUgZmV0Y2hlZFxuICAgKiBAcmV0dXJucyBMaXN0IG9mIFByb2Nlc3Nlc1xuICAgKi9cbiAgZ2V0UHJvY2Vzc2VzKHNpemU6IG51bWJlciA9IDEwMDApOiBPYnNlcnZhYmxlPFByb2Nlc3NbXT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRKc29uKGAvcHJvY2Vzcy91c2VyP3NpemU9JHtzaXplfWAsIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmNvbnRlbnQubWFwKGl0ZW0gPT4gbmV3IFByb2Nlc3MoaXRlbSkpKSxcbiAgICAgICAgdGFwKChwcm9jZXNzZXM6IFByb2Nlc3NbXSkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0l0ZW1zID0gcHJvY2Vzc2VzO1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0l0ZW1zU291cmNlLm5leHQodGhpcy5wcm9jZXNzSXRlbXMpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXR0ZXIgZm9yIHRoZSBleGVjdXRhYmxlIFByb2Nlc3Nlcy4gSWYgdHlwZXMgYXJlIHByb3ZpZGVkLCB5b3UnbGwgZ2V0XG4gICAqIG9ubHkgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGZvciBhbGwgb2YgdGhlbVxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBkbXMgb2JqZWN0IHR5cGVzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxuICAgKiBAcGFyYW0gdXNlQ2FjaGVkIElmIHRoZSBjYWNoZWQgZGF0YSBzaG91bGQgYmUgcmV0dXJuZWQgcmF0aGVyIHRoYW4gcmVxdWVzdGluZyBhZ2FpblxuICAgKiBAcGFyYW0gYWRkaXRpb25hbERhdGEgSWYgdGhlIGFkZGl0aW9uYWwgZm9ybSBkYXRhIHNob3VsZCBiZSBhbHNvIGluY2x1ZGVkXG4gICAqIEBwYXJhbSBtb2RlbGlkIFRoZSBwcm9jZXNzIG1vZGVsIElEIHRvIG9ubHkgcmV0dXJuIHRoZSBkYXRhIGZvciBvbmUgcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIGV4ZWN1dGFibGUgcHJvY2Vzc2VzXG4gICAqL1xuICBnZXRFeGVjdXRhYmxlUHJvY2Vzc2VzKHR5cGVzPzogc3RyaW5nW10sIHVzZUNhY2hlZD86IGJvb2xlYW4sIGFkZGl0aW9uYWxEYXRhPzogYm9vbGVhbiwgbW9kZWxpZD86IHN0cmluZyk6IE9ic2VydmFibGU8RXhlY3V0YWJsZVByb2Nlc3NbXT4ge1xuICAgIGlmICh0aGlzLmNhcGFiaWxpdGllcy5oYXNDYXBhYmlsaXR5KCdicG0nKSkge1xuICAgICAgcmV0dXJuICghIXRoaXMuZXhlY3V0YWJsZVByb2Nlc3NlcyAmJiB1c2VDYWNoZWQpID8gb2JzZXJ2YWJsZU9mKHRoaXMuZXhlY3V0YWJsZVByb2Nlc3NlcykgOiB0aGlzLmZldGNoRXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcywgYWRkaXRpb25hbERhdGEsIG1vZGVsaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKFtdKTtcbiAgICB9XG4gIH1cblxuICBpbml0RXhlY3V0YWJsZVByb2Nlc3NlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCB1cmkgPSAnL2JwbS9wcm9jZXNzL2V4ZWN1dGFibGUnO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHVyaSkucGlwZSh0YXAocmVzID0+IHRoaXMuaGFzTWFpbkV4ZWN1dGFibGVQcm9jZXNzZXMgPSByZXM/Lmxlbmd0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZm9yIGEgZ2l2ZW4gc2V0IG9mIGRtcyBvYmplY3QuWW91J2xsIGdldFxuICAgKiBvbmx5IHRoZSBwcm9jZXNzZXMgdGhhdCBhcmUgZXhlY3V0YWJsZSBmb3IgYWxsIG9mIHRoZW0uXG4gICAqIEBwYXJhbSBkbXNPYmplY3RzIExpc3Qgb2YgZG1zIG9iamVjdHMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgZXhlY3V0YWJsZSBwcm9jZXNzZXNcbiAgICovXG4gIGdldEV4ZWN1dGFibGVQcm9jZXNzZXNGb3JEbXNPYmplY3RzKGRtc09iamVjdHM6IERtc09iamVjdFtdKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0YWJsZVByb2Nlc3NlcyhkbXNPYmplY3RzLm1hcChvID0+IG8udHlwZU5hbWUpLCBmYWxzZSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyBleGVjdXRhYmxlIFByb2Nlc3NlcyBmcm9tIHRoZSBiYWNrZW5kLlxuICAgKiBAcGFyYW0gdHlwZXMgTGlzdCBvZiBkbXMgb2JqZWN0IHR5cGVzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxuICAgKiBAcGFyYW0gYWRkaXRpb25hbERhdGEgSWYgdGhlIGFkZGl0aW9uYWwgZm9ybSBkYXRhIHNob3VsZCBiZSBhbHNvIGluY2x1ZGVkXG4gICAqIEBwYXJhbSBtb2RlbGlkIFRoZSBwcm9jZXNzIG1vZGVsIElEIHRvIG9ubHkgcmV0dXJuIHRoZSBkYXRhIGZvciBvbmUgcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIGV4ZWN1dGFibGUgcHJvY2Vzc2VzXG4gICAqL1xuICBwcml2YXRlIGZldGNoRXhlY3V0YWJsZVByb2Nlc3Nlcyh0eXBlcz86IHN0cmluZ1tdLCBhZGRpdGlvbmFsRGF0YT86IGJvb2xlYW4sIG1vZGVsaWQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV4ZWN1dGFibGVQcm9jZXNzW10+IHtcbiAgICBsZXQgdXJpID0gJy9icG0vcHJvY2Vzcy9leGVjdXRhYmxlJztcbiAgICBpZiAoYWRkaXRpb25hbERhdGEpIHtcbiAgICAgIHVyaSArPSAnP2Zvcm09dHJ1ZSZmaWVsZHM9dHJ1ZSc7XG4gICAgfVxuICAgIGlmICh0eXBlcykge1xuICAgICAgdXJpICs9IChhZGRpdGlvbmFsRGF0YSA/ICcmJyA6ICc/JykgKyBgdHlwZT0ke3R5cGVzLmpvaW4oJywnKX1gO1xuICAgIH1cbiAgICBpZiAobW9kZWxpZCkge1xuICAgICAgdXJpICs9IChhZGRpdGlvbmFsRGF0YSB8fCB0eXBlcyA/ICcmJyA6ICc/JykgKyBgbW9kZWxpZD0ke21vZGVsaWR9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQodXJpKS5waXBlKFxuICAgICAgbWFwKHJlcyA9PiByZXMgYXMgRXhlY3V0YWJsZVByb2Nlc3NbXSksXG4gICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgLy8gRXh0ZW5kIGV4aXN0aW5nIHByb2Nlc3NlcyB3aXRoIGFkZGl0aW9uYWwgZGF0YSwgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyBhbGwgcHJvY2Vzc2VzXG4gICAgICAgIGlmIChhZGRpdGlvbmFsRGF0YSkge1xuICAgICAgICAgIGlmKCF0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMpIHRoaXMuZXhlY3V0YWJsZVByb2Nlc3NlcyA9IFtdO1xuICAgICAgICAgIHJlcy5mb3JFYWNoKHByb2MgPT4ge1xuICAgICAgICAgICAgdmFyIGV4aXN0aW5nUHJvY0luZGV4ID0gdGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT0gcHJvYy5pZCk7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdQcm9jSW5kZXggPT0gLTEpXG4gICAgICAgICAgICAgIHRoaXMuZXhlY3V0YWJsZVByb2Nlc3Nlcy5wdXNoKHByb2MpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICB0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXNbZXhpc3RpbmdQcm9jSW5kZXhdID0gcHJvYztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgdGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzID0gcmVzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBmb3IgYSBwcm9jZXNzZXMgZmlsZS4gVGhlIGZpbGUgb2YgYSBwcm9jZXNzIGNvbnRhaW5zXG4gICAqIGRtcyBvYmplY3RzIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzLlxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGF0dGFjaGVkIG9iamVjdHMgZm9yXG4gICAqL1xuICBnZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmlsZUVudHJ5W10+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbihgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGVgLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKS5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHJlcy5jb250ZW50Lm1hcChpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGkuZWxlbWVudGlkLFxuICAgICAgICAgICAgdGl0bGU6IGkudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogaS5kZXNjcmlwdGlvbiA/IGkuZGVzY3JpcHRpb24gOiAnJyxcbiAgICAgICAgICAgIGljb25pZDogaS5pY29uaWQsXG4gICAgICAgICAgICBjcmVhdG9yOiBpLmNyZWF0b3IsXG4gICAgICAgICAgICBhZGR0aW1lOiBpLmFkZHRpbWUsXG4gICAgICAgICAgICB0eXBlOiBpLnR5cGVcbiAgICAgICAgICB9O1xuICAgICAgICB9KSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgd29yayBpdGVtLlxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwYXJlbnQgcHJvY2Vzc1xuICAgKiBAcGFyYW0gaXRlbUlkIElEIG9mIHRoZSB3b3JrIGl0ZW0gaXRzZWxmXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdG8gYmUgYWRkZWQgdG8gdGhlIGJhY2tlbmQgY2FsbFxuICAgKiBAcmV0dXJucyBhIFdvcmtJdGVtXG4gICAqL1xuICBnZXRXb3JrSXRlbShwcm9jZXNzSWQ6IHN0cmluZywgaXRlbUlkOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XG4gICAgY29uc3QgcGFyYW1zID0gb3B0aW9ucyA/IG9wdGlvbnMgOiB7Zm9ybTogdHJ1ZSwgZmllbGRzOiB0cnVlfTtcbiAgICBjb25zdCB0YXNrcyA9IFtcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aXRlbUlkfWAsIHBhcmFtcykpLFxuICAgICAgdGhpcy5nZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpXG4gICAgXTtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKHRhc2tzKS5waXBlKFxuICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHdpID0gbmV3IFdvcmtJdGVtKHJlc1swXSk7XG4gICAgICAgIHdpLnNldEZpbGUocmVzWzFdKTtcbiAgICAgICAgcmV0dXJuIHdpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGEgd29yayBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHNhdmVkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXG4gICAqL1xuICBzYXZlV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XG4gICAgY29uc3Qge2lkLCBwcm9jZXNzSWQsIGZpbGUsIGRhdGF9ID0gaXRlbTtcbiAgICBjb25zdCBwYXlsb2FkID0ge2NvbnRlbnRzOiBmaWxlLCBkYXRhfTtcbiAgICBjb25zdCBwYXJhbXMgPSB7a2VlcGxvY2s6IHRydWUsIGlzYXV0b2xvY2s6IGZhbHNlfTtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wb3N0KFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCBpZCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcndhcmRzIGEgd29yayBpdGVtLiBJZiBhIFdvcmtJdGVtIHByb3ZpZGVzIGRpZmZlcmVudCBhY3Rpb25zIChAbGluayBXb3JrSXRlbUFjdGlvbilcbiAgICogeW91IGNhbiBwcm92aWRlIHRoZSBzZWxlY3RlZCBhY3Rpb24gdG9vLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIGZvcndhcmRlZFxuICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiB1c2VkIGZvciBmb3J3YXJkaW5nXG4gICAqL1xuICBmb3J3YXJkV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0sIGFjdGlvbj86IFdvcmtJdGVtQWN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7a2VlcGxvY2s6IGZhbHNlLCBpc2F1dG9sb2NrOiBmYWxzZX07XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgY29udGVudHM6IGl0ZW0uZmlsZSxcbiAgICAgIGRhdGE6IGl0ZW0uZGF0YVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnBvc3QoVXRpbHMuYnVpbGRVcmkoYC9icG0vcHJvY2Vzcy8ke2l0ZW0ucHJvY2Vzc0lkfS8ke2l0ZW0uaWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmluYm94U2VydmljZS51cGRhdGVJbmJveEl0ZW1zKGl0ZW0uaWQpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2NrcyBhIFdvcmtJdGVtIGZvciB0aGUgY3VycmVudCB1c2VyIChwZXJzb25hbGl6YXRpb24pLCBtZWFuaW5nIHRoYXQgdGhlXG4gICAqIGN1cnJlbnQgdXNlciBpcyBub3cgaW4gY2hhcmdlIG9mIGZ1bGZpbGxpbmcgdGhlIFdvcmtJdGVtIHRhc2suXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBXb3JrSXRlbSB0byBiZSBsb2NrZWRcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cbiAgICovXG4gIGxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShpdGVtLnByb2Nlc3NJZCwgaXRlbS5pZCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbGVhc2VzIHRoZSBsb2NrIGZvciBhIFdvcmtJdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHVubG9ja2VkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXG4gICAqL1xuICB1bmxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmdldFdvcmtJdGVtKGl0ZW0ucHJvY2Vzc0lkLCBpdGVtLmlkKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhbiBleGVjdXRhYmxlIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBleGVjdXRhYmxlUHJvY2Vzc0lkIElEIG9mIHRoZSBleGVjdXRhYmxlIFByb2Nlc3MgdG8gYmUgc3RhcnRlZFxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgcHJvY2VzcyAoc2ltcGxlIG9iamVjdCBvZiBrZXkvdmFsdWUgcGFpcnMpXG4gICAqIEBwYXJhbSBjb250ZW50cyBPYmplY3RzIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzIChwcm9jZXNzLmZpbGUpLlxuICAgKi9cbiAgc3RhcnRQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzSWQ6IHN0cmluZywgZGF0YTogYW55LCBjb250ZW50czoge2lkOiBzdHJpbmcsIHR5cGU6IHN0cmluZ31bXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KGAvYnBtL3Byb2Nlc3MvP21vZGVsaWQ9JHtleGVjdXRhYmxlUHJvY2Vzc0lkfWAsIHtcbiAgICAgIGRhdGE6IGRhdGEsXG4gICAgICBjb250ZW50czogY29udGVudHNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoaXN0b3J5IGZvciBhIHByb2Nlc3MuIFdoaWNoIGVudHJpZXMgYXJlIHJldHVybmVkIGRlcGVuZHMgb24gdGhlXG4gICAqIHBlcm1pc3Npb25zIG9mIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGhpc3RvcnkgZm9yXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8V29ya0l0ZW1IaXN0b3J5RW50cnlbXT5cbiAgICovXG4gIGdldFByb2Nlc3NIaXN0b3J5KHByb2Nlc3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXb3JrSXRlbUhpc3RvcnlFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oYC9icG0vcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vaGlzdG9yeWApXG4gICAgICAucGlwZShtYXAocmVzID0+IHJlcyAmJiByZXMubGVuZ3RoID8gcmVzLm1hcChpdGVtID0+IG5ldyBXb3JrSXRlbUhpc3RvcnlFbnRyeShpdGVtKSkgOiBbXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBjb250ZW50IGZyb20gdGhlIHdvcmsgaXRlbXMgZmlsZS5cbiAgICogQHBhcmFtIHByb2Nlc3NJZCBUaGUgSUQgb2YgdGhlIHByb2Nlc3MgdG8gcmVtb3ZlIHRoZSBpdGVtIGZyb21cbiAgICogQHBhcmFtIHdvcmtJdGVtSWQgVGhlIElEIG9mIHRoZSB3b3JrIGl0ZW0gY29udGFpbmluZyB0aGUgZmlsZSBlbGVtZW50IHRvIGJlIHJlbW92ZWRcbiAgICogQHBhcmFtIHdvcmtJdGVtQ29udGVudElkIFRoZSB0aGUgSUQgb2YgdGhlIGZpbGUgZWxlbWVudCB0byBiZSByZW1vdmVkXG4gICAqL1xuICByZW1vdmVGaWxlRWxlbWVudChwcm9jZXNzSWQ6IHN0cmluZywgd29ya0l0ZW1JZDogc3RyaW5nLCB3b3JrSXRlbUNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZGVsKGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZS8ke3dvcmtJdGVtQ29udGVudElkfT9hY3Rpdml0eWlkPSR7d29ya0l0ZW1JZH1gLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgY29udGVudHMgdG8gYSB3b3JrIGl0ZW1zIGZpbGUuXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzXG4gICAqIEBwYXJhbSB3b3JrSXRlbUlkIFRoZSBJRCBvZiB0aGUgYWN0aXZpdHlcbiAgICogQHBhcmFtIGVsZW1lbnRzIFRoZSBFbGVtZW50cyB0byBiZSBhZGRlZFxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxuICAgKi9cbiAgYWRkRmlsZUVsZW1lbnRzKHByb2Nlc3NJZDogc3RyaW5nLCB3b3JrSXRlbUlkOiBzdHJpbmcsIGVsZW1lbnRzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcbiAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgIGVsZW1lbnRzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIHRhc2tzLnB1c2godGhpcy5iYWNrZW5kLnBvc3QoXG4gICAgICAgIGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZS8ke2UuaWR9P3R5cGU9JHtlLnR5cGUubmFtZX0mYWN0aXZpdHlpZD0ke3dvcmtJdGVtSWR9YCxcbiAgICAgICAge30sIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKHRhc2tzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCB3b3JrSXRlbUlkKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgb2JqZWN0cyBmcm9tIHRoZSBjbGlwYm9hcmQgdG8gYSBXb3JrSXRlbS5cbiAgICogQHBhcmFtIHdvcmtJdGVtIFRoZSB3b3JrSXRlbSB0byBhZGQgdGhlIG9iamVjdHMgdG9cbiAgICogQHBhcmFtIGNsaXBib2FyZCBDbGlwYm9hcmQgb2JqZWN0IGhvbGRpbmcgdXNlciBzZWxlY3RlZCBvYmplY3RzXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXG4gICAqL1xuICBhZGRGaWxlRWxlbWVudHNGcm9tQ2xpcGJvYXJkKHdvcmtJdGVtOiBXb3JrSXRlbSwgY2xpcGJvYXJkOiBDbGlwYm9hcmQpOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XG4gICAgaWYgKCh3b3JrSXRlbSAmJiB3b3JrSXRlbS5maWxlRW50cnlQZXJtaXNzaW9ucy5hZGQpICYmIGNsaXBib2FyZCAmJiBjbGlwYm9hcmQuZWxlbWVudHMubGVuZ3RoICYmIGNsaXBib2FyZC5hY3Rpb24gPT09IENsaXBib2FyZEFjdGlvbi5DT1BZKSB7XG4gICAgICBsZXQgY29udGVudHM6IERtc09iamVjdFtdO1xuICAgICAgaWYgKHdvcmtJdGVtLmZpbGUubGVuZ3RoKSB7XG4gICAgICAgIC8vIG9ubHkgYWRkIGl0ZW1zIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHBhcnQgb2YgdGhlIGF0dGFjaG1lbnRzXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRJZHMgPSB3b3JrSXRlbS5maWxlLm1hcChlID0+IGUuaWQpO1xuICAgICAgICBjb250ZW50cyA9IGNsaXBib2FyZC5lbGVtZW50cy5maWx0ZXIoZSA9PiBhdHRhY2htZW50SWRzLmluZGV4T2YoZS5pZCkgPT09IC0xKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRlbnRzID0gY2xpcGJvYXJkLmVsZW1lbnRzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuYWRkRmlsZUVsZW1lbnRzKHdvcmtJdGVtLnByb2Nlc3NJZCwgd29ya0l0ZW0uaWQsIGNvbnRlbnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKCdlcnJvcicpO1xuICAgIH1cbiAgfVxufVxuIl19
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksa0JBQWtCLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBYyxhQUFhLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBK0IsT0FBTyxFQUFFLFFBQVEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFbkU7Ozs7Ozs7OztHQVNHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFBb0IsWUFBaUMsRUFDM0MsT0FBdUIsRUFDdkIsWUFBMEIsRUFDMUIsWUFBMEI7UUFIaEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQzNDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGlC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Q0FBQyxDQUFDLENBQ3hELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBQyxRQUFrQixFQUFFLFNBQW9CO1FBQ25FLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDMUksSUFBSSxRQUFxQixDQUFDO1lBQzFCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hCLDhEQUE4RDtnQkFDOUQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0U7aUJBQU07Z0JBQ0wsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7YUFDL0I7WUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3hFO2FBQU07WUFDTCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7O1lBalNGLFVBQVU7OztZQWZILG1CQUFtQjtZQUxuQixjQUFjO1lBSWQsWUFBWTtZQURaLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZvcmtKb2luIGFzIG9ic2VydmFibGVGb3JrSm9pbiwgb2YgYXMgb2JzZXJ2YWJsZU9mLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWVyZ2VNYXAsIHRhcCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge1dvcmtJdGVtSGlzdG9yeUVudHJ5fSBmcm9tICcuLi8uLi9tb2RlbC93b3JrLWl0ZW0taGlzdG9yeS5tb2RlbCc7XG5pbXBvcnQge0Rtc09iamVjdH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XG5pbXBvcnQge0luYm94U2VydmljZX0gZnJvbSAnLi4vaW5ib3gvaW5ib3guc2VydmljZSc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDYXBhYmlsaXRpZXNTZXJ2aWNlfSBmcm9tICcuLi9jYXBhYmlsaXRpZXMvY2FwYWJpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtFeGVjdXRhYmxlUHJvY2VzcywgRmlsZUVudHJ5LCBQcm9jZXNzLCBXb3JrSXRlbSwgV29ya0l0ZW1BY3Rpb259IGZyb20gJy4uLy4uL21vZGVsL2JwbS5tb2RlbCc7XG5pbXBvcnQge0NsaXBib2FyZH0gZnJvbSAnLi4vY2xpcGJvYXJkL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtDbGlwYm9hcmRBY3Rpb259IGZyb20gJy4uL2NsaXBib2FyZC9jbGlwYm9hcmQtYWN0aW9uLmVudW0nO1xuXG4vKipcbiAqIGBCcG1TZXJ2aWNlYCBoYW5kbGVzIGludGVyYWN0aW9uIHJlbGF0ZWQgdG8gQlBNIHRhc2tzLlxuICpcbiAqIFRoZSBtYWluIHBhcnRzIHByb3ZpZGVkIGFuZCB1c2VkIGJ5IHRoaXMgc2VydmljZSBhcmUgUHJvY2Vzc2VzIGFuZCBXb3JrSXRlbXMuXG4gKiBQcm9jZXNzZXMgYXJlIGRlZmluZWQgb24gdGhlIGJhY2tlbmQgc2lkZS4gVGhleSBkZXNjcmliZSBhIHNldCBvZiB0YXNrcyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgYnkgdGhlIHByb2Nlc3MuXG4gKiBUYXNrcyB0aGF0IHJlcXVpcmUgdXNlciBpbnRlcmFjdGlvbiBhcmUgcmVmZXJyZWQgdG8gYXMgV29ya0l0ZW1zLlxuICpcbiAqIFByb2Nlc3NlcyBjYW4gYmUgcmVsYXRlZCB0byBhIHNwZWNpYWwgb2JqZWN0IHR5cGUsIGJ1dCB0aGV5IGRvbid0IGhhdmUgdG8uIEluIGFkZGl0aW9uIHRvIHRoYXQgdGhleSBjYW4gcmVmZXJcbiAqIHRvIGRtcyBvYmplY3RzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnBtU2VydmljZSB7XG4gIGhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzOiBib29sZWFuO1xuICBwcml2YXRlIGV4ZWN1dGFibGVQcm9jZXNzZXM6IEV4ZWN1dGFibGVQcm9jZXNzW107XG4gIHByaXZhdGUgcHJvY2Vzc0l0ZW1zOiBQcm9jZXNzW107XG4gIHByaXZhdGUgcHJvY2Vzc0l0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJvY2Vzc1tdPigxKTtcbiAgLyoqXG4gICAqIExvbmcgdGVybSBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjdXJyZW50IHByb2Nlc3Nlc1xuICAgKi9cbiAgcHJvY2Vzc0l0ZW1zJDogT2JzZXJ2YWJsZTxQcm9jZXNzW10+ID0gdGhpcy5wcm9jZXNzSXRlbXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbGwgcHJvY2Vzc2VzIG9mIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSBzaXplIE1heGltdW0gbnVtYmVyIG9mIHByb2Nlc3NlcyB0byBiZSBmZXRjaGVkXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgUHJvY2Vzc2VzXG4gICAqL1xuICBnZXRQcm9jZXNzZXMoc2l6ZTogbnVtYmVyID0gMTAwMCk6IE9ic2VydmFibGU8UHJvY2Vzc1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oYC9wcm9jZXNzL3VzZXI/c2l6ZT0ke3NpemV9YCwgdGhpcy5iYWNrZW5kLmdldEJwbUJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuY29udGVudC5tYXAoaXRlbSA9PiBuZXcgUHJvY2VzcyhpdGVtKSkpLFxuICAgICAgICB0YXAoKHByb2Nlc3NlczogUHJvY2Vzc1tdKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzSXRlbXMgPSBwcm9jZXNzZXM7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzSXRlbXNTb3VyY2UubmV4dCh0aGlzLnByb2Nlc3NJdGVtcyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBmb3IgdGhlIGV4ZWN1dGFibGUgUHJvY2Vzc2VzLiBJZiB0eXBlcyBhcmUgcHJvdmlkZWQsIHlvdSdsbCBnZXRcbiAgICogb25seSB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGV4ZWN1dGFibGUgZm9yIGFsbCBvZiB0aGVtXG4gICAqIEBwYXJhbSB0eXBlcyBMaXN0IG9mIGRtcyBvYmplY3QgdHlwZXMgdG8gZmV0Y2ggZXhlY3V0YWJsZSBwcm9jZXNzZXMgZm9yXG4gICAqIEBwYXJhbSB1c2VDYWNoZWQgSWYgdGhlIGNhY2hlZCBkYXRhIHNob3VsZCBiZSByZXR1cm5lZCByYXRoZXIgdGhhbiByZXF1ZXN0aW5nIGFnYWluXG4gICAqIEBwYXJhbSBhZGRpdGlvbmFsRGF0YSBJZiB0aGUgYWRkaXRpb25hbCBmb3JtIGRhdGEgc2hvdWxkIGJlIGFsc28gaW5jbHVkZWRcbiAgICogQHBhcmFtIG1vZGVsaWQgVGhlIHByb2Nlc3MgbW9kZWwgSUQgdG8gb25seSByZXR1cm4gdGhlIGRhdGEgZm9yIG9uZSBwcm9jZXNzXG4gICAqIEByZXR1cm5zIExpc3Qgb2YgZXhlY3V0YWJsZSBwcm9jZXNzZXNcbiAgICovXG4gIGdldEV4ZWN1dGFibGVQcm9jZXNzZXModHlwZXM/OiBzdHJpbmdbXSwgdXNlQ2FjaGVkPzogYm9vbGVhbiwgYWRkaXRpb25hbERhdGE/OiBib29sZWFuLCBtb2RlbGlkPzogc3RyaW5nLCBnbG9iYWw/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XG4gICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzLmhhc0NhcGFiaWxpdHkoJ2JwbScpKSB7XG4gICAgICByZXR1cm4gKCEhdGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzICYmIHVzZUNhY2hlZCkgPyBvYnNlcnZhYmxlT2YodGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzKSA6IHRoaXMuZmV0Y2hFeGVjdXRhYmxlUHJvY2Vzc2VzKHR5cGVzLCBhZGRpdGlvbmFsRGF0YSwgbW9kZWxpZCwgZ2xvYmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZihbXSk7XG4gICAgfVxuICB9XG5cbiAgaW5pdEV4ZWN1dGFibGVQcm9jZXNzZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgdXJpID0gJy9icG0vcHJvY2Vzcy9leGVjdXRhYmxlJztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh1cmkpLnBpcGUodGFwKHJlcyA9PiB0aGlzLmhhc01haW5FeGVjdXRhYmxlUHJvY2Vzc2VzID0gcmVzPy5sZW5ndGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGV4ZWN1dGFibGUgUHJvY2Vzc2VzIGZvciBhIGdpdmVuIHNldCBvZiBkbXMgb2JqZWN0LllvdSdsbCBnZXRcbiAgICogb25seSB0aGUgcHJvY2Vzc2VzIHRoYXQgYXJlIGV4ZWN1dGFibGUgZm9yIGFsbCBvZiB0aGVtLlxuICAgKiBAcGFyYW0gZG1zT2JqZWN0cyBMaXN0IG9mIGRtcyBvYmplY3RzIHRvIGZldGNoIGV4ZWN1dGFibGUgcHJvY2Vzc2VzIGZvclxuICAgKiBAcmV0dXJucyBMaXN0IG9mIGV4ZWN1dGFibGUgcHJvY2Vzc2VzXG4gICAqL1xuICBnZXRFeGVjdXRhYmxlUHJvY2Vzc2VzRm9yRG1zT2JqZWN0cyhkbXNPYmplY3RzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8RXhlY3V0YWJsZVByb2Nlc3NbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEV4ZWN1dGFibGVQcm9jZXNzZXMoZG1zT2JqZWN0cy5tYXAobyA9PiBvLnR5cGVOYW1lKSwgZmFsc2UsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgZXhlY3V0YWJsZSBQcm9jZXNzZXMgZnJvbSB0aGUgYmFja2VuZC5cbiAgICogQHBhcmFtIHR5cGVzIExpc3Qgb2YgZG1zIG9iamVjdCB0eXBlcyB0byBmZXRjaCBleGVjdXRhYmxlIHByb2Nlc3NlcyBmb3JcbiAgICogQHBhcmFtIGFkZGl0aW9uYWxEYXRhIElmIHRoZSBhZGRpdGlvbmFsIGZvcm0gZGF0YSBzaG91bGQgYmUgYWxzbyBpbmNsdWRlZFxuICAgKiBAcGFyYW0gbW9kZWxpZCBUaGUgcHJvY2VzcyBtb2RlbCBJRCB0byBvbmx5IHJldHVybiB0aGUgZGF0YSBmb3Igb25lIHByb2Nlc3NcbiAgICogQHJldHVybnMgTGlzdCBvZiBleGVjdXRhYmxlIHByb2Nlc3Nlc1xuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaEV4ZWN1dGFibGVQcm9jZXNzZXModHlwZXM/OiBzdHJpbmdbXSwgYWRkaXRpb25hbERhdGE/OiBib29sZWFuLCBtb2RlbGlkPzogc3RyaW5nLCBnbG9iYWw/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxFeGVjdXRhYmxlUHJvY2Vzc1tdPiB7XG4gICAgbGV0IHVyaSA9ICcvYnBtL3Byb2Nlc3MvZXhlY3V0YWJsZSc7XG4gICAgaWYgKGFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICB1cmkgKz0gJz9mb3JtPXRydWUmZmllbGRzPXRydWUnO1xuICAgIH1cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHVyaSArPSAoYWRkaXRpb25hbERhdGEgPyAnJicgOiAnPycpICsgYHR5cGU9JHt0eXBlcy5qb2luKCcsJyl9YDtcbiAgICB9XG4gICAgaWYgKG1vZGVsaWQpIHtcbiAgICAgIHVyaSArPSAoYWRkaXRpb25hbERhdGEgfHwgdHlwZXMgPyAnJicgOiAnPycpICsgYG1vZGVsaWQ9JHttb2RlbGlkfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHVyaSkucGlwZShcbiAgICAgIG1hcChyZXMgPT4gcmVzIGFzIEV4ZWN1dGFibGVQcm9jZXNzW10pLFxuICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgIC8vIEV4dGVuZCBleGlzdGluZyBwcm9jZXNzZXMgd2l0aCBhZGRpdGlvbmFsIGRhdGEsIGluc3RlYWQgb2Ygb3ZlcndyaXRpbmcgYWxsIHByb2Nlc3Nlc1xuICAgICAgICBpZiAoZ2xvYmFsKSB7XG4gICAgICAgICAgaWYgKGFkZGl0aW9uYWxEYXRhKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhlY3V0YWJsZVByb2Nlc3Nlcykge1xuICAgICAgICAgICAgICB0aGlzLmV4ZWN1dGFibGVQcm9jZXNzZXMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcy5mb3JFYWNoKHByb2MgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1Byb2NJbmRleCA9IHRoaXMuZXhlY3V0YWJsZVByb2Nlc3Nlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBwcm9jLmlkKTtcbiAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nUHJvY0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0YWJsZVByb2Nlc3Nlcy5wdXNoKHByb2MpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0YWJsZVByb2Nlc3Nlc1tleGlzdGluZ1Byb2NJbmRleF0gPSBwcm9jO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5leGVjdXRhYmxlUHJvY2Vzc2VzID0gcmVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBmb3IgYSBwcm9jZXNzZXMgZmlsZS4gVGhlIGZpbGUgb2YgYSBwcm9jZXNzIGNvbnRhaW5zXG4gICAqIGRtcyBvYmplY3RzIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzLlxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGF0dGFjaGVkIG9iamVjdHMgZm9yXG4gICAqL1xuICBnZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmlsZUVudHJ5W10+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbihgL3Byb2Nlc3MvJHtwcm9jZXNzSWR9L2ZpbGVgLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKS5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHJlcy5jb250ZW50Lm1hcChpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGkuZWxlbWVudGlkLFxuICAgICAgICAgICAgdGl0bGU6IGkudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogaS5kZXNjcmlwdGlvbiA/IGkuZGVzY3JpcHRpb24gOiAnJyxcbiAgICAgICAgICAgIGljb25pZDogaS5pY29uaWQsXG4gICAgICAgICAgICBjcmVhdG9yOiBpLmNyZWF0b3IsXG4gICAgICAgICAgICBhZGR0aW1lOiBpLmFkZHRpbWUsXG4gICAgICAgICAgICB0eXBlOiBpLnR5cGVcbiAgICAgICAgICB9O1xuICAgICAgICB9KSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgd29yayBpdGVtLlxuICAgKiBAcGFyYW0gcHJvY2Vzc0lkIElEIG9mIHRoZSBwYXJlbnQgcHJvY2Vzc1xuICAgKiBAcGFyYW0gaXRlbUlkIElEIG9mIHRoZSB3b3JrIGl0ZW0gaXRzZWxmXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgdG8gYmUgYWRkZWQgdG8gdGhlIGJhY2tlbmQgY2FsbFxuICAgKiBAcmV0dXJucyBhIFdvcmtJdGVtXG4gICAqL1xuICBnZXRXb3JrSXRlbShwcm9jZXNzSWQ6IHN0cmluZywgaXRlbUlkOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XG4gICAgY29uc3QgcGFyYW1zID0gb3B0aW9ucyA/IG9wdGlvbnMgOiB7Zm9ybTogdHJ1ZSwgZmllbGRzOiB0cnVlfTtcbiAgICBjb25zdCB0YXNrcyA9IFtcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aXRlbUlkfWAsIHBhcmFtcykpLFxuICAgICAgdGhpcy5nZXRQcm9jZXNzRmlsZShwcm9jZXNzSWQpXG4gICAgXTtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKHRhc2tzKS5waXBlKFxuICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHdpID0gbmV3IFdvcmtJdGVtKHJlc1swXSk7XG4gICAgICAgIHdpLnNldEZpbGUocmVzWzFdKTtcbiAgICAgICAgcmV0dXJuIHdpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGEgd29yayBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHNhdmVkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXG4gICAqL1xuICBzYXZlV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0pOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XG4gICAgY29uc3Qge2lkLCBwcm9jZXNzSWQsIGZpbGUsIGRhdGF9ID0gaXRlbTtcbiAgICBjb25zdCBwYXlsb2FkID0ge2NvbnRlbnRzOiBmaWxlLCBkYXRhfTtcbiAgICBjb25zdCBwYXJhbXMgPSB7a2VlcGxvY2s6IHRydWUsIGlzYXV0b2xvY2s6IGZhbHNlfTtcblxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wb3N0KFV0aWxzLmJ1aWxkVXJpKGAvYnBtL3Byb2Nlc3MvJHtwcm9jZXNzSWR9LyR7aWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCBpZCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcndhcmRzIGEgd29yayBpdGVtLiBJZiBhIFdvcmtJdGVtIHByb3ZpZGVzIGRpZmZlcmVudCBhY3Rpb25zIChAbGluayBXb3JrSXRlbUFjdGlvbilcbiAgICogeW91IGNhbiBwcm92aWRlIHRoZSBzZWxlY3RlZCBhY3Rpb24gdG9vLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIGZvcndhcmRlZFxuICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiB1c2VkIGZvciBmb3J3YXJkaW5nXG4gICAqL1xuICBmb3J3YXJkV29ya0l0ZW0oaXRlbTogV29ya0l0ZW0sIGFjdGlvbj86IFdvcmtJdGVtQWN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7a2VlcGxvY2s6IGZhbHNlLCBpc2F1dG9sb2NrOiBmYWxzZX07XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgY29udGVudHM6IGl0ZW0uZmlsZSxcbiAgICAgIGRhdGE6IGl0ZW0uZGF0YVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnBvc3QoVXRpbHMuYnVpbGRVcmkoYC9icG0vcHJvY2Vzcy8ke2l0ZW0ucHJvY2Vzc0lkfS8ke2l0ZW0uaWR9L3NhdmVgLCBwYXJhbXMpLCBwYXlsb2FkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmluYm94U2VydmljZS51cGRhdGVJbmJveEl0ZW1zKGl0ZW0uaWQpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2NrcyBhIFdvcmtJdGVtIGZvciB0aGUgY3VycmVudCB1c2VyIChwZXJzb25hbGl6YXRpb24pLCBtZWFuaW5nIHRoYXQgdGhlXG4gICAqIGN1cnJlbnQgdXNlciBpcyBub3cgaW4gY2hhcmdlIG9mIGZ1bGZpbGxpbmcgdGhlIFdvcmtJdGVtIHRhc2suXG4gICAqIEBwYXJhbSBpdGVtIFRoZSBXb3JrSXRlbSB0byBiZSBsb2NrZWRcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgV29ya0l0ZW1cbiAgICovXG4gIGxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5nZXRXb3JrSXRlbShpdGVtLnByb2Nlc3NJZCwgaXRlbS5pZCkpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbGVhc2VzIHRoZSBsb2NrIGZvciBhIFdvcmtJdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgd29yayBpdGVtIHRvIGJlIHVubG9ja2VkXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXG4gICAqL1xuICB1bmxvY2tXb3JrSXRlbShpdGVtOiBXb3JrSXRlbSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbChgL2JwbS9wcm9jZXNzLyR7aXRlbS5wcm9jZXNzSWR9LyR7aXRlbS5pZH0vbG9ja2ApLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmdldFdvcmtJdGVtKGl0ZW0ucHJvY2Vzc0lkLCBpdGVtLmlkKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBhbiBleGVjdXRhYmxlIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBleGVjdXRhYmxlUHJvY2Vzc0lkIElEIG9mIHRoZSBleGVjdXRhYmxlIFByb2Nlc3MgdG8gYmUgc3RhcnRlZFxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgcHJvY2VzcyAoc2ltcGxlIG9iamVjdCBvZiBrZXkvdmFsdWUgcGFpcnMpXG4gICAqIEBwYXJhbSBjb250ZW50cyBPYmplY3RzIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBwcm9jZXNzIChwcm9jZXNzLmZpbGUpLlxuICAgKi9cbiAgc3RhcnRQcm9jZXNzKGV4ZWN1dGFibGVQcm9jZXNzSWQ6IHN0cmluZywgZGF0YTogYW55LCBjb250ZW50czoge2lkOiBzdHJpbmcsIHR5cGU6IHN0cmluZ31bXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KGAvYnBtL3Byb2Nlc3MvP21vZGVsaWQ9JHtleGVjdXRhYmxlUHJvY2Vzc0lkfWAsIHtcbiAgICAgIGRhdGE6IGRhdGEsXG4gICAgICBjb250ZW50czogY29udGVudHNcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoaXN0b3J5IGZvciBhIHByb2Nlc3MuIFdoaWNoIGVudHJpZXMgYXJlIHJldHVybmVkIGRlcGVuZHMgb24gdGhlXG4gICAqIHBlcm1pc3Npb25zIG9mIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzIHRvIGZldGNoIGhpc3RvcnkgZm9yXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8V29ya0l0ZW1IaXN0b3J5RW50cnlbXT5cbiAgICovXG4gIGdldFByb2Nlc3NIaXN0b3J5KHByb2Nlc3NJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxXb3JrSXRlbUhpc3RvcnlFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oYC9icG0vcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vaGlzdG9yeWApXG4gICAgICAucGlwZShtYXAocmVzID0+IHJlcyAmJiByZXMubGVuZ3RoID8gcmVzLm1hcChpdGVtID0+IG5ldyBXb3JrSXRlbUhpc3RvcnlFbnRyeShpdGVtKSkgOiBbXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBjb250ZW50IGZyb20gdGhlIHdvcmsgaXRlbXMgZmlsZS5cbiAgICogQHBhcmFtIHByb2Nlc3NJZCBUaGUgSUQgb2YgdGhlIHByb2Nlc3MgdG8gcmVtb3ZlIHRoZSBpdGVtIGZyb21cbiAgICogQHBhcmFtIHdvcmtJdGVtSWQgVGhlIElEIG9mIHRoZSB3b3JrIGl0ZW0gY29udGFpbmluZyB0aGUgZmlsZSBlbGVtZW50IHRvIGJlIHJlbW92ZWRcbiAgICogQHBhcmFtIHdvcmtJdGVtQ29udGVudElkIFRoZSB0aGUgSUQgb2YgdGhlIGZpbGUgZWxlbWVudCB0byBiZSByZW1vdmVkXG4gICAqL1xuICByZW1vdmVGaWxlRWxlbWVudChwcm9jZXNzSWQ6IHN0cmluZywgd29ya0l0ZW1JZDogc3RyaW5nLCB3b3JrSXRlbUNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZGVsKGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZS8ke3dvcmtJdGVtQ29udGVudElkfT9hY3Rpdml0eWlkPSR7d29ya0l0ZW1JZH1gLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgY29udGVudHMgdG8gYSB3b3JrIGl0ZW1zIGZpbGUuXG4gICAqIEBwYXJhbSBwcm9jZXNzSWQgVGhlIElEIG9mIHRoZSBwcm9jZXNzXG4gICAqIEBwYXJhbSB3b3JrSXRlbUlkIFRoZSBJRCBvZiB0aGUgYWN0aXZpdHlcbiAgICogQHBhcmFtIGVsZW1lbnRzIFRoZSBFbGVtZW50cyB0byBiZSBhZGRlZFxuICAgKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBXb3JrSXRlbVxuICAgKi9cbiAgYWRkRmlsZUVsZW1lbnRzKHByb2Nlc3NJZDogc3RyaW5nLCB3b3JrSXRlbUlkOiBzdHJpbmcsIGVsZW1lbnRzOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8V29ya0l0ZW0+IHtcbiAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgIGVsZW1lbnRzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIHRhc2tzLnB1c2godGhpcy5iYWNrZW5kLnBvc3QoXG4gICAgICAgIGAvcHJvY2Vzcy8ke3Byb2Nlc3NJZH0vZmlsZS8ke2UuaWR9P3R5cGU9JHtlLnR5cGUubmFtZX0mYWN0aXZpdHlpZD0ke3dvcmtJdGVtSWR9YCxcbiAgICAgICAge30sIHRoaXMuYmFja2VuZC5nZXRCcG1CYXNlKCkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUZvcmtKb2luKHRhc2tzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0V29ya0l0ZW0ocHJvY2Vzc0lkLCB3b3JrSXRlbUlkKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgb2JqZWN0cyBmcm9tIHRoZSBjbGlwYm9hcmQgdG8gYSBXb3JrSXRlbS5cbiAgICogQHBhcmFtIHdvcmtJdGVtIFRoZSB3b3JrSXRlbSB0byBhZGQgdGhlIG9iamVjdHMgdG9cbiAgICogQHBhcmFtIGNsaXBib2FyZCBDbGlwYm9hcmQgb2JqZWN0IGhvbGRpbmcgdXNlciBzZWxlY3RlZCBvYmplY3RzXG4gICAqIEByZXR1cm5zIFRoZSB1cGRhdGVkIFdvcmtJdGVtXG4gICAqL1xuICBhZGRGaWxlRWxlbWVudHNGcm9tQ2xpcGJvYXJkKHdvcmtJdGVtOiBXb3JrSXRlbSwgY2xpcGJvYXJkOiBDbGlwYm9hcmQpOiBPYnNlcnZhYmxlPFdvcmtJdGVtPiB7XG4gICAgaWYgKCh3b3JrSXRlbSAmJiB3b3JrSXRlbS5maWxlRW50cnlQZXJtaXNzaW9ucy5hZGQpICYmIGNsaXBib2FyZCAmJiBjbGlwYm9hcmQuZWxlbWVudHMubGVuZ3RoICYmIGNsaXBib2FyZC5hY3Rpb24gPT09IENsaXBib2FyZEFjdGlvbi5DT1BZKSB7XG4gICAgICBsZXQgY29udGVudHM6IERtc09iamVjdFtdO1xuICAgICAgaWYgKHdvcmtJdGVtLmZpbGUubGVuZ3RoKSB7XG4gICAgICAgIC8vIG9ubHkgYWRkIGl0ZW1zIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHBhcnQgb2YgdGhlIGF0dGFjaG1lbnRzXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRJZHMgPSB3b3JrSXRlbS5maWxlLm1hcChlID0+IGUuaWQpO1xuICAgICAgICBjb250ZW50cyA9IGNsaXBib2FyZC5lbGVtZW50cy5maWx0ZXIoZSA9PiBhdHRhY2htZW50SWRzLmluZGV4T2YoZS5pZCkgPT09IC0xKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRlbnRzID0gY2xpcGJvYXJkLmVsZW1lbnRzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuYWRkRmlsZUVsZW1lbnRzKHdvcmtJdGVtLnByb2Nlc3NJZCwgd29ya0l0ZW0uaWQsIGNvbnRlbnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKCdlcnJvcicpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -3351,9 +3351,9 @@ class BpmService {
3351
3351
  * @param modelid The process model ID to only return the data for one process
3352
3352
  * @returns List of executable processes
3353
3353
  */
3354
- getExecutableProcesses(types, useCached, additionalData, modelid) {
3354
+ getExecutableProcesses(types, useCached, additionalData, modelid, global) {
3355
3355
  if (this.capabilities.hasCapability('bpm')) {
3356
- return (!!this.executableProcesses && useCached) ? of(this.executableProcesses) : this.fetchExecutableProcesses(types, additionalData, modelid);
3356
+ return (!!this.executableProcesses && useCached) ? of(this.executableProcesses) : this.fetchExecutableProcesses(types, additionalData, modelid, global);
3357
3357
  }
3358
3358
  else {
3359
3359
  return of([]);
@@ -3379,7 +3379,7 @@ class BpmService {
3379
3379
  * @param modelid The process model ID to only return the data for one process
3380
3380
  * @returns List of executable processes
3381
3381
  */
3382
- fetchExecutableProcesses(types, additionalData, modelid) {
3382
+ fetchExecutableProcesses(types, additionalData, modelid, global) {
3383
3383
  let uri = '/bpm/process/executable';
3384
3384
  if (additionalData) {
3385
3385
  uri += '?form=true&fields=true';
@@ -3392,19 +3392,25 @@ class BpmService {
3392
3392
  }
3393
3393
  return this.backend.get(uri).pipe(map(res => res), tap(res => {
3394
3394
  // Extend existing processes with additional data, instead of overwriting all processes
3395
- if (additionalData) {
3396
- if (!this.executableProcesses)
3397
- this.executableProcesses = [];
3398
- res.forEach(proc => {
3399
- var existingProcIndex = this.executableProcesses.findIndex(item => item.id == proc.id);
3400
- if (existingProcIndex == -1)
3401
- this.executableProcesses.push(proc);
3402
- else
3403
- this.executableProcesses[existingProcIndex] = proc;
3404
- });
3395
+ if (global) {
3396
+ if (additionalData) {
3397
+ if (!this.executableProcesses) {
3398
+ this.executableProcesses = [];
3399
+ }
3400
+ res.forEach(proc => {
3401
+ const existingProcIndex = this.executableProcesses.findIndex(item => item.id === proc.id);
3402
+ if (existingProcIndex === -1) {
3403
+ this.executableProcesses.push(proc);
3404
+ }
3405
+ else {
3406
+ this.executableProcesses[existingProcIndex] = proc;
3407
+ }
3408
+ });
3409
+ }
3410
+ else {
3411
+ this.executableProcesses = res;
3412
+ }
3405
3413
  }
3406
- else
3407
- this.executableProcesses = res;
3408
3414
  }));
3409
3415
  }
3410
3416
  /**