@talrace/ngx-noder 0.0.11 → 0.0.13

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 (80) hide show
  1. package/README.md +374 -71
  2. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +1 -1
  3. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +2 -2
  4. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +2 -5
  5. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +3 -3
  6. package/esm2022/lib/editor/components/edges/edge-element.model.mjs +30 -1
  7. package/esm2022/lib/editor/components/edges/edge.component.mjs +23 -23
  8. package/esm2022/lib/editor/components/edges/edges.mjs +30 -15
  9. package/esm2022/lib/editor/components/image/components/image.component.mjs +2 -2
  10. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +2 -2
  11. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +5 -3
  12. package/esm2022/lib/editor/components/table/components/table.component.mjs +7 -5
  13. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +12 -5
  14. package/esm2022/lib/editor/content/display-data/display-data.mjs +4 -4
  15. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +1 -1
  16. package/esm2022/lib/editor/content/helpers/link.helper.mjs +39 -3
  17. package/esm2022/lib/editor/display/layers/text.layer.mjs +100 -75
  18. package/esm2022/lib/editor/display/print/print.helper.mjs +3 -3
  19. package/esm2022/lib/editor/display/print/print.renderer.mjs +5 -5
  20. package/esm2022/lib/editor/display/renderer.mjs +23 -25
  21. package/esm2022/lib/editor/display/virtual.renderer.mjs +10 -43
  22. package/esm2022/lib/editor/execution/edit.session.mjs +26 -16
  23. package/esm2022/lib/editor/execution/editor.mjs +88 -127
  24. package/esm2022/lib/editor/execution/regulator.service.mjs +44 -39
  25. package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +2 -3
  26. package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +2 -3
  27. package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +2 -2
  28. package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +1 -1
  29. package/esm2022/lib/editor/gadgets/history/operation-history.mjs +39 -37
  30. package/esm2022/lib/editor/interaction/editor.service.mjs +22 -22
  31. package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -2
  32. package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +4 -4
  33. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +2 -2
  34. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +59 -7
  35. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +24 -25
  36. package/esm2022/lib/editor/operations/save-commands.helper.mjs +6 -5
  37. package/esm2022/lib/editor/positioning/content.helper.mjs +10 -1
  38. package/esm2022/lib/editor/positioning/position.helper.mjs +49 -35
  39. package/esm2022/lib/editor/revision.helper.mjs +3 -1
  40. package/esm2022/lib/models/generated/delete.model.mjs +1 -1
  41. package/esm2022/lib/models/generated/link-data.model.mjs +1 -1
  42. package/esm2022/lib/models/generated/link.model.mjs +1 -1
  43. package/esm2022/lib/models/generated/restore-text-styles.model.mjs +1 -1
  44. package/esm2022/lib/models/generated/target.model.mjs +1 -1
  45. package/fesm2022/talrace-ngx-noder.mjs +672 -545
  46. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  47. package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +1 -3
  48. package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +1 -1
  49. package/lib/editor/components/edges/edge-element.model.d.ts +9 -1
  50. package/lib/editor/components/edges/edge.component.d.ts +4 -4
  51. package/lib/editor/components/edges/edges.d.ts +8 -2
  52. package/lib/editor/components/table/components/table.component.d.ts +4 -2
  53. package/lib/editor/components/table/selection/table-selection.d.ts +5 -2
  54. package/lib/editor/content/display-data/display-data.d.ts +2 -1
  55. package/lib/editor/content/helpers/content-style.helper.d.ts +1 -1
  56. package/lib/editor/content/helpers/link.helper.d.ts +4 -1
  57. package/lib/editor/display/layers/text.layer.d.ts +8 -10
  58. package/lib/editor/display/print/print.helper.d.ts +1 -2
  59. package/lib/editor/display/print/print.renderer.d.ts +1 -2
  60. package/lib/editor/display/renderer.d.ts +9 -9
  61. package/lib/editor/display/virtual.renderer.d.ts +3 -10
  62. package/lib/editor/execution/edit.session.d.ts +7 -2
  63. package/lib/editor/execution/editor.d.ts +10 -9
  64. package/lib/editor/execution/regulator.service.d.ts +6 -4
  65. package/lib/editor/execution/targeting/cell-session-source.model.d.ts +0 -1
  66. package/lib/editor/execution/targeting/edge-session-source.model.d.ts +0 -1
  67. package/lib/editor/execution/targeting/session-source.model.d.ts +0 -1
  68. package/lib/editor/gadgets/history/operation-history.d.ts +7 -3
  69. package/lib/editor/interaction/editor.service.d.ts +13 -12
  70. package/lib/editor/operations/helpers/content-operations.helper.d.ts +1 -1
  71. package/lib/editor/operations/helpers/link-operations.helper.d.ts +7 -2
  72. package/lib/editor/operations/operations-helper.helper.d.ts +3 -3
  73. package/lib/editor/operations/save-commands.helper.d.ts +1 -1
  74. package/lib/editor/positioning/content.helper.d.ts +2 -0
  75. package/lib/editor/positioning/position.helper.d.ts +21 -6
  76. package/lib/models/generated/delete.model.d.ts +1 -1
  77. package/lib/models/generated/restore-text-styles.model.d.ts +1 -0
  78. package/lib/models/generated/target.model.d.ts +0 -1
  79. package/package.json +1 -1
  80. package/src/scss/base-editor.scss +4 -0
@@ -26,7 +26,6 @@ export class RegulatorService {
26
26
  this.componentService = componentService;
27
27
  this.sessions = [];
28
28
  this.sessionIdIncrement = 0;
29
- this.edgeEditingPage = null;
30
29
  }
31
30
  addMainSession(model, pageWidth, scalingRatio, container) {
32
31
  const sessionId = ++this.sessionIdIncrement;
@@ -52,25 +51,26 @@ export class RegulatorService {
52
51
  const displayData = new DisplayData(model, properties, sessionId, pageMargin, DocumentInfo.pagesSpace, pageWidth, model.pageHeight, customComponents, this.customContentService, this.editorService);
53
52
  const scrollBar = new ScrollBar(container.nativeElement.parentElement);
54
53
  const mainSession = new EditSession(displayData, sessionId, this.customContentService, model, this.selection, properties, this.editorService, customComponents, 'main', scrollBar);
55
- displayData.updateNextLineIndexes(0, displayData.paragraphs.length - 1);
56
- const virtualRenderer = new VirtualRenderer(container.nativeElement, this.editorService, mainSession, scrollBar);
54
+ const virtualRenderer = new VirtualRenderer(container.nativeElement, mainSession, scrollBar);
57
55
  this.editorService.styles = DEFAULT_TOOLBAR_STYLES();
58
56
  this.mainSession = new SessionModel(mainSession, virtualRenderer, sessionId, null, new MainSessionSourceModel());
59
57
  this.sessions.push(this.mainSession);
60
58
  this.currentSession = this.mainSession;
59
+ displayData.updateNextLineIndexes(0, displayData.paragraphs.length - 1);
61
60
  }
62
61
  addCellSession(table, margins, component, properties) {
63
62
  const sessionId = ++this.sessionIdIncrement;
64
63
  const customComponents = { images: [], tables: [], tabs: [], customElements: [], edges: null };
65
64
  const displayData = new DisplayData(component.cell, properties, sessionId, margins, 0, component.width, 0, customComponents, this.customContentService, this.editorService);
66
- const session = new EditSession(displayData, sessionId, this.customContentService, component.cell, this.selection, properties, this.editorService, customComponents, 'cell');
65
+ const sessionType = this.isWithinEdge(component.parentSessionId) ? 'cellWithinEdge' : 'cell';
66
+ const session = new EditSession(displayData, sessionId, this.customContentService, component.cell, this.selection, properties, this.editorService, customComponents, sessionType);
67
67
  displayData.contentWidth = displayData.contentWidth === 0 ? 1 : displayData.contentWidth;
68
- displayData.updateNextLineIndexes(0, displayData.paragraphs.length - 1);
69
- const renderer = new Renderer(component.container.nativeElement, this.editorService, session);
68
+ const renderer = new Renderer(component.container.nativeElement, session);
70
69
  const source = new CellSessionSourceModel(table, component);
71
70
  const newSession = new SessionModel(session, renderer, sessionId, component.parentSessionId, source);
72
- newSession.renderer.updateText();
73
71
  this.sessions.push(newSession);
72
+ displayData.updateNextLineIndexes(0, displayData.paragraphs.length - 1);
73
+ newSession.renderer.updateText();
74
74
  return newSession;
75
75
  }
76
76
  addEdgeSession(component) {
@@ -78,11 +78,12 @@ export class RegulatorService {
78
78
  const customComponents = { images: [], tables: [], tabs: [], customElements: [], edges: null };
79
79
  const displayData = new DisplayData(component.model, component.generalProperties, sessionId, component.margins, 0, component.width, 0, customComponents, this.customContentService, this.editorService);
80
80
  const session = new EditSession(displayData, sessionId, this.customContentService, component.model, this.selection, component.generalProperties, this.editorService, customComponents, 'edge');
81
- displayData.updateNextLineIndexes(0, displayData.paragraphs.length - 1);
82
- const renderer = new Renderer(component.container.nativeElement, this.editorService, session);
81
+ const renderer = new Renderer(component.container.nativeElement, session);
83
82
  const source = new EdgeSessionSourceModel(component.model.pageType, component.type);
84
83
  const newSession = new SessionModel(session, renderer, sessionId, component.parentSessionId, source);
85
84
  this.sessions.push(newSession);
85
+ displayData.updateNextLineIndexes(0, displayData.paragraphs.length - 1);
86
+ newSession.renderer.updateText();
86
87
  return newSession;
87
88
  }
88
89
  removeSession(sessionId) {
@@ -95,16 +96,12 @@ export class RegulatorService {
95
96
  if (this.mainSession.sessionId === this.currentSession.sessionId) {
96
97
  return;
97
98
  }
98
- this.toggleEdgeEditMode();
99
99
  this.setCurrentSession(this.mainSession);
100
100
  }
101
- setCustomSessionAsCurrent(sessionId, edgeEditingPage = null) {
102
- if (sessionId === this.currentSession.sessionId && this.currentSession.source.edgeEditPage !== edgeEditingPage) {
103
- this.currentSession.source.edgeEditPage = edgeEditingPage;
104
- this.mainSession.renderer.renderer.textLayer.edgeEditingPageUpdated(edgeEditingPage);
101
+ setCustomSessionAsCurrent(sessionId) {
102
+ if (sessionId === this.currentSession.sessionId) {
105
103
  return;
106
104
  }
107
- this.toggleEdgeEditMode(edgeEditingPage);
108
105
  this.setCurrentSessionById(sessionId);
109
106
  }
110
107
  setTargetedSessionAsCurrent(targets) {
@@ -113,8 +110,6 @@ export class RegulatorService {
113
110
  return;
114
111
  }
115
112
  const session = this.sessions.find(x => x.sessionId === targetedSession.sessionId);
116
- const edgeEditPage = targets.length ? targets[targets.length - 1].edgeEditPage : null;
117
- this.toggleEdgeEditMode(edgeEditPage);
118
113
  this.setCurrentSession(session);
119
114
  }
120
115
  setCurrentSessionById(sessionId) {
@@ -122,16 +117,19 @@ export class RegulatorService {
122
117
  this.setCurrentSession(this.sessions[index]);
123
118
  }
124
119
  setCurrentSession(session) {
120
+ const previous = this.currentSession;
125
121
  this.selection.clearSelection();
126
122
  this.currentSession.renderer.hideCursor();
127
123
  this.currentSession.renderer.updateSelection(this.selection.range);
128
124
  this.currentSession = session;
129
125
  this.currentSession.renderer.showCursor();
130
- this.currentSession.source.edgeEditPage = this.edgeEditingPage;
126
+ this.arrangeEdgesForSessionChange(previous.session, session.session);
127
+ }
128
+ getSessionModel(sessionId) {
129
+ return this.sessions.find(x => x.sessionId === sessionId);
131
130
  }
132
131
  getSession(sessionId) {
133
- const session = this.sessions.find(x => x.sessionId === sessionId);
134
- return session.session;
132
+ return this.getSessionModel(sessionId).session;
135
133
  }
136
134
  setSelection(selection) {
137
135
  this.selection = selection;
@@ -157,19 +155,6 @@ export class RegulatorService {
157
155
  }
158
156
  return result;
159
157
  }
160
- getEdgeTarget(sessionId) {
161
- let session = this.sessions.find(x => x.sessionId === sessionId);
162
- let parentSession = this.sessions.find(x => x.sessionId === session.parentSessionId);
163
- while (parentSession) {
164
- const target = session.source.getTarget();
165
- if (target.type === TargetType.Edge) {
166
- return target;
167
- }
168
- session = parentSession;
169
- parentSession = this.sessions.find(x => x.sessionId === parentSession.parentSessionId);
170
- }
171
- return null;
172
- }
173
158
  getTargetedSession(targets) {
174
159
  let result = this.mainSession.session;
175
160
  for (const target of targets) {
@@ -190,13 +175,33 @@ export class RegulatorService {
190
175
  }
191
176
  return result;
192
177
  }
193
- toggleEdgeEditMode(edgeEditingPage = null) {
194
- if (!this.mainSession.session.customComponents.edges || this.edgeEditingPage === edgeEditingPage) {
178
+ isWithinEdge(sessionId) {
179
+ return !!this.getEdgeSessionId(sessionId);
180
+ }
181
+ arrangeEdgeChange(sessionId) {
182
+ const edgeSessionId = this.getEdgeSessionId(sessionId);
183
+ const { type, pageType } = this.mainSession.session.customComponents.edges.getTypeBySessionId(edgeSessionId);
184
+ this.mainSession.renderer.renderer.textLayer.updateEdge(type, pageType);
185
+ }
186
+ getEdgeSessionId(sessionId) {
187
+ let session = this.getSession(sessionId);
188
+ while (session && !session.isEdge()) {
189
+ const model = this.sessions.find(x => x.sessionId === session.sessionId);
190
+ session = model.parentSessionId ? this.getSession(model.parentSessionId) : null;
191
+ }
192
+ return session?.sessionId;
193
+ }
194
+ arrangeEdgesForSessionChange(previous, current) {
195
+ const isPreviousEdge = previous.isEdgeOrWithinEdge();
196
+ const isCurrentEdge = current.isEdgeOrWithinEdge();
197
+ if (isPreviousEdge !== isCurrentEdge) {
198
+ this.mainSession.session.customComponents.edges.toggleEditMode(isCurrentEdge);
195
199
  return;
196
200
  }
197
- this.edgeEditingPage = edgeEditingPage;
198
- this.mainSession.session.customComponents.edges.toggleEditMode(!!this.edgeEditingPage);
199
- this.mainSession.renderer.renderer.textLayer.edgeEditingPageUpdated(edgeEditingPage);
201
+ if (isPreviousEdge) {
202
+ previous.onRendered();
203
+ current.onRendered();
204
+ }
200
205
  }
201
206
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService, deps: [{ token: i1.CustomContentService }, { token: i2.EditorService }, { token: i3.ComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
202
207
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService }); }
@@ -204,4 +209,4 @@ export class RegulatorService {
204
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService, decorators: [{
205
210
  type: Injectable
206
211
  }], ctorParameters: () => [{ type: i1.CustomContentService }, { type: i2.EditorService }, { type: i3.ComponentService }] });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVndWxhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZXhlY3V0aW9uL3JlZ3VsYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFB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R0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7b0JBQzNDLE1BQU07aUJBQ1Q7YUFDSjtTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLGtCQUFpQyxJQUFJO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLEVBQUU7WUFDOUYsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBNEIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7K0dBdlJRLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDZWxsU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi90YXJnZXRpbmcvY2VsbC1zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfRURHRV9NQVhfSEVJR0hUX01VTFRJUExJRVIsIERFRkFVTFRfVE9PTEJBUl9TVFlMRVMgfSBmcm9tICcuLi9jb250ZW50L2NvbnN0YW50cy9lZGl0b3IuY29uc3QnO1xuaW1wb3J0IHsgRGlzcGxheURhdGEgfSBmcm9tICcuLi9jb250ZW50L2Rpc3BsYXktZGF0YS9kaXNwbGF5LWRhdGEnO1xuaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vY29udGVudC9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5pbXBvcnQgeyBEb2N4TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2RvY3gubW9kZWwnO1xuaW1wb3J0IHsgRWRnZXMgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL2VkZ2VzJztcbmltcG9ydCB7IEVkZ2VTZXNzaW9uU291cmNlTW9kZWwgfSBmcm9tICcuL3RhcmdldGluZy9lZGdlLXNlc3Npb24tc291cmNlLm1vZGVsJztcbmltcG9ydCB7IEVkZ2VUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBHZW5lcmFsUHJvcGVydGllc01vZGVsIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsJztcbmltcG9ydCB7IElDdXN0b21Db21wb25lbnRzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQvY3VzdG9tLWNvbXBvbmVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1haW5TZXNzaW9uU291cmNlTW9kZWwgfSBmcm9tICcuL3RhcmdldGluZy9tYWluLXNlc3Npb24tc291cmNlLm1vZGVsJztcbmltcG9ydCB7IE1hcmdpbk1vZGVsIH0gZnJvbSAnLi4vY29udGVudC9tYXJnaW4ubW9kZWwnO1xuaW1wb3J0IHsgTm9kZXJFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvcGFnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUmVuZGVyZXIgfSBmcm9tICcuLi9kaXNwbGF5L3JlbmRlcmVyJztcbmltcG9ydCB7IFNjYWxpbmdIZWxwZXIgfSBmcm9tICcuLi9jb250ZW50L2hlbHBlcnMvc2NhbGluZy5oZWxwZXInO1xuaW1wb3J0IHsgU2Nyb2xsQmFyIH0gZnJvbSAnLi4vZ2FkZ2V0cy9zY3JvbGxiYXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vcG9zaXRpb25pbmcvc2VsZWN0aW9uJztcbmltcG9ydCB7IFNlc3Npb25Nb2RlbCB9IGZyb20gJy4vdGFyZ2V0aW5nL3Nlc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgVGFyZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhcmdldC5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRUeXBlIH0gZnJvbSAnLi4vb3BlcmF0aW9ucy9lbnVtcy90YXJnZXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFZpcnR1YWxSZW5kZXJlciB9IGZyb20gJy4uL2Rpc3BsYXkvdmlydHVhbC5yZW5kZXJlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWd1bGF0b3JTZXJ2aWNlIHtcbiAgICBtYWluU2Vzc2lvbjogU2Vzc2lvbk1vZGVsO1xuXG4gICAgc2Vzc2lvbnM6IFNlc3Npb25Nb2RlbFtdID0gW107XG5cbiAgICBjdXJyZW50U2Vzc2lvbjogU2Vzc2lvbk1vZGVsO1xuXG4gICAgc2VsZWN0aW9uOiBTZWxlY3Rpb247XG5cbiAgICBzZXNzaW9uSWRJbmNyZW1lbnQgPSAwO1xuXG4gICAgZWRnZUVkaXRpbmdQYWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudFNlcnZpY2U6IENvbXBvbmVudFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBhZGRNYWluU2Vzc2lvbihtb2RlbDogRG9jeE1vZGVsLCBwYWdlV2lkdGg6IG51bWJlciwgc2NhbGluZ1JhdGlvOiBudW1iZXIsIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gKyt0aGlzLnNlc3Npb25JZEluY3JlbWVudDtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IG5ldyBHZW5lcmFsUHJvcGVydGllc01vZGVsKHtcbiAgICAgICAgICAgIG51bWJlcmluZ3M6IG1vZGVsLm51bWJlcmluZ3MsXG4gICAgICAgICAgICBkZWZhdWx0VGFiV2lkdGg6IFNjYWxpbmdIZWxwZXIuc2NhbGUobW9kZWwuZGVmYXVsdFRhYldpZHRoLCBzY2FsaW5nUmF0aW8pLFxuICAgICAgICAgICAgbWF4RWRnZUhlaWdodDogbW9kZWwucGFnZUhlaWdodCAqIERFRkFVTFRfRURHRV9NQVhfSEVJR0hUX01VTFRJUExJRVIsXG4gICAgICAgICAgICBzY2FsaW5nUmF0aW8sXG4gICAgICAgICAgICBudW1iZXJpbmdJbmZvOiB7fVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcGFnZU1hcmdpbiA9IG5ldyBNYXJnaW5Nb2RlbCh7XG4gICAgICAgICAgICBsZWZ0OiBTY2FsaW5nSGVscGVyLnNjYWxlKG1vZGVsLm1hcmdpbkxlZnQsIHNjYWxpbmdSYXRpbyksXG4gICAgICAgICAgICByaWdodDogU2NhbGluZ0hlbHBlci5zY2FsZShtb2RlbC5tYXJnaW5SaWdodCwgc2NhbGluZ1JhdGlvKSxcbiAgICAgICAgICAgIHRvcDogbW9kZWwubWFyZ2luVG9wID4gMCA/IG1vZGVsLm1hcmdpblRvcCA6IDAsXG4gICAgICAgICAgICBib3R0b206IG1vZGVsLm1hcmdpbkJvdHRvbSA+IDAgPyBtb2RlbC5tYXJnaW5Cb3R0b20gOiAwLFxuICAgICAgICAgICAgaGVhZGVyOiBtb2RlbC5tYXJnaW5IZWFkZXIgPiAwID8gbW9kZWwubWFyZ2luSGVhZGVyIDogMCxcbiAgICAgICAgICAgIGZvb3RlcjogbW9kZWwubWFyZ2luRm9vdGVyID4gMCA/IG1vZGVsLm1hcmdpbkZvb3RlciA6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVkZ2VzTWFyZ2lucyA9IG5ldyBNYXJnaW5Nb2RlbCh7IC4uLnBhZ2VNYXJnaW4sIHRvcDogcGFnZU1hcmdpbi5oZWFkZXIsIGJvdHRvbTogcGFnZU1hcmdpbi5mb290ZXIgfSk7XG4gICAgICAgIGNvbnN0IGVkZ2VzID0gbmV3IEVkZ2VzKHRoaXMuY29tcG9uZW50U2VydmljZSwgbW9kZWwuaGVhZGVycywgbW9kZWwuZm9vdGVycywgZWRnZXNNYXJnaW5zLCBwYWdlV2lkdGgsIHNlc3Npb25JZCwgcHJvcGVydGllcyk7XG4gICAgICAgIHByb3BlcnRpZXMubnVtYmVyaW5nSW5mbyA9IHt9O1xuICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnRzID0geyBpbWFnZXM6IFtdLCB0YWJsZXM6IFtdLCB0YWJzOiBbXSwgY3VzdG9tRWxlbWVudHM6IFtdLCBlZGdlczogZWRnZXMgfSBhcyBJQ3VzdG9tQ29tcG9uZW50cztcbiAgICAgICAgY29uc3QgZGlzcGxheURhdGEgPSBuZXcgRGlzcGxheURhdGEoXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICBwYWdlTWFyZ2luLFxuICAgICAgICAgICAgRG9jdW1lbnRJbmZvLnBhZ2VzU3BhY2UsXG4gICAgICAgICAgICBwYWdlV2lkdGgsXG4gICAgICAgICAgICBtb2RlbC5wYWdlSGVpZ2h0LFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQmFyID0gbmV3IFNjcm9sbEJhcihjb250YWluZXIubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbWFpblNlc3Npb24gPSBuZXcgRWRpdFNlc3Npb24oXG4gICAgICAgICAgICBkaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLFxuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAnbWFpbicsXG4gICAgICAgICAgICBzY3JvbGxCYXJcbiAgICAgICAgKTtcbiAgICAgICAgZGlzcGxheURhdGEudXBkYXRlTmV4dExpbmVJbmRleGVzKDAsIGRpc3BsYXlEYXRhLnBhcmFncmFwaHMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxSZW5kZXJlciA9IG5ldyBWaXJ0dWFsUmVuZGVyZXIoY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZWRpdG9yU2VydmljZSwgbWFpblNlc3Npb24sIHNjcm9sbEJhcik7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdHlsZXMgPSBERUZBVUxUX1RPT0xCQVJfU1RZTEVTKCk7XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24gPSBuZXcgU2Vzc2lvbk1vZGVsKG1haW5TZXNzaW9uLCB2aXJ0dWFsUmVuZGVyZXIsIHNlc3Npb25JZCwgbnVsbCwgbmV3IE1haW5TZXNzaW9uU291cmNlTW9kZWwoKSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMucHVzaCh0aGlzLm1haW5TZXNzaW9uKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbiA9IHRoaXMubWFpblNlc3Npb247XG4gICAgfVxuXG4gICAgYWRkQ2VsbFNlc3Npb24oXG4gICAgICAgIHRhYmxlOiBUYWJsZU1vZGVsLFxuICAgICAgICBtYXJnaW5zOiBNYXJnaW5Nb2RlbCxcbiAgICAgICAgY29tcG9uZW50OiBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICAgICAgcHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbFxuICAgICk6IFNlc3Npb25Nb2RlbCB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZCA9ICsrdGhpcy5zZXNzaW9uSWRJbmNyZW1lbnQ7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudHMgPSB7IGltYWdlczogW10sIHRhYmxlczogW10sIHRhYnM6IFtdLCBjdXN0b21FbGVtZW50czogW10sIGVkZ2VzOiBudWxsIH0gYXMgSUN1c3RvbUNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlEYXRhID0gbmV3IERpc3BsYXlEYXRhKFxuICAgICAgICAgICAgY29tcG9uZW50LmNlbGwsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgbWFyZ2lucyxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjb21wb25lbnQud2lkdGgsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbihcbiAgICAgICAgICAgIGRpc3BsYXlEYXRhLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIGNvbXBvbmVudC5jZWxsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgICdjZWxsJ1xuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5RGF0YS5jb250ZW50V2lkdGggPSBkaXNwbGF5RGF0YS5jb250ZW50V2lkdGggPT09IDAgPyAxIDogZGlzcGxheURhdGEuY29udGVudFdpZHRoO1xuICAgICAgICBkaXNwbGF5RGF0YS51cGRhdGVOZXh0TGluZUluZGV4ZXMoMCwgZGlzcGxheURhdGEucGFyYWdyYXBocy5sZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgUmVuZGVyZXIoY29tcG9uZW50LmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmVkaXRvclNlcnZpY2UsIHNlc3Npb24pO1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBuZXcgQ2VsbFNlc3Npb25Tb3VyY2VNb2RlbCh0YWJsZSwgY29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgbmV3U2Vzc2lvbiA9IG5ldyBTZXNzaW9uTW9kZWwoc2Vzc2lvbiwgcmVuZGVyZXIsIHNlc3Npb25JZCwgY29tcG9uZW50LnBhcmVudFNlc3Npb25JZCwgc291cmNlKTtcbiAgICAgICAgbmV3U2Vzc2lvbi5yZW5kZXJlci51cGRhdGVUZXh0KCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMucHVzaChuZXdTZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIG5ld1Nlc3Npb247XG4gICAgfVxuXG4gICAgYWRkRWRnZVNlc3Npb24oY29tcG9uZW50OiBOb2RlckVkZ2VDb21wb25lbnQpOiBTZXNzaW9uTW9kZWwge1xuICAgICAgICBjb25zdCBzZXNzaW9uSWQgPSArK3RoaXMuc2Vzc2lvbklkSW5jcmVtZW50O1xuICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnRzID0geyBpbWFnZXM6IFtdLCB0YWJsZXM6IFtdLCB0YWJzOiBbXSwgY3VzdG9tRWxlbWVudHM6IFtdLCBlZGdlczogbnVsbCB9IGFzIElDdXN0b21Db21wb25lbnRzO1xuICAgICAgICBjb25zdCBkaXNwbGF5RGF0YSA9IG5ldyBEaXNwbGF5RGF0YShcbiAgICAgICAgICAgIGNvbXBvbmVudC5tb2RlbCxcbiAgICAgICAgICAgIGNvbXBvbmVudC5nZW5lcmFsUHJvcGVydGllcyxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIGNvbXBvbmVudC5tYXJnaW5zLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGNvbXBvbmVudC53aWR0aCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IEVkaXRTZXNzaW9uKFxuICAgICAgICAgICAgZGlzcGxheURhdGEsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgY29tcG9uZW50Lm1vZGVsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBjb21wb25lbnQuZ2VuZXJhbFByb3BlcnRpZXMsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgJ2VkZ2UnXG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXlEYXRhLnVwZGF0ZU5leHRMaW5lSW5kZXhlcygwLCBkaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCByZW5kZXJlciA9IG5ldyBSZW5kZXJlcihjb21wb25lbnQuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZWRpdG9yU2VydmljZSwgc2Vzc2lvbik7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBFZGdlU2Vzc2lvblNvdXJjZU1vZGVsKGNvbXBvbmVudC5tb2RlbC5wYWdlVHlwZSBhcyBQYWdlVHlwZSwgY29tcG9uZW50LnR5cGUpO1xuICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gbmV3IFNlc3Npb25Nb2RlbChzZXNzaW9uLCByZW5kZXJlciwgc2Vzc2lvbklkLCBjb21wb25lbnQucGFyZW50U2Vzc2lvbklkLCBzb3VyY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnB1c2gobmV3U2Vzc2lvbik7XG4gICAgICAgIHJldHVybiBuZXdTZXNzaW9uO1xuICAgIH1cblxuICAgIHJlbW92ZVNlc3Npb24oc2Vzc2lvbklkOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlc3Npb25zLmZpbmRJbmRleCh4ID0+IHguc2Vzc2lvbklkID09PSBzZXNzaW9uSWQpO1xuICAgICAgICB0aGlzLnNlc3Npb25zW2luZGV4XS5zZXNzaW9uLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uc1tpbmRleF0ucmVuZGVyZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgc2V0TWFpblNlc3Npb25Bc0N1cnJlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1haW5TZXNzaW9uLnNlc3Npb25JZCA9PT0gdGhpcy5jdXJyZW50U2Vzc2lvbi5zZXNzaW9uSWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvZ2dsZUVkZ2VFZGl0TW9kZSgpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRTZXNzaW9uKHRoaXMubWFpblNlc3Npb24pO1xuICAgIH1cblxuICAgIHNldEN1c3RvbVNlc3Npb25Bc0N1cnJlbnQoc2Vzc2lvbklkOiBudW1iZXIsIGVkZ2VFZGl0aW5nUGFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHNlc3Npb25JZCA9PT0gdGhpcy5jdXJyZW50U2Vzc2lvbi5zZXNzaW9uSWQgJiYgdGhpcy5jdXJyZW50U2Vzc2lvbi5zb3VyY2UuZWRnZUVkaXRQYWdlICE9PSBlZGdlRWRpdGluZ1BhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24uc291cmNlLmVkZ2VFZGl0UGFnZSA9IGVkZ2VFZGl0aW5nUGFnZTtcbiAgICAgICAgICAgICh0aGlzLm1haW5TZXNzaW9uLnJlbmRlcmVyIGFzIFZpcnR1YWxSZW5kZXJlcikucmVuZGVyZXIudGV4dExheWVyLmVkZ2VFZGl0aW5nUGFnZVVwZGF0ZWQoZWRnZUVkaXRpbmdQYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvZ2dsZUVkZ2VFZGl0TW9kZShlZGdlRWRpdGluZ1BhZ2UpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRTZXNzaW9uQnlJZChzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIHNldFRhcmdldGVkU2Vzc2lvbkFzQ3VycmVudCh0YXJnZXRzOiBUYXJnZXRNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldGVkU2Vzc2lvbiA9IHRoaXMuZ2V0VGFyZ2V0ZWRTZXNzaW9uKHRhcmdldHMpO1xuICAgICAgICBpZiAodGFyZ2V0ZWRTZXNzaW9uLnNlc3Npb25JZCA9PT0gdGhpcy5jdXJyZW50U2Vzc2lvbi5zZXNzaW9uSWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHRhcmdldGVkU2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICBjb25zdCBlZGdlRWRpdFBhZ2UgPSB0YXJnZXRzLmxlbmd0aCA/IHRhcmdldHNbdGFyZ2V0cy5sZW5ndGggLSAxXS5lZGdlRWRpdFBhZ2UgOiBudWxsO1xuICAgICAgICB0aGlzLnRvZ2dsZUVkZ2VFZGl0TW9kZShlZGdlRWRpdFBhZ2UpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb24pO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRTZXNzaW9uQnlJZChzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2Vzc2lvbnMuZmluZEluZGV4KHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb24odGhpcy5zZXNzaW9uc1tpbmRleF0pO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb246IFNlc3Npb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uLnJlbmRlcmVyLmhpZGVDdXJzb3IoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5yZW5kZXJlci51cGRhdGVTZWxlY3Rpb24odGhpcy5zZWxlY3Rpb24ucmFuZ2UpO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uID0gc2Vzc2lvbjtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5yZW5kZXJlci5zaG93Q3Vyc29yKCk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24uc291cmNlLmVkZ2VFZGl0UGFnZSA9IHRoaXMuZWRnZUVkaXRpbmdQYWdlO1xuICAgIH1cblxuICAgIGdldFNlc3Npb24oc2Vzc2lvbklkOiBudW1iZXIpOiBFZGl0U2Vzc2lvbiB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbklkKTtcbiAgICAgICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gICAgfVxuXG4gICAgY2xlYXJBbGxTZXNzaW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXNzaW9ucy5mb3JFYWNoKHNlc3Npb24gPT4ge1xuICAgICAgICAgICAgc2Vzc2lvbi5zZXNzaW9uLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHNlc3Npb24ucmVuZGVyZXIuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXNzaW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRTZXNzaW9uVGFyZ2V0cygpOiBUYXJnZXRNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFyZ2V0cyh0aGlzLmN1cnJlbnRTZXNzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRUYXJnZXRzKHNlc3Npb246IFNlc3Npb25Nb2RlbCk6IFRhcmdldE1vZGVsW10ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFRhcmdldE1vZGVsW10gPSBbXTtcbiAgICAgICAgbGV0IHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB3aGlsZSAocGFyZW50U2Vzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2Vzc2lvbi5zb3VyY2UuZ2V0VGFyZ2V0KCk7XG4gICAgICAgICAgICByZXN1bHQuc3BsaWNlKDAsIDAsIHRhcmdldCk7XG4gICAgICAgICAgICBzZXNzaW9uID0gcGFyZW50U2Vzc2lvbjtcbiAgICAgICAgICAgIHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gcGFyZW50U2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0RWRnZVRhcmdldChzZXNzaW9uSWQ6IG51bWJlcik6IFRhcmdldE1vZGVsIHwgbnVsbCB7XG4gICAgICAgIGxldCBzZXNzaW9uID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIGxldCBwYXJlbnRTZXNzaW9uID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb24ucGFyZW50U2Vzc2lvbklkKTtcbiAgICAgICAgd2hpbGUgKHBhcmVudFNlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHNlc3Npb24uc291cmNlLmdldFRhcmdldCgpO1xuICAgICAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSBUYXJnZXRUeXBlLkVkZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXNzaW9uID0gcGFyZW50U2Vzc2lvbjtcbiAgICAgICAgICAgIHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gcGFyZW50U2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0VGFyZ2V0ZWRTZXNzaW9uKHRhcmdldHM6IFRhcmdldE1vZGVsW10pOiBFZGl0U2Vzc2lvbiB7XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm1haW5TZXNzaW9uLnNlc3Npb247XG4gICAgICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGFyZ2V0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFRhcmdldFR5cGUuRG9jdW1lbnQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVGFyZ2V0VHlwZS5UYWJsZUNlbGw6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFibGUgPSByZXN1bHQuY3VzdG9tQ29tcG9uZW50cy50YWJsZXMuZmluZCh4ID0+IHguaW5zdGFuY2UuY29udGVudC5pbnNlcnRJbmRleCA9PT0gdGFyZ2V0LnRhYmxlQ2VsbC5pbnNlcnRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRhYmxlLmluc3RhbmNlLmdldENlbGxTZXNzaW9uKHRhcmdldC50YWJsZUNlbGwucm93LCB0YXJnZXQudGFibGVDZWxsLmNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRhcmdldFR5cGUuRWRnZToge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlZGdlID0gcmVzdWx0LmN1c3RvbUNvbXBvbmVudHMuZWRnZXMuZ2V0Q29tcG9uZW50QnlQYWdlVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5lZGdlRGF0YS5wYWdlVHlwZSBhcyBQYWdlVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5lZGdlRGF0YS50eXBlIGFzIEVkZ2VUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVkZ2UuaW5zdGFuY2UuZWRnZVNlc3Npb24uc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgdG9nZ2xlRWRnZUVkaXRNb2RlKGVkZ2VFZGl0aW5nUGFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm1haW5TZXNzaW9uLnNlc3Npb24uY3VzdG9tQ29tcG9uZW50cy5lZGdlcyB8fCB0aGlzLmVkZ2VFZGl0aW5nUGFnZSA9PT0gZWRnZUVkaXRpbmdQYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkZ2VFZGl0aW5nUGFnZSA9IGVkZ2VFZGl0aW5nUGFnZTtcbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbi5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMuZWRnZXMudG9nZ2xlRWRpdE1vZGUoISF0aGlzLmVkZ2VFZGl0aW5nUGFnZSk7XG4gICAgICAgICh0aGlzLm1haW5TZXNzaW9uLnJlbmRlcmVyIGFzIFZpcnR1YWxSZW5kZXJlcikucmVuZGVyZXIudGV4dExheWVyLmVkZ2VFZGl0aW5nUGFnZVVwZGF0ZWQoZWRnZUVkaXRpbmdQYWdlKTtcbiAgICB9XG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVndWxhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZXhlY3V0aW9uL3JlZ3VsYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFB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QU8sT0FBTyxFQUFFLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRU8sNEJBQTRCLENBQUMsUUFBcUIsRUFBRSxPQUFvQjtRQUM1RSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLGNBQWMsS0FBSyxhQUFhLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5RSxPQUFPO1NBQ1Y7UUFDRCxJQUFJLGNBQWMsRUFBRTtZQUNoQixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzsrR0EzUlEsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENlbGxTZXNzaW9uU291cmNlTW9kZWwgfSBmcm9tICcuL3RhcmdldGluZy9jZWxsLXNlc3Npb24tc291cmNlLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDdXN0b21Db250ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2hhcmVkL3NlcnZpY2VzL2N1c3RvbS1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9FREdFX01BWF9IRUlHSFRfTVVMVElQTElFUiwgREVGQVVMVF9UT09MQkFSX1NUWUxFUyB9IGZyb20gJy4uL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBEaXNwbGF5RGF0YSB9IGZyb20gJy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2Rpc3BsYXktZGF0YSc7XG5pbXBvcnQgeyBEb2N1bWVudEluZm8gfSBmcm9tICcuLi9jb250ZW50L2NvbnN0YW50cy9kb2N1bWVudC1pbmZvLmNvbnN0JztcbmltcG9ydCB7IERvY3hNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZG9jeC5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvZWRnZXMnO1xuaW1wb3J0IHsgRWRnZVNlc3Npb25Tb3VyY2VNb2RlbCB9IGZyb20gJy4vdGFyZ2V0aW5nL2VkZ2Utc2Vzc2lvbi1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRWRnZVR5cGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL2VkZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IEdlbmVyYWxQcm9wZXJ0aWVzTW9kZWwgfSBmcm9tICcuLi9jb250ZW50L2Rpc3BsYXktZGF0YS9nZW5lcmFsLXByb3BlcnRpZXMubW9kZWwnO1xuaW1wb3J0IHsgSUN1c3RvbUNvbXBvbmVudHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3NoYXJlZC9jdXN0b20tY29tcG9uZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWFpblNlc3Npb25Tb3VyY2VNb2RlbCB9IGZyb20gJy4vdGFyZ2V0aW5nL21haW4tc2Vzc2lvbi1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgTWFyZ2luTW9kZWwgfSBmcm9tICcuLi9jb250ZW50L21hcmdpbi5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlckVkZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL2VkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVyVGFibGVDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9wYWdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZW5kZXJlciB9IGZyb20gJy4uL2Rpc3BsYXkvcmVuZGVyZXInO1xuaW1wb3J0IHsgU2NhbGluZ0hlbHBlciB9IGZyb20gJy4uL2NvbnRlbnQvaGVscGVycy9zY2FsaW5nLmhlbHBlcic7XG5pbXBvcnQgeyBTY3JvbGxCYXIgfSBmcm9tICcuLi9nYWRnZXRzL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuLi9wb3NpdGlvbmluZy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgU2Vzc2lvbk1vZGVsIH0gZnJvbSAnLi90YXJnZXRpbmcvc2Vzc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tICcuLi9vcGVyYXRpb25zL2VudW1zL3RhcmdldC10eXBlLmVudW0nO1xuaW1wb3J0IHsgVmlydHVhbFJlbmRlcmVyIH0gZnJvbSAnLi4vZGlzcGxheS92aXJ0dWFsLnJlbmRlcmVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZ3VsYXRvclNlcnZpY2Uge1xuICAgIG1haW5TZXNzaW9uOiBTZXNzaW9uTW9kZWw7XG5cbiAgICBzZXNzaW9uczogU2Vzc2lvbk1vZGVsW10gPSBbXTtcblxuICAgIGN1cnJlbnRTZXNzaW9uOiBTZXNzaW9uTW9kZWw7XG5cbiAgICBzZWxlY3Rpb246IFNlbGVjdGlvbjtcblxuICAgIHNlc3Npb25JZEluY3JlbWVudCA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21Db250ZW50U2VydmljZTogQ3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgYWRkTWFpblNlc3Npb24obW9kZWw6IERvY3hNb2RlbCwgcGFnZVdpZHRoOiBudW1iZXIsIHNjYWxpbmdSYXRpbzogbnVtYmVyLCBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZCA9ICsrdGhpcy5zZXNzaW9uSWRJbmNyZW1lbnQ7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBuZXcgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCh7XG4gICAgICAgICAgICBudW1iZXJpbmdzOiBtb2RlbC5udW1iZXJpbmdzLFxuICAgICAgICAgICAgZGVmYXVsdFRhYldpZHRoOiBTY2FsaW5nSGVscGVyLnNjYWxlKG1vZGVsLmRlZmF1bHRUYWJXaWR0aCwgc2NhbGluZ1JhdGlvKSxcbiAgICAgICAgICAgIG1heEVkZ2VIZWlnaHQ6IG1vZGVsLnBhZ2VIZWlnaHQgKiBERUZBVUxUX0VER0VfTUFYX0hFSUdIVF9NVUxUSVBMSUVSLFxuICAgICAgICAgICAgc2NhbGluZ1JhdGlvLFxuICAgICAgICAgICAgbnVtYmVyaW5nSW5mbzoge31cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHBhZ2VNYXJnaW4gPSBuZXcgTWFyZ2luTW9kZWwoe1xuICAgICAgICAgICAgbGVmdDogU2NhbGluZ0hlbHBlci5zY2FsZShtb2RlbC5tYXJnaW5MZWZ0LCBzY2FsaW5nUmF0aW8pLFxuICAgICAgICAgICAgcmlnaHQ6IFNjYWxpbmdIZWxwZXIuc2NhbGUobW9kZWwubWFyZ2luUmlnaHQsIHNjYWxpbmdSYXRpbyksXG4gICAgICAgICAgICB0b3A6IG1vZGVsLm1hcmdpblRvcCA+IDAgPyBtb2RlbC5tYXJnaW5Ub3AgOiAwLFxuICAgICAgICAgICAgYm90dG9tOiBtb2RlbC5tYXJnaW5Cb3R0b20gPiAwID8gbW9kZWwubWFyZ2luQm90dG9tIDogMCxcbiAgICAgICAgICAgIGhlYWRlcjogbW9kZWwubWFyZ2luSGVhZGVyID4gMCA/IG1vZGVsLm1hcmdpbkhlYWRlciA6IDAsXG4gICAgICAgICAgICBmb290ZXI6IG1vZGVsLm1hcmdpbkZvb3RlciA+IDAgPyBtb2RlbC5tYXJnaW5Gb290ZXIgOiAwXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlZGdlc01hcmdpbnMgPSBuZXcgTWFyZ2luTW9kZWwoeyAuLi5wYWdlTWFyZ2luLCB0b3A6IHBhZ2VNYXJnaW4uaGVhZGVyLCBib3R0b206IHBhZ2VNYXJnaW4uZm9vdGVyIH0pO1xuICAgICAgICBjb25zdCBlZGdlcyA9IG5ldyBFZGdlcyh0aGlzLmNvbXBvbmVudFNlcnZpY2UsIG1vZGVsLmhlYWRlcnMsIG1vZGVsLmZvb3RlcnMsIGVkZ2VzTWFyZ2lucywgcGFnZVdpZHRoLCBzZXNzaW9uSWQsIHByb3BlcnRpZXMpO1xuICAgICAgICBwcm9wZXJ0aWVzLm51bWJlcmluZ0luZm8gPSB7fTtcbiAgICAgICAgY29uc3QgY3VzdG9tQ29tcG9uZW50cyA9IHsgaW1hZ2VzOiBbXSwgdGFibGVzOiBbXSwgdGFiczogW10sIGN1c3RvbUVsZW1lbnRzOiBbXSwgZWRnZXM6IGVkZ2VzIH0gYXMgSUN1c3RvbUNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlEYXRhID0gbmV3IERpc3BsYXlEYXRhKFxuICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgcGFnZU1hcmdpbixcbiAgICAgICAgICAgIERvY3VtZW50SW5mby5wYWdlc1NwYWNlLFxuICAgICAgICAgICAgcGFnZVdpZHRoLFxuICAgICAgICAgICAgbW9kZWwucGFnZUhlaWdodCxcbiAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNjcm9sbEJhciA9IG5ldyBTY3JvbGxCYXIoY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1haW5TZXNzaW9uID0gbmV3IEVkaXRTZXNzaW9uKFxuICAgICAgICAgICAgZGlzcGxheURhdGEsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbixcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgJ21haW4nLFxuICAgICAgICAgICAgc2Nyb2xsQmFyXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxSZW5kZXJlciA9IG5ldyBWaXJ0dWFsUmVuZGVyZXIoY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIG1haW5TZXNzaW9uLCBzY3JvbGxCYXIpO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc3R5bGVzID0gREVGQVVMVF9UT09MQkFSX1NUWUxFUygpO1xuICAgICAgICB0aGlzLm1haW5TZXNzaW9uID0gbmV3IFNlc3Npb25Nb2RlbChtYWluU2Vzc2lvbiwgdmlydHVhbFJlbmRlcmVyLCBzZXNzaW9uSWQsIG51bGwsIG5ldyBNYWluU2Vzc2lvblNvdXJjZU1vZGVsKCkpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnB1c2godGhpcy5tYWluU2Vzc2lvbik7XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24gPSB0aGlzLm1haW5TZXNzaW9uO1xuICAgICAgICBkaXNwbGF5RGF0YS51cGRhdGVOZXh0TGluZUluZGV4ZXMoMCwgZGlzcGxheURhdGEucGFyYWdyYXBocy5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICBhZGRDZWxsU2Vzc2lvbihcbiAgICAgICAgdGFibGU6IFRhYmxlTW9kZWwsXG4gICAgICAgIG1hcmdpbnM6IE1hcmdpbk1vZGVsLFxuICAgICAgICBjb21wb25lbnQ6IE5vZGVyVGFibGVDZWxsQ29tcG9uZW50LFxuICAgICAgICBwcm9wZXJ0aWVzOiBHZW5lcmFsUHJvcGVydGllc01vZGVsXG4gICAgKTogU2Vzc2lvbk1vZGVsIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gKyt0aGlzLnNlc3Npb25JZEluY3JlbWVudDtcbiAgICAgICAgY29uc3QgY3VzdG9tQ29tcG9uZW50cyA9IHsgaW1hZ2VzOiBbXSwgdGFibGVzOiBbXSwgdGFiczogW10sIGN1c3RvbUVsZW1lbnRzOiBbXSwgZWRnZXM6IG51bGwgfSBhcyBJQ3VzdG9tQ29tcG9uZW50cztcbiAgICAgICAgY29uc3QgZGlzcGxheURhdGEgPSBuZXcgRGlzcGxheURhdGEoXG4gICAgICAgICAgICBjb21wb25lbnQuY2VsbCxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICBtYXJnaW5zLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGNvbXBvbmVudC53aWR0aCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZXNzaW9uVHlwZSA9IHRoaXMuaXNXaXRoaW5FZGdlKGNvbXBvbmVudC5wYXJlbnRTZXNzaW9uSWQpID8gJ2NlbGxXaXRoaW5FZGdlJyA6ICdjZWxsJztcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbihcbiAgICAgICAgICAgIGRpc3BsYXlEYXRhLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIGNvbXBvbmVudC5jZWxsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgIHNlc3Npb25UeXBlXG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXlEYXRhLmNvbnRlbnRXaWR0aCA9IGRpc3BsYXlEYXRhLmNvbnRlbnRXaWR0aCA9PT0gMCA/IDEgOiBkaXNwbGF5RGF0YS5jb250ZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IFJlbmRlcmVyKGNvbXBvbmVudC5jb250YWluZXIubmF0aXZlRWxlbWVudCwgc2Vzc2lvbik7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBDZWxsU2Vzc2lvblNvdXJjZU1vZGVsKHRhYmxlLCBjb21wb25lbnQpO1xuICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gbmV3IFNlc3Npb25Nb2RlbChzZXNzaW9uLCByZW5kZXJlciwgc2Vzc2lvbklkLCBjb21wb25lbnQucGFyZW50U2Vzc2lvbklkLCBzb3VyY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnB1c2gobmV3U2Vzc2lvbik7XG4gICAgICAgIGRpc3BsYXlEYXRhLnVwZGF0ZU5leHRMaW5lSW5kZXhlcygwLCBkaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDEpO1xuICAgICAgICBuZXdTZXNzaW9uLnJlbmRlcmVyLnVwZGF0ZVRleHQoKTtcbiAgICAgICAgcmV0dXJuIG5ld1Nlc3Npb247XG4gICAgfVxuXG4gICAgYWRkRWRnZVNlc3Npb24oY29tcG9uZW50OiBOb2RlckVkZ2VDb21wb25lbnQpOiBTZXNzaW9uTW9kZWwge1xuICAgICAgICBjb25zdCBzZXNzaW9uSWQgPSArK3RoaXMuc2Vzc2lvbklkSW5jcmVtZW50O1xuICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnRzID0geyBpbWFnZXM6IFtdLCB0YWJsZXM6IFtdLCB0YWJzOiBbXSwgY3VzdG9tRWxlbWVudHM6IFtdLCBlZGdlczogbnVsbCB9IGFzIElDdXN0b21Db21wb25lbnRzO1xuICAgICAgICBjb25zdCBkaXNwbGF5RGF0YSA9IG5ldyBEaXNwbGF5RGF0YShcbiAgICAgICAgICAgIGNvbXBvbmVudC5tb2RlbCxcbiAgICAgICAgICAgIGNvbXBvbmVudC5nZW5lcmFsUHJvcGVydGllcyxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIGNvbXBvbmVudC5tYXJnaW5zLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGNvbXBvbmVudC53aWR0aCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IEVkaXRTZXNzaW9uKFxuICAgICAgICAgICAgZGlzcGxheURhdGEsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgY29tcG9uZW50Lm1vZGVsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBjb21wb25lbnQuZ2VuZXJhbFByb3BlcnRpZXMsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgJ2VkZ2UnXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IFJlbmRlcmVyKGNvbXBvbmVudC5jb250YWluZXIubmF0aXZlRWxlbWVudCwgc2Vzc2lvbik7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBFZGdlU2Vzc2lvblNvdXJjZU1vZGVsKGNvbXBvbmVudC5tb2RlbC5wYWdlVHlwZSBhcyBQYWdlVHlwZSwgY29tcG9uZW50LnR5cGUpO1xuICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gbmV3IFNlc3Npb25Nb2RlbChzZXNzaW9uLCByZW5kZXJlciwgc2Vzc2lvbklkLCBjb21wb25lbnQucGFyZW50U2Vzc2lvbklkLCBzb3VyY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnB1c2gobmV3U2Vzc2lvbik7XG4gICAgICAgIGRpc3BsYXlEYXRhLnVwZGF0ZU5leHRMaW5lSW5kZXhlcygwLCBkaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDEpO1xuICAgICAgICBuZXdTZXNzaW9uLnJlbmRlcmVyLnVwZGF0ZVRleHQoKTtcbiAgICAgICAgcmV0dXJuIG5ld1Nlc3Npb247XG4gICAgfVxuXG4gICAgcmVtb3ZlU2Vzc2lvbihzZXNzaW9uSWQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2Vzc2lvbnMuZmluZEluZGV4KHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnNbaW5kZXhdLnNlc3Npb24uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnNlc3Npb25zW2luZGV4XS5yZW5kZXJlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBzZXRNYWluU2Vzc2lvbkFzQ3VycmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWFpblNlc3Npb24uc2Vzc2lvbklkID09PSB0aGlzLmN1cnJlbnRTZXNzaW9uLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb24odGhpcy5tYWluU2Vzc2lvbik7XG4gICAgfVxuXG4gICAgc2V0Q3VzdG9tU2Vzc2lvbkFzQ3VycmVudChzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoc2Vzc2lvbklkID09PSB0aGlzLmN1cnJlbnRTZXNzaW9uLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb25CeUlkKHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgc2V0VGFyZ2V0ZWRTZXNzaW9uQXNDdXJyZW50KHRhcmdldHM6IFRhcmdldE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ZWRTZXNzaW9uID0gdGhpcy5nZXRUYXJnZXRlZFNlc3Npb24odGFyZ2V0cyk7XG4gICAgICAgIGlmICh0YXJnZXRlZFNlc3Npb24uc2Vzc2lvbklkID09PSB0aGlzLmN1cnJlbnRTZXNzaW9uLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gdGFyZ2V0ZWRTZXNzaW9uLnNlc3Npb25JZCk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb24oc2Vzc2lvbik7XG4gICAgfVxuXG4gICAgc2V0Q3VycmVudFNlc3Npb25CeUlkKHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZXNzaW9ucy5maW5kSW5kZXgoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbklkKTtcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50U2Vzc2lvbih0aGlzLnNlc3Npb25zW2luZGV4XSk7XG4gICAgfVxuXG4gICAgc2V0Q3VycmVudFNlc3Npb24oc2Vzc2lvbjogU2Vzc2lvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5jdXJyZW50U2Vzc2lvbjtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5yZW5kZXJlci5oaWRlQ3Vyc29yKCk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24ucmVuZGVyZXIudXBkYXRlU2VsZWN0aW9uKHRoaXMuc2VsZWN0aW9uLnJhbmdlKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbiA9IHNlc3Npb247XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24ucmVuZGVyZXIuc2hvd0N1cnNvcigpO1xuICAgICAgICB0aGlzLmFycmFuZ2VFZGdlc0ZvclNlc3Npb25DaGFuZ2UocHJldmlvdXMuc2Vzc2lvbiwgc2Vzc2lvbi5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRTZXNzaW9uTW9kZWwoc2Vzc2lvbklkOiBudW1iZXIpOiBTZXNzaW9uTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgZ2V0U2Vzc2lvbihzZXNzaW9uSWQ6IG51bWJlcik6IEVkaXRTZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2Vzc2lvbk1vZGVsKHNlc3Npb25JZCkuc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gICAgfVxuXG4gICAgY2xlYXJBbGxTZXNzaW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXNzaW9ucy5mb3JFYWNoKHNlc3Npb24gPT4ge1xuICAgICAgICAgICAgc2Vzc2lvbi5zZXNzaW9uLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHNlc3Npb24ucmVuZGVyZXIuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXNzaW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRTZXNzaW9uVGFyZ2V0cygpOiBUYXJnZXRNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFyZ2V0cyh0aGlzLmN1cnJlbnRTZXNzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRUYXJnZXRzKHNlc3Npb246IFNlc3Npb25Nb2RlbCk6IFRhcmdldE1vZGVsW10ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFRhcmdldE1vZGVsW10gPSBbXTtcbiAgICAgICAgbGV0IHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB3aGlsZSAocGFyZW50U2Vzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2Vzc2lvbi5zb3VyY2UuZ2V0VGFyZ2V0KCk7XG4gICAgICAgICAgICByZXN1bHQuc3BsaWNlKDAsIDAsIHRhcmdldCk7XG4gICAgICAgICAgICBzZXNzaW9uID0gcGFyZW50U2Vzc2lvbjtcbiAgICAgICAgICAgIHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gcGFyZW50U2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0VGFyZ2V0ZWRTZXNzaW9uKHRhcmdldHM6IFRhcmdldE1vZGVsW10pOiBFZGl0U2Vzc2lvbiB7XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm1haW5TZXNzaW9uLnNlc3Npb247XG4gICAgICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGFyZ2V0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFRhcmdldFR5cGUuRG9jdW1lbnQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVGFyZ2V0VHlwZS5UYWJsZUNlbGw6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFibGUgPSByZXN1bHQuY3VzdG9tQ29tcG9uZW50cy50YWJsZXMuZmluZCh4ID0+IHguaW5zdGFuY2UuY29udGVudC5pbnNlcnRJbmRleCA9PT0gdGFyZ2V0LnRhYmxlQ2VsbC5pbnNlcnRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRhYmxlLmluc3RhbmNlLmdldENlbGxTZXNzaW9uKHRhcmdldC50YWJsZUNlbGwucm93LCB0YXJnZXQudGFibGVDZWxsLmNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRhcmdldFR5cGUuRWRnZToge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlZGdlID0gcmVzdWx0LmN1c3RvbUNvbXBvbmVudHMuZWRnZXMuZ2V0Q29tcG9uZW50QnlQYWdlVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5lZGdlRGF0YS5wYWdlVHlwZSBhcyBQYWdlVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5lZGdlRGF0YS50eXBlIGFzIEVkZ2VUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVkZ2UuaW5zdGFuY2UuZWRnZVNlc3Npb24uc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaXNXaXRoaW5FZGdlKHNlc3Npb25JZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZ2V0RWRnZVNlc3Npb25JZChzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIGFycmFuZ2VFZGdlQ2hhbmdlKHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVkZ2VTZXNzaW9uSWQgPSB0aGlzLmdldEVkZ2VTZXNzaW9uSWQoc2Vzc2lvbklkKTtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwYWdlVHlwZSB9ID0gdGhpcy5tYWluU2Vzc2lvbi5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMuZWRnZXMuZ2V0VHlwZUJ5U2Vzc2lvbklkKGVkZ2VTZXNzaW9uSWQpO1xuICAgICAgICAodGhpcy5tYWluU2Vzc2lvbi5yZW5kZXJlciBhcyBWaXJ0dWFsUmVuZGVyZXIpLnJlbmRlcmVyLnRleHRMYXllci51cGRhdGVFZGdlKHR5cGUsIHBhZ2VUeXBlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVkZ2VTZXNzaW9uSWQoc2Vzc2lvbklkOiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgbGV0IHNlc3Npb24gPSB0aGlzLmdldFNlc3Npb24oc2Vzc2lvbklkKTtcbiAgICAgICAgd2hpbGUgKHNlc3Npb24gJiYgIXNlc3Npb24uaXNFZGdlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb24uc2Vzc2lvbklkKTtcbiAgICAgICAgICAgIHNlc3Npb24gPSBtb2RlbC5wYXJlbnRTZXNzaW9uSWQgPyB0aGlzLmdldFNlc3Npb24obW9kZWwucGFyZW50U2Vzc2lvbklkKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlc3Npb24/LnNlc3Npb25JZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFycmFuZ2VFZGdlc0ZvclNlc3Npb25DaGFuZ2UocHJldmlvdXM6IEVkaXRTZXNzaW9uLCBjdXJyZW50OiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBpc1ByZXZpb3VzRWRnZSA9IHByZXZpb3VzLmlzRWRnZU9yV2l0aGluRWRnZSgpO1xuICAgICAgICBjb25zdCBpc0N1cnJlbnRFZGdlID0gY3VycmVudC5pc0VkZ2VPcldpdGhpbkVkZ2UoKTtcbiAgICAgICAgaWYgKGlzUHJldmlvdXNFZGdlICE9PSBpc0N1cnJlbnRFZGdlKSB7XG4gICAgICAgICAgICB0aGlzLm1haW5TZXNzaW9uLnNlc3Npb24uY3VzdG9tQ29tcG9uZW50cy5lZGdlcy50b2dnbGVFZGl0TW9kZShpc0N1cnJlbnRFZGdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNQcmV2aW91c0VkZ2UpIHtcbiAgICAgICAgICAgIHByZXZpb3VzLm9uUmVuZGVyZWQoKTtcbiAgICAgICAgICAgIGN1cnJlbnQub25SZW5kZXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -5,7 +5,6 @@ export class CellSessionSourceModel {
5
5
  constructor(table, cellComponent) {
6
6
  this.table = table;
7
7
  this.cellComponent = cellComponent;
8
- this.edgeEditPage = null;
9
8
  }
10
9
  getTarget() {
11
10
  const tableCell = new TableCellModel({
@@ -13,7 +12,7 @@ export class CellSessionSourceModel {
13
12
  row: this.cellComponent.rowIndex,
14
13
  column: this.cellComponent.cellIndex
15
14
  });
16
- return new TargetModel({ type: TargetType.TableCell, tableCell, edgeEditPage: this.edgeEditPage });
15
+ return new TargetModel({ type: TargetType.TableCell, tableCell });
17
16
  }
18
17
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1zZXNzaW9uLXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vdGFyZ2V0aW5nL2NlbGwtc2Vzc2lvbi1zb3VyY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUFvQixLQUFpQixFQUFVLGFBQXNDO1FBQWpFLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7UUFEckYsaUJBQVksR0FBWSxJQUFJLENBQUM7SUFDMkQsQ0FBQztJQUVsRixTQUFTO1FBQ1osTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUM7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztZQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZXJUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi9zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZUNlbGxNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFibGUtY2VsbC5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL2VudW1zL3RhcmdldC10eXBlLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgQ2VsbFNlc3Npb25Tb3VyY2VNb2RlbCBpbXBsZW1lbnRzIFNlc3Npb25Tb3VyY2VNb2RlbCB7XG4gICAgZWRnZUVkaXRQYWdlPzogbnVtYmVyID0gbnVsbDtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhYmxlOiBUYWJsZU1vZGVsLCBwcml2YXRlIGNlbGxDb21wb25lbnQ6IE5vZGVyVGFibGVDZWxsQ29tcG9uZW50KSB7fVxuXG4gICAgcHVibGljIGdldFRhcmdldCgpOiBUYXJnZXRNb2RlbCB7XG4gICAgICAgIGNvbnN0IHRhYmxlQ2VsbCA9IG5ldyBUYWJsZUNlbGxNb2RlbCh7XG4gICAgICAgICAgICBpbnNlcnRJbmRleDogdGhpcy50YWJsZS5pbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHJvdzogdGhpcy5jZWxsQ29tcG9uZW50LnJvd0luZGV4LFxuICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNlbGxDb21wb25lbnQuY2VsbEluZGV4XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFRhcmdldE1vZGVsKHsgdHlwZTogVGFyZ2V0VHlwZS5UYWJsZUNlbGwsIHRhYmxlQ2VsbCwgZWRnZUVkaXRQYWdlOiB0aGlzLmVkZ2VFZGl0UGFnZSB9KTtcbiAgICB9XG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1zZXNzaW9uLXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vdGFyZ2V0aW5nL2NlbGwtc2Vzc2lvbi1zb3VyY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixZQUFvQixLQUFpQixFQUFVLGFBQXNDO1FBQWpFLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBeUI7SUFBRyxDQUFDO0lBRWxGLFNBQVM7UUFDWixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQztZQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztTQUN2QyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXNzaW9uU291cmNlTW9kZWwgfSBmcm9tICcuL3Nlc3Npb24tc291cmNlLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlQ2VsbE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS1jZWxsLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYmxlLm1vZGVsJztcbmltcG9ydCB7IFRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwnO1xuaW1wb3J0IHsgVGFyZ2V0VHlwZSB9IGZyb20gJy4uLy4uL29wZXJhdGlvbnMvZW51bXMvdGFyZ2V0LXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBDZWxsU2Vzc2lvblNvdXJjZU1vZGVsIGltcGxlbWVudHMgU2Vzc2lvblNvdXJjZU1vZGVsIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhYmxlOiBUYWJsZU1vZGVsLCBwcml2YXRlIGNlbGxDb21wb25lbnQ6IE5vZGVyVGFibGVDZWxsQ29tcG9uZW50KSB7fVxuXG4gICAgcHVibGljIGdldFRhcmdldCgpOiBUYXJnZXRNb2RlbCB7XG4gICAgICAgIGNvbnN0IHRhYmxlQ2VsbCA9IG5ldyBUYWJsZUNlbGxNb2RlbCh7XG4gICAgICAgICAgICBpbnNlcnRJbmRleDogdGhpcy50YWJsZS5pbnNlcnRJbmRleCxcbiAgICAgICAgICAgIHJvdzogdGhpcy5jZWxsQ29tcG9uZW50LnJvd0luZGV4LFxuICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNlbGxDb21wb25lbnQuY2VsbEluZGV4XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFRhcmdldE1vZGVsKHsgdHlwZTogVGFyZ2V0VHlwZS5UYWJsZUNlbGwsIHRhYmxlQ2VsbCB9KTtcbiAgICB9XG59XG4iXX0=
@@ -5,11 +5,10 @@ export class EdgeSessionSourceModel {
5
5
  constructor(pageType, type) {
6
6
  this.pageType = pageType;
7
7
  this.type = type;
8
- this.edgeEditPage = null;
9
8
  }
10
9
  getTarget() {
11
10
  const edgeData = new EdgeTargetModel({ pageType: this.pageType, type: this.type });
12
- return new TargetModel({ type: TargetType.Edge, edgeData, edgeEditPage: this.edgeEditPage });
11
+ return new TargetModel({ type: TargetType.Edge, edgeData });
13
12
  }
14
13
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1zZXNzaW9uLXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vdGFyZ2V0aW5nL2VkZ2Utc2Vzc2lvbi1zb3VyY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUFvQixRQUFrQixFQUFVLElBQWM7UUFBMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVU7UUFEOUQsaUJBQVksR0FBWSxJQUFJLENBQUM7SUFDb0MsQ0FBQztJQUMzRCxTQUFTO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRnZVRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9lZGdlLXRhcmdldC5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlVHlwZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZWRnZXMvZWRnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUGFnZVR5cGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2VkZ2VzL3BhZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IFNlc3Npb25Tb3VyY2VNb2RlbCB9IGZyb20gJy4vc2Vzc2lvbi1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgVGFyZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhcmdldC5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRUeXBlIH0gZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9lbnVtcy90YXJnZXQtdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIEVkZ2VTZXNzaW9uU291cmNlTW9kZWwgaW1wbGVtZW50cyBTZXNzaW9uU291cmNlTW9kZWwge1xuICAgIGVkZ2VFZGl0UGFnZT86IG51bWJlciA9IG51bGw7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlVHlwZTogUGFnZVR5cGUsIHByaXZhdGUgdHlwZTogRWRnZVR5cGUpIHt9XG4gICAgcHVibGljIGdldFRhcmdldCgpOiBUYXJnZXRNb2RlbCB7XG4gICAgICAgIGNvbnN0IGVkZ2VEYXRhID0gbmV3IEVkZ2VUYXJnZXRNb2RlbCh7IHBhZ2VUeXBlOiB0aGlzLnBhZ2VUeXBlLCB0eXBlOiB0aGlzLnR5cGUgfSk7XG4gICAgICAgIHJldHVybiBuZXcgVGFyZ2V0TW9kZWwoeyB0eXBlOiBUYXJnZXRUeXBlLkVkZ2UsIGVkZ2VEYXRhLCBlZGdlRWRpdFBhZ2U6IHRoaXMuZWRnZUVkaXRQYWdlIH0pO1xuICAgIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1zZXNzaW9uLXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vdGFyZ2V0aW5nL2VkZ2Utc2Vzc2lvbi1zb3VyY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixZQUFvQixRQUFrQixFQUFVLElBQWM7UUFBMUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVU7SUFBRyxDQUFDO0lBQzNELFNBQVM7UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRixPQUFPLElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGdlVGFyZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VkZ2UtdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IEVkZ2VUeXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQYWdlVHlwZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZWRnZXMvcGFnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi9zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL2VudW1zL3RhcmdldC10eXBlLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgRWRnZVNlc3Npb25Tb3VyY2VNb2RlbCBpbXBsZW1lbnRzIFNlc3Npb25Tb3VyY2VNb2RlbCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwYWdlVHlwZTogUGFnZVR5cGUsIHByaXZhdGUgdHlwZTogRWRnZVR5cGUpIHt9XG4gICAgcHVibGljIGdldFRhcmdldCgpOiBUYXJnZXRNb2RlbCB7XG4gICAgICAgIGNvbnN0IGVkZ2VEYXRhID0gbmV3IEVkZ2VUYXJnZXRNb2RlbCh7IHBhZ2VUeXBlOiB0aGlzLnBhZ2VUeXBlLCB0eXBlOiB0aGlzLnR5cGUgfSk7XG4gICAgICAgIHJldHVybiBuZXcgVGFyZ2V0TW9kZWwoeyB0eXBlOiBUYXJnZXRUeXBlLkVkZ2UsIGVkZ2VEYXRhIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,7 +2,7 @@ import { TargetModel } from '../../../models/generated/target.model';
2
2
  import { TargetType } from '../../operations/enums/target-type.enum';
3
3
  export class MainSessionSourceModel {
4
4
  getTarget() {
5
- return new TargetModel({ type: TargetType.Document, edgeEditPage: null });
5
+ return new TargetModel({ type: TargetType.Document });
6
6
  }
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1zZXNzaW9uLXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vdGFyZ2V0aW5nL21haW4tc2Vzc2lvbi1zb3VyY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLFNBQVM7UUFDWixPQUFPLElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi9zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9vcGVyYXRpb25zL2VudW1zL3RhcmdldC10eXBlLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgTWFpblNlc3Npb25Tb3VyY2VNb2RlbCBpbXBsZW1lbnRzIFNlc3Npb25Tb3VyY2VNb2RlbCB7XG4gICAgcHVibGljIGdldFRhcmdldCgpOiBUYXJnZXRNb2RlbCB7XG4gICAgICAgIHJldHVybiBuZXcgVGFyZ2V0TW9kZWwoeyB0eXBlOiBUYXJnZXRUeXBlLkRvY3VtZW50LCBlZGdlRWRpdFBhZ2U6IG51bGwgfSk7XG4gICAgfVxufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1zZXNzaW9uLXNvdXJjZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9leGVjdXRpb24vdGFyZ2V0aW5nL21haW4tc2Vzc2lvbi1zb3VyY2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLFNBQVM7UUFDWixPQUFPLElBQUksV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlc3Npb25Tb3VyY2VNb2RlbCB9IGZyb20gJy4vc2Vzc2lvbi1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgVGFyZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhcmdldC5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRUeXBlIH0gZnJvbSAnLi4vLi4vb3BlcmF0aW9ucy9lbnVtcy90YXJnZXQtdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIE1haW5TZXNzaW9uU291cmNlTW9kZWwgaW1wbGVtZW50cyBTZXNzaW9uU291cmNlTW9kZWwge1xuICAgIHB1YmxpYyBnZXRUYXJnZXQoKTogVGFyZ2V0TW9kZWwge1xuICAgICAgICByZXR1cm4gbmV3IFRhcmdldE1vZGVsKHsgdHlwZTogVGFyZ2V0VHlwZS5Eb2N1bWVudCB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class SessionSourceModel {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZXhlY3V0aW9uL3RhcmdldGluZy9zZXNzaW9uLXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLGtCQUFrQjtDQUd2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2Vzc2lvblNvdXJjZU1vZGVsIHtcbiAgICBlZGdlRWRpdFBhZ2U/OiBudW1iZXI7XG4gICAgYWJzdHJhY3QgZ2V0VGFyZ2V0KCk6IFRhcmdldE1vZGVsO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZXhlY3V0aW9uL3RhcmdldGluZy9zZXNzaW9uLXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLGtCQUFrQjtDQUV2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2Vzc2lvblNvdXJjZU1vZGVsIHtcbiAgICBhYnN0cmFjdCBnZXRUYXJnZXQoKTogVGFyZ2V0TW9kZWw7XG59XG4iXX0=