@alfresco/aca-content 4.3.0 → 4.4.0-6803224597

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 (51) hide show
  1. package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +2 -8
  2. package/esm2020/lib/components/common/location-link/location-link.component.mjs +6 -4
  3. package/esm2020/lib/components/common/toggle-shared/toggle-shared.component.mjs +2 -2
  4. package/esm2020/lib/components/context-menu/context-menu-item.component.mjs +2 -2
  5. package/esm2020/lib/components/context-menu/context-menu-outside-event.directive.mjs +4 -7
  6. package/esm2020/lib/components/context-menu/context-menu.service.mjs +1 -4
  7. package/esm2020/lib/components/favorite-libraries/favorite-libraries.component.mjs +2 -2
  8. package/esm2020/lib/components/favorites/favorites.component.mjs +3 -3
  9. package/esm2020/lib/components/files/files.component.mjs +17 -15
  10. package/esm2020/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +3 -3
  11. package/esm2020/lib/components/libraries/libraries.component.mjs +2 -2
  12. package/esm2020/lib/components/recent-files/recent-files.component.mjs +5 -5
  13. package/esm2020/lib/components/search/search-libraries-results/search-libraries-query-builder.service.mjs +4 -4
  14. package/esm2020/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +3 -3
  15. package/esm2020/lib/components/search/search-results/search-results.component.mjs +2 -2
  16. package/esm2020/lib/components/search/search-results-row/search-results-row.component.mjs +2 -2
  17. package/esm2020/lib/components/sidenav/directives/active-link.directive.mjs +3 -3
  18. package/esm2020/lib/components/sidenav/directives/expansion-panel.directive.mjs +2 -2
  19. package/esm2020/lib/components/sidenav/directives/menu-panel.directive.mjs +2 -2
  20. package/esm2020/lib/components/sidenav/user-menu/user-menu.component.mjs +2 -2
  21. package/esm2020/lib/dialogs/node-template/create-from-template.dialog.mjs +3 -3
  22. package/esm2020/lib/services/content-management.service.mjs +13 -13
  23. package/esm2020/lib/services/node-actions.service.mjs +8 -8
  24. package/esm2020/lib/services/node-template.service.mjs +2 -2
  25. package/esm2020/lib/store/effects/library.effects.mjs +4 -4
  26. package/esm2020/lib/store/effects/node.effects.mjs +14 -14
  27. package/esm2020/lib/store/effects/upload.effects.mjs +3 -7
  28. package/esm2020/lib/store/effects/viewer.effects.mjs +3 -3
  29. package/esm2020/lib/store/reducers/app.reducer.mjs +2 -2
  30. package/esm2020/preview/lib/components/preview.component.mjs +8 -20
  31. package/esm2020/viewer/lib/components/viewer/viewer.component.mjs +9 -21
  32. package/fesm2015/alfresco-aca-content-folder-rules.mjs +1 -7
  33. package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -1
  34. package/fesm2015/alfresco-aca-content-preview.mjs +9 -19
  35. package/fesm2015/alfresco-aca-content-preview.mjs.map +1 -1
  36. package/fesm2015/alfresco-aca-content-viewer.mjs +12 -22
  37. package/fesm2015/alfresco-aca-content-viewer.mjs.map +1 -1
  38. package/fesm2015/alfresco-aca-content.mjs +128 -99
  39. package/fesm2015/alfresco-aca-content.mjs.map +1 -1
  40. package/fesm2020/alfresco-aca-content-folder-rules.mjs +1 -7
  41. package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -1
  42. package/fesm2020/alfresco-aca-content-preview.mjs +7 -19
  43. package/fesm2020/alfresco-aca-content-preview.mjs.map +1 -1
  44. package/fesm2020/alfresco-aca-content-viewer.mjs +8 -20
  45. package/fesm2020/alfresco-aca-content-viewer.mjs.map +1 -1
  46. package/fesm2020/alfresco-aca-content.mjs +91 -97
  47. package/fesm2020/alfresco-aca-content.mjs.map +1 -1
  48. package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +0 -1
  49. package/lib/components/files/files.component.d.ts +1 -1
  50. package/lib/components/recent-files/recent-files.component.d.ts +0 -1
  51. package/package.json +1 -1
@@ -51,14 +51,14 @@ export class NodeEffects {
51
51
  .select(getAppSelection)
52
52
  .pipe(take(1))
53
53
  .subscribe((selection) => {
54
- if (selection && selection.file) {
54
+ if (selection?.file) {
55
55
  this.contentService.shareNode(selection.file, action.configuration?.focusedElementOnCloseSelector);
56
56
  }
57
57
  });
58
58
  }
59
59
  })), { dispatch: false });
60
60
  this.unshareNodes$ = createEffect(() => this.actions$.pipe(ofType(NodeActionTypes.Unshare), map((action) => {
61
- if (action && action.payload && action.payload.length > 0) {
61
+ if (action?.payload?.length > 0) {
62
62
  this.contentService.unshareNodes(action.payload);
63
63
  }
64
64
  else {
@@ -73,7 +73,7 @@ export class NodeEffects {
73
73
  }
74
74
  })), { dispatch: false });
75
75
  this.purgeDeletedNodes$ = createEffect(() => this.actions$.pipe(ofType(NodeActionTypes.PurgeDeleted), map((action) => {
76
- if (action && action.payload && action.payload.length > 0) {
76
+ if (action?.payload?.length > 0) {
77
77
  this.contentService.purgeDeletedNodes(action.payload);
78
78
  }
79
79
  else {
@@ -88,7 +88,7 @@ export class NodeEffects {
88
88
  }
89
89
  })), { dispatch: false });
90
90
  this.restoreDeletedNodes$ = createEffect(() => this.actions$.pipe(ofType(NodeActionTypes.RestoreDeleted), map((action) => {
91
- if (action && action.payload && action.payload.length > 0) {
91
+ if (action?.payload?.length > 0) {
92
92
  this.contentService.restoreDeletedNodes(action.payload);
93
93
  }
94
94
  else {
@@ -104,7 +104,7 @@ export class NodeEffects {
104
104
  })), { dispatch: false });
105
105
  this.deleteNodes$ = createEffect(() => this.actions$.pipe(ofType(NodeActionTypes.Delete), map((action) => {
106
106
  this.store.dispatch(new ShowLoaderAction(true));
107
- if (action && action.payload && action.payload.length > 0) {
107
+ if (action?.payload?.length > 0) {
108
108
  this.contentService.deleteNodes(action.payload);
109
109
  }
110
110
  else {
@@ -132,7 +132,7 @@ export class NodeEffects {
132
132
  .select(getCurrentFolder)
133
133
  .pipe(take(1))
134
134
  .subscribe((node) => {
135
- if (node && node.id) {
135
+ if (node?.id) {
136
136
  this.contentService.createFolder(node.id);
137
137
  }
138
138
  });
@@ -147,7 +147,7 @@ export class NodeEffects {
147
147
  .select(getAppSelection)
148
148
  .pipe(take(1))
149
149
  .subscribe((selection) => {
150
- if (selection && selection.folder) {
150
+ if (selection?.folder) {
151
151
  this.contentService.editFolder(selection.folder, action.configuration?.focusedElementOnCloseSelector);
152
152
  }
153
153
  });
@@ -235,14 +235,14 @@ export class NodeEffects {
235
235
  .select(getAppSelection)
236
236
  .pipe(take(1))
237
237
  .subscribe((selection) => {
238
- if (selection && selection.file) {
238
+ if (selection?.file) {
239
239
  this.contentService.manageVersions(selection.file, action.configuration?.focusedElementOnCloseSelector);
240
240
  }
241
241
  });
242
242
  }
243
243
  })), { dispatch: false });
244
244
  this.printFile$ = createEffect(() => this.actions$.pipe(ofType(NodeActionTypes.PrintFile), map((action) => {
245
- if (action && action.payload) {
245
+ if (action?.payload) {
246
246
  this.printFile(action.payload);
247
247
  }
248
248
  else {
@@ -250,14 +250,14 @@ export class NodeEffects {
250
250
  .select(getAppSelection)
251
251
  .pipe(take(1))
252
252
  .subscribe((selection) => {
253
- if (selection && selection.file) {
253
+ if (selection?.file) {
254
254
  this.printFile(selection.file);
255
255
  }
256
256
  });
257
257
  }
258
258
  })), { dispatch: false });
259
259
  this.unlockWrite$ = createEffect(() => this.actions$.pipe(ofType(NodeActionTypes.UnlockForWriting), map((action) => {
260
- if (action && action.payload) {
260
+ if (action?.payload) {
261
261
  this.contentService.unlockNode(action.payload);
262
262
  }
263
263
  else {
@@ -265,7 +265,7 @@ export class NodeEffects {
265
265
  .select(getAppSelection)
266
266
  .pipe(take(1))
267
267
  .subscribe((selection) => {
268
- if (selection && selection.file) {
268
+ if (selection?.file) {
269
269
  this.contentService.unlockNode(selection.file);
270
270
  }
271
271
  });
@@ -303,7 +303,7 @@ export class NodeEffects {
303
303
  })), { dispatch: false });
304
304
  }
305
305
  printFile(node) {
306
- if (node && node.entry) {
306
+ if (node?.entry) {
307
307
  // shared and favorite
308
308
  const id = node.entry.nodeId || node.entry.guid || node.entry.id;
309
309
  const mimeType = node.entry.content.mimeType;
@@ -318,4 +318,4 @@ NodeEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
318
318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: NodeEffects, decorators: [{
319
319
  type: Injectable
320
320
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }, { type: i3.Router }, { type: i4.ContentManagementService }, { type: i5.RenditionService }]; } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL25vZGUuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBRUwsZUFBZSxFQWVmLGdCQUFnQixFQUNoQixlQUFlLEVBRWYsbUJBQW1CLEVBR25CLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFHekMsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDVSxLQUFzQixFQUN0QixRQUFpQixFQUNqQixNQUFjLEVBQ2QsY0FBd0MsRUFDeEMsZUFBaUM7UUFKakMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUczQyxlQUFVLEdBQUcsWUFBWSxDQUN2QixHQUFHLEVBQUUsQ0FD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RUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUU3QyxJQUFJLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNyRDtTQUNGO0lBQ0gsQ0FBQzs7d0dBeFhVLFdBQVc7NEdBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEFjdGlvbnMsIG9mVHlwZSwgY3JlYXRlRWZmZWN0IH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEFwcFN0b3JlLFxuICBOb2RlQWN0aW9uVHlwZXMsXG4gIFB1cmdlRGVsZXRlZE5vZGVzQWN0aW9uLFxuICBEZWxldGVOb2Rlc0FjdGlvbixcbiAgVW5kb0RlbGV0ZU5vZGVzQWN0aW9uLFxuICBDcmVhdGVGb2xkZXJBY3Rpb24sXG4gIEVkaXRGb2xkZXJBY3Rpb24sXG4gIFJlc3RvcmVEZWxldGVkTm9kZXNBY3Rpb24sXG4gIFNoYXJlTm9kZUFjdGlvbixcbiAgTWFuYWdlVmVyc2lvbnNBY3Rpb24sXG4gIFVubG9ja1dyaXRlQWN0aW9uLFxuICBVbnNoYXJlTm9kZXNBY3Rpb24sXG4gIENvcHlOb2Rlc0FjdGlvbixcbiAgTW92ZU5vZGVzQWN0aW9uLFxuICBNYW5hZ2VQZXJtaXNzaW9uc0FjdGlvbixcbiAgUHJpbnRGaWxlQWN0aW9uLFxuICBnZXRDdXJyZW50Rm9sZGVyLFxuICBnZXRBcHBTZWxlY3Rpb24sXG4gIE1hbmFnZUFzcGVjdHNBY3Rpb24sXG4gIE5hdmlnYXRlUm91dGVBY3Rpb24sXG4gIEV4cGFuZEluZm9EcmF3ZXJBY3Rpb24sXG4gIE1hbmFnZVJ1bGVzQWN0aW9uLFxuICBTaG93TG9hZGVyQWN0aW9uLFxuICBUb2dnbGVJbmZvRHJhd2VyQWN0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IENvbnRlbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlbmRpdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVFZmZlY3RzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8QXBwU3RvcmU+LFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kaXRpb25WaWV3ZXI6IFJlbmRpdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHNoYXJlTm9kZSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFNoYXJlTm9kZUFjdGlvbj4oTm9kZUFjdGlvblR5cGVzLlNoYXJlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnBheWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2Uuc2hhcmVOb2RlKGFjdGlvbi5wYXlsb2FkLCBhY3Rpb24uY29uZmlndXJhdGlvbj8uZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5maWxlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnNoYXJlTm9kZShzZWxlY3Rpb24uZmlsZSwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVuc2hhcmVOb2RlcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFVuc2hhcmVOb2Rlc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLlVuc2hhcmUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24gJiYgYWN0aW9uLnBheWxvYWQgJiYgYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS51bnNoYXJlTm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmICFzZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS51bnNoYXJlTm9kZXMoc2VsZWN0aW9uLm5vZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHB1cmdlRGVsZXRlZE5vZGVzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8UHVyZ2VEZWxldGVkTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5QdXJnZURlbGV0ZWQpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24gJiYgYWN0aW9uLnBheWxvYWQgJiYgYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5wdXJnZURlbGV0ZWROb2RlcyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLmNvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5wdXJnZURlbGV0ZWROb2RlcyhzZWxlY3Rpb24ubm9kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcmVzdG9yZURlbGV0ZWROb2RlcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFJlc3RvcmVEZWxldGVkTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5SZXN0b3JlRGVsZXRlZCksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGF5bG9hZCAmJiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnJlc3RvcmVEZWxldGVkTm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5jb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UucmVzdG9yZURlbGV0ZWROb2RlcyhzZWxlY3Rpb24ubm9kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgZGVsZXRlTm9kZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxEZWxldGVOb2Rlc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLkRlbGV0ZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2hvd0xvYWRlckFjdGlvbih0cnVlKSk7XG4gICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGF5bG9hZCAmJiBhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmRlbGV0ZU5vZGVzKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uY291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmRlbGV0ZU5vZGVzKHNlbGVjdGlvbi5ub2Rlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICB1bmRvRGVsZXRlTm9kZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVbmRvRGVsZXRlTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5VbmRvRGVsZXRlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnBheWxvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS51bmRvRGVsZXRlTm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGNyZWF0ZUZvbGRlciQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPENyZWF0ZUZvbGRlckFjdGlvbj4oTm9kZUFjdGlvblR5cGVzLkNyZWF0ZUZvbGRlciksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmNyZWF0ZUZvbGRlcihhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRDdXJyZW50Rm9sZGVyKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS5pZCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5jcmVhdGVGb2xkZXIobm9kZS5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBlZGl0Rm9sZGVyJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8RWRpdEZvbGRlckFjdGlvbj4oTm9kZUFjdGlvblR5cGVzLkVkaXRGb2xkZXIpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5lZGl0Rm9sZGVyKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uZm9sZGVyKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmVkaXRGb2xkZXIoc2VsZWN0aW9uLmZvbGRlciwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGNvcHlOb2RlcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPENvcHlOb2Rlc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLkNvcHkpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24ucGF5bG9hZD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5jb3B5Tm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmICFzZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5jb3B5Tm9kZXMoc2VsZWN0aW9uLm5vZGVzLCBhY3Rpb24uY29uZmlndXJhdGlvbj8uZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgbW92ZU5vZGVzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8TW92ZU5vZGVzQWN0aW9uPihOb2RlQWN0aW9uVHlwZXMuTW92ZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLm1vdmVOb2RlcyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLm1vdmVOb2RlcyhzZWxlY3Rpb24ubm9kZXMsIGFjdGlvbi5jb25maWd1cmF0aW9uPy5mb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBtYW5hZ2VQZXJtaXNzaW9ucyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPE1hbmFnZVBlcm1pc3Npb25zQWN0aW9uPihOb2RlQWN0aW9uVHlwZXMuTWFuYWdlUGVybWlzc2lvbnMpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gJ3BlcnNvbmFsLWZpbGVzL2RldGFpbHMnO1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVSb3V0ZUFjdGlvbihbcm91dGUsIGFjdGlvbi5wYXlsb2FkLmVudHJ5LmlkLCAncGVybWlzc2lvbnMnXSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmICFzZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGUgPSAncGVyc29uYWwtZmlsZXMvZGV0YWlscyc7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZVJvdXRlQWN0aW9uKFtyb3V0ZSwgc2VsZWN0aW9uLmZpcnN0LmVudHJ5LmlkLCAncGVybWlzc2lvbnMnXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgZXhwYW5kSW5mb0RyYXdlciQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPEV4cGFuZEluZm9EcmF3ZXJBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5FeHBhbmRJbmZvRHJhd2VyKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uPy5wYXlsb2FkKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9ICdwZXJzb25hbC1maWxlcy9kZXRhaWxzJztcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZSwgYWN0aW9uLnBheWxvYWQuZW50cnkuaWRdLCB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb246IHRoaXMucm91dGVyLnVybFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gJ3BlcnNvbmFsLWZpbGVzL2RldGFpbHMnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlLCBzZWxlY3Rpb24uZmlyc3QuZW50cnkuaWRdLCB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246IHRoaXMucm91dGVyLnVybFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBUb2dnbGVJbmZvRHJhd2VyQWN0aW9uKCkpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgbWFuYWdlVmVyc2lvbnMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxNYW5hZ2VWZXJzaW9uc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLk1hbmFnZVZlcnNpb25zKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uPy5wYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLm1hbmFnZVZlcnNpb25zKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uZmlsZSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5tYW5hZ2VWZXJzaW9ucyhzZWxlY3Rpb24uZmlsZSwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHByaW50RmlsZSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFByaW50RmlsZUFjdGlvbj4oTm9kZUFjdGlvblR5cGVzLlByaW50RmlsZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5wcmludEZpbGUoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5maWxlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnByaW50RmlsZShzZWxlY3Rpb24uZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICB1bmxvY2tXcml0ZSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFVubG9ja1dyaXRlQWN0aW9uPihOb2RlQWN0aW9uVHlwZXMuVW5sb2NrRm9yV3JpdGluZyksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS51bmxvY2tOb2RlKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uZmlsZSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS51bmxvY2tOb2RlKHNlbGVjdGlvbi5maWxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGFzcGVjdExpc3QkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxNYW5hZ2VBc3BlY3RzQWN0aW9uPihOb2RlQWN0aW9uVHlwZXMuQ2hhbmdlQXNwZWN0cyksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5tYW5hZ2VBc3BlY3RzKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UubWFuYWdlQXNwZWN0cyhzZWxlY3Rpb24ubm9kZXNbMF0sIGFjdGlvbi5jb25maWd1cmF0aW9uPy5mb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBwcmludEZpbGUobm9kZTogYW55KSB7XG4gICAgaWYgKG5vZGUgJiYgbm9kZS5lbnRyeSkge1xuICAgICAgLy8gc2hhcmVkIGFuZCBmYXZvcml0ZVxuICAgICAgY29uc3QgaWQgPSBub2RlLmVudHJ5Lm5vZGVJZCB8fCBub2RlLmVudHJ5Lmd1aWQgfHwgbm9kZS5lbnRyeS5pZDtcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gbm9kZS5lbnRyeS5jb250ZW50Lm1pbWVUeXBlO1xuXG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgdGhpcy5yZW5kaXRpb25WaWV3ZXIucHJpbnRGaWxlR2VuZXJpYyhpZCwgbWltZVR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1hbmFnZVJ1bGVzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8TWFuYWdlUnVsZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5NYW5hZ2VSdWxlcyksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVSb3V0ZUFjdGlvbihbJ25vZGVzJywgYWN0aW9uLnBheWxvYWQuZW50cnkuaWQsICdydWxlcyddKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZVJvdXRlQWN0aW9uKFsnbm9kZXMnLCBzZWxlY3Rpb24uZmlyc3QuZW50cnkuaWQsICdydWxlcyddKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcbn1cbiJdfQ==
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL25vZGUuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBRUwsZUFBZSxFQWVmLGdCQUFnQixFQUNoQixlQUFlLEVBRWYsbUJBQW1CLEVBR25CLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFHekMsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDVSxLQUFzQixFQUN0QixRQUFpQixFQUNqQixNQUFjLEVBQ2QsY0FBd0MsRUFDeEMsZUFBaUM7UUFKakMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUczQyxlQUFVLEdBQUcsWUFBWSxDQUN2QixHQUFHLEVBQUUsQ0FD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Z0IsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDckQ7U0FDRjtJQUNILENBQUM7O3dHQXhYVSxXQUFXOzRHQUFYLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBcHBTdG9yZSxcbiAgTm9kZUFjdGlvblR5cGVzLFxuICBQdXJnZURlbGV0ZWROb2Rlc0FjdGlvbixcbiAgRGVsZXRlTm9kZXNBY3Rpb24sXG4gIFVuZG9EZWxldGVOb2Rlc0FjdGlvbixcbiAgQ3JlYXRlRm9sZGVyQWN0aW9uLFxuICBFZGl0Rm9sZGVyQWN0aW9uLFxuICBSZXN0b3JlRGVsZXRlZE5vZGVzQWN0aW9uLFxuICBTaGFyZU5vZGVBY3Rpb24sXG4gIE1hbmFnZVZlcnNpb25zQWN0aW9uLFxuICBVbmxvY2tXcml0ZUFjdGlvbixcbiAgVW5zaGFyZU5vZGVzQWN0aW9uLFxuICBDb3B5Tm9kZXNBY3Rpb24sXG4gIE1vdmVOb2Rlc0FjdGlvbixcbiAgTWFuYWdlUGVybWlzc2lvbnNBY3Rpb24sXG4gIFByaW50RmlsZUFjdGlvbixcbiAgZ2V0Q3VycmVudEZvbGRlcixcbiAgZ2V0QXBwU2VsZWN0aW9uLFxuICBNYW5hZ2VBc3BlY3RzQWN0aW9uLFxuICBOYXZpZ2F0ZVJvdXRlQWN0aW9uLFxuICBFeHBhbmRJbmZvRHJhd2VyQWN0aW9uLFxuICBNYW5hZ2VSdWxlc0FjdGlvbixcbiAgU2hvd0xvYWRlckFjdGlvbixcbiAgVG9nZ2xlSW5mb0RyYXdlckFjdGlvblxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBDb250ZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZW50LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZW5kaXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGl0aW9uVmlld2VyOiBSZW5kaXRpb25TZXJ2aWNlXG4gICkge31cblxuICBzaGFyZU5vZGUkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxTaGFyZU5vZGVBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5TaGFyZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnNoYXJlTm9kZShhY3Rpb24ucGF5bG9hZCwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbj8uZmlsZSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5zaGFyZU5vZGUoc2VsZWN0aW9uLmZpbGUsIGFjdGlvbi5jb25maWd1cmF0aW9uPy5mb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICB1bnNoYXJlTm9kZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVbnNoYXJlTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5VbnNoYXJlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uPy5wYXlsb2FkPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnVuc2hhcmVOb2RlcyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnVuc2hhcmVOb2RlcyhzZWxlY3Rpb24ubm9kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcHVyZ2VEZWxldGVkTm9kZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxQdXJnZURlbGV0ZWROb2Rlc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLlB1cmdlRGVsZXRlZCksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5wdXJnZURlbGV0ZWROb2RlcyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLmNvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5wdXJnZURlbGV0ZWROb2RlcyhzZWxlY3Rpb24ubm9kZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcmVzdG9yZURlbGV0ZWROb2RlcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFJlc3RvcmVEZWxldGVkTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5SZXN0b3JlRGVsZXRlZCksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5yZXN0b3JlRGVsZXRlZE5vZGVzKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uY291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnJlc3RvcmVEZWxldGVkTm9kZXMoc2VsZWN0aW9uLm5vZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGRlbGV0ZU5vZGVzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8RGVsZXRlTm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5EZWxldGUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNob3dMb2FkZXJBY3Rpb24odHJ1ZSkpO1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuZGVsZXRlTm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5jb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuZGVsZXRlTm9kZXMoc2VsZWN0aW9uLm5vZGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVuZG9EZWxldGVOb2RlcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFVuZG9EZWxldGVOb2Rlc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLlVuZG9EZWxldGUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24ucGF5bG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnVuZG9EZWxldGVOb2RlcyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgY3JlYXRlRm9sZGVyJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8Q3JlYXRlRm9sZGVyQWN0aW9uPihOb2RlQWN0aW9uVHlwZXMuQ3JlYXRlRm9sZGVyKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnBheWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuY3JlYXRlRm9sZGVyKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEN1cnJlbnRGb2xkZXIpXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZT8uaWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuY3JlYXRlRm9sZGVyKG5vZGUuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgZWRpdEZvbGRlciQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPEVkaXRGb2xkZXJBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5FZGl0Rm9sZGVyKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnBheWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuZWRpdEZvbGRlcihhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24/LmZvbGRlcikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5lZGl0Rm9sZGVyKHNlbGVjdGlvbi5mb2xkZXIsIGFjdGlvbi5jb25maWd1cmF0aW9uPy5mb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBjb3B5Tm9kZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxDb3B5Tm9kZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5Db3B5KSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnBheWxvYWQ/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuY29weU5vZGVzKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuY29weU5vZGVzKHNlbGVjdGlvbi5ub2RlcywgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIG1vdmVOb2RlcyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPE1vdmVOb2Rlc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLk1vdmUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24ucGF5bG9hZD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5tb3ZlTm9kZXMoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgIC5zZWxlY3QoZ2V0QXBwU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uICYmICFzZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5tb3ZlTm9kZXMoc2VsZWN0aW9uLm5vZGVzLCBhY3Rpb24uY29uZmlndXJhdGlvbj8uZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgbWFuYWdlUGVybWlzc2lvbnMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxNYW5hZ2VQZXJtaXNzaW9uc0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLk1hbmFnZVBlcm1pc3Npb25zKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uPy5wYXlsb2FkKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9ICdwZXJzb25hbC1maWxlcy9kZXRhaWxzJztcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE5hdmlnYXRlUm91dGVBY3Rpb24oW3JvdXRlLCBhY3Rpb24ucGF5bG9hZC5lbnRyeS5pZCwgJ3Blcm1pc3Npb25zJ10pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiAhc2VsZWN0aW9uLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gJ3BlcnNvbmFsLWZpbGVzL2RldGFpbHMnO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVSb3V0ZUFjdGlvbihbcm91dGUsIHNlbGVjdGlvbi5maXJzdC5lbnRyeS5pZCwgJ3Blcm1pc3Npb25zJ10pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGV4cGFuZEluZm9EcmF3ZXIkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxFeHBhbmRJbmZvRHJhd2VyQWN0aW9uPihOb2RlQWN0aW9uVHlwZXMuRXhwYW5kSW5mb0RyYXdlciksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSAncGVyc29uYWwtZmlsZXMvZGV0YWlscyc7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGUsIGFjdGlvbi5wYXlsb2FkLmVudHJ5LmlkXSwge1xuICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9ICdwZXJzb25hbC1maWxlcy9kZXRhaWxzJztcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZSwgc2VsZWN0aW9uLmZpcnN0LmVudHJ5LmlkXSwge1xuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVG9nZ2xlSW5mb0RyYXdlckFjdGlvbigpKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIG1hbmFnZVZlcnNpb25zJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8TWFuYWdlVmVyc2lvbnNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5NYW5hZ2VWZXJzaW9ucyksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50U2VydmljZS5tYW5hZ2VWZXJzaW9ucyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24/LmZpbGUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UubWFuYWdlVmVyc2lvbnMoc2VsZWN0aW9uLmZpbGUsIGFjdGlvbi5jb25maWd1cmF0aW9uPy5mb2N1c2VkRWxlbWVudE9uQ2xvc2VTZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBwcmludEZpbGUkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxQcmludEZpbGVBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5QcmludEZpbGUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJpbnRGaWxlKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAuc2VsZWN0KGdldEFwcFNlbGVjdGlvbilcbiAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbj8uZmlsZSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5wcmludEZpbGUoc2VsZWN0aW9uLmZpbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgdW5sb2NrV3JpdGUkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVbmxvY2tXcml0ZUFjdGlvbj4oTm9kZUFjdGlvblR5cGVzLlVubG9ja0ZvcldyaXRpbmcpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UudW5sb2NrTm9kZShhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24/LmZpbGUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UudW5sb2NrTm9kZShzZWxlY3Rpb24uZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBhc3BlY3RMaXN0JCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8TWFuYWdlQXNwZWN0c0FjdGlvbj4oTm9kZUFjdGlvblR5cGVzLkNoYW5nZUFzcGVjdHMpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UubWFuYWdlQXNwZWN0cyhhY3Rpb24ucGF5bG9hZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLm1hbmFnZUFzcGVjdHMoc2VsZWN0aW9uLm5vZGVzWzBdLCBhY3Rpb24uY29uZmlndXJhdGlvbj8uZm9jdXNlZEVsZW1lbnRPbkNsb3NlU2VsZWN0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcHJpbnRGaWxlKG5vZGU6IGFueSkge1xuICAgIGlmIChub2RlPy5lbnRyeSkge1xuICAgICAgLy8gc2hhcmVkIGFuZCBmYXZvcml0ZVxuICAgICAgY29uc3QgaWQgPSBub2RlLmVudHJ5Lm5vZGVJZCB8fCBub2RlLmVudHJ5Lmd1aWQgfHwgbm9kZS5lbnRyeS5pZDtcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gbm9kZS5lbnRyeS5jb250ZW50Lm1pbWVUeXBlO1xuXG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgdGhpcy5yZW5kaXRpb25WaWV3ZXIucHJpbnRGaWxlR2VuZXJpYyhpZCwgbWltZVR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1hbmFnZVJ1bGVzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8TWFuYWdlUnVsZXNBY3Rpb24+KE5vZGVBY3Rpb25UeXBlcy5NYW5hZ2VSdWxlcyksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbj8ucGF5bG9hZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGVSb3V0ZUFjdGlvbihbJ25vZGVzJywgYWN0aW9uLnBheWxvYWQuZW50cnkuaWQsICdydWxlcyddKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChnZXRBcHBTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gJiYgIXNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZVJvdXRlQWN0aW9uKFsnbm9kZXMnLCBzZWxlY3Rpb24uZmlyc3QuZW50cnkuaWQsICdydWxlcyddKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcbn1cbiJdfQ==
@@ -106,7 +106,7 @@ export class UploadEffects {
106
106
  .select(getCurrentFolder)
107
107
  .pipe(take(1))
108
108
  .subscribe((node) => {
109
- if (node && node.id) {
109
+ if (node?.id) {
110
110
  const input = event.currentTarget;
111
111
  const files = FileUtils.toFileArray(input.files).map((file) => new FileModel(file, {
112
112
  parentId: node.id,
@@ -134,11 +134,7 @@ export class UploadEffects {
134
134
  this.uploadService.addToQueue(file);
135
135
  this.uploadService.uploadFilesInTheQueue();
136
136
  const subscription = this.uploadService.fileUploadComplete.subscribe((completed) => {
137
- if (file.data &&
138
- file.data.entry &&
139
- file.data.entry.properties &&
140
- file.data.entry.properties['cm:lockType'] === 'WRITE_LOCK' &&
141
- file.data.entry.id === completed.data.entry.id) {
137
+ if (file.data?.entry?.properties?.['cm:lockType'] === 'WRITE_LOCK' && file.data?.entry?.id === completed.data.entry.id) {
142
138
  this.store.dispatch(new UnlockWriteAction(completed.data));
143
139
  }
144
140
  subscription.unsubscribe();
@@ -166,4 +162,4 @@ UploadEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
166
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: UploadEffects, decorators: [{
167
163
  type: Injectable
168
164
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }, { type: i0.NgZone }, { type: i3.UploadService }, { type: i0.RendererFactory2 }, { type: i4.ContentManagementService }]; } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL2VmZmVjdHMvdXBsb2FkLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFJakIsZ0JBQWdCLEVBQ2pCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBRzFFLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQ1UsS0FBc0IsRUFDdEIsUUFBaUIsRUFDakIsTUFBYyxFQUNkLGFBQTRCLEVBQ3BDLGVBQWlDLEVBQ3pCLGNBQXdDO1FBTHhDLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFB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dCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBwU3RvcmUsXG4gIFNuYWNrYmFyRXJyb3JBY3Rpb24sXG4gIFVubG9ja1dyaXRlQWN0aW9uLFxuICBVcGxvYWRBY3Rpb25UeXBlcyxcbiAgVXBsb2FkRmlsZXNBY3Rpb24sXG4gIFVwbG9hZEZpbGVWZXJzaW9uQWN0aW9uLFxuICBVcGxvYWRGb2xkZXJBY3Rpb24sXG4gIGdldEN1cnJlbnRGb2xkZXJcbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UsIEZpbGVNb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVcGxvYWRFZmZlY3RzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9sZGVySW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZVZlcnNpb25JbnB1dDogSFRNTElucHV0RWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSB1cGxvYWRNZW51QnV0dG9uU2VsZWN0b3IgPSAnYXBwLXRvb2xiYXItbWVudSBidXR0b25baWQ9XCJhcHAudG9vbGJhci51cGxvYWRcIl0nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICB0aGlzLmZpbGVJbnB1dCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLmZpbGVJbnB1dC5pZCA9ICdhcHAtdXBsb2FkLWZpbGVzJztcbiAgICB0aGlzLmZpbGVJbnB1dC50eXBlID0gJ2ZpbGUnO1xuICAgIHRoaXMuZmlsZUlucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5maWxlSW5wdXQuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICcnKTtcbiAgICB0aGlzLmZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHRoaXMudXBsb2FkKGV2ZW50KSk7XG4gICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy5maWxlSW5wdXQpO1xuXG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0ID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuZmlsZVZlcnNpb25JbnB1dC5pZCA9ICdhcHAtdXBsb2FkLWZpbGUtdmVyc2lvbic7XG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBsb2FkVmVyc2lvbigpO1xuICAgIH0pO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZmlsZVZlcnNpb25JbnB1dCk7XG5cbiAgICB0aGlzLmZvbGRlcklucHV0ID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuZm9sZGVySW5wdXQuaWQgPSAnYXBwLXVwbG9hZC1mb2xkZXInO1xuICAgIHRoaXMuZm9sZGVySW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICB0aGlzLmZvbGRlcklucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5mb2xkZXJJbnB1dC5zZXRBdHRyaWJ1dGUoJ2RpcmVjdG9yeScsICcnKTtcbiAgICB0aGlzLmZvbGRlcklucHV0LnNldEF0dHJpYnV0ZSgnd2Via2l0ZGlyZWN0b3J5JywgJycpO1xuICAgIHRoaXMuZm9sZGVySW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50KSA9PiB0aGlzLnVwbG9hZChldmVudCkpO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZm9sZGVySW5wdXQpO1xuICB9XG5cbiAgdXBsb2FkRmlsZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVcGxvYWRGaWxlc0FjdGlvbj4oVXBsb2FkQWN0aW9uVHlwZXMuVXBsb2FkRmlsZXMpLFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJGb2N1c2luZ0VsZW1lbnRBZnRlck1vZGFsQ2xvc2UodGhpcy5maWxlSW5wdXQsIHRoaXMudXBsb2FkTWVudUJ1dHRvblNlbGVjdG9yKTtcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgdXBsb2FkRm9sZGVyJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8VXBsb2FkRm9sZGVyQWN0aW9uPihVcGxvYWRBY3Rpb25UeXBlcy5VcGxvYWRGb2xkZXIpLFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJGb2N1c2luZ0VsZW1lbnRBZnRlck1vZGFsQ2xvc2UodGhpcy5mb2xkZXJJbnB1dCwgdGhpcy51cGxvYWRNZW51QnV0dG9uU2VsZWN0b3IpO1xuICAgICAgICAgIHRoaXMuZm9sZGVySW5wdXQuY2xpY2soKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVwbG9hZFZlcnNpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVcGxvYWRGaWxlVmVyc2lvbkFjdGlvbj4oVXBsb2FkQWN0aW9uVHlwZXMuVXBsb2FkRmlsZVZlcnNpb24pLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBhY3Rpb24/LnBheWxvYWQ/LmRldGFpbD8uZGF0YT8ubm9kZT8uZW50cnk7XG4gICAgICAgICAgICBjb25zdCBmaWxlOiBhbnkgPSBhY3Rpb24/LnBheWxvYWQ/LmRldGFpbD8uZmlsZXNbMF0/LmZpbGU7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnZlcnNpb25VcGRhdGVEaWFsb2cobm9kZSwgZmlsZSk7XG4gICAgICAgICAgfSBlbHNlIGlmICghYWN0aW9uPy5wYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRm9jdXNpbmdFbGVtZW50QWZ0ZXJNb2RhbENsb3NlKHRoaXMuZmlsZVZlcnNpb25JbnB1dCwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVZlcnNpb25JbnB1dC5jbGljaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVwbG9hZFZlcnNpb24oKSB7XG4gICAgdGhpcy5jb250ZW50U2VydmljZVxuICAgICAgLmdldE5vZGVJbmZvKClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTbmFja2JhckVycm9yQWN0aW9uKCdWRVJTSU9OLkVSUk9SLkdFTkVSSUMnKSk7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobm9kZTogTm9kZSkgPT4ge1xuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UudmVyc2lvblVwZGF0ZURpYWxvZyhub2RlLCB0aGlzLmZpbGVWZXJzaW9uSW5wdXQuZmlsZXNbMF0pO1xuICAgICAgICAgIHRoaXMuZmlsZVZlcnNpb25JbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KGdldEN1cnJlbnRGb2xkZXIpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgobm9kZSkgPT4ge1xuICAgICAgICBpZiAobm9kZSAmJiBub2RlLmlkKSB7XG4gICAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgZmlsZXMgPSBGaWxlVXRpbHMudG9GaWxlQXJyYXkoaW5wdXQuZmlsZXMpLm1hcChcbiAgICAgICAgICAgIChmaWxlOiBhbnkpID0+XG4gICAgICAgICAgICAgIG5ldyBGaWxlTW9kZWwoZmlsZSwge1xuICAgICAgICAgICAgICAgIHBhcmVudElkOiBub2RlLmlkLFxuICAgICAgICAgICAgICAgIHBhdGg6IChmaWxlLndlYmtpdFJlbGF0aXZlUGF0aCB8fCAnJykucmVwbGFjZSgvXFwvW15cXC9dKiQvLCAnJyksXG4gICAgICAgICAgICAgICAgbm9kZVR5cGU6ICdjbTpjb250ZW50J1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwbG9hZFF1ZXVlKGZpbGVzKTtcbiAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwbG9hZFF1ZXVlKGZpbGVzOiBGaWxlTW9kZWxbXSkge1xuICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuYWRkVG9RdWV1ZSguLi5maWxlcyk7XG4gICAgICAgIHRoaXMudXBsb2FkU2VydmljZS51cGxvYWRGaWxlc0luVGhlUXVldWUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZEFuZFVubG9jayhmaWxlOiBGaWxlTW9kZWwgfCBudWxsKSB7XG4gICAgaWYgKCFmaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5hZGRUb1F1ZXVlKGZpbGUpO1xuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEZpbGVzSW5UaGVRdWV1ZSgpO1xuXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnVwbG9hZFNlcnZpY2UuZmlsZVVwbG9hZENvbXBsZXRlLnN1YnNjcmliZSgoY29tcGxldGVkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBmaWxlLmRhdGEgJiZcbiAgICAgICAgICBmaWxlLmRhdGEuZW50cnkgJiZcbiAgICAgICAgICBmaWxlLmRhdGEuZW50cnkucHJvcGVydGllcyAmJlxuICAgICAgICAgIGZpbGUuZGF0YS5lbnRyeS5wcm9wZXJ0aWVzWydjbTpsb2NrVHlwZSddID09PSAnV1JJVEVfTE9DSycgJiZcbiAgICAgICAgICBmaWxlLmRhdGEuZW50cnkuaWQgPT09IGNvbXBsZXRlZC5kYXRhLmVudHJ5LmlkXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVubG9ja1dyaXRlQWN0aW9uKGNvbXBsZXRlZC5kYXRhKSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckZvY3VzaW5nRWxlbWVudEFmdGVyTW9kYWxDbG9zZShpbnB1dDogSFRNTElucHV0RWxlbWVudCwgZm9jdXNlZEVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjbGljaycsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdmb2N1cycsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50Pihmb2N1c2VkRWxlbWVudFNlbGVjdG9yKTtcbiAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gZWxlbWVudFRvRm9jdXMuY2xhc3NMaXN0LmFkZCgnY2RrLXByb2dyYW0tZm9jdXNlZCcpLCB7XG4gICAgICAgICAgICAgIG9uY2U6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9uY2U6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvbmNlOiB0cnVlXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL2VmZmVjdHMvdXBsb2FkLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFJakIsZ0JBQWdCLEVBQ2pCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7O0FBRzFFLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQ1UsS0FBc0IsRUFDdEIsUUFBaUIsRUFDakIsTUFBYyxFQUNkLGFBQTRCLEVBQ3BDLGVBQWlDLEVBQ3pCLGNBQXdDO1FBTHhDLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGtCQUFhLEdBQWIsYUFB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SUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO29CQUN0SCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUM1RDtnQkFFRCxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxzQ0FBc0MsQ0FBQyxLQUF1QixFQUFFLHNCQUE4QjtRQUNwRyxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLE9BQU8sRUFDUCxHQUFHLEVBQUU7WUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLE9BQU8sRUFDUCxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBYyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUNuRixjQUFjLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7b0JBQ2xHLElBQUksRUFBRSxJQUFJO2lCQUNYLENBQUMsQ0FBQztnQkFDSCxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQyxFQUNEO2dCQUNFLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FDRixDQUFDO1FBQ0osQ0FBQyxFQUNEO1lBQ0UsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUNGLENBQUM7SUFDSixDQUFDOzswR0E5S1UsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBwU3RvcmUsXG4gIFNuYWNrYmFyRXJyb3JBY3Rpb24sXG4gIFVubG9ja1dyaXRlQWN0aW9uLFxuICBVcGxvYWRBY3Rpb25UeXBlcyxcbiAgVXBsb2FkRmlsZXNBY3Rpb24sXG4gIFVwbG9hZEZpbGVWZXJzaW9uQWN0aW9uLFxuICBVcGxvYWRGb2xkZXJBY3Rpb24sXG4gIGdldEN1cnJlbnRGb2xkZXJcbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UsIEZpbGVNb2RlbCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVcGxvYWRFZmZlY3RzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9sZGVySW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZVZlcnNpb25JbnB1dDogSFRNTElucHV0RWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSB1cGxvYWRNZW51QnV0dG9uU2VsZWN0b3IgPSAnYXBwLXRvb2xiYXItbWVudSBidXR0b25baWQ9XCJhcHAudG9vbGJhci51cGxvYWRcIl0nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICB0aGlzLmZpbGVJbnB1dCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLmZpbGVJbnB1dC5pZCA9ICdhcHAtdXBsb2FkLWZpbGVzJztcbiAgICB0aGlzLmZpbGVJbnB1dC50eXBlID0gJ2ZpbGUnO1xuICAgIHRoaXMuZmlsZUlucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5maWxlSW5wdXQuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICcnKTtcbiAgICB0aGlzLmZpbGVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZXZlbnQpID0+IHRoaXMudXBsb2FkKGV2ZW50KSk7XG4gICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy5maWxlSW5wdXQpO1xuXG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0ID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuZmlsZVZlcnNpb25JbnB1dC5pZCA9ICdhcHAtdXBsb2FkLWZpbGUtdmVyc2lvbic7XG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5maWxlVmVyc2lvbklucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBsb2FkVmVyc2lvbigpO1xuICAgIH0pO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZmlsZVZlcnNpb25JbnB1dCk7XG5cbiAgICB0aGlzLmZvbGRlcklucHV0ID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuZm9sZGVySW5wdXQuaWQgPSAnYXBwLXVwbG9hZC1mb2xkZXInO1xuICAgIHRoaXMuZm9sZGVySW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICB0aGlzLmZvbGRlcklucHV0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy5mb2xkZXJJbnB1dC5zZXRBdHRyaWJ1dGUoJ2RpcmVjdG9yeScsICcnKTtcbiAgICB0aGlzLmZvbGRlcklucHV0LnNldEF0dHJpYnV0ZSgnd2Via2l0ZGlyZWN0b3J5JywgJycpO1xuICAgIHRoaXMuZm9sZGVySW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGV2ZW50KSA9PiB0aGlzLnVwbG9hZChldmVudCkpO1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZm9sZGVySW5wdXQpO1xuICB9XG5cbiAgdXBsb2FkRmlsZXMkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVcGxvYWRGaWxlc0FjdGlvbj4oVXBsb2FkQWN0aW9uVHlwZXMuVXBsb2FkRmlsZXMpLFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJGb2N1c2luZ0VsZW1lbnRBZnRlck1vZGFsQ2xvc2UodGhpcy5maWxlSW5wdXQsIHRoaXMudXBsb2FkTWVudUJ1dHRvblNlbGVjdG9yKTtcbiAgICAgICAgICB0aGlzLmZpbGVJbnB1dC5jbGljaygpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgdXBsb2FkRm9sZGVyJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8VXBsb2FkRm9sZGVyQWN0aW9uPihVcGxvYWRBY3Rpb25UeXBlcy5VcGxvYWRGb2xkZXIpLFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXJGb2N1c2luZ0VsZW1lbnRBZnRlck1vZGFsQ2xvc2UodGhpcy5mb2xkZXJJbnB1dCwgdGhpcy51cGxvYWRNZW51QnV0dG9uU2VsZWN0b3IpO1xuICAgICAgICAgIHRoaXMuZm9sZGVySW5wdXQuY2xpY2soKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVwbG9hZFZlcnNpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxVcGxvYWRGaWxlVmVyc2lvbkFjdGlvbj4oVXBsb2FkQWN0aW9uVHlwZXMuVXBsb2FkRmlsZVZlcnNpb24pLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24/LnBheWxvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBhY3Rpb24/LnBheWxvYWQ/LmRldGFpbD8uZGF0YT8ubm9kZT8uZW50cnk7XG4gICAgICAgICAgICBjb25zdCBmaWxlOiBhbnkgPSBhY3Rpb24/LnBheWxvYWQ/LmRldGFpbD8uZmlsZXNbMF0/LmZpbGU7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLnZlcnNpb25VcGRhdGVEaWFsb2cobm9kZSwgZmlsZSk7XG4gICAgICAgICAgfSBlbHNlIGlmICghYWN0aW9uPy5wYXlsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRm9jdXNpbmdFbGVtZW50QWZ0ZXJNb2RhbENsb3NlKHRoaXMuZmlsZVZlcnNpb25JbnB1dCwgYWN0aW9uLmNvbmZpZ3VyYXRpb24/LmZvY3VzZWRFbGVtZW50T25DbG9zZVNlbGVjdG9yKTtcbiAgICAgICAgICAgIHRoaXMuZmlsZVZlcnNpb25JbnB1dC5jbGljaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHVwbG9hZFZlcnNpb24oKSB7XG4gICAgdGhpcy5jb250ZW50U2VydmljZVxuICAgICAgLmdldE5vZGVJbmZvKClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTbmFja2JhckVycm9yQWN0aW9uKCdWRVJTSU9OLkVSUk9SLkdFTkVSSUMnKSk7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobm9kZTogTm9kZSkgPT4ge1xuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UudmVyc2lvblVwZGF0ZURpYWxvZyhub2RlLCB0aGlzLmZpbGVWZXJzaW9uSW5wdXQuZmlsZXNbMF0pO1xuICAgICAgICAgIHRoaXMuZmlsZVZlcnNpb25JbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KGdldEN1cnJlbnRGb2xkZXIpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgobm9kZSkgPT4ge1xuICAgICAgICBpZiAobm9kZT8uaWQpIHtcbiAgICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICBjb25zdCBmaWxlcyA9IEZpbGVVdGlscy50b0ZpbGVBcnJheShpbnB1dC5maWxlcykubWFwKFxuICAgICAgICAgICAgKGZpbGU6IGFueSkgPT5cbiAgICAgICAgICAgICAgbmV3IEZpbGVNb2RlbChmaWxlLCB7XG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICAgICAgcGF0aDogKGZpbGUud2Via2l0UmVsYXRpdmVQYXRoIHx8ICcnKS5yZXBsYWNlKC9cXC9bXlxcL10qJC8sICcnKSxcbiAgICAgICAgICAgICAgICBub2RlVHlwZTogJ2NtOmNvbnRlbnQnXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXBsb2FkUXVldWUoZmlsZXMpO1xuICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBsb2FkUXVldWUoZmlsZXM6IEZpbGVNb2RlbFtdKSB7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5hZGRUb1F1ZXVlKC4uLmZpbGVzKTtcbiAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZEZpbGVzSW5UaGVRdWV1ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkQW5kVW5sb2NrKGZpbGU6IEZpbGVNb2RlbCB8IG51bGwpIHtcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmFkZFRvUXVldWUoZmlsZSk7XG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UudXBsb2FkRmlsZXNJblRoZVF1ZXVlKCk7XG5cbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkQ29tcGxldGUuc3Vic2NyaWJlKChjb21wbGV0ZWQpID0+IHtcbiAgICAgICAgaWYgKGZpbGUuZGF0YT8uZW50cnk/LnByb3BlcnRpZXM/LlsnY206bG9ja1R5cGUnXSA9PT0gJ1dSSVRFX0xPQ0snICYmIGZpbGUuZGF0YT8uZW50cnk/LmlkID09PSBjb21wbGV0ZWQuZGF0YS5lbnRyeS5pZCkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVubG9ja1dyaXRlQWN0aW9uKGNvbXBsZXRlZC5kYXRhKSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckZvY3VzaW5nRWxlbWVudEFmdGVyTW9kYWxDbG9zZShpbnB1dDogSFRNTElucHV0RWxlbWVudCwgZm9jdXNlZEVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjbGljaycsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICdmb2N1cycsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvRm9jdXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50Pihmb2N1c2VkRWxlbWVudFNlbGVjdG9yKTtcbiAgICAgICAgICAgIGVsZW1lbnRUb0ZvY3VzLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gZWxlbWVudFRvRm9jdXMuY2xhc3NMaXN0LmFkZCgnY2RrLXByb2dyYW0tZm9jdXNlZCcpLCB7XG4gICAgICAgICAgICAgIG9uY2U6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZWxlbWVudFRvRm9jdXMuZm9jdXMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9uY2U6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvbmNlOiB0cnVlXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -69,7 +69,7 @@ export class ViewerEffects {
69
69
  }
70
70
  })), { dispatch: false });
71
71
  this.viewFile$ = createEffect(() => this.actions$.pipe(ofType(ViewerActionTypes.ViewFile), map((action) => {
72
- if (action.payload && action.payload.entry) {
72
+ if (action.payload?.entry) {
73
73
  const { id, nodeId, isFile } = action.payload.entry;
74
74
  if (this.extensions.canPreviewNode(action.payload) && (isFile || nodeId)) {
75
75
  this.displayPreview(nodeId || id, action.parentId);
@@ -80,7 +80,7 @@ export class ViewerEffects {
80
80
  .select(fileToPreview)
81
81
  .pipe(take(1))
82
82
  .subscribe((result) => {
83
- if (result.selection && result.selection.file) {
83
+ if (result.selection?.file) {
84
84
  const { id, nodeId, isFile } = result.selection.file.entry;
85
85
  if (this.extensions.canPreviewNode(action.payload) && (isFile || nodeId)) {
86
86
  const parentId = result.folder ? result.folder.id : null;
@@ -172,4 +172,4 @@ ViewerEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
172
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ViewerEffects, decorators: [{
173
173
  type: Injectable
174
174
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Actions }, { type: i3.Router }, { type: i4.AppExtensionService }, { type: i5.MatDialog }]; } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL2VmZmVjdHMvdmlld2VyLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBRUwsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNoQixlQUFlLEVBSWhCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBNEIsY0FBYyxFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBRXJELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRyxTQUFTO0lBQ1QsTUFBTTtDQUNQLENBQUMsQ0FBQyxDQUFDO0FBR0osTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDVSxLQUFzQixFQUN0QixRQUFpQixFQUNqQixNQUFjLEVBQ2QsVUFBK0IsRUFDL0IsTUFBaUI7UUFKakIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIs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Q0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQy9CO2lCQUFNLElBQUksU0FBUyxDQUFDLHVCQUF1QixFQUFFO2dCQUM1QyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsQ0FBQzthQUNyQztpQkFBTSxJQUFJLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRTtnQkFDekMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDbEM7aUJBQU0sSUFBSSxTQUFTLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3hDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQ2pDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8scUJBQXFCLENBQUMsR0FBVztRQUN2QyxNQUFNLE9BQU8sR0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxNQUFNLGVBQWUsR0FBb0IsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtRQUVELE1BQU0sV0FBVyxHQUFpQixlQUFlLENBQUMsUUFBUSxDQUFDO1FBRTNELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsRUFBRSxJQUFJO1lBQzNDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzswR0E5S1UsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXBwU3RvcmUsXG4gIFZpZXdlckFjdGlvblR5cGVzLFxuICBWaWV3RmlsZUFjdGlvbixcbiAgVmlld05vZGVBY3Rpb24sXG4gIGdldEN1cnJlbnRGb2xkZXIsXG4gIGdldEFwcFNlbGVjdGlvbixcbiAgRnVsbHNjcmVlblZpZXdlckFjdGlvbixcbiAgVmlld05vZGVWZXJzaW9uQWN0aW9uLFxuICBQbHVnaW5QcmV2aWV3QWN0aW9uXG59IGZyb20gJ0BhbGZyZXNjby9hY2Etc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IFJvdXRlciwgVXJsVHJlZSwgVXJsU2VnbWVudEdyb3VwLCBQUklNQVJZX09VVExFVCwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSwgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBBcHBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuZXhwb3J0IGNvbnN0IGZpbGVUb1ByZXZpZXcgPSBjcmVhdGVTZWxlY3RvcihnZXRBcHBTZWxlY3Rpb24sIGdldEN1cnJlbnRGb2xkZXIsIChzZWxlY3Rpb24sIGZvbGRlcikgPT4gKHtcbiAgc2VsZWN0aW9uLFxuICBmb2xkZXJcbn0pKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFZpZXdlckVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxBcHBTdG9yZT4sXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZXh0ZW5zaW9uczogQXBwRXh0ZW5zaW9uU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge31cblxuICBmdWxsc2NyZWVuVmlld2VyJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8RnVsbHNjcmVlblZpZXdlckFjdGlvbj4oVmlld2VyQWN0aW9uVHlwZXMuRnVsbFNjcmVlbiksXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbnRlckZ1bGxTY3JlZW4oKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHZpZXdOb2RlJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8Vmlld05vZGVBY3Rpb24+KFZpZXdlckFjdGlvblR5cGVzLlZpZXdOb2RlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnZpZXdOb2RlRXh0cmFzKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvY2F0aW9uLCBwYXRoIH0gPSBhY3Rpb24udmlld05vZGVFeHRyYXM7XG5cbiAgICAgICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5nZXROYXZpZ2F0aW9uQ29tbWFuZHMobG9jYXRpb24pO1xuXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsuLi5uYXZpZ2F0aW9uLCB7IG91dGxldHM6IHsgdmlld2VyOiBbJ3ZpZXcnLCBhY3Rpb24ubm9kZUlkXSB9IH1dLCB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbG9jYXRpb24gfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWV3JywgeyBvdXRsZXRzOiB7IHZpZXdlcjogW2FjdGlvbi5ub2RlSWRdIH0gfV0sIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBwYXRoIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmlldycsIHsgb3V0bGV0czogeyB2aWV3ZXI6IFthY3Rpb24ubm9kZUlkXSB9IH1dKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICB2aWV3RmlsZSQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFZpZXdGaWxlQWN0aW9uPihWaWV3ZXJBY3Rpb25UeXBlcy5WaWV3RmlsZSksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkICYmIGFjdGlvbi5wYXlsb2FkLmVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCB7IGlkLCBub2RlSWQsIGlzRmlsZSB9ID0gYWN0aW9uLnBheWxvYWQuZW50cnkgYXMgYW55O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5leHRlbnNpb25zLmNhblByZXZpZXdOb2RlKGFjdGlvbi5wYXlsb2FkKSAmJiAoaXNGaWxlIHx8IG5vZGVJZCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlldyhub2RlSWQgfHwgaWQsIGFjdGlvbi5wYXJlbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChmaWxlVG9QcmV2aWV3KVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnNlbGVjdGlvbiAmJiByZXN1bHQuc2VsZWN0aW9uLmZpbGUpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgaWQsIG5vZGVJZCwgaXNGaWxlIH0gPSByZXN1bHQuc2VsZWN0aW9uLmZpbGUuZW50cnkgYXMgYW55O1xuXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5leHRlbnNpb25zLmNhblByZXZpZXdOb2RlKGFjdGlvbi5wYXlsb2FkKSAmJiAoaXNGaWxlIHx8IG5vZGVJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50SWQgPSByZXN1bHQuZm9sZGVyID8gcmVzdWx0LmZvbGRlci5pZCA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpZXcobm9kZUlkIHx8IGlkLCBwYXJlbnRJZCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICB2aWV3Tm9kZVZlcnNpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxWaWV3Tm9kZVZlcnNpb25BY3Rpb24+KFZpZXdlckFjdGlvblR5cGVzLlZpZXdOb2RlVmVyc2lvbiksXG4gICAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcbiAgICAgICAgICBpZiAoYWN0aW9uLnZpZXdOb2RlRXh0cmFzKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxvY2F0aW9uLCBwYXRoIH0gPSBhY3Rpb24udmlld05vZGVFeHRyYXM7XG4gICAgICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgY29uc3QgbmF2aWdhdGlvbiA9IHRoaXMuZ2V0TmF2aWdhdGlvbkNvbW1hbmRzKGxvY2F0aW9uKTtcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWy4uLm5hdmlnYXRpb24sIHsgb3V0bGV0czogeyB2aWV3ZXI6IFsndmlldycsIGFjdGlvbi5ub2RlSWQsIGFjdGlvbi52ZXJzaW9uSWRdIH0gfV0sIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBsb2NhdGlvbiB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpZXcnLCB7IG91dGxldHM6IHsgdmlld2VyOiBbYWN0aW9uLm5vZGVJZCwgYWN0aW9uLnZlcnNpb25JZF0gfSB9XSwge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHBhdGggfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWV3JywgeyBvdXRsZXRzOiB7IHZpZXdlcjogW2FjdGlvbi5ub2RlSWQsIGFjdGlvbi52ZXJzaW9uSWRdIH0gfV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHBsdWdpblByZXZpZXckID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxQbHVnaW5QcmV2aWV3QWN0aW9uPihWaWV3ZXJBY3Rpb25UeXBlcy5QbHVnaW5QcmV2aWV3KSxcbiAgICAgICAgdGFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXG4gICAgICAgICAgICBhY3Rpb24ucGx1Z2luUm91dGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG91dGxldHM6IHtcbiAgICAgICAgICAgICAgICB2aWV3ZXI6IFsncHJldmlldycsIGFjdGlvbi5ub2RlSWRdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdKTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHByaXZhdGUgZGlzcGxheVByZXZpZXcobm9kZUlkOiBzdHJpbmcsIHBhcmVudElkOiBzdHJpbmcpIHtcbiAgICBpZiAoIW5vZGVJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwcmV2aWV3TG9jYXRpb24gPSB0aGlzLnJvdXRlci51cmw7XG4gICAgaWYgKHByZXZpZXdMb2NhdGlvbi5sYXN0SW5kZXhPZignLycpID4gMCkge1xuICAgICAgcHJldmlld0xvY2F0aW9uID0gcHJldmlld0xvY2F0aW9uLnN1YnN0cmluZygwLCB0aGlzLnJvdXRlci51cmwuaW5kZXhPZignLycsIDEpKTtcbiAgICB9XG4gICAgcHJldmlld0xvY2F0aW9uID0gcHJldmlld0xvY2F0aW9uLnJlcGxhY2UoL1xcLy9nLCAnJyk7XG5cbiAgICBjb25zdCBwYXRoID0gW3ByZXZpZXdMb2NhdGlvbl07XG4gICAgaWYgKHBhcmVudElkKSB7XG4gICAgICBwYXRoLnB1c2gocGFyZW50SWQpO1xuICAgIH1cbiAgICBwYXRoLnB1c2goJ3ByZXZpZXcnLCBub2RlSWQpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocGF0aC5qb2luKCcvJykpO1xuICB9XG5cbiAgZW50ZXJGdWxsU2NyZWVuKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcjogYW55ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGYtdmlld2VyX19mdWxsc2NyZWVuLWNvbnRhaW5lcicpO1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGlmIChjb250YWluZXIucmVxdWVzdEZ1bGxzY3JlZW4pIHtcbiAgICAgICAgY29udGFpbmVyLnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRhaW5lci53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBjb250YWluZXIud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoY29udGFpbmVyLm1velJlcXVlc3RGdWxsU2NyZWVuKSB7XG4gICAgICAgIGNvbnRhaW5lci5tb3pSZXF1ZXN0RnVsbFNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmIChjb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBjb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmF2aWdhdGlvbkNvbW1hbmRzKHVybDogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IHVybFRyZWU6IFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh1cmwpO1xuICAgIGNvbnN0IHVybFNlZ21lbnRHcm91cDogVXJsU2VnbWVudEdyb3VwID0gdXJsVHJlZS5yb290LmNoaWxkcmVuW1BSSU1BUllfT1VUTEVUXTtcblxuICAgIGlmICghdXJsU2VnbWVudEdyb3VwKSB7XG4gICAgICByZXR1cm4gW3VybF07XG4gICAgfVxuXG4gICAgY29uc3QgdXJsU2VnbWVudHM6IFVybFNlZ21lbnRbXSA9IHVybFNlZ21lbnRHcm91cC5zZWdtZW50cztcblxuICAgIHJldHVybiB1cmxTZWdtZW50cy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgaXRlbSkge1xuICAgICAgYWNjLnB1c2goaXRlbS5wYXRoLCBpdGVtLnBhcmFtZXRlcnMpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG4gIH1cbn1cbiJdfQ==
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL2VmZmVjdHMvdmlld2VyLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBRUwsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNoQixlQUFlLEVBSWhCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBNEIsY0FBYyxFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBRXJELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRyxTQUFTO0lBQ1QsTUFBTTtDQUNQLENBQUMsQ0FBQyxDQUFDO0FBR0osTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDVSxLQUFzQixFQUN0QixRQUFpQixFQUNqQixNQUFjLEVBQ2QsVUFBK0IsRUFDL0IsTUFBaUI7UUFKakIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIs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QUFTLENBQUMsdUJBQXVCLEVBQUU7Z0JBQzVDLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2FBQ3JDO2lCQUFNLElBQUksU0FBUyxDQUFDLG9CQUFvQixFQUFFO2dCQUN6QyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUNsQztpQkFBTSxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRTtnQkFDeEMsU0FBUyxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDakM7U0FDRjtJQUNILENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxHQUFXO1FBQ3ZDLE1BQU0sT0FBTyxHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sZUFBZSxHQUFvQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkO1FBRUQsTUFBTSxXQUFXLEdBQWlCLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFFM0QsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxFQUFFLElBQUk7WUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7OzBHQTlLVSxhQUFhOzhHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBcHBTdG9yZSxcbiAgVmlld2VyQWN0aW9uVHlwZXMsXG4gIFZpZXdGaWxlQWN0aW9uLFxuICBWaWV3Tm9kZUFjdGlvbixcbiAgZ2V0Q3VycmVudEZvbGRlcixcbiAgZ2V0QXBwU2VsZWN0aW9uLFxuICBGdWxsc2NyZWVuVmlld2VyQWN0aW9uLFxuICBWaWV3Tm9kZVZlcnNpb25BY3Rpb24sXG4gIFBsdWdpblByZXZpZXdBY3Rpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBVcmxUcmVlLCBVcmxTZWdtZW50R3JvdXAsIFBSSU1BUllfT1VUTEVULCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEFwcEV4dGVuc2lvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZCc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5leHBvcnQgY29uc3QgZmlsZVRvUHJldmlldyA9IGNyZWF0ZVNlbGVjdG9yKGdldEFwcFNlbGVjdGlvbiwgZ2V0Q3VycmVudEZvbGRlciwgKHNlbGVjdGlvbiwgZm9sZGVyKSA9PiAoe1xuICBzZWxlY3Rpb24sXG4gIGZvbGRlclxufSkpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVmlld2VyRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEFwcFN0b3JlPixcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBleHRlbnNpb25zOiBBcHBFeHRlbnNpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dcbiAgKSB7fVxuXG4gIGZ1bGxzY3JlZW5WaWV3ZXIkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxGdWxsc2NyZWVuVmlld2VyQWN0aW9uPihWaWV3ZXJBY3Rpb25UeXBlcy5GdWxsU2NyZWVuKSxcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmVudGVyRnVsbFNjcmVlbigpO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgdmlld05vZGUkID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZTxWaWV3Tm9kZUFjdGlvbj4oVmlld2VyQWN0aW9uVHlwZXMuVmlld05vZGUpLFxuICAgICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24udmlld05vZGVFeHRyYXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9jYXRpb24sIHBhdGggfSA9IGFjdGlvbi52aWV3Tm9kZUV4dHJhcztcblxuICAgICAgICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hdmlnYXRpb24gPSB0aGlzLmdldE5hdmlnYXRpb25Db21tYW5kcyhsb2NhdGlvbik7XG5cbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWy4uLm5hdmlnYXRpb24sIHsgb3V0bGV0czogeyB2aWV3ZXI6IFsndmlldycsIGFjdGlvbi5ub2RlSWRdIH0gfV0sIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBsb2NhdGlvbiB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGF0aCkge1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpZXcnLCB7IG91dGxldHM6IHsgdmlld2VyOiBbYWN0aW9uLm5vZGVJZF0gfSB9XSwge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHBhdGggfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWV3JywgeyBvdXRsZXRzOiB7IHZpZXdlcjogW2FjdGlvbi5ub2RlSWRdIH0gfV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHZpZXdGaWxlJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGU8Vmlld0ZpbGVBY3Rpb24+KFZpZXdlckFjdGlvblR5cGVzLlZpZXdGaWxlKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAoYWN0aW9uLnBheWxvYWQ/LmVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCB7IGlkLCBub2RlSWQsIGlzRmlsZSB9ID0gYWN0aW9uLnBheWxvYWQuZW50cnkgYXMgYW55O1xuXG4gICAgICAgICAgICBpZiAodGhpcy5leHRlbnNpb25zLmNhblByZXZpZXdOb2RlKGFjdGlvbi5wYXlsb2FkKSAmJiAoaXNGaWxlIHx8IG5vZGVJZCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlldyhub2RlSWQgfHwgaWQsIGFjdGlvbi5wYXJlbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgICAgLnNlbGVjdChmaWxlVG9QcmV2aWV3KVxuICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnNlbGVjdGlvbj8uZmlsZSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgbm9kZUlkLCBpc0ZpbGUgfSA9IHJlc3VsdC5zZWxlY3Rpb24uZmlsZS5lbnRyeSBhcyBhbnk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4dGVuc2lvbnMuY2FuUHJldmlld05vZGUoYWN0aW9uLnBheWxvYWQpICYmIChpc0ZpbGUgfHwgbm9kZUlkKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRJZCA9IHJlc3VsdC5mb2xkZXIgPyByZXN1bHQuZm9sZGVyLmlkIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlldyhub2RlSWQgfHwgaWQsIHBhcmVudElkKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIHZpZXdOb2RlVmVyc2lvbiQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFZpZXdOb2RlVmVyc2lvbkFjdGlvbj4oVmlld2VyQWN0aW9uVHlwZXMuVmlld05vZGVWZXJzaW9uKSxcbiAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xuICAgICAgICAgIGlmIChhY3Rpb24udmlld05vZGVFeHRyYXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9jYXRpb24sIHBhdGggfSA9IGFjdGlvbi52aWV3Tm9kZUV4dHJhcztcbiAgICAgICAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9uID0gdGhpcy5nZXROYXZpZ2F0aW9uQ29tbWFuZHMobG9jYXRpb24pO1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbLi4ubmF2aWdhdGlvbiwgeyBvdXRsZXRzOiB7IHZpZXdlcjogWyd2aWV3JywgYWN0aW9uLm5vZGVJZCwgYWN0aW9uLnZlcnNpb25JZF0gfSB9XSwge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGxvY2F0aW9uIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmlldycsIHsgb3V0bGV0czogeyB2aWV3ZXI6IFthY3Rpb24ubm9kZUlkLCBhY3Rpb24udmVyc2lvbklkXSB9IH1dLCB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcGF0aCB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpZXcnLCB7IG91dGxldHM6IHsgdmlld2VyOiBbYWN0aW9uLm5vZGVJZCwgYWN0aW9uLnZlcnNpb25JZF0gfSB9XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcGx1Z2luUHJldmlldyQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlPFBsdWdpblByZXZpZXdBY3Rpb24+KFZpZXdlckFjdGlvblR5cGVzLlBsdWdpblByZXZpZXcpLFxuICAgICAgICB0YXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICAgICAgIGFjdGlvbi5wbHVnaW5Sb3V0ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3V0bGV0czoge1xuICAgICAgICAgICAgICAgIHZpZXdlcjogWydwcmV2aWV3JywgYWN0aW9uLm5vZGVJZF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0pO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgcHJpdmF0ZSBkaXNwbGF5UHJldmlldyhub2RlSWQ6IHN0cmluZywgcGFyZW50SWQ6IHN0cmluZykge1xuICAgIGlmICghbm9kZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHByZXZpZXdMb2NhdGlvbiA9IHRoaXMucm91dGVyLnVybDtcbiAgICBpZiAocHJldmlld0xvY2F0aW9uLmxhc3RJbmRleE9mKCcvJykgPiAwKSB7XG4gICAgICBwcmV2aWV3TG9jYXRpb24gPSBwcmV2aWV3TG9jYXRpb24uc3Vic3RyaW5nKDAsIHRoaXMucm91dGVyLnVybC5pbmRleE9mKCcvJywgMSkpO1xuICAgIH1cbiAgICBwcmV2aWV3TG9jYXRpb24gPSBwcmV2aWV3TG9jYXRpb24ucmVwbGFjZSgvXFwvL2csICcnKTtcblxuICAgIGNvbnN0IHBhdGggPSBbcHJldmlld0xvY2F0aW9uXTtcbiAgICBpZiAocGFyZW50SWQpIHtcbiAgICAgIHBhdGgucHVzaChwYXJlbnRJZCk7XG4gICAgfVxuICAgIHBhdGgucHVzaCgncHJldmlldycsIG5vZGVJZCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChwYXRoLmpvaW4oJy8nKSk7XG4gIH1cblxuICBlbnRlckZ1bGxTY3JlZW4oKSB7XG4gICAgY29uc3QgY29udGFpbmVyOiBhbnkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFkZi12aWV3ZXJfX2Z1bGxzY3JlZW4tY29udGFpbmVyJyk7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgaWYgKGNvbnRhaW5lci5yZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBjb250YWluZXIucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoY29udGFpbmVyLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGNvbnRhaW5lci53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmIChjb250YWluZXIubW96UmVxdWVzdEZ1bGxTY3JlZW4pIHtcbiAgICAgICAgY29udGFpbmVyLm1velJlcXVlc3RGdWxsU2NyZWVuKCk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRhaW5lci5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGNvbnRhaW5lci5tc1JlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXROYXZpZ2F0aW9uQ29tbWFuZHModXJsOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgdXJsVHJlZTogVXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCk7XG4gICAgY29uc3QgdXJsU2VnbWVudEdyb3VwOiBVcmxTZWdtZW50R3JvdXAgPSB1cmxUcmVlLnJvb3QuY2hpbGRyZW5bUFJJTUFSWV9PVVRMRVRdO1xuXG4gICAgaWYgKCF1cmxTZWdtZW50R3JvdXApIHtcbiAgICAgIHJldHVybiBbdXJsXTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmxTZWdtZW50czogVXJsU2VnbWVudFtdID0gdXJsU2VnbWVudEdyb3VwLnNlZ21lbnRzO1xuXG4gICAgcmV0dXJuIHVybFNlZ21lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBpdGVtKSB7XG4gICAgICBhY2MucHVzaChpdGVtLnBhdGgsIGl0ZW0ucGFyYW1ldGVycyk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgfVxufVxuIl19
@@ -27,7 +27,7 @@ export function appReducer(state = INITIAL_APP_STATE, action) {
27
27
  let newState;
28
28
  switch (action.type) {
29
29
  case AppActionTypes.SetInitialState:
30
- newState = Object.assign({}, action.payload);
30
+ newState = { ...action.payload };
31
31
  break;
32
32
  case NodeActionTypes.SetSelection:
33
33
  newState = updateSelectedNodes(state, action);
@@ -201,4 +201,4 @@ function showLoader(state, action) {
201
201
  newState.showLoader = action.payload;
202
202
  return newState;
203
203
  }
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2FwcC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUVMLGVBQWUsRUFZZixjQUFjLEVBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQWtCLGlCQUFpQixFQUFFLE1BQWM7SUFDNUUsSUFBSSxRQUFrQixDQUFDO0lBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixLQUFLLGNBQWMsQ0FBQyxlQUFlO1lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRyxNQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hFLE1BQU07UUFDUixLQUFLLGVBQWUsQ0FBQyxZQUFZO1lBQy9CLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBZ0MsQ0FBQyxDQUFDO1lBQ3hFLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxjQUFjO1lBQ2hDLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQThCLENBQUMsQ0FBQztZQUM3RCxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsZ0JBQWdCO1lBQ2xDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBZ0MsQ0FBQyxDQUFDO1lBQ3hFLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxpQkFBaUI7WUFDbkMsUUFBUSxHQUFHLHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFxQyxDQUFDLENBQUM7WUFDbEYsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGFBQWE7WUFD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Q0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNyQyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyx5QkFBeUIsQ0FBQyxLQUFlLEVBQUUsTUFBb0M7SUFDdEYsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQzlDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFlLEVBQUUsTUFBd0I7SUFDM0QsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNyQyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEFwcFN0YXRlLFxuICBOb2RlQWN0aW9uVHlwZXMsXG4gIFNldFVzZXJQcm9maWxlQWN0aW9uLFxuICBTZXRDdXJyZW50Rm9sZGVyQWN0aW9uLFxuICBTZXRDdXJyZW50VXJsQWN0aW9uLFxuICBTZXRJbml0aWFsU3RhdGVBY3Rpb24sXG4gIFNldFNlbGVjdGVkTm9kZXNBY3Rpb24sXG4gIFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uLFxuICBTZXRJbmZvRHJhd2VyU3RhdGVBY3Rpb24sXG4gIFNldEluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdEFjdGlvbixcbiAgU2V0Q3VycmVudE5vZGVWZXJzaW9uQWN0aW9uLFxuICBTZXRGaWxlVXBsb2FkaW5nRGlhbG9nQWN0aW9uLFxuICBTZXRJbmZvRHJhd2VyUHJldmlld1N0YXRlQWN0aW9uLFxuICBBcHBBY3Rpb25UeXBlcyxcbiAgU2hvd0xvYWRlckFjdGlvblxufSBmcm9tICdAYWxmcmVzY28vYWNhLXNoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBJTklUSUFMX0FQUF9TVEFURSB9IGZyb20gJy4uL2luaXRpYWwtc3RhdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwUmVkdWNlcihzdGF0ZTogQXBwU3RhdGUgPSBJTklUSUFMX0FQUF9TVEFURSwgYWN0aW9uOiBBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGxldCBuZXdTdGF0ZTogQXBwU3RhdGU7XG5cbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0SW5pdGlhbFN0YXRlOlxuICAgICAgbmV3U3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCAoYWN0aW9uIGFzIFNldEluaXRpYWxTdGF0ZUFjdGlvbikucGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE5vZGVBY3Rpb25UeXBlcy5TZXRTZWxlY3Rpb246XG4gICAgICBuZXdTdGF0ZSA9IHVwZGF0ZVNlbGVjdGVkTm9kZXMoc3RhdGUsIGFjdGlvbiBhcyBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0VXNlclByb2ZpbGU6XG4gICAgICBuZXdTdGF0ZSA9IHVwZGF0ZVVzZXIoc3RhdGUsIGFjdGlvbiBhcyBTZXRVc2VyUHJvZmlsZUFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEN1cnJlbnRGb2xkZXI6XG4gICAgICBuZXdTdGF0ZSA9IHVwZGF0ZUN1cnJlbnRGb2xkZXIoc3RhdGUsIGFjdGlvbiBhcyBTZXRDdXJyZW50Rm9sZGVyQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0Q3VycmVudFZlcnNpb246XG4gICAgICBuZXdTdGF0ZSA9IHVwZGF0ZUN1cnJlbnROb2RlVmVyc2lvbihzdGF0ZSwgYWN0aW9uIGFzIFNldEN1cnJlbnROb2RlVmVyc2lvbkFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEN1cnJlbnRVcmw6XG4gICAgICBuZXdTdGF0ZSA9IHVwZGF0ZUN1cnJlbnRVcmwoc3RhdGUsIGFjdGlvbiBhcyBTZXRDdXJyZW50VXJsQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuVG9nZ2xlSW5mb0RyYXdlcjpcbiAgICAgIG5ld1N0YXRlID0gdG9nZ2xlSW5mb0RyYXdlcihzdGF0ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluZm9EcmF3ZXJTdGF0ZTpcbiAgICAgIG5ld1N0YXRlID0gc2V0SW5mb0RyYXdlcihzdGF0ZSwgYWN0aW9uIGFzIFNldEluZm9EcmF3ZXJTdGF0ZUFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdDpcbiAgICAgIG5ld1N0YXRlID0gc2V0SW5mb0RyYXdlckFzcGVjdChzdGF0ZSwgYWN0aW9uIGFzIFNldEluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdEFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldFJlcG9zaXRvcnlJbmZvOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVSZXBvc2l0b3J5U3RhdHVzKHN0YXRlLCBhY3Rpb24gYXMgU2V0UmVwb3NpdG9yeUluZm9BY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRGaWxlVXBsb2FkaW5nRGlhbG9nOlxuICAgICAgbmV3U3RhdGUgPSBzZXRVcGxvYWREaWFsb2dWaXNpYmlsaXR5KHN0YXRlLCBhY3Rpb24gYXMgU2V0RmlsZVVwbG9hZGluZ0RpYWxvZ0FjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNob3dJbmZvRHJhd2VyUHJldmlldzpcbiAgICAgIG5ld1N0YXRlID0gc2hvd0luZm9EcmF3ZXJQcmV2aWV3KHN0YXRlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZTpcbiAgICAgIG5ld1N0YXRlID0gc2V0SW5mb0RyYXdlclByZXZpZXcoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyUHJldmlld1N0YXRlQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2hvd0xvYWRlckFjdGlvbjpcbiAgICAgIG5ld1N0YXRlID0gc2hvd0xvYWRlcihzdGF0ZSwgYWN0aW9uIGFzIFNob3dMb2FkZXJBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVVc2VyKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRVc2VyUHJvZmlsZUFjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIGNvbnN0IHVzZXIgPSBhY3Rpb24ucGF5bG9hZC5wZXJzb247XG4gIGNvbnN0IGdyb3VwcyA9IFsuLi4oYWN0aW9uLnBheWxvYWQuZ3JvdXBzIHx8IFtdKV07XG5cbiAgY29uc3QgaWQgPSB1c2VyLmlkO1xuICBjb25zdCBmaXJzdE5hbWUgPSB1c2VyLmZpcnN0TmFtZSB8fCAnJztcbiAgY29uc3QgbGFzdE5hbWUgPSB1c2VyLmxhc3ROYW1lIHx8ICcnO1xuICBjb25zdCB1c2VyTmFtZSA9IGAke2ZpcnN0TmFtZX0gJHtsYXN0TmFtZX1gO1xuICBjb25zdCBpbml0aWFscyA9IFtmaXJzdE5hbWVbMF0sIGxhc3ROYW1lWzBdXS5qb2luKCcnKTtcblxuICBjb25zdCBjYXBhYmlsaXRpZXMgPSB1c2VyLmNhcGFiaWxpdGllcztcbiAgY29uc3QgaXNBZG1pbiA9IGNhcGFiaWxpdGllcyA/IGNhcGFiaWxpdGllcy5pc0FkbWluIDogdHJ1ZTtcblxuICBuZXdTdGF0ZS51c2VyID0ge1xuICAgIGZpcnN0TmFtZSxcbiAgICBsYXN0TmFtZSxcbiAgICB1c2VyTmFtZSxcbiAgICBpbml0aWFscyxcbiAgICBpc0FkbWluLFxuICAgIGlkLFxuICAgIGdyb3Vwc1xuICB9O1xuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVudEZvbGRlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0Q3VycmVudEZvbGRlckFjdGlvbikge1xuICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgbmV3U3RhdGUubmF2aWdhdGlvbi5jdXJyZW50Rm9sZGVyID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVudE5vZGVWZXJzaW9uKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRDdXJyZW50Tm9kZVZlcnNpb25BY3Rpb24pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLmN1cnJlbnROb2RlVmVyc2lvbiA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbnRVcmwoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEN1cnJlbnRVcmxBY3Rpb24pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLm5hdmlnYXRpb24udXJsID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdG9nZ2xlSW5mb0RyYXdlcihzdGF0ZTogQXBwU3RhdGUpIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG5cbiAgbGV0IHZhbHVlID0gc3RhdGUuaW5mb0RyYXdlck9wZW5lZDtcbiAgaWYgKHN0YXRlLnNlbGVjdGlvbi5pc0VtcHR5KSB7XG4gICAgdmFsdWUgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9ICF2YWx1ZTtcbiAgfVxuXG4gIG5ld1N0YXRlLmluZm9EcmF3ZXJPcGVuZWQgPSB2YWx1ZTtcblxuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHNob3dJbmZvRHJhd2VyUHJldmlldyhzdGF0ZTogQXBwU3RhdGUpIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG5cbiAgbGV0IHZhbHVlID0gc3RhdGUuaW5mb0RyYXdlclByZXZpZXc7XG4gIGlmIChzdGF0ZS5zZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgIHZhbHVlID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgPSAhdmFsdWU7XG4gIH1cblxuICBuZXdTdGF0ZS5pbmZvRHJhd2VyUHJldmlldyA9IHZhbHVlO1xuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU2VsZWN0ZWROb2RlcyhzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIGNvbnN0IG5vZGVzID0gWy4uLmFjdGlvbi5wYXlsb2FkXTtcbiAgY29uc3QgY291bnQgPSBub2Rlcy5sZW5ndGg7XG4gIGNvbnN0IGlzRW1wdHkgPSBub2Rlcy5sZW5ndGggPT09IDA7XG5cbiAgbGV0IGZpcnN0ID0gbnVsbDtcbiAgbGV0IGxhc3QgPSBudWxsO1xuICBsZXQgZmlsZSA9IG51bGw7XG4gIGxldCBmb2xkZXIgPSBudWxsO1xuICBsZXQgbGlicmFyeSA9IG51bGw7XG5cbiAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICBmaXJzdCA9IG5vZGVzWzBdO1xuICAgIGxhc3QgPSBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXTtcblxuICAgIGlmIChub2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGZpbGUgPSBub2Rlcy5maW5kKFxuICAgICAgICAoZW50aXR5OiBhbnkpID0+XG4gICAgICAgICAgLy8gd29ya2Fyb3VuZCBTaGFyZWRcbiAgICAgICAgICAhIShlbnRpdHkuZW50cnkuaXNGaWxlIHx8IGVudGl0eS5lbnRyeS5ub2RlSWQgfHwgZW50aXR5LmVudHJ5LnNoYXJlZEJ5VXNlcilcbiAgICAgICk7XG4gICAgICBmb2xkZXIgPSBub2Rlcy5maW5kKChlbnRpdHk6IGFueSkgPT4gZW50aXR5LmVudHJ5LmlzRm9sZGVyKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBsaWJyYXJpZXM6IGFueVtdID0gWy4uLmFjdGlvbi5wYXlsb2FkXS5maWx0ZXIoKG5vZGU6IGFueSkgPT4gbm9kZS5pc0xpYnJhcnkpO1xuICBpZiAobGlicmFyaWVzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxpYnJhcnkgPSBsaWJyYXJpZXNbMF0gYXMgYW55O1xuICB9XG5cbiAgaWYgKGlzRW1wdHkpIHtcbiAgICBuZXdTdGF0ZS5pbmZvRHJhd2VyT3BlbmVkID0gZmFsc2U7XG4gIH1cblxuICBuZXdTdGF0ZS5zZWxlY3Rpb24gPSB7XG4gICAgY291bnQsXG4gICAgbm9kZXMsXG4gICAgaXNFbXB0eSxcbiAgICBmaXJzdCxcbiAgICBsYXN0LFxuICAgIGZpbGUsXG4gICAgZm9sZGVyLFxuICAgIGxpYnJhcmllcyxcbiAgICBsaWJyYXJ5XG4gIH07XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuY29uc3Qgc2V0SW5mb0RyYXdlciA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uKSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaW5mb0RyYXdlck9wZW5lZDogYWN0aW9uLnBheWxvYWRcbn0pO1xuXG5jb25zdCBzZXRJbmZvRHJhd2VyUHJldmlldyA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGluZm9EcmF3ZXJQcmV2aWV3OiBhY3Rpb24ucGF5bG9hZFxufSk7XG5cbmNvbnN0IHNldEluZm9EcmF3ZXJBc3BlY3QgPSAoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdEFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdDogYWN0aW9uLnBheWxvYWRcbn0pO1xuXG5mdW5jdGlvbiB1cGRhdGVSZXBvc2l0b3J5U3RhdHVzKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbikge1xuICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgbmV3U3RhdGUucmVwb3NpdG9yeSA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHNldFVwbG9hZERpYWxvZ1Zpc2liaWxpdHkoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5maWxlVXBsb2FkaW5nRGlhbG9nID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gc2hvd0xvYWRlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2hvd0xvYWRlckFjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLnNob3dMb2FkZXIgPSBhY3Rpb24ucGF5bG9hZDtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuIl19
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2FwcC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBR0gsT0FBTyxFQUVMLGVBQWUsRUFZZixjQUFjLEVBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQWtCLGlCQUFpQixFQUFFLE1BQWM7SUFDNUUsSUFBSSxRQUFrQixDQUFDO0lBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNuQixLQUFLLGNBQWMsQ0FBQyxlQUFlO1lBQ2pDLFFBQVEsR0FBRyxFQUFFLEdBQUksTUFBZ0MsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1RCxNQUFNO1FBQ1IsS0FBSyxlQUFlLENBQUMsWUFBWTtZQUMvQixRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsY0FBYztZQUNoQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUE4QixDQUFDLENBQUM7WUFDN0QsTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDLGdCQUFnQjtZQUNsQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWdDLENBQUMsQ0FBQztZQUN4RSxNQUFNO1FBQ1IsS0FBSyxjQUFjLENBQUMsaUJBQWlCO1lBQ25DLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBcUMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU07UUFDUixLQUFLLGNBQWMsQ0FBQyxhQUFhO1lBQy9CLFFBQVEsR0FBRyxnQkFBZ0Is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Q0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMseUJBQXlCLENBQUMsS0FBZSxFQUFFLE1BQW9DO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBZSxFQUFFLE1BQXdCO0lBQzNELE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM5QixRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDckMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyMyBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvblxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24uXG4gKiBJZiB0aGUgc29mdHdhcmUgd2FzIHB1cmNoYXNlZCB1bmRlciBhIHBhaWQgQWxmcmVzY28gbGljZW5zZSwgdGhlIHRlcm1zIG9mXG4gKiB0aGUgcGFpZCBsaWNlbnNlIGFncmVlbWVudCB3aWxsIHByZXZhaWwuIE90aGVyd2lzZSwgdGhlIHNvZnR3YXJlIGlzXG4gKiBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIG9wZW4gc291cmNlIGxpY2Vuc2UgdGVybXM6XG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogZnJvbSBIeWxhbmQgU29mdHdhcmUuIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBcHBTdGF0ZSxcbiAgTm9kZUFjdGlvblR5cGVzLFxuICBTZXRVc2VyUHJvZmlsZUFjdGlvbixcbiAgU2V0Q3VycmVudEZvbGRlckFjdGlvbixcbiAgU2V0Q3VycmVudFVybEFjdGlvbixcbiAgU2V0SW5pdGlhbFN0YXRlQWN0aW9uLFxuICBTZXRTZWxlY3RlZE5vZGVzQWN0aW9uLFxuICBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uLFxuICBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24sXG4gIFNldEN1cnJlbnROb2RlVmVyc2lvbkFjdGlvbixcbiAgU2V0RmlsZVVwbG9hZGluZ0RpYWxvZ0FjdGlvbixcbiAgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbixcbiAgQXBwQWN0aW9uVHlwZXMsXG4gIFNob3dMb2FkZXJBY3Rpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FjYS1zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHsgSU5JVElBTF9BUFBfU1RBVEUgfSBmcm9tICcuLi9pbml0aWFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcFJlZHVjZXIoc3RhdGU6IEFwcFN0YXRlID0gSU5JVElBTF9BUFBfU1RBVEUsIGFjdGlvbjogQWN0aW9uKTogQXBwU3RhdGUge1xuICBsZXQgbmV3U3RhdGU6IEFwcFN0YXRlO1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluaXRpYWxTdGF0ZTpcbiAgICAgIG5ld1N0YXRlID0geyAuLi4oYWN0aW9uIGFzIFNldEluaXRpYWxTdGF0ZUFjdGlvbikucGF5bG9hZCB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBOb2RlQWN0aW9uVHlwZXMuU2V0U2VsZWN0aW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVTZWxlY3RlZE5vZGVzKHN0YXRlLCBhY3Rpb24gYXMgU2V0U2VsZWN0ZWROb2Rlc0FjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldFVzZXJQcm9maWxlOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVVc2VyKHN0YXRlLCBhY3Rpb24gYXMgU2V0VXNlclByb2ZpbGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50Rm9sZGVyOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Rm9sZGVyKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudEZvbGRlckFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEN1cnJlbnRWZXJzaW9uOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50Tm9kZVZlcnNpb24oc3RhdGUsIGFjdGlvbiBhcyBTZXRDdXJyZW50Tm9kZVZlcnNpb25BY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRDdXJyZW50VXJsOlxuICAgICAgbmV3U3RhdGUgPSB1cGRhdGVDdXJyZW50VXJsKHN0YXRlLCBhY3Rpb24gYXMgU2V0Q3VycmVudFVybEFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlRvZ2dsZUluZm9EcmF3ZXI6XG4gICAgICBuZXdTdGF0ZSA9IHRvZ2dsZUluZm9EcmF3ZXIoc3RhdGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyU3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXIoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyU3RhdGVBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3Q6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJBc3BlY3Qoc3RhdGUsIGFjdGlvbiBhcyBTZXRJbmZvRHJhd2VyTWV0YWRhdGFBc3BlY3RBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TZXRSZXBvc2l0b3J5SW5mbzpcbiAgICAgIG5ld1N0YXRlID0gdXBkYXRlUmVwb3NpdG9yeVN0YXR1cyhzdGF0ZSwgYWN0aW9uIGFzIFNldFJlcG9zaXRvcnlJbmZvQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQXBwQWN0aW9uVHlwZXMuU2V0RmlsZVVwbG9hZGluZ0RpYWxvZzpcbiAgICAgIG5ld1N0YXRlID0gc2V0VXBsb2FkRGlhbG9nVmlzaWJpbGl0eShzdGF0ZSwgYWN0aW9uIGFzIFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBBcHBBY3Rpb25UeXBlcy5TaG93SW5mb0RyYXdlclByZXZpZXc6XG4gICAgICBuZXdTdGF0ZSA9IHNob3dJbmZvRHJhd2VyUHJldmlldyhzdGF0ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNldEluZm9EcmF3ZXJQcmV2aWV3U3RhdGU6XG4gICAgICBuZXdTdGF0ZSA9IHNldEluZm9EcmF3ZXJQcmV2aWV3KHN0YXRlLCBhY3Rpb24gYXMgU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEFwcEFjdGlvblR5cGVzLlNob3dMb2FkZXJBY3Rpb246XG4gICAgICBuZXdTdGF0ZSA9IHNob3dMb2FkZXIoc3RhdGUsIGFjdGlvbiBhcyBTaG93TG9hZGVyQWN0aW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVXNlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0VXNlclByb2ZpbGVBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBjb25zdCB1c2VyID0gYWN0aW9uLnBheWxvYWQucGVyc29uO1xuICBjb25zdCBncm91cHMgPSBbLi4uKGFjdGlvbi5wYXlsb2FkLmdyb3VwcyB8fCBbXSldO1xuXG4gIGNvbnN0IGlkID0gdXNlci5pZDtcbiAgY29uc3QgZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWUgfHwgJyc7XG4gIGNvbnN0IGxhc3ROYW1lID0gdXNlci5sYXN0TmFtZSB8fCAnJztcbiAgY29uc3QgdXNlck5hbWUgPSBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWV9YDtcbiAgY29uc3QgaW5pdGlhbHMgPSBbZmlyc3ROYW1lWzBdLCBsYXN0TmFtZVswXV0uam9pbignJyk7XG5cbiAgY29uc3QgY2FwYWJpbGl0aWVzID0gdXNlci5jYXBhYmlsaXRpZXM7XG4gIGNvbnN0IGlzQWRtaW4gPSBjYXBhYmlsaXRpZXMgPyBjYXBhYmlsaXRpZXMuaXNBZG1pbiA6IHRydWU7XG5cbiAgbmV3U3RhdGUudXNlciA9IHtcbiAgICBmaXJzdE5hbWUsXG4gICAgbGFzdE5hbWUsXG4gICAgdXNlck5hbWUsXG4gICAgaW5pdGlhbHMsXG4gICAgaXNBZG1pbixcbiAgICBpZCxcbiAgICBncm91cHNcbiAgfTtcblxuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbnRGb2xkZXIoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEN1cnJlbnRGb2xkZXJBY3Rpb24pIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLm5hdmlnYXRpb24uY3VycmVudEZvbGRlciA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbnROb2RlVmVyc2lvbihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0Q3VycmVudE5vZGVWZXJzaW9uQWN0aW9uKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5jdXJyZW50Tm9kZVZlcnNpb24gPSBhY3Rpb24ucGF5bG9hZDtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVDdXJyZW50VXJsKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRDdXJyZW50VXJsQWN0aW9uKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5uYXZpZ2F0aW9uLnVybCA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHRvZ2dsZUluZm9EcmF3ZXIoc3RhdGU6IEFwcFN0YXRlKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuXG4gIGxldCB2YWx1ZSA9IHN0YXRlLmluZm9EcmF3ZXJPcGVuZWQ7XG4gIGlmIChzdGF0ZS5zZWxlY3Rpb24uaXNFbXB0eSkge1xuICAgIHZhbHVlID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgPSAhdmFsdWU7XG4gIH1cblxuICBuZXdTdGF0ZS5pbmZvRHJhd2VyT3BlbmVkID0gdmFsdWU7XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuXG5mdW5jdGlvbiBzaG93SW5mb0RyYXdlclByZXZpZXcoc3RhdGU6IEFwcFN0YXRlKSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuXG4gIGxldCB2YWx1ZSA9IHN0YXRlLmluZm9EcmF3ZXJQcmV2aWV3O1xuICBpZiAoc3RhdGUuc2VsZWN0aW9uLmlzRW1wdHkpIHtcbiAgICB2YWx1ZSA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIHZhbHVlID0gIXZhbHVlO1xuICB9XG5cbiAgbmV3U3RhdGUuaW5mb0RyYXdlclByZXZpZXcgPSB2YWx1ZTtcblxuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVNlbGVjdGVkTm9kZXMoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldFNlbGVjdGVkTm9kZXNBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBjb25zdCBub2RlcyA9IFsuLi5hY3Rpb24ucGF5bG9hZF07XG4gIGNvbnN0IGNvdW50ID0gbm9kZXMubGVuZ3RoO1xuICBjb25zdCBpc0VtcHR5ID0gbm9kZXMubGVuZ3RoID09PSAwO1xuXG4gIGxldCBmaXJzdCA9IG51bGw7XG4gIGxldCBsYXN0ID0gbnVsbDtcbiAgbGV0IGZpbGUgPSBudWxsO1xuICBsZXQgZm9sZGVyID0gbnVsbDtcbiAgbGV0IGxpYnJhcnkgPSBudWxsO1xuXG4gIGlmIChub2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgZmlyc3QgPSBub2Rlc1swXTtcbiAgICBsYXN0ID0gbm9kZXNbbm9kZXMubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAobm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBmaWxlID0gbm9kZXMuZmluZChcbiAgICAgICAgKGVudGl0eTogYW55KSA9PlxuICAgICAgICAgIC8vIHdvcmthcm91bmQgU2hhcmVkXG4gICAgICAgICAgISEoZW50aXR5LmVudHJ5LmlzRmlsZSB8fCBlbnRpdHkuZW50cnkubm9kZUlkIHx8IGVudGl0eS5lbnRyeS5zaGFyZWRCeVVzZXIpXG4gICAgICApO1xuICAgICAgZm9sZGVyID0gbm9kZXMuZmluZCgoZW50aXR5OiBhbnkpID0+IGVudGl0eS5lbnRyeS5pc0ZvbGRlcik7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgbGlicmFyaWVzOiBhbnlbXSA9IFsuLi5hY3Rpb24ucGF5bG9hZF0uZmlsdGVyKChub2RlOiBhbnkpID0+IG5vZGUuaXNMaWJyYXJ5KTtcbiAgaWYgKGxpYnJhcmllcy5sZW5ndGggPT09IDEpIHtcbiAgICBsaWJyYXJ5ID0gbGlicmFyaWVzWzBdO1xuICB9XG5cbiAgaWYgKGlzRW1wdHkpIHtcbiAgICBuZXdTdGF0ZS5pbmZvRHJhd2VyT3BlbmVkID0gZmFsc2U7XG4gIH1cblxuICBuZXdTdGF0ZS5zZWxlY3Rpb24gPSB7XG4gICAgY291bnQsXG4gICAgbm9kZXMsXG4gICAgaXNFbXB0eSxcbiAgICBmaXJzdCxcbiAgICBsYXN0LFxuICAgIGZpbGUsXG4gICAgZm9sZGVyLFxuICAgIGxpYnJhcmllcyxcbiAgICBsaWJyYXJ5XG4gIH07XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuY29uc3Qgc2V0SW5mb0RyYXdlciA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlclN0YXRlQWN0aW9uKSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgaW5mb0RyYXdlck9wZW5lZDogYWN0aW9uLnBheWxvYWRcbn0pO1xuXG5jb25zdCBzZXRJbmZvRHJhd2VyUHJldmlldyA9IChzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2V0SW5mb0RyYXdlclByZXZpZXdTdGF0ZUFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGluZm9EcmF3ZXJQcmV2aWV3OiBhY3Rpb24ucGF5bG9hZFxufSk7XG5cbmNvbnN0IHNldEluZm9EcmF3ZXJBc3BlY3QgPSAoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdEFjdGlvbikgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGluZm9EcmF3ZXJNZXRhZGF0YUFzcGVjdDogYWN0aW9uLnBheWxvYWRcbn0pO1xuXG5mdW5jdGlvbiB1cGRhdGVSZXBvc2l0b3J5U3RhdHVzKHN0YXRlOiBBcHBTdGF0ZSwgYWN0aW9uOiBTZXRSZXBvc2l0b3J5SW5mb0FjdGlvbikge1xuICBjb25zdCBuZXdTdGF0ZSA9IHsgLi4uc3RhdGUgfTtcbiAgbmV3U3RhdGUucmVwb3NpdG9yeSA9IGFjdGlvbi5wYXlsb2FkO1xuICByZXR1cm4gbmV3U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHNldFVwbG9hZERpYWxvZ1Zpc2liaWxpdHkoc3RhdGU6IEFwcFN0YXRlLCBhY3Rpb246IFNldEZpbGVVcGxvYWRpbmdEaWFsb2dBY3Rpb24pOiBBcHBTdGF0ZSB7XG4gIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9O1xuICBuZXdTdGF0ZS5maWxlVXBsb2FkaW5nRGlhbG9nID0gYWN0aW9uLnBheWxvYWQ7XG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gc2hvd0xvYWRlcihzdGF0ZTogQXBwU3RhdGUsIGFjdGlvbjogU2hvd0xvYWRlckFjdGlvbik6IEFwcFN0YXRlIHtcbiAgY29uc3QgbmV3U3RhdGUgPSB7IC4uLnN0YXRlIH07XG4gIG5ld1N0YXRlLnNob3dMb2FkZXIgPSBhY3Rpb24ucGF5bG9hZDtcbiAgcmV0dXJuIG5ld1N0YXRlO1xufVxuIl19