ag-studio-angular 1.0.1 → 1.1.0

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.
@@ -4,12 +4,16 @@
4
4
  import { Component, EventEmitter, Input, Output, ViewEncapsulation, booleanAttribute, } from '@angular/core';
5
5
  import { _BOOLEAN_MIXED_STUDIO_PROPERTIES, _combineAttributesAndStudioProperties, _createStudio, _processPropertyChanges, } from 'ag-studio';
6
6
  // @END_IMPORTS@
7
+ import { AngularFrameworkComponentWrapper } from './angularFrameworkComponentWrapper';
7
8
  import { AngularFrameworkOverrides } from './angularFrameworkOverrides';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "./angularFrameworkOverrides";
11
+ import * as i2 from "./angularFrameworkComponentWrapper";
10
12
  export class AgStudio {
11
- constructor(elementDef, _angularFrameworkOverrides) {
13
+ constructor(elementDef, _viewContainerRef, _angularFrameworkOverrides, _frameworkCompWrapper) {
14
+ this._viewContainerRef = _viewContainerRef;
12
15
  this._angularFrameworkOverrides = _angularFrameworkOverrides;
16
+ this._frameworkCompWrapper = _frameworkCompWrapper;
13
17
  this._initialised = false;
14
18
  this._destroyed = false;
15
19
  // in order to ensure firing of apiReady is deterministic
@@ -121,12 +125,26 @@ export class AgStudio {
121
125
  * @initial
122
126
  */
123
127
  this.ai = undefined;
124
- /** Overrides for the layout and widget configs.
128
+ /** Data-layer configuration. Controls behaviours such as export row limits.
129
+ */
130
+ this.dataOptions = undefined;
131
+ /** @deprecated v1.1 Use `widgets` to customise the widget configurations and available widgets,
132
+ * and `page` to customise the page setup form.
133
+ *
134
+ * Overrides for the layout and widget configs.
125
135
  */
126
136
  this.overrides = undefined;
127
137
  /** Configure which panels are displayed and on which side.
128
138
  */
129
139
  this.panels = undefined;
140
+ /** Configure page (e.g. page setup form in page tab of edit panel).
141
+ */
142
+ this.page = undefined;
143
+ this.widgets = undefined;
144
+ /** Custom components (e.g. custom widget components) keyed by ID.
145
+ * Used to share components which can then be referenced directly by key in the definitions.
146
+ */
147
+ this.components = undefined;
130
148
  /** State has been updated.
131
149
  */
132
150
  this.stateUpdated = new EventEmitter();
@@ -150,6 +168,7 @@ export class AgStudio {
150
168
  ngAfterViewInit() {
151
169
  // Run the setup outside of angular so all the event handlers that are created do not trigger change detection
152
170
  this._angularFrameworkOverrides.runOutsideAngular(() => {
171
+ this._frameworkCompWrapper.setViewContainerRef(this._viewContainerRef, this._angularFrameworkOverrides);
153
172
  // Get all the inputs that are valid AgStudioProperties
154
173
  const studioPropertiesKeys = Object.keys(this).filter((key) => !(key.startsWith('_') ||
155
174
  key == 'studioProperties' ||
@@ -166,6 +185,9 @@ export class AgStudio {
166
185
  frameworkOverrides: this._angularFrameworkOverrides,
167
186
  setThemeOnRootDiv: true,
168
187
  modules: this.modules,
188
+ providedBeanInstances: {
189
+ frameworkCompWrapper: this._frameworkCompWrapper,
190
+ },
169
191
  };
170
192
  const api = _createStudio(this._nativeElement, mergedStudioProperties, studioParams);
171
193
  if (api) {
@@ -232,8 +254,8 @@ export class AgStudio {
232
254
  }
233
255
  }
234
256
  }
235
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgStudio, deps: [{ token: i0.ElementRef }, { token: i1.AngularFrameworkOverrides }], target: i0.ɵɵFactoryTarget.Component }); }
236
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: AgStudio, isStandalone: true, selector: "ag-studio", inputs: { studioProperties: "studioProperties", modules: "modules", tabIndex: "tabIndex", enableRtl: ["enableRtl", "enableRtl", booleanAttribute], popupParent: "popupParent", theme: "theme", loadThemeGoogleFonts: ["loadThemeGoogleFonts", "loadThemeGoogleFonts", booleanAttribute], themeCssLayer: "themeCssLayer", styleNonce: "styleNonce", themeStyleContainer: "themeStyleContainer", getDocument: "getDocument", suppressTouch: ["suppressTouch", "suppressTouch", booleanAttribute], localeText: "localeText", getLocaleText: "getLocaleText", studioId: "studioId", context: "context", initialState: "initialState", data: "data", mode: "mode", layout: "layout", ai: "ai", overrides: "overrides", panels: "panels" }, outputs: { stateUpdated: "stateUpdated", apiReady: "apiReady", studioReady: "studioReady", errorRaised: "errorRaised" }, providers: [AngularFrameworkOverrides], usesOnChanges: true, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgStudio, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.AngularFrameworkOverrides }, { token: i2.AngularFrameworkComponentWrapper }], target: i0.ɵɵFactoryTarget.Component }); }
258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.14", type: AgStudio, isStandalone: true, selector: "ag-studio", inputs: { studioProperties: "studioProperties", modules: "modules", tabIndex: "tabIndex", enableRtl: ["enableRtl", "enableRtl", booleanAttribute], popupParent: "popupParent", theme: "theme", loadThemeGoogleFonts: ["loadThemeGoogleFonts", "loadThemeGoogleFonts", booleanAttribute], themeCssLayer: "themeCssLayer", styleNonce: "styleNonce", themeStyleContainer: "themeStyleContainer", getDocument: "getDocument", suppressTouch: ["suppressTouch", "suppressTouch", booleanAttribute], localeText: "localeText", getLocaleText: "getLocaleText", studioId: "studioId", context: "context", initialState: "initialState", data: "data", mode: "mode", layout: "layout", ai: "ai", dataOptions: "dataOptions", overrides: "overrides", panels: "panels", page: "page", widgets: "widgets", components: "components" }, outputs: { stateUpdated: "stateUpdated", apiReady: "apiReady", studioReady: "studioReady", errorRaised: "errorRaised" }, providers: [AngularFrameworkOverrides, AngularFrameworkComponentWrapper], usesOnChanges: true, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
237
259
  }
238
260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgStudio, decorators: [{
239
261
  type: Component,
@@ -241,11 +263,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
241
263
  selector: 'ag-studio',
242
264
  standalone: true,
243
265
  template: '',
244
- providers: [AngularFrameworkOverrides],
266
+ providers: [AngularFrameworkOverrides, AngularFrameworkComponentWrapper],
245
267
  // tell angular we don't want view encapsulation, we don't want a shadow root
246
268
  encapsulation: ViewEncapsulation.None,
247
269
  }]
248
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AngularFrameworkOverrides }], propDecorators: { studioProperties: [{
270
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.AngularFrameworkOverrides }, { type: i2.AngularFrameworkComponentWrapper }], propDecorators: { studioProperties: [{
249
271
  type: Input
250
272
  }], modules: [{
251
273
  type: Input
@@ -290,10 +312,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
290
312
  type: Input
291
313
  }], ai: [{
292
314
  type: Input
315
+ }], dataOptions: [{
316
+ type: Input
293
317
  }], overrides: [{
294
318
  type: Input
295
319
  }], panels: [{
296
320
  type: Input
321
+ }], page: [{
322
+ type: Input
323
+ }], widgets: [{
324
+ type: Input
325
+ }], components: [{
326
+ type: Input
297
327
  }], stateUpdated: [{
298
328
  type: Output
299
329
  }], apiReady: [{
@@ -313,9 +343,8 @@ function getValueOrCoercedValue(key, valueToUse) {
313
343
  if (booleanMixedStudioProperties.has(key)) {
314
344
  // Handle plain HTML boolean attributes and convert them to boolean values
315
345
  // Also handle the false string case to match Angular boolean attributes
316
- // eslint-disable-next-line sonarjs/no-nested-conditional
317
346
  return valueToUse === '' ? true : valueToUse === 'false' ? false : valueToUse;
318
347
  }
319
348
  return valueToUse;
320
349
  }
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctc3R1ZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9saWIvYWctc3R1ZGlvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFDekMscUVBQXFFO0FBQ3JFLHNFQUFzRTtBQUN0RSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxxQ0FBcUMsRUFDckMsYUFBYSxFQUNiLHVCQUF1QixHQUMxQixNQUFNLFdBQVcsQ0FBQztBQW9CbkIsZ0JBQWdCO0FBRWhCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFVeEUsTUFBTSxPQUFPLFFBQVE7SUFpQmpCLFlBQ0ksVUFBc0IsRUFDTCwwQkFBcUQ7UUFBckQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUEyQjtRQWZsRSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRTNCLHlEQUF5RDtRQUNqRCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVWLGdCQUFXLEdBQWtCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQXFJSCxVQUFVO1FBQ1Y7OztXQUdHO1FBQ2EsYUFBUSxHQUF1QixTQUFTLENBQUM7UUFDekQ7OztXQUdHO1FBQzRDLGNBQVMsR0FBd0IsU0FBUyxDQUFDO1FBQzFGO1dBQ0c7UUFDYSxnQkFBVyxHQUFtQyxTQUFTLENBQUM7UUFDeEU7OztXQUdHO1FBQ2EsVUFBSyxHQUE4QixTQUFTLENBQUM7UUFD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Z0JBSXRCLFVBQVU7c0JBQXpCLEtBQUs7Z0JBSVUsYUFBYTtzQkFBNUIsS0FBSztnQkFJVSxRQUFRO3NCQUF2QixLQUFLO2dCQUlVLE9BQU87c0JBQXRCLEtBQUs7Z0JBSVUsWUFBWTtzQkFBM0IsS0FBSztnQkFNVSxJQUFJO3NCQUFuQixLQUFLO2dCQUlVLElBQUk7c0JBQW5CLEtBQUs7Z0JBR1UsTUFBTTtzQkFBckIsS0FBSztnQkFRVSxFQUFFO3NCQUFqQixLQUFLO2dCQUdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsTUFBTTtzQkFBckIsS0FBSztnQkFJVyxZQUFZO3NCQUE1QixNQUFNO2dCQUlVLFFBQVE7c0JBQXhCLE1BQU07Z0JBR1UsV0FBVztzQkFBM0IsTUFBTTtnQkFHVSxXQUFXO3NCQUEzQixNQUFNOztBQUtYLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxHQUFHLENBQVMsZ0NBQWdDLENBQUMsQ0FBQztBQUN2Rjs7OztHQUlHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxHQUFXLEVBQUUsVUFBZTtJQUN4RCxJQUFJLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hDLDBFQUEwRTtRQUMxRSx3RUFBd0U7UUFDeEUseURBQXlEO1FBQ3pELE9BQU8sVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUNsRixDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWR1cGxpY2F0ZS1pbXBvcnRzICovXG4vLyBGYWxzZSBwb3NpdGl2ZSBsaW50IGVycm9yLCBFbGVtZW50UmVmIGFuZCBjbyBjYW4ndCBiZSB0eXBlIGltcG9ydHNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWltcG9ydHNcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFnU3R1ZGlvQXBpLCBBZ1N0dWRpb01vZHVsZSwgQWdTdHVkaW9Qcm9wZXJ0aWVzLCBfU3R1ZGlvUGFyYW1zIH0gZnJvbSAnYWctc3R1ZGlvJztcbmltcG9ydCB7XG4gICAgX0JPT0xFQU5fTUlYRURfU1RVRElPX1BST1BFUlRJRVMsXG4gICAgX2NvbWJpbmVBdHRyaWJ1dGVzQW5kU3R1ZGlvUHJvcGVydGllcyxcbiAgICBfY3JlYXRlU3R1ZGlvLFxuICAgIF9wcm9jZXNzUHJvcGVydHlDaGFuZ2VzLFxufSBmcm9tICdhZy1zdHVkaW8nO1xuLy8gQFNUQVJUX0lNUE9SVFNAXG5pbXBvcnQgdHlwZSB7XG4gICAgQWdBaUFzc2lzdGFudCxcbiAgICBBZ0RhdGFFbmdpbmUsXG4gICAgQWdEYXRhU291cmNlc0RlZmluaXRpb24sXG4gICAgQWdQYWdlTGF5b3V0U3RhdGUsXG4gICAgQWdQYW5lbENvbmZpZyxcbiAgICBBZ1JlcG9ydFN0YXRlLFxuICAgIEFnU3R1ZGlvQXBpUmVhZHlFdmVudCxcbiAgICBBZ1N0dWRpb0Vycm9yUmFpc2VkRXZlbnQsXG4gICAgQWdTdHVkaW9HZXRMb2NhbGVUZXh0UGFyYW1zLFxuICAgIEFnU3R1ZGlvTG9jYWxlVGV4dCxcbiAgICBBZ1N0dWRpb01vZGUsXG4gICAgQWdTdHVkaW9PdmVycmlkZXMsXG4gICAgQWdTdHVkaW9SZWFkeUV2ZW50LFxuICAgIEFnU3R1ZGlvU3RhdGVVcGRhdGVkRXZlbnQsXG4gICAgQWdTdHVkaW9UaGVtZSxcbn0gZnJvbSAnYWctc3R1ZGlvJztcblxuLy8gQEVORF9JTVBPUlRTQFxuXG5pbXBvcnQgeyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSAnLi9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZy1zdHVkaW8nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHByb3ZpZGVyczogW0FuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXNdLFxuICAgIC8vIHRlbGwgYW5ndWxhciB3ZSBkb24ndCB3YW50IHZpZXcgZW5jYXBzdWxhdGlvbiwgd2UgZG9uJ3Qgd2FudCBhIHNoYWRvdyByb290XG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQWdTdHVkaW8gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLy8gbm90IGludGVuZGVkIGZvciB1c2VyIHRvIGludGVyYWN0IHdpdGguIHNvIHB1dHRpbmcgXyBpbiBzbyBpZiB1c2VyIGdldHMgcmVmZXJlbmNlXG4gICAgLy8gdG8gdGhpcyBvYmplY3QsIHRoZXkga2luZCdhIGtub3cgaXQncyBub3QgcGFydCBvZiB0aGUgYWdyZWVkIGludGVyZmFjZVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdGl2ZUVsZW1lbnQ6IGFueTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXNlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Rlc3Ryb3llZCA9IGZhbHNlO1xuXG4gICAgLy8gaW4gb3JkZXIgdG8gZW5zdXJlIGZpcmluZyBvZiBhcGlSZWFkeSBpcyBkZXRlcm1pbmlzdGljXG4gICAgcHJpdmF0ZSBfaG9sZEV2ZW50cyA9IHRydWU7XG4gICAgcHJpdmF0ZSBfcmVzb2x2ZUZ1bGx5UmVhZHk6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZnVsbHlSZWFkeTogUHJvbWlzZTx2b2lkPiA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRoaXMuX3Jlc29sdmVGdWxseVJlYWR5ID0gcmVzb2x2ZTtcbiAgICB9KTtcblxuICAgIC8qKiBEYXNoIEFwaSBhdmFpbGFibGUgYWZ0ZXIgb25BcGlSZWFkeSBldmVudCBoYXMgZmlyZWQuICovXG4gICAgcHVibGljIGFwaTogQWdTdHVkaW9BcGk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudERlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfYW5ndWxhckZyYW1ld29ya092ZXJyaWRlczogQW5ndWxhckZyYW1ld29ya092ZXJyaWRlc1xuICAgICkge1xuICAgICAgICB0aGlzLl9uYXRpdmVFbGVtZW50ID0gZWxlbWVudERlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAvLyBOT1NPTkFSXG4gICAgICAgIHRoaXMuX2Z1bGx5UmVhZHkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAvLyBSZWdpc3RlciB0aGUgc3RhdHVzIGZsYWcgcmVzZXQgYmVmb3JlIGFueSBldmVudHMgYXJlIGZpcmVkXG4gICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiBzd2FwIHRvIHN5bmNocm9ub3VzIGV2ZW50IGZpcmluZyBhcyBzb29uIGFzIHRoZSBzdHVkaW8gaXMgcmVhZHlcbiAgICAgICAgICAgIHRoaXMuX2hvbGRFdmVudHMgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBSdW4gdGhlIHNldHVwIG91dHNpZGUgb2YgYW5ndWxhciBzbyBhbGwgdGhlIGV2ZW50IGhhbmRsZXJzIHRoYXQgYXJlIGNyZWF0ZWQgZG8gbm90IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLl9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEdldCBhbGwgdGhlIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBBZ1N0dWRpb1Byb3BlcnRpZXNcbiAgICAgICAgICAgIGNvbnN0IHN0dWRpb1Byb3BlcnRpZXNLZXlzID0gT2JqZWN0LmtleXModGhpcykuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChrZXkpID0+XG4gICAgICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkuc3RhcnRzV2l0aCgnXycpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgPT0gJ3N0dWRpb1Byb3BlcnRpZXMnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgPT0gJ21vZHVsZXMnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleSBhcyBrZXlvZiBBZ1N0dWRpb10gaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgY29lcmNlZFN0dWRpb1Byb3BlcnRpZXMgPSB7fSBhcyBBZ1N0dWRpb1Byb3BlcnRpZXM7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBzdHVkaW9Qcm9wZXJ0aWVzS2V5cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9Vc2UgPSBnZXRWYWx1ZU9yQ29lcmNlZFZhbHVlKGtleSwgdGhpc1trZXkgYXMga2V5b2YgQWdTdHVkaW9dKTtcbiAgICAgICAgICAgICAgICBjb2VyY2VkU3R1ZGlvUHJvcGVydGllc1trZXkgYXMga2V5b2YgQWdTdHVkaW9Qcm9wZXJ0aWVzXSA9IHZhbHVlVG9Vc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZFN0dWRpb1Byb3BlcnRpZXMgPSBfY29tYmluZUF0dHJpYnV0ZXNBbmRTdHVkaW9Qcm9wZXJ0aWVzKFxuICAgICAgICAgICAgICAgIHRoaXMuc3R1ZGlvUHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICBjb2VyY2VkU3R1ZGlvUHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICBzdHVkaW9Qcm9wZXJ0aWVzS2V5c1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3Qgc3R1ZGlvUGFyYW1zOiBfU3R1ZGlvUGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIGdsb2JhbExpc3RlbmVyOiB0aGlzLmdsb2JhbExpc3RlbmVyLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgZnJhbWV3b3JrT3ZlcnJpZGVzOiB0aGlzLl9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLFxuICAgICAgICAgICAgICAgIHNldFRoZW1lT25Sb290RGl2OiB0cnVlLFxuICAgICAgICAgICAgICAgIG1vZHVsZXM6IHRoaXMubW9kdWxlcyxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGFwaSA9IF9jcmVhdGVTdHVkaW8odGhpcy5fbmF0aXZlRWxlbWVudCwgbWVyZ2VkU3R1ZGlvUHJvcGVydGllcywgc3R1ZGlvUGFyYW1zKTtcbiAgICAgICAgICAgIGlmIChhcGkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGlzZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBzb21ldGltZXMsIGVzcGVjaWFsbHkgaW4gbGFyZ2UgY2xpZW50IGFwcHMgYXBpUmVhZHkgY2FuIGZpcmUgYmVmb3JlIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAgICAgLy8gdGhpcyB0aWVzIHRoZXNlIHRvZ2V0aGVyIHNvIHRoYXQgYXBpUmVhZHkgd2lsbCBhbHdheXMgZmlyZSBhZnRlciBhZ1N0dWRpbydzIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAgICAgLy8gdGhlIGFjdHVhbCBjb250YWluaW5nIGNvbXBvbmVudCdzIG5nQWZ0ZXJWaWV3SW5pdCB3aWxsIGZpcmUganVzdCBhZnRlciBhZ1N0dWRpbydzXG4gICAgICAgICAgICB0aGlzLl9yZXNvbHZlRnVsbHlSZWFkeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXNlZCkge1xuICAgICAgICAgICAgLy8gUnVuIHRoZSBjaGFuZ2VzIG91dHNpZGUgb2YgYW5ndWxhciBzbyBhbnkgZXZlbnQgaGFuZGxlcnMgdGhhdCBhcmUgY3JlYXRlZCBkbyBub3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICAgICAgICB0aGlzLl9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHVkaW9Qcm9wZXJ0aWVzOiBBZ1N0dWRpb1Byb3BlcnRpZXMgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjaGFuZ2VzKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNoYW5nZXNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgc3R1ZGlvUHJvcGVydGllc1trZXkgYXMga2V5b2YgQWdTdHVkaW9Qcm9wZXJ0aWVzXSA9IHZhbHVlLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3Byb2Nlc3NQcm9wZXJ0eUNoYW5nZXMoc3R1ZGlvUHJvcGVydGllcywgdGhpcy5hcGkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXNlZCkge1xuICAgICAgICAgICAgLy8gbmVlZCB0byBkbyB0aGlzIGJlZm9yZSB0aGUgZGVzdHJveSwgc28gd2Uga25vdyBub3QgdG8gZW1pdCBhbnkgZXZlbnRzXG4gICAgICAgICAgICAvLyB3aGlsZSB0ZWFyaW5nIGRvd24gdGhlIHN0dWRpby5cbiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICAgICAgICAvLyBjb3VsZCBiZSBudWxsIGlmIHN0dWRpbyBmYWlsZWQgdG8gaW5pdGlhbGlzZVxuICAgICAgICAgICAgdGhpcy5hcGk/LmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdlJ2xsIGVtaXQgdGhlIGVtaXQgaWYgYSB1c2VyIGlzIGxpc3RlbmluZyBmb3IgYSBnaXZlbiBldmVudCBlaXRoZXIgb24gdGhlIGNvbXBvbmVudCB2aWEgbm9ybWFsIGFuZ3VsYXIgYmluZGluZ1xuICAgIC8vIG9yIHZpYSBzdHVkaW9Qcm9wZXJ0aWVzXG4gICAgcHJvdGVjdGVkIGlzRW1pdHRlclVzZWQoZXZlbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZW1pdHRlciA9IDxFdmVudEVtaXR0ZXI8YW55Pj4oPGFueT50aGlzKVtldmVudFR5cGVdO1xuICAgICAgICAvLyBGb3IgUnhKcyBjb21wYXRpYmlsaXR5IHdlIG5lZWQgdG8gY2hlY2sgZm9yIG9ic2VydmVkIHY3KyBvciBvYnNlcnZlcnMgdjZcbiAgICAgICAgY29uc3QgZW1pdHRlckFueSA9IGVtaXR0ZXIgYXMgYW55O1xuICAgICAgICBjb25zdCBoYXNFbWl0dGVyID0gZW1pdHRlckFueT8ub2JzZXJ2ZWQgPz8gZW1pdHRlckFueT8ub2JzZXJ2ZXJzPy5sZW5ndGggPiAwO1xuXG4gICAgICAgIC8vIGFwaVJlYWR5ID0+IG9uQXBpUmVhZHlcbiAgICAgICAgY29uc3QgYXNFdmVudE5hbWUgPSBgb24ke2V2ZW50VHlwZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2V2ZW50VHlwZS5zdWJzdHJpbmcoMSl9YDtcbiAgICAgICAgY29uc3QgaGFzU3R1ZGlvUHJvcGVydHlMaXN0ZW5lciA9ICEhdGhpcy5zdHVkaW9Qcm9wZXJ0aWVzICYmICEhKHRoaXMuc3R1ZGlvUHJvcGVydGllcyBhcyBhbnkpW2FzRXZlbnROYW1lXTtcblxuICAgICAgICByZXR1cm4gaGFzRW1pdHRlciB8fCBoYXNTdHVkaW9Qcm9wZXJ0eUxpc3RlbmVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2xvYmFsTGlzdGVuZXIoZXZlbnRUeXBlOiBzdHJpbmcsIGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgd2UgYXJlIHRlYXJpbmcgZG93biwgZG9uJ3QgZW1pdCBhbmd1bGFyIGV2ZW50cywgYXMgdGhpcyBjYXVzZXNcbiAgICAgICAgLy8gcHJvYmxlbXMgd2l0aCB0aGUgYW5ndWxhciByb3V0ZXJcbiAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ2VuZXJpY2FsbHkgbG9vayB1cCB0aGUgZXZlbnRUeXBlXG4gICAgICAgIGNvbnN0IGVtaXR0ZXIgPSA8RXZlbnRFbWl0dGVyPGFueT4+KDxhbnk+dGhpcylbZXZlbnRUeXBlXTtcbiAgICAgICAgaWYgKGVtaXR0ZXIgJiYgdGhpcy5pc0VtaXR0ZXJVc2VkKGV2ZW50VHlwZSkpIHtcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBlbWl0IHdpdGhpbiB0aGUgYW5ndWxhciB6b25lLCBzbyBjaGFuZ2UgZGV0ZWN0aW9uIHdvcmtzIHByb3Blcmx5XG4gICAgICAgICAgICBjb25zdCBmaXJlRW1pdHRlciA9ICgpID0+IHRoaXMuX2FuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMucnVuSW5zaWRlQW5ndWxhcigoKSA9PiBlbWl0dGVyLmVtaXQoZXZlbnQpKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2hvbGRFdmVudHMpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgdXNlciBpcyBsaXN0ZW5pbmcgdG8gZXZlbnRzLCB3YWl0IGZvciBuZ0FmdGVyVmlld0luaXQgdG8gZmlyZSBmaXJzdCwgdGhlbiBlbWl0IHRoZSBzdHVkaW8gZXZlbnRzXG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbHlSZWFkeS50aGVuKCgpID0+IGZpcmVFbWl0dGVyKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaXJlRW1pdHRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFByb3ZpZGVkIGFuIGluaXRpYWwgc3R1ZGlvUHJvcGVydGllcyBjb25maWd1cmF0aW9uIHRvIHRoZSBjb21wb25lbnQuIElmIGEgcHJvcGVydHkgaXMgc3BlY2lmaWVkIGluIGJvdGggc3R1ZGlvUHJvcGVydGllcyBhbmQgdmlhIGNvbXBvbmVudCBiaW5kaW5nIHRoZSBjb21wb25lbnQgYmluZGluZyB0YWtlcyBwcmVjZWRlbmNlLiAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc3R1ZGlvUHJvcGVydGllczogQWdTdHVkaW9Qcm9wZXJ0aWVzIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gcmVnaXN0ZXIgQUcgU3R1ZGlvIE1vZHVsZXMgZGlyZWN0bHkgd2l0aCB0aGlzIGluc3RhbmNlIG9mIFN0dWRpby5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kdWxlczogQWdTdHVkaW9Nb2R1bGVbXSB8IHVuZGVmaW5lZDtcblxuICAgIC8vIEBTVEFSVEBcbiAgICAvKiogQ2hhbmdlIHRoaXMgdmFsdWUgdG8gc2V0IHRoZSB0YWJJbmRleCBvcmRlciBvZiBTdHVkaW8gd2l0aGluIHlvdXIgYXBwbGljYXRpb24uXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqIEBpbml0aWFsXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHRhYkluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIFNldCB0byBgdHJ1ZWAgdG8gb3BlcmF0ZSBTdHVkaW8gaW4gUlRMIChSaWdodCB0byBMZWZ0KSBtb2RlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcHVibGljIGVuYWJsZVJ0bDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogRE9NIGVsZW1lbnQgdG8gdXNlIGFzIHRoZSBwb3B1cCBwYXJlbnQgZm9yIFN0dWRpbyBwb3B1cHMgKGNvbnRleHQgbWVudXMsIGV0Yy4pLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3B1cFBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVtZSB0byBhcHBseSB0byBTdHVkaW8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBzdHVkaW9UaGVtZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0aGVtZTogQWdTdHVkaW9UaGVtZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgeW91ciB0aGVtZSB1c2VzIGEgZm9udCB0aGF0IGlzIGF2YWlsYWJsZSBvbiBHb29nbGUgRm9udHMsIHBhc3MgdHJ1ZSB0byBsb2FkIGl0IGZyb20gR29vZ2xlJ3MgQ0ROLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwdWJsaWMgbG9hZFRoZW1lR29vZ2xlRm9udHM6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBDU1MgbGF5ZXIgdGhhdCB0aGlzIHRoZW1lIHNob3VsZCBiZSByZW5kZXJlZCBvbnRvLiBXaGVuIHNwZWNpZmllZCxcbiAgICAgKiBTdHVkaW8gQ1NTIHdpbGwgYmUgd3JhcHBlZCBpbiBhIGBAbGF5ZXIgJHt0aGVtZUNzc0xheWVyfSB7IC4uLiB9YCBibG9jay5cbiAgICAgKlxuICAgICAqIE5PVEU6IHdoZW4gc3BlY2lmeWluZyBgdGhlbWVDc3NMYXllcmAgd2UgcmVjb21tZW5kIHNldHRpbmdcbiAgICAgKiBgdGhlbWVTdHlsZUNvbnRhaW5lcmAgdG8gYGRvY3VtZW50LmJvZHlgIHRvIGVuc3VyZSB0aGF0IFN0dWRpbyBDU1NcbiAgICAgKiBjb21lcyBhZnRlciB5b3VyIGFwcGxpY2F0aW9uIENTUywgYWxsb3dpbmcgeW91ciBhcHBsaWNhdGlvbiB0byBzZXQgdGhlXG4gICAgICogb3JkZXIgb2YgbGF5ZXJzLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQGxheWVyXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHRoZW1lQ3NzTGF5ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5vbmNlIGF0dHJpYnV0ZSB0byBzZXQgb24gc3R5bGUgZWxlbWVudHMgYWRkZWQgdG8gdGhlIGRvY3VtZW50IGJ5XG4gICAgICogdGhlbWVzLiBJZiBcImZvb1wiIGlzIHBhc3NlZCB0byB0aGlzIHByb3BlcnR5LCBTdHVkaW8gY2FuIHVzZSB0aGUgQ29udGVudFxuICAgICAqIFNlY3VyaXR5IFBvbGljeSBgc3R5bGUtc3JjICdub25jZS1mb28nYCwgaW5zdGVhZCBvZiB0aGUgbGVzcyBzZWN1cmVcbiAgICAgKiBgc3R5bGUtc3JjICd1bnNhZmUtaW5saW5lJ2AuXG4gICAgICpcbiAgICAgKiBOb3RlOiBDU1Agbm9uY2VzIGFyZSBnbG9iYWwgdG8gYSBwYWdlLCB3aGVyZSBhIHBhZ2UgaGFzIG11bHRpcGxlIFN0dWRpbyBjb21wb25lbnRzLFxuICAgICAqIGV2ZXJ5IG9uZSBtdXN0IGhhdmUgdGhlIHNhbWUgc3R5bGVOb25jZSBzZXQuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHN0eWxlTm9uY2U6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogQW4gZWxlbWVudCB0byBpbnNlcnQgc3R5bGUgZWxlbWVudHMgaW50byB3aGVuIGluamVjdGluZyBzdHlsZXMgaW50byB0aGVcbiAgICAgKiBTdHVkaW8uIFN0eWxlcyBhcmUgaW5zZXJ0ZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBlbGVtZW50LlxuICAgICAqXG4gICAgICogSWYgdW5kZWZpbmVkLCBzdHlsZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgZG9jdW1lbnQgaGVhZCBmb3IgU3R1ZGlvIGNvbXBvbmVudHNcbiAgICAgKiByZW5kZXJlZCBpbiB0aGUgbWFpbiBkb2N1bWVudCBmcmFnbWVudCwgb3IgdG8gU3R1ZGlvIHdyYXBwZXIgZWxlbWVudFxuICAgICAqIGZvciBvdGhlciBTdHVkaW8gY29tcG9uZW50cyAoZS5nLiB0aG9zZSByZW5kZXJlZCBpbiBhIHNoYWRvdyBET00gb3IgZGV0YWNoZWQgZnJvbSB0aGVcbiAgICAgKiBkb2N1bWVudCkuXG4gICAgICpcbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0aGVtZVN0eWxlQ29udGFpbmVyOiAoSFRNTEVsZW1lbnQgfCAoKCkgPT4gSFRNTEVsZW1lbnQgfCB2b2lkKSkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIEFsbG93cyBvdmVycmlkaW5nIHdoYXQgYGRvY3VtZW50YCBpcyB1c2VkLlxuICAgICAqIFVzZSB0aGlzIHdoZW4geW91IHdhbnQgU3R1ZGlvIHRvIHVzZSBhIGRpZmZlcmVudCBgZG9jdW1lbnRgIHRoYW4gdGhlIG9uZSBhdmFpbGFibGUgb24gdGhlIGdsb2JhbCBzY29wZS5cbiAgICAgKiBUaGlzIGNhbiBoYXBwZW4gaWYgZG9ja2luZyBvdXQgY29tcG9uZW50cyAoc29tZXRoaW5nIHdoaWNoIEVsZWN0cm9uIHN1cHBvcnRzKS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0RG9jdW1lbnQ6ICgoKSA9PiBEb2N1bWVudCkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIERpc2FibGVzIHRvdWNoIHN1cHBvcnQgKGJ1dCBkb2VzIG5vdCByZW1vdmUgdGhlIGJyb3dzZXIncyBlZmZvcnRzIHRvIHNpbXVsYXRlIG1vdXNlIGV2ZW50cyBvbiB0b3VjaCkuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwdWJsaWMgc3VwcHJlc3NUb3VjaDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogQSBtYXAgb2Yga2V5LT52YWx1ZSBwYWlycyBmb3IgbG9jYWxpc2luZyB0ZXh0IHdpdGhpbiBTdHVkaW8uXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9jYWxlVGV4dDogQWdTdHVkaW9Mb2NhbGVUZXh0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBBIGNhbGxiYWNrIGZvciBsb2NhbGlzaW5nIHRleHQgd2l0aGluIFN0dWRpby5cbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRMb2NhbGVUZXh0OiAoKHBhcmFtczogQWdTdHVkaW9HZXRMb2NhbGVUZXh0UGFyYW1zKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBQcm92aWRlIGEgY3VzdG9tIGBzdHVkaW9JZGAgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgU3R1ZGlvLiBWYWx1ZSB3aWxsIGJlIHNldCBvbiB0aGUgcm9vdCBET00gbm9kZSB1c2luZyB0aGUgYXR0cmlidXRlIGBzdHVkaW8taWRgIGFzIHdlbGwgYXMgYmVpbmcgYWNjZXNzaWJsZSB2aWEgdGhlIGBhcGkuZ2V0U3R1ZGlvSWQoKWAgbWV0aG9kLlxuICAgICAqIEBpbml0aWFsXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHN0dWRpb0lkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgY29udGV4dCBvYmplY3QgdGhhdCBpcyBwcm92aWRlZCB0byBkaWZmZXJlbnQgY2FsbGJhY2tzIFN0dWRpbyB1c2VzLiBVc2VkIGZvciBwYXNzaW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gdGhlIGNhbGxiYWNrcyB1c2VkIGJ5IHlvdXIgYXBwbGljYXRpb24uXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY29udGV4dDogYW55ID0gdW5kZWZpbmVkO1xuICAgIC8qKiBJbml0aWFsIHN0YXRlIGZvciBTdHVkaW8uIE9ubHkgcmVhZCBvbmNlIG9uIGluaXRpYWxpemF0aW9uLiBDYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBhcGkuZ2V0U3RhdGUoKWAgdG8gc2F2ZSBhbmQgcmVzdG9yZSBTdHVkaW8gc3RhdGUuXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbFN0YXRlOiBBZ1JlcG9ydFN0YXRlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBEZWZpbmVzIHRoZSBkYXRhIHNvdXJjZXMgdXNlZCBieSBTdHVkaW8uXG4gICAgICpcbiAgICAgKiBJZiB1cGRhdGVkIGFmdGVyIGluaXRpYWxseSBiZWluZyBzZXQsIG9ubHkgY2hhbmdlcyB0byBzeW5jaHJvbm91cyBkYXRhIHdpbGwgYmUgcHJvY2Vzc2VkLlxuICAgICAqIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgYmUgaWdub3JlZCAoZS5nLiBhZGRpbmcvcmVtb3ZpbmcgZGF0YSBzb3VyY2VzLCB1cGRhdGluZyBmaWVsZHMsIGV0Yy4pXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRhdGE6IEFnRGF0YVNvdXJjZXNEZWZpbml0aW9uIHwgQWdEYXRhRW5naW5lIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBXaGljaCBtb2RlIFN0dWRpbyBpcyBpbi5cbiAgICAgKiBAZGVmYXVsdCAndmlldydcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kZTogQWdTdHVkaW9Nb2RlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBEZWZhdWx0IGxheW91dCBzdHlsaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYXlvdXQ6IFBhcnRpYWw8QWdQYWdlTGF5b3V0U3RhdGU+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBBSSBBc3Npc3RhbnQgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoZSAgICAgKipBSSBBc3Npc3RhbnQqKiBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gQmVoYXZpb3VyIHdpbGwgYmVcbiAgICAgKiBzbGlnaHRseSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBMTE0gYmVpbmcgdXNlZCwgYW5kIHJlc3VsdHMgY2FuIHZhcnkgYWNyb3NzIHF1ZXJpZXMuXG4gICAgICpcbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhaTogQWdBaUFzc2lzdGFudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogT3ZlcnJpZGVzIGZvciB0aGUgbGF5b3V0IGFuZCB3aWRnZXQgY29uZmlncy5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgb3ZlcnJpZGVzOiBBZ1N0dWRpb092ZXJyaWRlcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogQ29uZmlndXJlIHdoaWNoIHBhbmVscyBhcmUgZGlzcGxheWVkIGFuZCBvbiB3aGljaCBzaWRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYW5lbHM6IEFnUGFuZWxDb25maWcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvKiogU3RhdGUgaGFzIGJlZW4gdXBkYXRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHN0YXRlVXBkYXRlZDogRXZlbnRFbWl0dGVyPEFnU3R1ZGlvU3RhdGVVcGRhdGVkRXZlbnQ+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxBZ1N0dWRpb1N0YXRlVXBkYXRlZEV2ZW50PigpO1xuICAgIC8qKiBUaGUgQVBJIGhhcyBiZWVuIGluaXRpYWxpc2VkIGFuZCBpcyByZWFkeSBmb3IgbW9zdCBjYWxscy4gVGhlIGRhdGEgZW5naW5lIGhhcyBub3QgYmVlbiBpbml0aWFsaXNlZCB5ZXQsIGFuZCB0aGUgVUkgaXMgbm90IHJlYWR5LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgYXBpUmVhZHk6IEV2ZW50RW1pdHRlcjxBZ1N0dWRpb0FwaVJlYWR5RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBZ1N0dWRpb0FwaVJlYWR5RXZlbnQ+KCk7XG4gICAgLyoqIFRoZSBkYXRhIGVuZ2luZSBoYXMgYmVlbiBpbml0aWFsaXNlZCwgYW5kIHRoZSBVSSBoYXMgYmVlbiBjcmVhdGVkLCBidXQgbWF5IG5vdCBiZSBmdWxseSByZW5kZXJlZCB5ZXQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzdHVkaW9SZWFkeTogRXZlbnRFbWl0dGVyPEFnU3R1ZGlvUmVhZHlFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFnU3R1ZGlvUmVhZHlFdmVudD4oKTtcbiAgICAvKiogQW4gZXJyb3IgaGFzIG9jY3VycmVkIHdpdGhpbiBTdHVkaW8uXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyBlcnJvclJhaXNlZDogRXZlbnRFbWl0dGVyPEFnU3R1ZGlvRXJyb3JSYWlzZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFnU3R1ZGlvRXJyb3JSYWlzZWRFdmVudD4oKTtcblxuICAgIC8vIEBFTkRAXG59XG5cbmNvbnN0IGJvb2xlYW5NaXhlZFN0dWRpb1Byb3BlcnRpZXMgPSBuZXcgU2V0PHN0cmluZz4oX0JPT0xFQU5fTUlYRURfU1RVRElPX1BST1BFUlRJRVMpO1xuLyoqXG4gKiBVc2VkIHRvIHN1cHBvcnQgdGhlIHVzZXIgc2V0dGluZyBjb21iaW5lZCBib29sZWFuIGFuZCBzdHJpbmcgLyBvYmplY3QgcHJvcGVydGllc1xuICogYXMgcGxhaW4gSFRNTCBhdHRyaWJ1dGVzIGFuZCB1cyBjb3JyZWN0bHkgbWFwcGluZyB0aGF0IHRvIHRydWUuXG4gKiBGb3IgZXhhbXBsZSBjZWxsU2VjdGlvbiBjYW4gYmUgYm9vbGVhbiBvciBhbiBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWVPckNvZXJjZWRWYWx1ZShrZXk6IHN0cmluZywgdmFsdWVUb1VzZTogYW55KTogYW55IHtcbiAgICBpZiAoYm9vbGVhbk1peGVkU3R1ZGlvUHJvcGVydGllcy5oYXMoa2V5KSkge1xuICAgICAgICAvLyBIYW5kbGUgcGxhaW4gSFRNTCBib29sZWFuIGF0dHJpYnV0ZXMgYW5kIGNvbnZlcnQgdGhlbSB0byBib29sZWFuIHZhbHVlc1xuICAgICAgICAvLyBBbHNvIGhhbmRsZSB0aGUgZmFsc2Ugc3RyaW5nIGNhc2UgdG8gbWF0Y2ggQW5ndWxhciBib29sZWFuIGF0dHJpYnV0ZXNcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvbm8tbmVzdGVkLWNvbmRpdGlvbmFsXG4gICAgICAgIHJldHVybiB2YWx1ZVRvVXNlID09PSAnJyA/IHRydWUgOiB2YWx1ZVRvVXNlID09PSAnZmFsc2UnID8gZmFsc2UgOiB2YWx1ZVRvVXNlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVUb1VzZTtcbn1cbiJdfQ==
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctc3R1ZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9saWIvYWctc3R1ZGlvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFDekMscUVBQXFFO0FBQ3JFLHNFQUFzRTtBQUN0RSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILGdDQUFnQyxFQUNoQyxxQ0FBcUMsRUFDckMsYUFBYSxFQUNiLHVCQUF1QixHQUMxQixNQUFNLFdBQVcsQ0FBQztBQXVCbkIsZ0JBQWdCO0FBRWhCLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBV3hFLE1BQU0sT0FBTyxRQUFRO0lBaUJqQixZQUNJLFVBQXNCLEVBQ0wsaUJBQW1DLEVBQ25DLDBCQUFxRCxFQUNyRCxxQkFBdUQ7UUFGdkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTJCO1FBQ3JELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBa0M7UUFqQnBFLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFM0IseURBQXlEO1FBQ2pELGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRVYsZ0JBQVcsR0FBa0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBNElILFVBQVU7UUFDVjs7O1dBR0c7UUFDYSxhQUFR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TSw0QkFBNEIsR0FBRyxJQUFJLEdBQUcsQ0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBQ3ZGOzs7O0dBSUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLEdBQVcsRUFBRSxVQUFlO0lBQ3hELElBQUksNEJBQTRCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEMsMEVBQTBFO1FBQzFFLHdFQUF3RTtRQUN4RSxPQUFPLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDbEYsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1kdXBsaWNhdGUtaW1wb3J0cyAqL1xuLy8gRmFsc2UgcG9zaXRpdmUgbGludCBlcnJvciwgRWxlbWVudFJlZiBhbmQgY28gY2FuJ3QgYmUgdHlwZSBpbXBvcnRzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1pbXBvcnRzXG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFnRGVmYXVsdFJlZ2lzdHJ5LCBBZ1N0dWRpb0FwaSwgQWdTdHVkaW9Nb2R1bGUsIEFnU3R1ZGlvUHJvcGVydGllcywgX1N0dWRpb1BhcmFtcyB9IGZyb20gJ2FnLXN0dWRpbyc7XG5pbXBvcnQge1xuICAgIF9CT09MRUFOX01JWEVEX1NUVURJT19QUk9QRVJUSUVTLFxuICAgIF9jb21iaW5lQXR0cmlidXRlc0FuZFN0dWRpb1Byb3BlcnRpZXMsXG4gICAgX2NyZWF0ZVN0dWRpbyxcbiAgICBfcHJvY2Vzc1Byb3BlcnR5Q2hhbmdlcyxcbn0gZnJvbSAnYWctc3R1ZGlvJztcbi8vIEBTVEFSVF9JTVBPUlRTQFxuaW1wb3J0IHR5cGUge1xuICAgIEFnQWlBc3Npc3RhbnQsXG4gICAgQWdEYXRhRW5naW5lLFxuICAgIEFnRGF0YU9wdGlvbnMsXG4gICAgQWdEYXRhU291cmNlc0RlZmluaXRpb24sXG4gICAgQWdQYWdlQ29uZmlnLFxuICAgIEFnUGFnZUxheW91dFN0YXRlLFxuICAgIEFnUGFuZWxDb25maWcsXG4gICAgQWdSZXBvcnRTdGF0ZSxcbiAgICBBZ1N0dWRpb0FwaVJlYWR5RXZlbnQsXG4gICAgQWdTdHVkaW9FcnJvclJhaXNlZEV2ZW50LFxuICAgIEFnU3R1ZGlvR2V0TG9jYWxlVGV4dFBhcmFtcyxcbiAgICBBZ1N0dWRpb0xvY2FsZVRleHQsXG4gICAgQWdTdHVkaW9Nb2RlLFxuICAgIEFnU3R1ZGlvT3ZlcnJpZGVzLFxuICAgIEFnU3R1ZGlvUmVhZHlFdmVudCxcbiAgICBBZ1N0dWRpb1N0YXRlVXBkYXRlZEV2ZW50LFxuICAgIEFnU3R1ZGlvVGhlbWUsXG4gICAgQWdXaWRnZXRzQ29uZmlnLFxufSBmcm9tICdhZy1zdHVkaW8nO1xuXG4vLyBARU5EX0lNUE9SVFNAXG5cbmltcG9ydCB7IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyIH0gZnJvbSAnLi9hbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlcic7XG5pbXBvcnQgeyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSAnLi9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzJztcbmltcG9ydCB0eXBlIHsgQWdSZWdpc3RyeSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWctc3R1ZGlvJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBwcm92aWRlcnM6IFtBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLCBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlcl0sXG4gICAgLy8gdGVsbCBhbmd1bGFyIHdlIGRvbid0IHdhbnQgdmlldyBlbmNhcHN1bGF0aW9uLCB3ZSBkb24ndCB3YW50IGEgc2hhZG93IHJvb3RcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBZ1N0dWRpbzxUUmVnaXN0cnkgZXh0ZW5kcyBBZ1JlZ2lzdHJ5ID0gQWdEZWZhdWx0UmVnaXN0cnk+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIC8vIG5vdCBpbnRlbmRlZCBmb3IgdXNlciB0byBpbnRlcmFjdCB3aXRoLiBzbyBwdXR0aW5nIF8gaW4gc28gaWYgdXNlciBnZXRzIHJlZmVyZW5jZVxuICAgIC8vIHRvIHRoaXMgb2JqZWN0LCB0aGV5IGtpbmQnYSBrbm93IGl0J3Mgbm90IHBhcnQgb2YgdGhlIGFncmVlZCBpbnRlcmZhY2VcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYXRpdmVFbGVtZW50OiBhbnk7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGlzZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIC8vIGluIG9yZGVyIHRvIGVuc3VyZSBmaXJpbmcgb2YgYXBpUmVhZHkgaXMgZGV0ZXJtaW5pc3RpY1xuICAgIHByaXZhdGUgX2hvbGRFdmVudHMgPSB0cnVlO1xuICAgIHByaXZhdGUgX3Jlc29sdmVGdWxseVJlYWR5OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Z1bGx5UmVhZHk6IFByb21pc2U8dm9pZD4gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICB0aGlzLl9yZXNvbHZlRnVsbHlSZWFkeSA9IHJlc29sdmU7XG4gICAgfSk7XG5cbiAgICAvKiogU3R1ZGlvIEFwaSBhdmFpbGFibGUgYWZ0ZXIgb25BcGlSZWFkeSBldmVudCBoYXMgZmlyZWQuICovXG4gICAgYXBpOiBBZ1N0dWRpb0FwaTxUUmVnaXN0cnk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnREZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2FuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXM6IEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZyYW1ld29ya0NvbXBXcmFwcGVyOiBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlclxuICAgICkge1xuICAgICAgICB0aGlzLl9uYXRpdmVFbGVtZW50ID0gZWxlbWVudERlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAvLyBOT1NPTkFSXG4gICAgICAgIHRoaXMuX2Z1bGx5UmVhZHkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAvLyBSZWdpc3RlciB0aGUgc3RhdHVzIGZsYWcgcmVzZXQgYmVmb3JlIGFueSBldmVudHMgYXJlIGZpcmVkXG4gICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiBzd2FwIHRvIHN5bmNocm9ub3VzIGV2ZW50IGZpcmluZyBhcyBzb29uIGFzIHRoZSBzdHVkaW8gaXMgcmVhZHlcbiAgICAgICAgICAgIHRoaXMuX2hvbGRFdmVudHMgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBSdW4gdGhlIHNldHVwIG91dHNpZGUgb2YgYW5ndWxhciBzbyBhbGwgdGhlIGV2ZW50IGhhbmRsZXJzIHRoYXQgYXJlIGNyZWF0ZWQgZG8gbm90IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICB0aGlzLl9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2ZyYW1ld29ya0NvbXBXcmFwcGVyLnNldFZpZXdDb250YWluZXJSZWYodGhpcy5fdmlld0NvbnRhaW5lclJlZiwgdGhpcy5fYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcyk7XG5cbiAgICAgICAgICAgIC8vIEdldCBhbGwgdGhlIGlucHV0cyB0aGF0IGFyZSB2YWxpZCBBZ1N0dWRpb1Byb3BlcnRpZXNcbiAgICAgICAgICAgIGNvbnN0IHN0dWRpb1Byb3BlcnRpZXNLZXlzID0gT2JqZWN0LmtleXModGhpcykuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChrZXkpID0+XG4gICAgICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkuc3RhcnRzV2l0aCgnXycpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgPT0gJ3N0dWRpb1Byb3BlcnRpZXMnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgPT0gJ21vZHVsZXMnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleSBhcyBrZXlvZiBBZ1N0dWRpb10gaW5zdGFuY2VvZiBFdmVudEVtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgY29lcmNlZFN0dWRpb1Byb3BlcnRpZXMgPSB7fSBhcyBBZ1N0dWRpb1Byb3BlcnRpZXM8VFJlZ2lzdHJ5PjtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHN0dWRpb1Byb3BlcnRpZXNLZXlzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVUb1VzZSA9IGdldFZhbHVlT3JDb2VyY2VkVmFsdWUoa2V5LCB0aGlzW2tleSBhcyBrZXlvZiBBZ1N0dWRpb10pO1xuICAgICAgICAgICAgICAgIGNvZXJjZWRTdHVkaW9Qcm9wZXJ0aWVzW2tleSBhcyBrZXlvZiBBZ1N0dWRpb1Byb3BlcnRpZXNdID0gdmFsdWVUb1VzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbWVyZ2VkU3R1ZGlvUHJvcGVydGllcyA9IF9jb21iaW5lQXR0cmlidXRlc0FuZFN0dWRpb1Byb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgdGhpcy5zdHVkaW9Qcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgIGNvZXJjZWRTdHVkaW9Qcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgIHN0dWRpb1Byb3BlcnRpZXNLZXlzXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBzdHVkaW9QYXJhbXM6IF9TdHVkaW9QYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgZ2xvYmFsTGlzdGVuZXI6IHRoaXMuZ2xvYmFsTGlzdGVuZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtPdmVycmlkZXM6IHRoaXMuX2FuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgICAgICAgICAgc2V0VGhlbWVPblJvb3REaXY6IHRydWUsXG4gICAgICAgICAgICAgICAgbW9kdWxlczogdGhpcy5tb2R1bGVzLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVkQmVhbkluc3RhbmNlczoge1xuICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmtDb21wV3JhcHBlcjogdGhpcy5fZnJhbWV3b3JrQ29tcFdyYXBwZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGFwaSA9IF9jcmVhdGVTdHVkaW8odGhpcy5fbmF0aXZlRWxlbWVudCwgbWVyZ2VkU3R1ZGlvUHJvcGVydGllcywgc3R1ZGlvUGFyYW1zKTtcbiAgICAgICAgICAgIGlmIChhcGkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGlzZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBzb21ldGltZXMsIGVzcGVjaWFsbHkgaW4gbGFyZ2UgY2xpZW50IGFwcHMgYXBpUmVhZHkgY2FuIGZpcmUgYmVmb3JlIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAgICAgLy8gdGhpcyB0aWVzIHRoZXNlIHRvZ2V0aGVyIHNvIHRoYXQgYXBpUmVhZHkgd2lsbCBhbHdheXMgZmlyZSBhZnRlciBhZ1N0dWRpbydzIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAgICAgLy8gdGhlIGFjdHVhbCBjb250YWluaW5nIGNvbXBvbmVudCdzIG5nQWZ0ZXJWaWV3SW5pdCB3aWxsIGZpcmUganVzdCBhZnRlciBhZ1N0dWRpbydzXG4gICAgICAgICAgICB0aGlzLl9yZXNvbHZlRnVsbHlSZWFkeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXNlZCkge1xuICAgICAgICAgICAgLy8gUnVuIHRoZSBjaGFuZ2VzIG91dHNpZGUgb2YgYW5ndWxhciBzbyBhbnkgZXZlbnQgaGFuZGxlcnMgdGhhdCBhcmUgY3JlYXRlZCBkbyBub3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICAgICAgICB0aGlzLl9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHVkaW9Qcm9wZXJ0aWVzOiBBZ1N0dWRpb1Byb3BlcnRpZXM8VFJlZ2lzdHJ5PiA9IHt9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNoYW5nZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlc1trZXldO1xuICAgICAgICAgICAgICAgICAgICBzdHVkaW9Qcm9wZXJ0aWVzW2tleSBhcyBrZXlvZiBBZ1N0dWRpb1Byb3BlcnRpZXNdID0gdmFsdWUuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfcHJvY2Vzc1Byb3BlcnR5Q2hhbmdlcyhzdHVkaW9Qcm9wZXJ0aWVzLCB0aGlzLmFwaSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICAvLyBuZWVkIHRvIGRvIHRoaXMgYmVmb3JlIHRoZSBkZXN0cm95LCBzbyB3ZSBrbm93IG5vdCB0byBlbWl0IGFueSBldmVudHNcbiAgICAgICAgICAgIC8vIHdoaWxlIHRlYXJpbmcgZG93biB0aGUgc3R1ZGlvLlxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vIGNvdWxkIGJlIG51bGwgaWYgc3R1ZGlvIGZhaWxlZCB0byBpbml0aWFsaXNlXG4gICAgICAgICAgICB0aGlzLmFwaT8uZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2UnbGwgZW1pdCB0aGUgZW1pdCBpZiBhIHVzZXIgaXMgbGlzdGVuaW5nIGZvciBhIGdpdmVuIGV2ZW50IGVpdGhlciBvbiB0aGUgY29tcG9uZW50IHZpYSBub3JtYWwgYW5ndWxhciBiaW5kaW5nXG4gICAgLy8gb3IgdmlhIHN0dWRpb1Byb3BlcnRpZXNcbiAgICBwcm90ZWN0ZWQgaXNFbWl0dGVyVXNlZChldmVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBlbWl0dGVyID0gPEV2ZW50RW1pdHRlcjxhbnk+Pig8YW55PnRoaXMpW2V2ZW50VHlwZV07XG4gICAgICAgIC8vIEZvciBSeEpzIGNvbXBhdGliaWxpdHkgd2UgbmVlZCB0byBjaGVjayBmb3Igb2JzZXJ2ZWQgdjcrIG9yIG9ic2VydmVycyB2NlxuICAgICAgICBjb25zdCBlbWl0dGVyQW55ID0gZW1pdHRlciBhcyBhbnk7XG4gICAgICAgIGNvbnN0IGhhc0VtaXR0ZXIgPSBlbWl0dGVyQW55Py5vYnNlcnZlZCA/PyBlbWl0dGVyQW55Py5vYnNlcnZlcnM/Lmxlbmd0aCA+IDA7XG5cbiAgICAgICAgLy8gYXBpUmVhZHkgPT4gb25BcGlSZWFkeVxuICAgICAgICBjb25zdCBhc0V2ZW50TmFtZSA9IGBvbiR7ZXZlbnRUeXBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7ZXZlbnRUeXBlLnN1YnN0cmluZygxKX1gO1xuICAgICAgICBjb25zdCBoYXNTdHVkaW9Qcm9wZXJ0eUxpc3RlbmVyID0gISF0aGlzLnN0dWRpb1Byb3BlcnRpZXMgJiYgISEodGhpcy5zdHVkaW9Qcm9wZXJ0aWVzIGFzIGFueSlbYXNFdmVudE5hbWVdO1xuXG4gICAgICAgIHJldHVybiBoYXNFbWl0dGVyIHx8IGhhc1N0dWRpb1Byb3BlcnR5TGlzdGVuZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnbG9iYWxMaXN0ZW5lcihldmVudFR5cGU6IHN0cmluZywgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBpZiB3ZSBhcmUgdGVhcmluZyBkb3duLCBkb24ndCBlbWl0IGFuZ3VsYXIgZXZlbnRzLCBhcyB0aGlzIGNhdXNlc1xuICAgICAgICAvLyBwcm9ibGVtcyB3aXRoIHRoZSBhbmd1bGFyIHJvdXRlclxuICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBnZW5lcmljYWxseSBsb29rIHVwIHRoZSBldmVudFR5cGVcbiAgICAgICAgY29uc3QgZW1pdHRlciA9IDxFdmVudEVtaXR0ZXI8YW55Pj4oPGFueT50aGlzKVtldmVudFR5cGVdO1xuICAgICAgICBpZiAoZW1pdHRlciAmJiB0aGlzLmlzRW1pdHRlclVzZWQoZXZlbnRUeXBlKSkge1xuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGVtaXQgd2l0aGluIHRoZSBhbmd1bGFyIHpvbmUsIHNvIGNoYW5nZSBkZXRlY3Rpb24gd29ya3MgcHJvcGVybHlcbiAgICAgICAgICAgIGNvbnN0IGZpcmVFbWl0dGVyID0gKCkgPT4gdGhpcy5fYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcy5ydW5JbnNpZGVBbmd1bGFyKCgpID0+IGVtaXR0ZXIuZW1pdChldmVudCkpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faG9sZEV2ZW50cykge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB1c2VyIGlzIGxpc3RlbmluZyB0byBldmVudHMsIHdhaXQgZm9yIG5nQWZ0ZXJWaWV3SW5pdCB0byBmaXJlIGZpcnN0LCB0aGVuIGVtaXQgdGhlIHN0dWRpbyBldmVudHNcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxseVJlYWR5LnRoZW4oKCkgPT4gZmlyZUVtaXR0ZXIoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZpcmVFbWl0dGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUHJvdmlkZWQgYW4gaW5pdGlhbCBzdHVkaW9Qcm9wZXJ0aWVzIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGNvbXBvbmVudC4gSWYgYSBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQgaW4gYm90aCBzdHVkaW9Qcm9wZXJ0aWVzIGFuZCB2aWEgY29tcG9uZW50IGJpbmRpbmcgdGhlIGNvbXBvbmVudCBiaW5kaW5nIHRha2VzIHByZWNlZGVuY2UuICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdHVkaW9Qcm9wZXJ0aWVzOiBBZ1N0dWRpb1Byb3BlcnRpZXM8VFJlZ2lzdHJ5PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHJlZ2lzdGVyIEFHIFN0dWRpbyBNb2R1bGVzIGRpcmVjdGx5IHdpdGggdGhpcyBpbnN0YW5jZSBvZiBTdHVkaW8uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIG1vZHVsZXM6IEFnU3R1ZGlvTW9kdWxlW10gfCB1bmRlZmluZWQ7XG5cbiAgICAvLyBAU1RBUlRAXG4gICAgLyoqIENoYW5nZSB0aGlzIHZhbHVlIHRvIHNldCB0aGUgdGFiSW5kZXggb3JkZXIgb2YgU3R1ZGlvIHdpdGhpbiB5b3VyIGFwcGxpY2F0aW9uLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWJJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBTZXQgdG8gYHRydWVgIHRvIG9wZXJhdGUgU3R1ZGlvIGluIFJUTCAoUmlnaHQgdG8gTGVmdCkgbW9kZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqIEBpbml0aWFsXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHB1YmxpYyBlbmFibGVSdGw6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIERPTSBlbGVtZW50IHRvIHVzZSBhcyB0aGUgcG9wdXAgcGFyZW50IGZvciBTdHVkaW8gcG9wdXBzIChjb250ZXh0IG1lbnVzLCBldGMuKS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcG9wdXBQYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlbWUgdG8gYXBwbHkgdG8gU3R1ZGlvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgc3R1ZGlvVGhlbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdGhlbWU6IEFnU3R1ZGlvVGhlbWUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHlvdXIgdGhlbWUgdXNlcyBhIGZvbnQgdGhhdCBpcyBhdmFpbGFibGUgb24gR29vZ2xlIEZvbnRzLCBwYXNzIHRydWUgdG8gbG9hZCBpdCBmcm9tIEdvb2dsZSdzIENETi5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcHVibGljIGxvYWRUaGVtZUdvb2dsZUZvbnRzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgQ1NTIGxheWVyIHRoYXQgdGhpcyB0aGVtZSBzaG91bGQgYmUgcmVuZGVyZWQgb250by4gV2hlbiBzcGVjaWZpZWQsXG4gICAgICogU3R1ZGlvIENTUyB3aWxsIGJlIHdyYXBwZWQgaW4gYSBgQGxheWVyICR7dGhlbWVDc3NMYXllcn0geyAuLi4gfWAgYmxvY2suXG4gICAgICpcbiAgICAgKiBOT1RFOiB3aGVuIHNwZWNpZnlpbmcgYHRoZW1lQ3NzTGF5ZXJgIHdlIHJlY29tbWVuZCBzZXR0aW5nXG4gICAgICogYHRoZW1lU3R5bGVDb250YWluZXJgIHRvIGBkb2N1bWVudC5ib2R5YCB0byBlbnN1cmUgdGhhdCBTdHVkaW8gQ1NTXG4gICAgICogY29tZXMgYWZ0ZXIgeW91ciBhcHBsaWNhdGlvbiBDU1MsIGFsbG93aW5nIHlvdXIgYXBwbGljYXRpb24gdG8gc2V0IHRoZVxuICAgICAqIG9yZGVyIG9mIGxheWVycy5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0BsYXllclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0aGVtZUNzc0xheWVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBub25jZSBhdHRyaWJ1dGUgdG8gc2V0IG9uIHN0eWxlIGVsZW1lbnRzIGFkZGVkIHRvIHRoZSBkb2N1bWVudCBieVxuICAgICAqIHRoZW1lcy4gSWYgXCJmb29cIiBpcyBwYXNzZWQgdG8gdGhpcyBwcm9wZXJ0eSwgU3R1ZGlvIGNhbiB1c2UgdGhlIENvbnRlbnRcbiAgICAgKiBTZWN1cml0eSBQb2xpY3kgYHN0eWxlLXNyYyAnbm9uY2UtZm9vJ2AsIGluc3RlYWQgb2YgdGhlIGxlc3Mgc2VjdXJlXG4gICAgICogYHN0eWxlLXNyYyAndW5zYWZlLWlubGluZSdgLlxuICAgICAqXG4gICAgICogTm90ZTogQ1NQIG5vbmNlcyBhcmUgZ2xvYmFsIHRvIGEgcGFnZSwgd2hlcmUgYSBwYWdlIGhhcyBtdWx0aXBsZSBTdHVkaW8gY29tcG9uZW50cyxcbiAgICAgKiBldmVyeSBvbmUgbXVzdCBoYXZlIHRoZSBzYW1lIHN0eWxlTm9uY2Ugc2V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdHlsZU5vbmNlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIEFuIGVsZW1lbnQgdG8gaW5zZXJ0IHN0eWxlIGVsZW1lbnRzIGludG8gd2hlbiBpbmplY3Rpbmcgc3R5bGVzIGludG8gdGhlXG4gICAgICogU3R1ZGlvLiBTdHlsZXMgYXJlIGluc2VydGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIElmIHVuZGVmaW5lZCwgc3R5bGVzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGRvY3VtZW50IGhlYWQgZm9yIFN0dWRpbyBjb21wb25lbnRzXG4gICAgICogcmVuZGVyZWQgaW4gdGhlIG1haW4gZG9jdW1lbnQgZnJhZ21lbnQsIG9yIHRvIFN0dWRpbyB3cmFwcGVyIGVsZW1lbnRcbiAgICAgKiBmb3Igb3RoZXIgU3R1ZGlvIGNvbXBvbmVudHMgKGUuZy4gdGhvc2UgcmVuZGVyZWQgaW4gYSBzaGFkb3cgRE9NIG9yIGRldGFjaGVkIGZyb20gdGhlXG4gICAgICogZG9jdW1lbnQpLlxuICAgICAqXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdGhlbWVTdHlsZUNvbnRhaW5lcjogKEhUTUxFbGVtZW50IHwgKCgpID0+IEhUTUxFbGVtZW50IHwgdm9pZCkpIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBBbGxvd3Mgb3ZlcnJpZGluZyB3aGF0IGBkb2N1bWVudGAgaXMgdXNlZC5cbiAgICAgKiBVc2UgdGhpcyB3aGVuIHlvdSB3YW50IFN0dWRpbyB0byB1c2UgYSBkaWZmZXJlbnQgYGRvY3VtZW50YCB0aGFuIHRoZSBvbmUgYXZhaWxhYmxlIG9uIHRoZSBnbG9iYWwgc2NvcGUuXG4gICAgICogVGhpcyBjYW4gaGFwcGVuIGlmIGRvY2tpbmcgb3V0IGNvbXBvbmVudHMgKHNvbWV0aGluZyB3aGljaCBFbGVjdHJvbiBzdXBwb3J0cykuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGdldERvY3VtZW50OiAoKCkgPT4gRG9jdW1lbnQpIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBEaXNhYmxlcyB0b3VjaCBzdXBwb3J0IChidXQgZG9lcyBub3QgcmVtb3ZlIHRoZSBicm93c2VyJ3MgZWZmb3J0cyB0byBzaW11bGF0ZSBtb3VzZSBldmVudHMgb24gdG91Y2gpLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcHVibGljIHN1cHByZXNzVG91Y2g6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgLyoqIEEgbWFwIG9mIGtleS0+dmFsdWUgcGFpcnMgZm9yIGxvY2FsaXNpbmcgdGV4dCB3aXRoaW4gU3R1ZGlvLlxuICAgICAqIEBpbml0aWFsXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHQ6IEFnU3R1ZGlvTG9jYWxlVGV4dCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogQSBjYWxsYmFjayBmb3IgbG9jYWxpc2luZyB0ZXh0IHdpdGhpbiBTdHVkaW8uXG4gICAgICogQGluaXRpYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0TG9jYWxlVGV4dDogKChwYXJhbXM6IEFnU3R1ZGlvR2V0TG9jYWxlVGV4dFBhcmFtcykgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogUHJvdmlkZSBhIGN1c3RvbSBgc3R1ZGlvSWRgIGZvciB0aGlzIGluc3RhbmNlIG9mIFN0dWRpby4gVmFsdWUgd2lsbCBiZSBzZXQgb24gdGhlIHJvb3QgRE9NIG5vZGUgdXNpbmcgdGhlIGF0dHJpYnV0ZSBgc3R1ZGlvLWlkYCBhcyB3ZWxsIGFzIGJlaW5nIGFjY2Vzc2libGUgdmlhIHRoZSBgYXBpLmdldFN0dWRpb0lkKClgIG1ldGhvZC5cbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdHVkaW9JZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBQcm92aWRlcyBhIGNvbnRleHQgb2JqZWN0IHRoYXQgaXMgcHJvdmlkZWQgdG8gZGlmZmVyZW50IGNhbGxiYWNrcyBTdHVkaW8gdXNlcy4gVXNlZCBmb3IgcGFzc2luZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHRoZSBjYWxsYmFja3MgdXNlZCBieSB5b3VyIGFwcGxpY2F0aW9uLlxuICAgICAqIEBpbml0aWFsXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGNvbnRleHQ6IGFueSA9IHVuZGVmaW5lZDtcbiAgICAvKiogSW5pdGlhbCBzdGF0ZSBmb3IgU3R1ZGlvLiBPbmx5IHJlYWQgb25jZSBvbiBpbml0aWFsaXphdGlvbi4gQ2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgYXBpLmdldFN0YXRlKClgIHRvIHNhdmUgYW5kIHJlc3RvcmUgU3R1ZGlvIHN0YXRlLlxuICAgICAqIEBpbml0aWFsXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGluaXRpYWxTdGF0ZTogQWdSZXBvcnRTdGF0ZTxUUmVnaXN0cnk+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBEZWZpbmVzIHRoZSBkYXRhIHNvdXJjZXMgdXNlZCBieSBTdHVkaW8uXG4gICAgICpcbiAgICAgKiBJZiB1cGRhdGVkIGFmdGVyIGluaXRpYWxseSBiZWluZyBzZXQsIG9ubHkgY2hhbmdlcyB0byBzeW5jaHJvbm91cyBkYXRhIHdpbGwgYmUgcHJvY2Vzc2VkLlxuICAgICAqIEFueSBvdGhlciBjaGFuZ2VzIHdpbGwgYmUgaWdub3JlZCAoZS5nLiBhZGRpbmcvcmVtb3ZpbmcgZGF0YSBzb3VyY2VzLCB1cGRhdGluZyBmaWVsZHMsIGV0Yy4pXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRhdGE6IEFnRGF0YVNvdXJjZXNEZWZpbml0aW9uIHwgQWdEYXRhRW5naW5lIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBXaGljaCBtb2RlIFN0dWRpbyBpcyBpbi5cbiAgICAgKiBAZGVmYXVsdCAndmlldydcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kZTogQWdTdHVkaW9Nb2RlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBEZWZhdWx0IGxheW91dCBzdHlsaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYXlvdXQ6IFBhcnRpYWw8QWdQYWdlTGF5b3V0U3RhdGU+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBBSSBBc3Npc3RhbnQgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoZSAgICAgKipBSSBBc3Npc3RhbnQqKiBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gQmVoYXZpb3VyIHdpbGwgYmVcbiAgICAgKiBzbGlnaHRseSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBMTE0gYmVpbmcgdXNlZCwgYW5kIHJlc3VsdHMgY2FuIHZhcnkgYWNyb3NzIHF1ZXJpZXMuXG4gICAgICpcbiAgICAgKiBAaW5pdGlhbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhaTogQWdBaUFzc2lzdGFudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogRGF0YS1sYXllciBjb25maWd1cmF0aW9uLiBDb250cm9scyBiZWhhdmlvdXJzIHN1Y2ggYXMgZXhwb3J0IHJvdyBsaW1pdHMuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGRhdGFPcHRpb25zOiBBZ0RhdGFPcHRpb25zIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBAZGVwcmVjYXRlZCB2MS4xIFVzZSBgd2lkZ2V0c2AgdG8gY3VzdG9taXNlIHRoZSB3aWRnZXQgY29uZmlndXJhdGlvbnMgYW5kIGF2YWlsYWJsZSB3aWRnZXRzLFxuICAgICAqIGFuZCBgcGFnZWAgdG8gY3VzdG9taXNlIHRoZSBwYWdlIHNldHVwIGZvcm0uXG4gICAgICpcbiAgICAgKiBPdmVycmlkZXMgZm9yIHRoZSBsYXlvdXQgYW5kIHdpZGdldCBjb25maWdzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVycmlkZXM6IEFnU3R1ZGlvT3ZlcnJpZGVzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIC8qKiBDb25maWd1cmUgd2hpY2ggcGFuZWxzIGFyZSBkaXNwbGF5ZWQgYW5kIG9uIHdoaWNoIHNpZGUuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHBhbmVsczogQWdQYW5lbENvbmZpZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogQ29uZmlndXJlIHBhZ2UgKGUuZy4gcGFnZSBzZXR1cCBmb3JtIGluIHBhZ2UgdGFiIG9mIGVkaXQgcGFuZWwpLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdlOiAoQWdQYWdlQ29uZmlnIHwgKChjb25maWc6IEFnUGFnZUNvbmZpZykgPT4gQWdQYWdlQ29uZmlnKSkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHdpZGdldHM6XG4gICAgICAgIHwgKEFnV2lkZ2V0c0NvbmZpZzxUUmVnaXN0cnk+IHwgKCh3aWRnZXRzOiBBZ1dpZGdldHNDb25maWc8VFJlZ2lzdHJ5PikgPT4gQWdXaWRnZXRzQ29uZmlnPFRSZWdpc3RyeT4pKVxuICAgICAgICB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAvKiogQ3VzdG9tIGNvbXBvbmVudHMgKGUuZy4gY3VzdG9tIHdpZGdldCBjb21wb25lbnRzKSBrZXllZCBieSBJRC5cbiAgICAgKiBVc2VkIHRvIHNoYXJlIGNvbXBvbmVudHMgd2hpY2ggY2FuIHRoZW4gYmUgcmVmZXJlbmNlZCBkaXJlY3RseSBieSBrZXkgaW4gdGhlIGRlZmluaXRpb25zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb21wb25lbnRzOiBUUmVnaXN0cnlbJ2NvbXBvbmVudHMnXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIC8qKiBTdGF0ZSBoYXMgYmVlbiB1cGRhdGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc3RhdGVVcGRhdGVkOiBFdmVudEVtaXR0ZXI8QWdTdHVkaW9TdGF0ZVVwZGF0ZWRFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEFnU3R1ZGlvU3RhdGVVcGRhdGVkRXZlbnQ+KCk7XG4gICAgLyoqIFRoZSBBUEkgaGFzIGJlZW4gaW5pdGlhbGlzZWQgYW5kIGlzIHJlYWR5IGZvciBtb3N0IGNhbGxzLiBUaGUgZGF0YSBlbmdpbmUgaGFzIG5vdCBiZWVuIGluaXRpYWxpc2VkIHlldCwgYW5kIHRoZSBVSSBpcyBub3QgcmVhZHkuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyBhcGlSZWFkeTogRXZlbnRFbWl0dGVyPEFnU3R1ZGlvQXBpUmVhZHlFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFnU3R1ZGlvQXBpUmVhZHlFdmVudD4oKTtcbiAgICAvKiogVGhlIGRhdGEgZW5naW5lIGhhcyBiZWVuIGluaXRpYWxpc2VkLCBhbmQgdGhlIFVJIGhhcyBiZWVuIGNyZWF0ZWQsIGJ1dCBtYXkgbm90IGJlIGZ1bGx5IHJlbmRlcmVkIHlldC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHN0dWRpb1JlYWR5OiBFdmVudEVtaXR0ZXI8QWdTdHVkaW9SZWFkeUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWdTdHVkaW9SZWFkeUV2ZW50PigpO1xuICAgIC8qKiBBbiBlcnJvciBoYXMgb2NjdXJyZWQgd2l0aGluIFN0dWRpby5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIGVycm9yUmFpc2VkOiBFdmVudEVtaXR0ZXI8QWdTdHVkaW9FcnJvclJhaXNlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWdTdHVkaW9FcnJvclJhaXNlZEV2ZW50PigpO1xuXG4gICAgLy8gQEVOREBcbn1cblxuY29uc3QgYm9vbGVhbk1peGVkU3R1ZGlvUHJvcGVydGllcyA9IG5ldyBTZXQ8c3RyaW5nPihfQk9PTEVBTl9NSVhFRF9TVFVESU9fUFJPUEVSVElFUyk7XG4vKipcbiAqIFVzZWQgdG8gc3VwcG9ydCB0aGUgdXNlciBzZXR0aW5nIGNvbWJpbmVkIGJvb2xlYW4gYW5kIHN0cmluZyAvIG9iamVjdCBwcm9wZXJ0aWVzXG4gKiBhcyBwbGFpbiBIVE1MIGF0dHJpYnV0ZXMgYW5kIHVzIGNvcnJlY3RseSBtYXBwaW5nIHRoYXQgdG8gdHJ1ZS5cbiAqIEZvciBleGFtcGxlIGNlbGxTZWN0aW9uIGNhbiBiZSBib29sZWFuIG9yIGFuIG9iamVjdFxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZU9yQ29lcmNlZFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZVRvVXNlOiBhbnkpOiBhbnkge1xuICAgIGlmIChib29sZWFuTWl4ZWRTdHVkaW9Qcm9wZXJ0aWVzLmhhcyhrZXkpKSB7XG4gICAgICAgIC8vIEhhbmRsZSBwbGFpbiBIVE1MIGJvb2xlYW4gYXR0cmlidXRlcyBhbmQgY29udmVydCB0aGVtIHRvIGJvb2xlYW4gdmFsdWVzXG4gICAgICAgIC8vIEFsc28gaGFuZGxlIHRoZSBmYWxzZSBzdHJpbmcgY2FzZSB0byBtYXRjaCBBbmd1bGFyIGJvb2xlYW4gYXR0cmlidXRlc1xuICAgICAgICByZXR1cm4gdmFsdWVUb1VzZSA9PT0gJycgPyB0cnVlIDogdmFsdWVUb1VzZSA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdmFsdWVUb1VzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlVG9Vc2U7XG59XG4iXX0=
@@ -0,0 +1,107 @@
1
+ import { Component, Injectable, ViewContainerRef, inject } from '@angular/core';
2
+ import { _BaseComponentWrapper } from 'ag-studio';
3
+ import { _removeFromParent } from 'ag-grid-enterprise';
4
+ import * as i0 from "@angular/core";
5
+ // To speed up the removal of custom components we create a number of shards to contain them.
6
+ // Removing a single component calls a function within Angular called removeFromArray.
7
+ // This is a lot faster if the array is smaller.
8
+ export class AgComponentContainer {
9
+ constructor() {
10
+ this.vcr = inject(ViewContainerRef);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgComponentContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgComponentContainer, selector: "ag-component-container", ngImport: i0, template: '', isInline: true }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgComponentContainer, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'ag-component-container',
19
+ template: '',
20
+ }]
21
+ }] });
22
+ const NUM_SHARDS = 16;
23
+ let shardIdx = 0;
24
+ function createComponentContainers(vcr) {
25
+ const containerMap = new Map();
26
+ for (let i = 0; i < NUM_SHARDS; i++) {
27
+ const container = vcr.createComponent(AgComponentContainer);
28
+ containerMap.set(i, container);
29
+ _removeFromParent(container.location.nativeElement);
30
+ }
31
+ return containerMap;
32
+ }
33
+ export class AngularFrameworkComponentWrapper extends _BaseComponentWrapper {
34
+ setViewContainerRef(viewContainerRef, angularFrameworkOverrides) {
35
+ this.viewContainerRef = viewContainerRef;
36
+ this.frameworkOverrides = angularFrameworkOverrides;
37
+ }
38
+ createWrapper(OriginalConstructor) {
39
+ this.compShards ??= createComponentContainers(this.viewContainerRef);
40
+ return new DynamicAgNg2Component(this.frameworkOverrides, this, OriginalConstructor);
41
+ }
42
+ createComponent(componentType) {
43
+ shardIdx = (shardIdx + 1) % NUM_SHARDS;
44
+ const container = this.compShards.get(shardIdx);
45
+ return container.instance.vcr.createComponent(componentType);
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularFrameworkComponentWrapper, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularFrameworkComponentWrapper }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularFrameworkComponentWrapper, decorators: [{
51
+ type: Injectable
52
+ }] });
53
+ class DynamicAgNg2Component {
54
+ constructor(frameworkOverrides, frameworkCompWrapper, OriginalConstructor) {
55
+ this.frameworkOverrides = frameworkOverrides;
56
+ this.frameworkCompWrapper = frameworkCompWrapper;
57
+ this.OriginalConstructor = OriginalConstructor;
58
+ }
59
+ init(params) {
60
+ return new Promise((resolve) => {
61
+ this.frameworkOverrides.runInsideAngular(() => {
62
+ this._init(params).then((result) => {
63
+ this._componentRef.changeDetectorRef.detectChanges();
64
+ resolve(result);
65
+ });
66
+ });
67
+ });
68
+ }
69
+ async _init(params) {
70
+ this._componentRef = this.frameworkCompWrapper.createComponent(this.OriginalConstructor);
71
+ const instance = this._componentRef.instance;
72
+ this._frameworkComponentInstance = instance;
73
+ this._eGui = this._componentRef.location.nativeElement;
74
+ // Angular appends the component to the DOM, so remove it
75
+ _removeFromParent(this._eGui);
76
+ return instance.agInit?.(params);
77
+ }
78
+ async refresh(params) {
79
+ return this.frameworkOverrides.runInsideAngular(() => this._frameworkComponentInstance.refresh?.(params));
80
+ }
81
+ getGui() {
82
+ return this._eGui;
83
+ }
84
+ /** `getGui()` returns the `ng-component` element. This returns the actual root element. */
85
+ getRootElement() {
86
+ return this._eGui.firstChild;
87
+ }
88
+ destroy() {
89
+ if (typeof this._frameworkComponentInstance?.destroy === 'function') {
90
+ this._frameworkComponentInstance.destroy();
91
+ }
92
+ this._componentRef?.destroy();
93
+ }
94
+ getFrameworkComponentInstance() {
95
+ return this._frameworkComponentInstance;
96
+ }
97
+ hasMethod(name) {
98
+ return this._frameworkComponentInstance[name] != null;
99
+ }
100
+ callMethod(name, args) {
101
+ return this.frameworkOverrides.runInsideAngular(() => this._frameworkComponentInstance[name](...args));
102
+ }
103
+ addMethod(name, callback) {
104
+ this[name] = callback;
105
+ }
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2FuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBS3ZELDZGQUE2RjtBQUM3RixzRkFBc0Y7QUFDdEYsZ0RBQWdEO0FBS2hELE1BQU0sT0FBTyxvQkFBb0I7SUFKakM7UUFLVyxRQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDekM7K0dBRlksb0JBQW9CO21HQUFwQixvQkFBb0IsOERBRm5CLEVBQUU7OzRGQUVILG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7QUFJRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLFNBQVMseUJBQXlCLENBQUMsR0FBcUI7SUFDcEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQThDLENBQUM7SUFDM0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1RCxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFT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QUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELDJGQUEyRjtJQUMzRixjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQXlCLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixFQUFFLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELDZCQUE2QjtRQUN6QixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQztJQUM1QyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWSxFQUFFLElBQWdCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBaUM7UUFDcEQsSUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgX0ZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXIsIF9XcmFwcGFibGVJbnRlcmZhY2UgfSBmcm9tICdhZy1zdHVkaW8nO1xuaW1wb3J0IHsgX0Jhc2VDb21wb25lbnRXcmFwcGVyIH0gZnJvbSAnYWctc3R1ZGlvJztcblxuaW1wb3J0IHsgX3JlbW92ZUZyb21QYXJlbnQgfSBmcm9tICdhZy1ncmlkLWVudGVycHJpc2UnO1xuXG5pbXBvcnQgdHlwZSB7IEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMgfSBmcm9tICcuL2FuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMnO1xuaW1wb3J0IHR5cGUgeyBBZ0N1c3RvbUNvbXBvbmVudCB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbi8vIFRvIHNwZWVkIHVwIHRoZSByZW1vdmFsIG9mIGN1c3RvbSBjb21wb25lbnRzIHdlIGNyZWF0ZSBhIG51bWJlciBvZiBzaGFyZHMgdG8gY29udGFpbiB0aGVtLlxuLy8gUmVtb3ZpbmcgYSBzaW5nbGUgY29tcG9uZW50IGNhbGxzIGEgZnVuY3Rpb24gd2l0aGluIEFuZ3VsYXIgY2FsbGVkIHJlbW92ZUZyb21BcnJheS5cbi8vIFRoaXMgaXMgYSBsb3QgZmFzdGVyIGlmIHRoZSBhcnJheSBpcyBzbWFsbGVyLlxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZy1jb21wb25lbnQtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGNsYXNzIEFnQ29tcG9uZW50Q29udGFpbmVyIHtcbiAgICBwdWJsaWMgdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xufVxuY29uc3QgTlVNX1NIQVJEUyA9IDE2O1xubGV0IHNoYXJkSWR4ID0gMDtcblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50Q29udGFpbmVycyh2Y3I6IFZpZXdDb250YWluZXJSZWYpOiBNYXA8bnVtYmVyLCBDb21wb25lbnRSZWY8QWdDb21wb25lbnRDb250YWluZXI+PiB7XG4gICAgY29uc3QgY29udGFpbmVyTWFwID0gbmV3IE1hcDxudW1iZXIsIENvbXBvbmVudFJlZjxBZ0NvbXBvbmVudENvbnRhaW5lcj4+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fU0hBUkRTOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdmNyLmNyZWF0ZUNvbXBvbmVudChBZ0NvbXBvbmVudENvbnRhaW5lcik7XG4gICAgICAgIGNvbnRhaW5lck1hcC5zZXQoaSwgY29udGFpbmVyKTtcbiAgICAgICAgX3JlbW92ZUZyb21QYXJlbnQoY29udGFpbmVyLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGFpbmVyTWFwO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXJcbiAgICBleHRlbmRzIF9CYXNlQ29tcG9uZW50V3JhcHBlcjxfV3JhcHBhYmxlSW50ZXJmYWNlPlxuICAgIGltcGxlbWVudHMgX0ZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXJcbntcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgcHJpdmF0ZSBmcmFtZXdvcmtPdmVycmlkZXM6IEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXM7XG4gICAgcHJpdmF0ZSBjb21wU2hhcmRzOiBNYXA8bnVtYmVyLCBDb21wb25lbnRSZWY8QWdDb21wb25lbnRDb250YWluZXI+PjtcblxuICAgIHNldFZpZXdDb250YWluZXJSZWYodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgYW5ndWxhckZyYW1ld29ya092ZXJyaWRlczogQW5ndWxhckZyYW1ld29ya092ZXJyaWRlcykge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYgPSB2aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB0aGlzLmZyYW1ld29ya092ZXJyaWRlcyA9IGFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVdyYXBwZXIoT3JpZ2luYWxDb25zdHJ1Y3RvcjogeyBuZXcgKCk6IGFueSB9KTogX1dyYXBwYWJsZUludGVyZmFjZSB7XG4gICAgICAgIHRoaXMuY29tcFNoYXJkcyA/Pz0gY3JlYXRlQ29tcG9uZW50Q29udGFpbmVycyh0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICByZXR1cm4gbmV3IER5bmFtaWNBZ05nMkNvbXBvbmVudCh0aGlzLmZyYW1ld29ya092ZXJyaWRlcywgdGhpcywgT3JpZ2luYWxDb25zdHJ1Y3Rvcik7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29tcG9uZW50PFQ+KGNvbXBvbmVudFR5cGU6IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSk6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgICAgIHNoYXJkSWR4ID0gKHNoYXJkSWR4ICsgMSkgJSBOVU1fU0hBUkRTO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbXBTaGFyZHMuZ2V0KHNoYXJkSWR4KSE7XG4gICAgICAgIHJldHVybiBjb250YWluZXIuaW5zdGFuY2UudmNyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlKTtcbiAgICB9XG59XG5cbmNsYXNzIER5bmFtaWNBZ05nMkNvbXBvbmVudDxQPiBpbXBsZW1lbnRzIF9XcmFwcGFibGVJbnRlcmZhY2Uge1xuICAgIHByaXZhdGUgX2VHdWk6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEFnQ3VzdG9tQ29tcG9uZW50PFA+PjtcbiAgICBwcml2YXRlIF9mcmFtZXdvcmtDb21wb25lbnRJbnN0YW5jZTogYW55OyAvLyB0aGUgdXNlcidzIGNvbXBvbmVudCAtIGZvciBhY2Nlc3NpbmcgbWV0aG9kcyB0aGV5IGNyZWF0ZVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZnJhbWV3b3JrT3ZlcnJpZGVzOiBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLFxuICAgICAgICBwcml2YXRlIGZyYW1ld29ya0NvbXBXcmFwcGVyOiBBbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlcixcbiAgICAgICAgcHJpdmF0ZSBPcmlnaW5hbENvbnN0cnVjdG9yOiB7IG5ldyAoKTogYW55IH1cbiAgICApIHt9XG5cbiAgICBpbml0KHBhcmFtczogUCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mcmFtZXdvcmtPdmVycmlkZXMucnVuSW5zaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdChwYXJhbXMpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfaW5pdChwYXJhbXM6IFApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB0aGlzLmZyYW1ld29ya0NvbXBXcmFwcGVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLk9yaWdpbmFsQ29uc3RydWN0b3IpO1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fZnJhbWV3b3JrQ29tcG9uZW50SW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fZUd1aSA9IHRoaXMuX2NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAvLyBBbmd1bGFyIGFwcGVuZHMgdGhlIGNvbXBvbmVudCB0byB0aGUgRE9NLCBzbyByZW1vdmUgaXRcbiAgICAgICAgX3JlbW92ZUZyb21QYXJlbnQodGhpcy5fZUd1aSk7XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmFnSW5pdD8uKHBhcmFtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVmcmVzaChwYXJhbXM6IFApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmFtZXdvcmtPdmVycmlkZXMucnVuSW5zaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9mcmFtZXdvcmtDb21wb25lbnRJbnN0YW5jZS5yZWZyZXNoPy4ocGFyYW1zKSk7XG4gICAgfVxuXG4gICAgZ2V0R3VpKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VHdWk7XG4gICAgfVxuXG4gICAgLyoqIGBnZXRHdWkoKWAgcmV0dXJucyB0aGUgYG5nLWNvbXBvbmVudGAgZWxlbWVudC4gVGhpcyByZXR1cm5zIHRoZSBhY3R1YWwgcm9vdCBlbGVtZW50LiAqL1xuICAgIGdldFJvb3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VHdWkuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2ZyYW1ld29ya0NvbXBvbmVudEluc3RhbmNlPy5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLl9mcmFtZXdvcmtDb21wb25lbnRJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgZ2V0RnJhbWV3b3JrQ29tcG9uZW50SW5zdGFuY2UoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1ld29ya0NvbXBvbmVudEluc3RhbmNlO1xuICAgIH1cblxuICAgIGhhc01ldGhvZChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1ld29ya0NvbXBvbmVudEluc3RhbmNlW25hbWVdICE9IG51bGw7XG4gICAgfVxuXG4gICAgY2FsbE1ldGhvZChuYW1lOiBzdHJpbmcsIGFyZ3M6IElBcmd1bWVudHMpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmFtZXdvcmtPdmVycmlkZXMucnVuSW5zaWRlQW5ndWxhcigoKSA9PiB0aGlzLl9mcmFtZXdvcmtDb21wb25lbnRJbnN0YW5jZVtuYW1lXSguLi5hcmdzKSk7XG4gICAgfVxuXG4gICAgYWRkTWV0aG9kKG5hbWU6IHN0cmluZywgY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55KTogdm9pZCB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbbmFtZV0gPSBjYWxsYmFjaztcbiAgICB9XG59XG4iXX0=
@@ -48,6 +48,13 @@ export class AngularFrameworkOverrides extends _VanillaFrameworkOverrides {
48
48
  get shouldWrapOutgoing() {
49
49
  return this._ngZone && NgZone.isInAngularZone();
50
50
  }
51
+ isFrameworkComponent(comp) {
52
+ if (!comp) {
53
+ return false;
54
+ }
55
+ const prototype = comp.prototype;
56
+ return prototype && 'agInit' in prototype;
57
+ }
51
58
  runInsideAngular(callback) {
52
59
  if (!this._ngZone || NgZone.isInAngularZone()) {
53
60
  return callback();
@@ -64,4 +71,4 @@ export class AngularFrameworkOverrides extends _VanillaFrameworkOverrides {
64
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AngularFrameworkOverrides, decorators: [{
65
72
  type: Injectable
66
73
  }], ctorParameters: () => [{ type: i0.NgZone }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9saWIvYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBS3ZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwwQkFBMEI7SUFRckUsWUFBNkIsT0FBZTtRQUN4QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFEUSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBUG5CLHdCQUFtQixHQUFZLElBQUksQ0FBQztRQUU3RCw2RkFBNkY7UUFDNUUsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBMkIxRCx5RkFBeUY7UUFDekYseUZBQXlGO1FBQ3pGLDJGQUEyRjtRQUMzRiw2RkFBNkY7UUFDN0YsMEdBQTBHO1FBQ2pHLGlCQUFZLEdBQTJFLENBQzVGLFFBQVEsRUFDUixNQUFNLEVBQ1IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBWXZDOzs7V0FHRztRQUNNLGlCQUFZLEdBQWdDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUE1Qy9GLElBQUksQ0FBQyx1QkFBdUI7WUFDdkIsVUFBa0IsRUFBRSxvQkFBb0IsSUFBSSxDQUFDLENBQUUsVUFBa0IsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUM7UUFFaEcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNuQyxJQUFJLE1BQU0sS0FBSyxpQkFBaUIsSUFBSSxNQUFNLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztvQkFDaEUsd0hBQXdIO29CQUN4SCxnSUFBZ0k7b0JBQ2hJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztnQkFDRCwwSEFBMEg7Z0JBQzFILE9BQU8sUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLENBQUM7SUFDTCxDQUFDO0lBWUQ7Ozs7O09BS0c7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFRRCxnQkFBZ0IsQ0FBSSxRQUFpQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUM1QyxPQUFPLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxpRUFBaUU7UUFDakUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUJBQWlCLENBQUksUUFBaUIsRUFBRSxNQUF5QztRQUM3RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBcEVRLHlCQUF5QjttSEFBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBfVmFuaWxsYUZyYW1ld29ya092ZXJyaWRlcyB9IGZyb20gJ2FnLXN0dWRpbyc7XG5cbmltcG9ydCB0eXBlIHsgRnJhbWV3b3JrT3ZlcnJpZGVzSW5jb21pbmdTb3VyY2UgfSBmcm9tICdhZy1ncmlkLWVudGVycHJpc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW5ndWxhckZyYW1ld29ya092ZXJyaWRlcyBleHRlbmRzIF9WYW5pbGxhRnJhbWV3b3JrT3ZlcnJpZGVzIHtcbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgYmF0Y2hGcmFtZXdvcmtDb21wczogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvLyBGbGFnIHVzZWQgdG8gY29udHJvbCBab25lIGJlaGF2aW91ciB3aGVuIHJ1bm5pbmcgdGVzdHMgYXMgbWFueSB0ZXN0IGZlYXR1cmVzIHJlbHkgb24gWm9uZS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzUnVubmluZ1dpdGhpblRlc3Rab25lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJ1bk91dHNpZGU6IDxUPihjYWxsYmFjazogKCkgPT4gVCwgc291cmNlPzogRnJhbWV3b3JrT3ZlcnJpZGVzSW5jb21pbmdTb3VyY2UpID0+IFQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcignYW5ndWxhcicpO1xuXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nV2l0aGluVGVzdFpvbmUgPVxuICAgICAgICAgICAgKGdsb2JhbFRoaXMgYXMgYW55KT8uQUdfU1RVRElPX1VOREVSX1RFU1QgPz8gISEoZ2xvYmFsVGhpcyBhcyBhbnkpPy5ab25lPy5Bc3luY1Rlc3Rab25lU3BlYztcblxuICAgICAgICBpZiAoIXRoaXMuX25nWm9uZSkge1xuICAgICAgICAgICAgdGhpcy5ydW5PdXRzaWRlID0gKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNSdW5uaW5nV2l0aGluVGVzdFpvbmUpIHtcbiAgICAgICAgICAgIHRoaXMucnVuT3V0c2lkZSA9IChjYWxsYmFjaywgc291cmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZSA9PT0gJ3Jlc2l6ZS1vYnNlcnZlcicgfHwgc291cmNlID09PSAncG9wdXBQb3NpdGlvbmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5zdXJlIHJlc2l6ZSBvYnNlcnZlciBjYWxsYmFja3MgYXJlIHJ1biBvdXRzaWRlIG9mIEFuZ3VsYXIgZXZlbiB1bmRlciB0ZXN0IGR1ZSB0byBKZXN0IG5vdCBzdXBwb3J0aW5nIFJlc2l6ZU9ic2VydmVyXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIG1lYW5zIGl0IGp1c3QgbG9vcHMgY29udGludW91c2x5IHdpdGggYSBzZXRUaW1lb3V0IHdpdGggbm8gd2F5IHRvIGZsdXNoIHRoZSBxdWV1ZSBvciBoYXZlIGZpeHR1cmUud2hlblN0YWJsZSgpIHJlc29sdmUuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXaGVuIHVuZGVyIHRlc3QgcnVuIGluc2lkZSBBbmd1bGFyIHNvIHRoYXQgdGVzdHMgY2FuIHVzZSBmaXh0dXJlLndoZW5TdGFibGUoKSB0byB3YWl0IGZvciBhc3luYyBvcGVyYXRpb25zIHRvIGNvbXBsZXRlLlxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucnVuT3V0c2lkZSA9IChjYWxsYmFjaykgPT4gdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ha2UgYWxsIGV2ZW50cyBydW4gb3V0c2lkZSBBbmd1bGFyIGFzIHRoZXkgb2Z0ZW4gdHJpZ2dlciB0aGUgc2V0dXAgb2YgZXZlbnQgbGlzdGVuZXJzXG4gICAgLy8gQnkgaGF2aW5nIHRoZSBldmVudCBsaXN0ZW5lcnMgb3V0c2lkZSBBbmd1bGFyIHdlIGNhbiBhdm9pZCB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAvLyBUaGlzIGFsc28gbWVhbnMgdGhhdCBpZiBhIHVzZXIgY2FsbHMgYW4gQUcgU3R1ZGlvIEFQSSBtZXRob2QgZnJvbSB3aXRoaW4gdGhlaXIgY29tcG9uZW50XG4gICAgLy8gdGhlIGludGVybmFsIHNpZGUgZWZmZWN0cyB3aWxsIG5vdCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24uIFdpdGhvdXQgdGhpcyB0aGUgZXZlbnRzIHdvdWxkXG4gICAgLy8gcnVuIGluc2lkZSBBbmd1bGFyIGFuZCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gYXMgdGhlIHNvdXJjZSBvZiB0aGUgZXZlbnQgd2FzIHdpdGhpbiB0aGUgYW5ndWxhciB6b25lLlxuICAgIG92ZXJyaWRlIHdyYXBJbmNvbWluZzogPFQ+KGNhbGxiYWNrOiAoKSA9PiBULCBzb3VyY2U/OiBGcmFtZXdvcmtPdmVycmlkZXNJbmNvbWluZ1NvdXJjZSkgPT4gVCA9IChcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIHNvdXJjZVxuICAgICkgPT4gdGhpcy5ydW5PdXRzaWRlKGNhbGxiYWNrLCBzb3VyY2UpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNob3VsZFdyYXBPdXRnb2luZyBwcm9wZXJ0eSBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBldmVudHMgc2hvdWxkIGJlIHJ1biBvdXRzaWRlIG9mIEFuZ3VsYXIgb3Igbm90LlxuICAgICAqIElmIGFuIGV2ZW50IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBvdXRzaWRlIG9mIEFuZ3VsYXIgdGhlbiB3ZSBzaG91bGQgbm90IHdyYXAgdGhlIGV2ZW50IGhhbmRsZXJcbiAgICAgKiB3aXRoIHJ1bkluc2lkZUFuZ3VsYXIoKSBhcyB0aGUgdXNlciBtYXkgbm90IGhhdmUgd2FudGVkIHRoaXMuXG4gICAgICogVGhpcyBpcyBhbHNvIHVzZWQgdG8gbm90IHdyYXAgaW50ZXJuYWwgZXZlbnQgbGlzdGVuZXJzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgd2l0aCBSb3dOb2RlcyBhbmQgQ29sdW1ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHNob3VsZFdyYXBPdXRnb2luZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25nWm9uZSAmJiBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZSBzdXJlIHRoYXQgYW55IGNvZGUgdGhhdCBpcyBleGVjdXRlZCBvdXRzaWRlIG9mIEFHIFN0dWRpbyBpcyBydW5uaW5nIHdpdGhpbiB0aGUgQW5ndWxhciB6b25lLlxuICAgICAqIFRoaXMgbWVhbnMgdXNlcnMgY2FuIHVwZGF0ZSB0ZW1wbGF0ZXMgYW5kIHVzZSBiaW5kaW5nIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFueXRoaW5nIGV4dHJhLlxuICAgICAqL1xuICAgIG92ZXJyaWRlIHdyYXBPdXRnb2luZzogPFQ+KGNhbGxiYWNrOiAoKSA9PiBUKSA9PiBUID0gKGNhbGxiYWNrKSA9PiB0aGlzLnJ1bkluc2lkZUFuZ3VsYXIoY2FsbGJhY2spO1xuXG4gICAgcnVuSW5zaWRlQW5ndWxhcjxUPihjYWxsYmFjazogKCkgPT4gVCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuX25nWm9uZSB8fCBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIF9uZ1pvbmUgZXhpc3RlbmNlIGFzIGl0IGlzIG5vdCBwcmVzZW50IHdoZW4gWm9uZWxlc3NcbiAgICAgICAgcmV0dXJuIHRoaXMuX25nWm9uZS5ydW4oY2FsbGJhY2spO1xuICAgIH1cblxuICAgIHJ1bk91dHNpZGVBbmd1bGFyPFQ+KGNhbGxiYWNrOiAoKSA9PiBULCBzb3VyY2U/OiBGcmFtZXdvcmtPdmVycmlkZXNJbmNvbWluZ1NvdXJjZSk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5ydW5PdXRzaWRlKGNhbGxiYWNrLCBzb3VyY2UpO1xuICAgIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9saWIvYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBS3ZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwwQkFBMEI7SUFRckUsWUFBNkIsT0FBZTtRQUN4QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFEUSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBUDFCLHdCQUFtQixHQUFZLElBQUksQ0FBQztRQUV0RCw2RkFBNkY7UUFDNUUsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBMkIxRCx5RkFBeUY7UUFDekYseUZBQXlGO1FBQ3pGLDJGQUEyRjtRQUMzRiw2RkFBNkY7UUFDN0YsMEdBQTBHO1FBQ2pHLGlCQUFZLEdBQTJFLENBQzVGLFFBQVEsRUFDUixNQUFNLEVBQ1IsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBWXZDOzs7V0FHRztRQUNNLGlCQUFZLEdBQWdDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUE1Qy9GLElBQUksQ0FBQyx1QkFBdUI7WUFDdkIsVUFBa0IsRUFBRSxvQkFBb0IsSUFBSSxDQUFDLENBQUUsVUFBa0IsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUM7UUFFaEcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNuQyxJQUFJLE1BQU0sS0FBSyxpQkFBaUIsSUFBSSxNQUFNLEtBQUssa0JBQWtCLEVBQUUsQ0FBQztvQkFDaEUsd0hBQXdIO29CQUN4SCxnSUFBZ0k7b0JBQ2hJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztnQkFDRCwwSEFBMEg7Z0JBQzFILE9BQU8sUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1FBQ04sQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLENBQUM7SUFDTCxDQUFDO0lBWUQ7Ozs7O09BS0c7SUFDSCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFRUSxvQkFBb0IsQ0FBQyxJQUFTO1FBQ25DLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sU0FBUyxJQUFJLFFBQVEsSUFBSSxTQUFTLENBQUM7SUFDOUMsQ0FBQztJQUVELGdCQUFnQixDQUFJLFFBQWlCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzVDLE9BQU8sUUFBUSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxpQkFBaUIsQ0FBSSxRQUFpQixFQUFFLE1BQXlDO1FBQzdFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQzsrR0E1RVEseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IF9WYW5pbGxhRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSAnYWctc3R1ZGlvJztcblxuaW1wb3J0IHR5cGUgeyBGcmFtZXdvcmtPdmVycmlkZXNJbmNvbWluZ1NvdXJjZSB9IGZyb20gJ2FnLWdyaWQtZW50ZXJwcmlzZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIGV4dGVuZHMgX1ZhbmlsbGFGcmFtZXdvcmtPdmVycmlkZXMge1xuICAgIG92ZXJyaWRlIHJlYWRvbmx5IGJhdGNoRnJhbWV3b3JrQ29tcHM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLy8gRmxhZyB1c2VkIHRvIGNvbnRyb2wgWm9uZSBiZWhhdmlvdXIgd2hlbiBydW5uaW5nIHRlc3RzIGFzIG1hbnkgdGVzdCBmZWF0dXJlcyByZWx5IG9uIFpvbmUuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc1J1bm5pbmdXaXRoaW5UZXN0Wm9uZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBydW5PdXRzaWRlOiA8VD4oY2FsbGJhY2s6ICgpID0+IFQsIHNvdXJjZT86IEZyYW1ld29ya092ZXJyaWRlc0luY29taW5nU291cmNlKSA9PiBUO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoJ2FuZ3VsYXInKTtcblxuICAgICAgICB0aGlzLmlzUnVubmluZ1dpdGhpblRlc3Rab25lID1cbiAgICAgICAgICAgIChnbG9iYWxUaGlzIGFzIGFueSk/LkFHX1NUVURJT19VTkRFUl9URVNUID8/ICEhKGdsb2JhbFRoaXMgYXMgYW55KT8uWm9uZT8uQXN5bmNUZXN0Wm9uZVNwZWM7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9uZ1pvbmUpIHtcbiAgICAgICAgICAgIHRoaXMucnVuT3V0c2lkZSA9IChjYWxsYmFjaykgPT4gY2FsbGJhY2soKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUnVubmluZ1dpdGhpblRlc3Rab25lKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bk91dHNpZGUgPSAoY2FsbGJhY2ssIHNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT09ICdyZXNpemUtb2JzZXJ2ZXInIHx8IHNvdXJjZSA9PT0gJ3BvcHVwUG9zaXRpb25pbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVuc3VyZSByZXNpemUgb2JzZXJ2ZXIgY2FsbGJhY2tzIGFyZSBydW4gb3V0c2lkZSBvZiBBbmd1bGFyIGV2ZW4gdW5kZXIgdGVzdCBkdWUgdG8gSmVzdCBub3Qgc3VwcG9ydGluZyBSZXNpemVPYnNlcnZlclxuICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBtZWFucyBpdCBqdXN0IGxvb3BzIGNvbnRpbnVvdXNseSB3aXRoIGEgc2V0VGltZW91dCB3aXRoIG5vIHdheSB0byBmbHVzaCB0aGUgcXVldWUgb3IgaGF2ZSBmaXh0dXJlLndoZW5TdGFibGUoKSByZXNvbHZlLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2hlbiB1bmRlciB0ZXN0IHJ1biBpbnNpZGUgQW5ndWxhciBzbyB0aGF0IHRlc3RzIGNhbiB1c2UgZml4dHVyZS53aGVuU3RhYmxlKCkgdG8gd2FpdCBmb3IgYXN5bmMgb3BlcmF0aW9ucyB0byBjb21wbGV0ZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJ1bk91dHNpZGUgPSAoY2FsbGJhY2spID0+IHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNYWtlIGFsbCBldmVudHMgcnVuIG91dHNpZGUgQW5ndWxhciBhcyB0aGV5IG9mdGVuIHRyaWdnZXIgdGhlIHNldHVwIG9mIGV2ZW50IGxpc3RlbmVyc1xuICAgIC8vIEJ5IGhhdmluZyB0aGUgZXZlbnQgbGlzdGVuZXJzIG91dHNpZGUgQW5ndWxhciB3ZSBjYW4gYXZvaWQgdHJpZ2dlcmluZyBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgLy8gVGhpcyBhbHNvIG1lYW5zIHRoYXQgaWYgYSB1c2VyIGNhbGxzIGFuIEFHIFN0dWRpbyBBUEkgbWV0aG9kIGZyb20gd2l0aGluIHRoZWlyIGNvbXBvbmVudFxuICAgIC8vIHRoZSBpbnRlcm5hbCBzaWRlIGVmZmVjdHMgd2lsbCBub3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uLiBXaXRob3V0IHRoaXMgdGhlIGV2ZW50cyB3b3VsZFxuICAgIC8vIHJ1biBpbnNpZGUgQW5ndWxhciBhbmQgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IHdhcyB3aXRoaW4gdGhlIGFuZ3VsYXIgem9uZS5cbiAgICBvdmVycmlkZSB3cmFwSW5jb21pbmc6IDxUPihjYWxsYmFjazogKCkgPT4gVCwgc291cmNlPzogRnJhbWV3b3JrT3ZlcnJpZGVzSW5jb21pbmdTb3VyY2UpID0+IFQgPSAoXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICBzb3VyY2VcbiAgICApID0+IHRoaXMucnVuT3V0c2lkZShjYWxsYmFjaywgc291cmNlKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzaG91bGRXcmFwT3V0Z29pbmcgcHJvcGVydHkgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgZXZlbnRzIHNob3VsZCBiZSBydW4gb3V0c2lkZSBvZiBBbmd1bGFyIG9yIG5vdC5cbiAgICAgKiBJZiBhbiBldmVudCBoYW5kbGVyIGlzIHJlZ2lzdGVyZWQgb3V0c2lkZSBvZiBBbmd1bGFyIHRoZW4gd2Ugc2hvdWxkIG5vdCB3cmFwIHRoZSBldmVudCBoYW5kbGVyXG4gICAgICogd2l0aCBydW5JbnNpZGVBbmd1bGFyKCkgYXMgdGhlIHVzZXIgbWF5IG5vdCBoYXZlIHdhbnRlZCB0aGlzLlxuICAgICAqIFRoaXMgaXMgYWxzbyB1c2VkIHRvIG5vdCB3cmFwIGludGVybmFsIGV2ZW50IGxpc3RlbmVycyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggUm93Tm9kZXMgYW5kIENvbHVtbnMuXG4gICAgICovXG4gICAgZ2V0IHNob3VsZFdyYXBPdXRnb2luZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25nWm9uZSAmJiBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZSBzdXJlIHRoYXQgYW55IGNvZGUgdGhhdCBpcyBleGVjdXRlZCBvdXRzaWRlIG9mIEFHIFN0dWRpbyBpcyBydW5uaW5nIHdpdGhpbiB0aGUgQW5ndWxhciB6b25lLlxuICAgICAqIFRoaXMgbWVhbnMgdXNlcnMgY2FuIHVwZGF0ZSB0ZW1wbGF0ZXMgYW5kIHVzZSBiaW5kaW5nIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFueXRoaW5nIGV4dHJhLlxuICAgICAqL1xuICAgIG92ZXJyaWRlIHdyYXBPdXRnb2luZzogPFQ+KGNhbGxiYWNrOiAoKSA9PiBUKSA9PiBUID0gKGNhbGxiYWNrKSA9PiB0aGlzLnJ1bkluc2lkZUFuZ3VsYXIoY2FsbGJhY2spO1xuXG4gICAgb3ZlcnJpZGUgaXNGcmFtZXdvcmtDb21wb25lbnQoY29tcDogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghY29tcCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb3RvdHlwZSA9IGNvbXAucHJvdG90eXBlO1xuICAgICAgICByZXR1cm4gcHJvdG90eXBlICYmICdhZ0luaXQnIGluIHByb3RvdHlwZTtcbiAgICB9XG5cbiAgICBydW5JbnNpZGVBbmd1bGFyPFQ+KGNhbGxiYWNrOiAoKSA9PiBUKTogVCB7XG4gICAgICAgIGlmICghdGhpcy5fbmdab25lIHx8IE5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgX25nWm9uZSBleGlzdGVuY2UgYXMgaXQgaXMgbm90IHByZXNlbnQgd2hlbiBab25lbGVzc1xuICAgICAgICByZXR1cm4gdGhpcy5fbmdab25lLnJ1bihjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcnVuT3V0c2lkZUFuZ3VsYXI8VD4oY2FsbGJhY2s6ICgpID0+IFQsIHNvdXJjZT86IEZyYW1ld29ya092ZXJyaWRlc0luY29taW5nU291cmNlKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJ1bk91dHNpZGUoY2FsbGJhY2ssIHNvdXJjZSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7XG4gICAgQWdCYXNlUmVnaXN0cnksXG4gICAgQWdCYXNlV2lkZ2V0RGVmaW5pdGlvbixcbiAgICBBZ0RlZmF1bHRXaWRnZXRUeXBlLFxuICAgIEFnTWF5YmVQcm9taXNlLFxuICAgIEFnVHlwZVNjcmlwdENvbXBvbmVudCxcbiAgICBBZ1dpZGdldERhdGEsXG4gICAgQWdXaWRnZXREYXRhRm9ybWF0LFxuICAgIEFnV2lkZ2V0UGFyYW1zLFxuICAgIEFnV2lkZ2V0UmVnaXN0cnksXG59IGZyb20gJ2FnLXN0dWRpbyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdDdXN0b21Db21wb25lbnQ8VFBhcmFtcywgVFJldHVybiA9IHZvaWQ+IHtcbiAgICAvKiogQ2FsbGVkIG9uY2Ugb24gaW5pdGlhbGlzYXRpb24gd2l0aCBwYXJhbXMgZm9yIHJlbmRlcmluZyB0aGlzIGNvbXBvbmVudC4gKi9cbiAgICBhZ0luaXQocGFyYW1zOiBUUGFyYW1zKTogQWdNYXliZVByb21pc2U8VFJldHVybj47XG5cbiAgICAvKiogQ2FsbGVkIGZvciBldmVyeSBzdWJzZXF1ZW50IHBhcmFtcyB1cGRhdGUuICovXG4gICAgcmVmcmVzaD8ocGFyYW1zOiBUUGFyYW1zKTogQWdNYXliZVByb21pc2U8VFJldHVybj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdXaWRnZXREZWZpbml0aW9uPFxuICAgIFRXaWRnZXRUeXBlIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICAgIFRJbiBleHRlbmRzIEFnV2lkZ2V0RGF0YTx1bmtub3duLCBBZ1dpZGdldERhdGFGb3JtYXQ8dW5rbm93bj4+ID0gYW55LFxuICAgIFRPdXQgZXh0ZW5kcyBBZ1dpZGdldERhdGE8dW5rbm93biwgQWdXaWRnZXREYXRhRm9ybWF0PHVua25vd24+PiA9IFRJbixcbiAgICBUT3B0aW9ucyA9IHVua25vd24sXG4+IGV4dGVuZHMgQWdCYXNlV2lkZ2V0RGVmaW5pdGlvbjxUV2lkZ2V0VHlwZSwgVEluLCBUT3V0LCBUT3B0aW9ucz4ge1xuICAgIC8qKlxuICAgICAqIEN1c3RvbSBjb21wb25lbnQuIEVpdGhlcjpcbiAgICAgKiAtIEEgYHN0cmluZ2AgdGhhdCBtYXRjaGVzIGEgY3VzdG9tIGNvbXBvbmVudCBpbiB0aGUgc3R1ZGlvIGBjb21wb25lbnRzYCBwcm9wZXJ0eVxuICAgICAqIC0gQSBjdXN0b20gQW5ndWxhciBjb21wb25lbnQgY2xhc3NcbiAgICAgKiAtIEEgY3VzdG9tIFR5cGVTY3JpcHQgY29tcG9uZW50IChubyBBbmd1bGFyOyB3b3JraW5nIGRpcmVjdGx5IHdpdGggdGhlIERPTSlcbiAgICAgKi9cbiAgICBjb21wOlxuICAgICAgICB8IHN0cmluZ1xuICAgICAgICB8IFR5cGU8QWdDdXN0b21Db21wb25lbnQ8QWdXaWRnZXRQYXJhbXM8VE91dD4+PlxuICAgICAgICB8IChuZXcgKCkgPT4gQWdUeXBlU2NyaXB0Q29tcG9uZW50PEFnV2lkZ2V0UGFyYW1zPFRPdXQ+Pik7XG59XG5cbnR5cGUgU3RyaW5nQ29tcFdpZGdldFR5cGU8VERlZiBleHRlbmRzIEFnQmFzZVdpZGdldERlZmluaXRpb24+ID0gVERlZlsnY29tcCddIGV4dGVuZHMgc3RyaW5nID8gVERlZiA6IG5ldmVyO1xuXG50eXBlIEV4dHJhY3RTdGF0ZUZyb21EZWY8VERlZj4gPSBURGVmIGV4dGVuZHMgQWdXaWRnZXREZWZpbml0aW9uPGFueSwgYW55LCBpbmZlciBUU3RhdGU+ID8gVFN0YXRlIDogbmV2ZXI7XG5cbnR5cGUgTWF0Y2hpbmdEZWY8VERlZiwgVFdpZGdldFR5cGU+ID0gVERlZiBleHRlbmRzIHsgaWQ6IFRXaWRnZXRUeXBlIH0gPyBURGVmIDogbmV2ZXI7XG5cbnR5cGUgV2lkZ2V0Q3VzdG9tQ29tcDxUUGFyYW1zIGV4dGVuZHMgQWdXaWRnZXRQYXJhbXM+ID1cbiAgICB8IFR5cGU8QWdDdXN0b21Db21wb25lbnQ8VFBhcmFtcz4+XG4gICAgfCAobmV3ICgpID0+IEFnVHlwZVNjcmlwdENvbXBvbmVudDxUUGFyYW1zPik7XG5cbmV4cG9ydCB0eXBlIEFnQ3VzdG9tQ29tcG9uZW50RGVmczxUUmVnaXN0cnkgZXh0ZW5kcyBBZ0Jhc2VSZWdpc3RyeT4gPSB7XG4gICAgW0sgaW4gRXhjbHVkZTxTdHJpbmdDb21wV2lkZ2V0VHlwZTxBZ1dpZGdldFJlZ2lzdHJ5PFRSZWdpc3RyeT4+Wydjb21wJ10sIEFnRGVmYXVsdFdpZGdldFR5cGU+XT86IFdpZGdldEN1c3RvbUNvbXA8XG4gICAgICAgIEFnV2lkZ2V0UGFyYW1zPEV4dHJhY3RTdGF0ZUZyb21EZWY8TWF0Y2hpbmdEZWY8QWdXaWRnZXRSZWdpc3RyeTxUUmVnaXN0cnk+LCBLPj4+XG4gICAgPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdSZWdpc3RyeSBleHRlbmRzIEFnQmFzZVJlZ2lzdHJ5IHtcbiAgICB3aWRnZXRzOiByZWFkb25seSBBZ1dpZGdldERlZmluaXRpb25bXTtcblxuICAgIGNvbXBvbmVudHM6IEFnQ3VzdG9tQ29tcG9uZW50RGVmczx0aGlzPjtcbn1cbiJdfQ==
@@ -1,4 +1,6 @@
1
1
  export * from './lib/ag-studio.component';
2
2
  export * from './lib/ag-studio.module';
3
3
  export * from './lib/angularFrameworkOverrides';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYWctc3R1ZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hZy1zdHVkaW8ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMnO1xuIl19
4
+ export * from './lib/angularFrameworkComponentWrapper';
5
+ export * from './lib/interfaces';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FnLXN0dWRpby1hbmd1bGFyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FnLXN0dWRpby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWctc3R1ZGlvLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMnO1xuIl19