@oneteme/jquery-table 0.0.2 → 0.0.5

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.
@@ -20,6 +20,7 @@ export class ViewFacade {
20
20
  };
21
21
  this.groupBy = {
22
22
  activeKey: null,
23
+ userCustomized: false,
23
24
  };
24
25
  this.sliceBy = {
25
26
  activeDynamicColumns: [],
@@ -95,6 +96,9 @@ export class ViewFacade {
95
96
  this._panelConfig = panelConfig;
96
97
  this._refreshDefaultColumns();
97
98
  this._refreshDynamicSliceMeta();
99
+ if (!this.groupBy.userCustomized) {
100
+ this.groupBy.activeKey = panelConfig.defaultGroupBy ?? null;
101
+ }
98
102
  }
99
103
  // ── Actions Fields
100
104
  setActiveColumns(columns) {
@@ -104,11 +108,12 @@ export class ViewFacade {
104
108
  setUserCustomized(value) {
105
109
  this.fields.userCustomized = value;
106
110
  }
107
- /** Remet la vue dans son état initial : colonnes par défaut, pas de groupBy, pas de dynamic slices. */
111
+ /** Remet la vue dans son état initial : colonnes par défaut, groupBy par défaut, pas de dynamic slices. */
108
112
  resetToDefaults() {
109
113
  this.fields.userCustomized = false;
114
+ this.groupBy.userCustomized = false;
110
115
  this._refreshDefaultColumns();
111
- this.groupBy.activeKey = null;
116
+ this.groupBy.activeKey = this._panelConfig.defaultGroupBy ?? null;
112
117
  this.sliceBy.activeDynamicColumns = [];
113
118
  this._refreshDynamicSliceMeta();
114
119
  }
@@ -176,6 +181,7 @@ export class ViewFacade {
176
181
  // ── Actions Group by
177
182
  setGroupBy(key) {
178
183
  this.groupBy.activeKey = key;
184
+ this.groupBy.userCustomized = true;
179
185
  this._events$.next({ type: 'groupByChanged', key });
180
186
  }
181
187
  // ── Actions Slice by (dynamique)
@@ -295,4 +301,4 @@ export class ViewFacade {
295
301
  });
296
302
  }
297
303
  }
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2pxdWVyeS10YWJsZS9zcmMvbGliL2NvbXBvbmVudC92aWV3L3ZpZXcuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWdDN0csWUFBWTtBQUVaOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFFRSxXQUFXO1FBRUYsV0FBTSxHQUFtQjtZQUNoQyxhQUFhLEVBQUUsRUFBRTtZQUNqQixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFDO1FBRU8sWUFBTyxHQUFxQjtZQUNuQyxTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRU8sWUFBTyxHQUFxQjtZQUNuQyxvQkFBb0IsRUFBRSxFQUFFO1lBQ3hCLG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixXQUFXLEVBQUUsT0FBTztTQUNyQixDQUFDO1FBRU0saUJBQVksR0FBb0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNsRSxzQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRTlDLFlBQVk7UUFFSyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUM1QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQXlTbEQsQ0FBQztJQXZTQyxvQkFBb0I7SUFFcEIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENB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QztZQUFDLE9BQU87U0FBRTtRQUMvRixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDZixJQUFJLGtCQUFrQixLQUFLLENBQUMsRUFBRTtnQkFDNUIsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsS0FBSyxJQUFJLEtBQUssRUFBRSxTQUFTLElBQUksR0FBRyxDQUFDO2dCQUNuRSxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxHQUFHLENBQUM7WUFDL0UsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQThCO1FBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWaWV3RXZlbnQsIFZpZXdGaWVsZCwgVmlld1N0YXRlIH0gZnJvbSAnQG9uZXRlbWUvanF1ZXJ5LWNvcmUnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5Qcm92aWRlciwgVGFibGVWaWV3Q29uZmlnIH0gZnJvbSAnLi4vLi4vanF1ZXJ5LXRhYmxlLm1vZGVsJztcbmltcG9ydCB7IFNsaWNlQ29uZmlnIH0gZnJvbSAnLi4vc2xpY2UtcGFuZWwvc2xpY2UtcGFuZWwubW9kZWwnO1xuaW1wb3J0IHsgaHVtYW5pemVLZXkgfSBmcm9tICcuLi90YWJsZS51dGlscyc7XG5cbmV4cG9ydCB0eXBlIHsgVmlld0ZpZWxkLCBWaWV3Q29uZmlnLCBWaWV3U3RhdGUsIFZpZXdFdmVudCB9IGZyb20gJ0BvbmV0ZW1lL2pxdWVyeS1jb3JlJztcbmV4cG9ydCB7IHZpZXdGaWVsZCwgZ3JvdXBhYmxlVmlld0ZpZWxkcywgc2xpY2VhYmxlVmlld0ZpZWxkcywgaW5pdGlhbFZpZXdTdGF0ZSB9IGZyb20gJ0BvbmV0ZW1lL2pxdWVyeS1jb3JlJztcblxuLy8g4pSA4pSAIFR5cGVzIGludGVybmVzXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld0ZpZWxkU3RhdGUge1xuICBhY3RpdmVDb2x1bW5zOiBUYWJsZUNvbHVtblByb3ZpZGVyPGFueT5bXTtcbiAgLyoqIHRydWUgc2kgbCd1dGlsaXNhdGV1ciBhIGTDqWrDoCBwZXJzb25uYWxpc8OpIGxhIHPDqWxlY3Rpb24gZGUgY29sb25uZXMgKi9cbiAgdXNlckN1c3RvbWl6ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld0dyb3VwQnlTdGF0ZSB7XG4gIGFjdGl2ZUtleTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaWV3U2xpY2VCeVN0YXRlIHtcbiAgYWN0aXZlRHluYW1pY0NvbHVtbnM6IFRhYmxlQ29sdW1uUHJvdmlkZXI8YW55PltdO1xuICBhdmFpbGFibGVGb3JEeW5hbWljOiBUYWJsZUNvbHVtblByb3ZpZGVyPGFueT5bXTtcbiAgYWxsRHluYW1pY0NvbHVtbnM6IFRhYmxlQ29sdW1uUHJvdmlkZXI8YW55PltdO1xuICBhY3RpdmVMYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdQYW5lbENvbmZpZyB7XG4gIC8qKiBDb25maWcgYnJ1dGUgaXNzdWUgZGUgVGFibGVQcm92aWRlci52aWV3ICovXG4gIGNvbmZpZz86IFRhYmxlVmlld0NvbmZpZztcbiAgLyoqIFRvdXRlcyBsZXMgY29sb25uZXMgcsOpc29sdWVzIChub24gZmlsdHLDqWVzKSAqL1xuICBjb2x1bW5zOiBUYWJsZUNvbHVtblByb3ZpZGVyPGFueT5bXTtcbiAgLyoqIFNsaWNlcyBzdGF0aXF1ZXMgKi9cbiAgc2xpY2VDb25maWdzOiBTbGljZUNvbmZpZzxhbnk+W107XG4gIC8qKiBMYWJlbCB1dGlsaXPDqSBxdWFuZCBhdWN1biBncm91cGUgLyBhdWN1bmUgc2xpY2UgbuKAmWVzdCBhY3RpZi4gRMOpZmF1dMKgOiAnQXVjdW4nLiAqL1xuICBub25lTGFiZWw/OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgCBGYWNhZGVcblxuLyoqXG4gKiBDZW50cmFsaXNlIGwnw6l0YXQgZXQgbGVzIGFjdGlvbnMgZHUgcGFubmVhdSBWaWV3IChDaGFtcHMgLyBHcm91cCBieSAvIFNsaWNlIGJ5KS5cbiAqIFBhcyBkZSBkw6lwZW5kYW5jZSBBbmd1bGFyL0RPTSA6IHBldXQgw6p0cmUgZXh0cmFpdGUgdmVycyBqcXVlcnktY29yZSDDoCB0ZXJtZS5cbiAqXG4gKiBVc2FnZSA6XG4gKiAgIHRoaXMuX3ZpZXcgPSBuZXcgVmlld0ZhY2FkZSgpO1xuICogICB0aGlzLl92aWV3LmV2ZW50cyQuc3Vic2NyaWJlKGUgPT4geyAuLi4gfSk7XG4gKiAgIHRoaXMuX3ZpZXcudXBkYXRlKHsgY29uZmlnLCBjb2x1bW5zLCBzbGljZUNvbmZpZ3MgfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBWaWV3RmFjYWRlPFQgPSBhbnk+IHtcblxuICAvLyDilIDilIAgU3RhdGVcblxuICByZWFkb25seSBmaWVsZHM6IFZpZXdGaWVsZFN0YXRlID0ge1xuICAgIGFjdGl2ZUNvbHVtbnM6IFtdLFxuICAgIHVzZXJDdXN0b21pemVkOiBmYWxzZSxcbiAgfTtcblxuICByZWFkb25seSBncm91cEJ5OiBWaWV3R3JvdXBCeVN0YXRlID0ge1xuICAgIGFjdGl2ZUtleTogbnVsbCxcbiAgfTtcblxuICByZWFkb25seSBzbGljZUJ5OiBWaWV3U2xpY2VCeVN0YXRlID0ge1xuICAgIGFjdGl2ZUR5bmFtaWNDb2x1bW5zOiBbXSxcbiAgICBhdmFpbGFibGVGb3JEeW5hbWljOiBbXSxcbiAgICBhbGxEeW5hbWljQ29sdW1uczogW10sXG4gICAgYWN0aXZlTGFiZWw6ICdBdWN1bicsXG4gIH07XG5cbiAgcHJpdmF0ZSBfcGFuZWxDb25maWc6IFZpZXdQYW5lbENvbmZpZyA9IHsgY29sdW1uczogW10sIHNsaWNlQ29uZmlnczogW10gfTtcbiAgcHJpdmF0ZSBfaGlkZGVuU3RhdGljS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIC8vIOKUgOKUgCBFdmVudHNcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudHMkID0gbmV3IFN1YmplY3Q8Vmlld0V2ZW50PigpO1xuICByZWFkb25seSBldmVudHMkID0gdGhpcy5fZXZlbnRzJC5hc09ic2VydmFibGUoKTtcblxuICAvLyDilIDilIAgQ29tcHV0ZWQgZmxhZ3NcblxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxDb25maWcuY29uZmlnPy5lbmFibGVkID09PSB0cnVlO1xuICB9XG5cbiAgZ2V0IHNob3dGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZDtcbiAgfVxuXG4gIGdldCBzaG93R3JvdXBCeVNlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZCAmJiB0aGlzLmdyb3VwQnlDb2x1bW5zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBnZXQgc2hvd1NsaWNlQnlTZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWQgJiYgKFxuICAgICAgKHRoaXMuX3BhbmVsQ29uZmlnLnNsaWNlQ29uZmlncz8ubGVuZ3RoID8/IDApID4gMCB8fFxuICAgICAgdGhpcy5zbGljZUJ5LmFsbER5bmFtaWNDb2x1bW5zLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgZ2V0IGFsbG93Q29sdW1uUmVtb3ZhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxDb25maWcuY29uZmlnPy5lbmFibGVDb2x1bW5SZW1vdmFsICE9PSBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc0NvbHVtbkRyYWdEcm9wRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcGFuZWxDb25maWcuY29uZmlnPy5lbmFibGVDb2x1bW5EcmFnRHJvcCA9PT0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBtZW51QmFzZUNvbHVtbnMoKTogVGFibGVDb2x1bW5Qcm92aWRlcjxUPltdIHtcbiAgICByZXR1cm4gdGhpcy5fdW5pcXVlQnlLZXkoKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgfHwgW10pLmZpbHRlcihjID0+ICFjLm9wdGlvbmFsKSk7XG4gIH1cblxuICBnZXQgbWVudU9wdGlvbmFsQ29sdW1ucygpOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl91bmlxdWVCeUtleSgodGhpcy5fcGFuZWxDb25maWcuY29sdW1ucyB8fCBbXSkuZmlsdGVyKGMgPT4gYy5vcHRpb25hbCkpO1xuICB9XG5cbiAgZ2V0IHRvdGFsQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IFNldCgodGhpcy5fcGFuZWxDb25maWcuY29sdW1ucyB8fCBbXSkubWFwKGMgPT4gYy5rZXkpKS5zaXplO1xuICB9XG5cbiAgZ2V0IGdyb3VwQnlDb2x1bW5zKCk6IFRhYmxlQ29sdW1uUHJvdmlkZXI8VD5bXSB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHJldHVybiAodGhpcy5fcGFuZWxDb25maWcuY29sdW1ucyB8fCBbXSkuZmlsdGVyKGMgPT4ge1xuICAgICAgaWYgKGMuZ3JvdXBhYmxlID09PSBmYWxzZSB8fCBzZWVuLmhhcyhjLmtleSkpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICghYy5oZWFkZXIgJiYgYy5ncm91cGFibGUgIT09IHRydWUpIHJldHVybiBmYWxzZTtcbiAgICAgIHNlZW4uYWRkKGMua2V5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZUdyb3VwQnlMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5ncm91cEJ5LmFjdGl2ZUtleSkgcmV0dXJuIHRoaXMuX3BhbmVsQ29uZmlnLm5vbmVMYWJlbCA/PyAnQXVjdW4nO1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuZ3JvdXBCeUNvbHVtbnMuZmluZChjID0+IGMua2V5ID09PSB0aGlzLmdyb3VwQnkuYWN0aXZlS2V5KTtcbiAgICByZXR1cm4gY29sPy5oZWFkZXIgfHwgdGhpcy5ncm91cEJ5LmFjdGl2ZUtleTtcbiAgfVxuXG4gIGdldCBzdGF0aWNTbGljZXNGb3JNZW51KCk6IEFycmF5PHsga2V5OiBzdHJpbmc7IHRpdGxlOiBzdHJpbmc7IGljb24/OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiAodGhpcy5fcGFuZWxDb25maWcuc2xpY2VDb25maWdzID8/IFtdKVxuICAgICAgLmZpbHRlcihzID0+ICEhcy5jb2x1bW5LZXkpXG4gICAgICAubWFwKHMgPT4ge1xuICAgICAgICBjb25zdCBjb2xJY29uID0gKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgPz8gW10pLmZpbmQoYyA9PiBjLmtleSA9PT0gcy5jb2x1bW5LZXkpPy5pY29uO1xuICAgICAgICByZXR1cm4geyBrZXk6IHMuY29sdW1uS2V5ISwgdGl0bGU6IHMudGl0bGUgfHwgaHVtYW5pemVLZXkocy5jb2x1bW5LZXkhKSwgaWNvbjogcy5pY29uID8/IGNvbEljb24gfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY29sTGFiZWwoY29sOiB7IGtleTogc3RyaW5nOyBoZWFkZXI/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbC5oZWFkZXIgfHwgaHVtYW5pemVLZXkoY29sLmtleSk7XG4gIH1cblxuICAvLyDilIDilIAgTWlzZSDDoCBqb3VyIGRlIGxhIGNvbmZpZyAoYXBwZWzDqWUgZGVwdWlzIHJlZnJlc2hWaWV3TW9kZWwpXG5cbiAgdXBkYXRlKHBhbmVsQ29uZmlnOiBWaWV3UGFuZWxDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLl9wYW5lbENvbmZpZyA9IHBhbmVsQ29uZmlnO1xuICAgIHRoaXMuX3JlZnJlc2hEZWZhdWx0Q29sdW1ucygpO1xuICAgIHRoaXMuX3JlZnJlc2hEeW5hbWljU2xpY2VNZXRhKCk7XG4gIH1cblxuICAvLyDilIDilIAgQWN0aW9ucyBGaWVsZHNcblxuICBzZXRBY3RpdmVDb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uUHJvdmlkZXI8VD5bXSk6IHZvaWQge1xuICAgIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIHRoaXMuZmllbGRzLnVzZXJDdXN0b21pemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNldFVzZXJDdXN0b21pemVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWVsZHMudXNlckN1c3RvbWl6ZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBSZW1ldCBsYSB2dWUgZGFucyBzb24gw6l0YXQgaW5pdGlhbCA6IGNvbG9ubmVzIHBhciBkw6lmYXV0LCBwYXMgZGUgZ3JvdXBCeSwgcGFzIGRlIGR5bmFtaWMgc2xpY2VzLiAqL1xuICByZXNldFRvRGVmYXVsdHMoKTogdm9pZCB7XG4gICAgdGhpcy5maWVsZHMudXNlckN1c3RvbWl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9yZWZyZXNoRGVmYXVsdENvbHVtbnMoKTtcbiAgICB0aGlzLmdyb3VwQnkuYWN0aXZlS2V5ID0gbnVsbDtcbiAgICB0aGlzLnNsaWNlQnkuYWN0aXZlRHluYW1pY0NvbHVtbnMgPSBbXTtcbiAgICB0aGlzLl9yZWZyZXNoRHluYW1pY1NsaWNlTWV0YSgpO1xuICB9XG5cbiAgYWRkQ29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW5Qcm92aWRlcjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZ0NvbHMgPSB0aGlzLl9wYW5lbENvbmZpZy5jb2x1bW5zID8/IFtdO1xuICAgIGNvbnN0IGNvbmZpZ0luZGV4ID0gY29uZmlnQ29scy5maW5kSW5kZXgoYyA9PiBjLmtleSA9PT0gY29sdW1uLmtleSk7XG4gICAgaWYgKGNvbmZpZ0luZGV4ID09PSAtMSkge1xuICAgICAgdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucyA9IFsuLi50aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLCBjb2x1bW5dO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbnNlcnRCZWZvcmUgPSB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLmZpbmRJbmRleChjID0+IHtcbiAgICAgICAgY29uc3QgY2kgPSBjb25maWdDb2xzLmZpbmRJbmRleChjYyA9PiBjYy5rZXkgPT09IGMua2V5KTtcbiAgICAgICAgcmV0dXJuIGNpICE9PSAtMSAmJiBjaSA+IGNvbmZpZ0luZGV4O1xuICAgICAgfSk7XG4gICAgICBpZiAoaW5zZXJ0QmVmb3JlID09PSAtMSkge1xuICAgICAgICB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zID0gWy4uLnRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMsIGNvbHVtbl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb3B5ID0gWy4uLnRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnNdO1xuICAgICAgICBjb3B5LnNwbGljZShpbnNlcnRCZWZvcmUsIDAsIGNvbHVtbik7XG4gICAgICAgIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMgPSBjb3B5O1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmZpZWxkcy51c2VyQ3VzdG9taXplZCA9IHRydWU7XG4gICAgdGhpcy5fZXZlbnRzJC5uZXh0KHsgdHlwZTogJ2ZpZWxkc0NoYW5nZWQnLCBmaWVsZElkczogdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5tYXAoYyA9PiBjLmtleSkgfSk7XG4gIH1cblxuICByZW1vdmVDb2x1bW4oY29sdW1uS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2wgPSB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLmZpbmQoYyA9PiBjLmtleSA9PT0gY29sdW1uS2V5KTtcbiAgICBpZiAoIWNvbCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghY29sLm9wdGlvbmFsICYmICF0aGlzLmFsbG93Q29sdW1uUmVtb3ZhbCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLmxlbmd0aCA8PSAxKSByZXR1cm4gZmFsc2U7XG4gICAgdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucyA9IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMuZmlsdGVyKGMgPT4gYy5rZXkgIT09IGNvbHVtbktleSk7XG4gICAgdGhpcy5maWVsZHMudXNlckN1c3RvbWl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuX2V2ZW50cyQubmV4dCh7IHR5cGU6ICdmaWVsZHNDaGFuZ2VkJywgZmllbGRJZHM6IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMubWFwKGMgPT4gYy5rZXkpIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW46IFRhYmxlQ29sdW1uUHJvdmlkZXI8VD4sIHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpc1Zpc2libGUgPSB0aGlzLmlzQ29sdW1uVmlzaWJsZShjb2x1bW4ua2V5KTtcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNWaXNpYmxlKSB7XG4gICAgICB0aGlzLmFkZENvbHVtbihjb2x1bW4pO1xuICAgIH0gZWxzZSBpZiAoIXZpc2libGUgJiYgaXNWaXNpYmxlKSB7XG4gICAgICB0aGlzLnJlbW92ZUNvbHVtbihjb2x1bW4ua2V5KTtcbiAgICB9XG4gIH1cblxuICByZW9yZGVyQ29sdW1ucyhmcm9tS2V5OiBzdHJpbmcsIHRvS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwcmV2ID0gdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5maW5kSW5kZXgoYyA9PiBjLmtleSA9PT0gZnJvbUtleSk7XG4gICAgY29uc3QgY3VyciA9IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMuZmluZEluZGV4KGMgPT4gYy5rZXkgPT09IHRvS2V5KTtcbiAgICBpZiAocHJldiA9PT0gLTEgfHwgY3VyciA9PT0gLTEgfHwgcHJldiA9PT0gY3VycikgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zXTtcbiAgICBjb25zdCBbbW92ZWRdID0gcmVvcmRlcmVkLnNwbGljZShwcmV2LCAxKTtcbiAgICByZW9yZGVyZWQuc3BsaWNlKGN1cnIsIDAsIG1vdmVkKTtcbiAgICB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zID0gcmVvcmRlcmVkO1xuICAgIHRoaXMuZmllbGRzLnVzZXJDdXN0b21pemVkID0gdHJ1ZTtcbiAgICB0aGlzLl9ldmVudHMkLm5leHQoeyB0eXBlOiAnZmllbGRzQ2hhbmdlZCcsIGZpZWxkSWRzOiB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLm1hcChjID0+IGMua2V5KSB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlzQ29sdW1uVmlzaWJsZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLnNvbWUoYyA9PiBjLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBBY3Rpb25zIEdyb3VwIGJ5XG5cbiAgc2V0R3JvdXBCeShrZXk6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLmdyb3VwQnkuYWN0aXZlS2V5ID0ga2V5O1xuICAgIHRoaXMuX2V2ZW50cyQubmV4dCh7IHR5cGU6ICdncm91cEJ5Q2hhbmdlZCcsIGtleSB9KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBBY3Rpb25zIFNsaWNlIGJ5IChkeW5hbWlxdWUpXG5cbiAgLyoqIEFwcGVsw6llIHF1YW5kIGxlIFNsaWNlUGFuZWxDb21wb25lbnQgw6ltZXQgZHluYW1pY1NsaWNlS2V5c0NoYW5nZSAqL1xuICBvbkR5bmFtaWNTbGljZUtleXNDaGFuZ2Uoa2V5czogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCBhbGxDb2xzID0gdGhpcy5fcGFuZWxDb25maWcuY29sdW1ucyA/PyBbXTtcbiAgICBjb25zdCBzdGF0aWNLZXlzID0gbmV3IFNldChcbiAgICAgICh0aGlzLl9wYW5lbENvbmZpZy5zbGljZUNvbmZpZ3MgPz8gW10pLm1hcChzID0+IHMuY29sdW1uS2V5KS5maWx0ZXIoKGspOiBrIGlzIHN0cmluZyA9PiAhIWspXG4gICAgKTtcbiAgICBjb25zdCBkeW5hbWljS2V5U2V0ID0gbmV3IFNldChrZXlzKTtcbiAgICBjb25zdCBleGlzdGluZ0tleXMgPSBuZXcgU2V0KFsuLi5zdGF0aWNLZXlzLCAuLi5keW5hbWljS2V5U2V0XSk7XG5cbiAgICB0aGlzLnNsaWNlQnkuYWN0aXZlRHluYW1pY0NvbHVtbnMgPSBrZXlzXG4gICAgICAubWFwKGsgPT4gYWxsQ29scy5maW5kKGMgPT4gYy5rZXkgPT09IGspKVxuICAgICAgLmZpbHRlcigoYyk6IGMgaXMgVGFibGVDb2x1bW5Qcm92aWRlcjxUPiA9PiAhIWMpO1xuXG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHRoaXMuc2xpY2VCeS5hdmFpbGFibGVGb3JEeW5hbWljID0gYWxsQ29scy5maWx0ZXIoYyA9PiB7XG4gICAgICBpZiAoYy5zbGljZWFibGUgPT09IGZhbHNlIHx8IGV4aXN0aW5nS2V5cy5oYXMoYy5rZXkpIHx8IHNlZW4uaGFzKGMua2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgc2Vlbi5hZGQoYy5rZXkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9jb21wdXRlU2xpY2VMYWJlbCgpO1xuICAgIHRoaXMuX2V2ZW50cyQubmV4dCh7IHR5cGU6ICdkeW5hbWljU2xpY2VzQ2hhbmdlZCcsIGtleXMgfSk7XG4gIH1cblxuICBpc0R5bmFtaWNTbGljZUFjdGl2ZShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNsaWNlQnkuYWN0aXZlRHluYW1pY0NvbHVtbnMuc29tZShjID0+IGMua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIENvbnRyYXQgY29yZVxuXG4gIC8qKiBSZXRvdXJuZSB1biBzbmFwc2hvdCBWaWV3U3RhdGUgKGNvbnRyYXQgY29yZSkgZGUgbCfDqXRhdCBjb3VyYW50LiAqL1xuICB0b1ZpZXdTdGF0ZSgpOiBWaWV3U3RhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZEZpZWxkSWRzOiB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLm1hcChjID0+IGMua2V5KSxcbiAgICAgIGdyb3VwQnlLZXk6IHRoaXMuZ3JvdXBCeS5hY3RpdmVLZXksXG4gICAgICBkeW5hbWljU2xpY2VLZXlzOiB0aGlzLnNsaWNlQnkuYWN0aXZlRHluYW1pY0NvbHVtbnMubWFwKGMgPT4gYy5rZXkpLFxuICAgIH07XG4gIH1cblxuICAvKiogQ29udmVydGl0IHVuZSBUYWJsZUNvbHVtblByb3ZpZGVyIGVuIFZpZXdGaWVsZCAoY29udHJhdCBjb3JlKS4gKi9cbiAgc3RhdGljIHRvVmlld0ZpZWxkKGNvbDogVGFibGVDb2x1bW5Qcm92aWRlcjxhbnk+KTogVmlld0ZpZWxkIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGNvbC5rZXksXG4gICAgICBsYWJlbDogY29sLmhlYWRlcixcbiAgICAgIGljb246IGNvbC5pY29uLFxuICAgICAgZ3JvdXBhYmxlOiBjb2wuZ3JvdXBhYmxlLFxuICAgICAgc2xpY2VhYmxlOiBjb2wuc2xpY2VhYmxlLFxuICAgICAgb3B0aW9uYWw6IGNvbC5vcHRpb25hbCxcbiAgICB9O1xuICB9XG5cbiAgLy8g4pSA4pSAIERlc3RydWN0b3JcblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2V2ZW50cyQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBIZWxwZXJzIHByaXbDqXNcblxuICBwcml2YXRlIF9yZWZyZXNoRGVmYXVsdENvbHVtbnMoKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdENvbHMgPSAodGhpcy5fcGFuZWxDb25maWcuY29sdW1ucyB8fCBbXSkuZmlsdGVyKGMgPT4gIWMub3B0aW9uYWwpO1xuICAgIGlmICghdGhpcy5maWVsZHMudXNlckN1c3RvbWl6ZWQgfHwgdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMgPSBbLi4uZGVmYXVsdENvbHNdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IG5ldyBTZXQoKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgfHwgW10pLm1hcChjID0+IGMua2V5KSk7XG4gICAgICB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zID0gdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5maWx0ZXIoYyA9PiBhbGxvd2VkS2V5cy5oYXMoYy5rZXkpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZWZyZXNoRHluYW1pY1NsaWNlTWV0YSgpOiB2b2lkIHtcbiAgICBjb25zdCBhbGxDb2xzID0gdGhpcy5fcGFuZWxDb25maWcuY29sdW1ucyA/PyBbXTtcbiAgICBjb25zdCBzdGF0aWNLZXlzID0gbmV3IFNldChcbiAgICAgICh0aGlzLl9wYW5lbENvbmZpZy5zbGljZUNvbmZpZ3MgPz8gW10pLm1hcChzID0+IHMuY29sdW1uS2V5KS5maWx0ZXIoKGspOiBrIGlzIHN0cmluZyA9PiAhIWspXG4gICAgKTtcbiAgICBjb25zdCBhY3RpdmVEeW5LZXlzID0gbmV3IFNldCh0aGlzLnNsaWNlQnkuYWN0aXZlRHluYW1pY0NvbHVtbnMubWFwKGMgPT4gYy5rZXkpKTtcblxuICAgIGNvbnN0IHNlZW4xID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5zbGljZUJ5LmF2YWlsYWJsZUZvckR5bmFtaWMgPSBhbGxDb2xzLmZpbHRlcihjID0+IHtcbiAgICAgIGlmIChjLnNsaWNlYWJsZSA9PT0gZmFsc2UgfHwgc3RhdGljS2V5cy5oYXMoYy5rZXkpIHx8IGFjdGl2ZUR5bktleXMuaGFzKGMua2V5KSB8fCBzZWVuMS5oYXMoYy5rZXkpKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoIWMuaGVhZGVyICYmIGMuc2xpY2VhYmxlICE9PSB0cnVlKSByZXR1cm4gZmFsc2U7XG4gICAgICBzZWVuMS5hZGQoYy5rZXkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWVuMiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHRoaXMuc2xpY2VCeS5hbGxEeW5hbWljQ29sdW1ucyA9IGFsbENvbHMuZmlsdGVyKGMgPT4ge1xuICAgICAgaWYgKGMuc2xpY2VhYmxlID09PSBmYWxzZSB8fCBzdGF0aWNLZXlzLmhhcyhjLmtleSkgfHwgc2VlbjIuaGFzKGMua2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCFjLmhlYWRlciAmJiBjLnNsaWNlYWJsZSAhPT0gdHJ1ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgc2VlbjIuYWRkKGMua2V5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fY29tcHV0ZVNsaWNlTGFiZWwoKTtcbiAgfVxuXG4gIC8qKiBOb3RpZmllIGxhIGZhY2FkZSBkZXMgc2xpY2VzIHN0YXRpcXVlcyBhY3R1ZWxsZW1lbnQgY2FjaMOpZXMgKGfDqXLDqSBwYXIgdGFibGUuY29tcG9uZW50KS5cbiAgICogUmVjYWxjdWxlIGxlIGxhYmVsIHNsaWNlIGFmaW4gcXUnaWwgcmVmbMOodGUgdW5pcXVlbWVudCBsZXMgc2xpY2VzIHZpc2libGVzLiAqL1xuICB1cGRhdGVIaWRkZW5TdGF0aWNLZXlzKGtleXM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgdGhpcy5faGlkZGVuU3RhdGljS2V5cyA9IGtleXM7XG4gICAgdGhpcy5fY29tcHV0ZVNsaWNlTGFiZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXB1dGVTbGljZUxhYmVsKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpc2libGVTdGF0aWNzID0gKHRoaXMuX3BhbmVsQ29uZmlnLnNsaWNlQ29uZmlncyA/PyBbXSkuZmlsdGVyKFxuICAgICAgcyA9PiAhcy5jb2x1bW5LZXkgfHwgIXRoaXMuX2hpZGRlblN0YXRpY0tleXMuaGFzKHMuY29sdW1uS2V5KVxuICAgICk7XG4gICAgY29uc3QgdmlzaWJsZVN0YXRpY0NvdW50ID0gdmlzaWJsZVN0YXRpY3MubGVuZ3RoO1xuICAgIGNvbnN0IHRvdGFsID0gdmlzaWJsZVN0YXRpY0NvdW50ICsgdGhpcy5zbGljZUJ5LmFjdGl2ZUR5bmFtaWNDb2x1bW5zLmxlbmd0aDtcbiAgICBpZiAodG90YWwgPT09IDApIHsgdGhpcy5zbGljZUJ5LmFjdGl2ZUxhYmVsID0gdGhpcy5fcGFuZWxDb25maWcubm9uZUxhYmVsID8/ICdBdWN1bic7IHJldHVybjsgfVxuICAgIGlmICh0b3RhbCA9PT0gMSkge1xuICAgICAgaWYgKHZpc2libGVTdGF0aWNDb3VudCA9PT0gMSkge1xuICAgICAgICBjb25zdCBmaXJzdCA9IHZpc2libGVTdGF0aWNzWzBdO1xuICAgICAgICB0aGlzLnNsaWNlQnkuYWN0aXZlTGFiZWwgPSBmaXJzdD8udGl0bGUgfHwgZmlyc3Q/LmNvbHVtbktleSB8fCAnMSc7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2xpY2VCeS5hY3RpdmVMYWJlbCA9IHRoaXMuc2xpY2VCeS5hY3RpdmVEeW5hbWljQ29sdW1uc1swXT8uaGVhZGVyIHx8ICcxJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zbGljZUJ5LmFjdGl2ZUxhYmVsID0gYCR7dG90YWx9IGFjdGlmc2A7XG4gIH1cblxuICBwcml2YXRlIF91bmlxdWVCeUtleShjb2xzOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+W10pOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+W10ge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICByZXR1cm4gY29scy5maWx0ZXIoYyA9PiB7XG4gICAgICBpZiAoc2Vlbi5oYXMoYy5rZXkpKSByZXR1cm4gZmFsc2U7XG4gICAgICBzZWVuLmFkZChjLmtleSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxufVxuIl19
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmV0ZW1lL2pxdWVyeS10YWJsZS9zcmMvbGliL2NvbXBvbmVudC92aWV3L3ZpZXcuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWlDN0csWUFBWTtBQUVaOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFFRSxXQUFXO1FBRUYsV0FBTSxHQUFtQjtZQUNoQyxhQUFhLEVBQUUsRUFBRTtZQUNqQixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFDO1FBRU8sWUFBTyxHQUFxQjtZQUNuQyxTQUFTLEVBQUUsSUFBSTtZQUNmLGNBQWMsRUFBRSxLQUFLO1NBQ3RCLENBQUM7UUFFTyxZQUFPLEdBQXFCO1lBQ25DLG9CQUFvQixFQUFFLEVBQUU7WUFDeEIsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLFdBQVcsRUFBRSxPQUFPO1NBQ3JCLENBQUM7UUFFTSxpQkFBWSxHQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2xFLHNCQUFpQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFOUMsWUFBWTtRQUVLLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBQzVDLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBOFNsRCxDQUFDO0lBNVNDLG9CQUFvQjtJQUVwQixJQUFJLE9B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Q0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmlld0V2ZW50LCBWaWV3RmllbGQsIFZpZXdTdGF0ZSB9IGZyb20gJ0BvbmV0ZW1lL2pxdWVyeS1jb3JlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uUHJvdmlkZXIsIFRhYmxlVmlld0NvbmZpZyB9IGZyb20gJy4uLy4uL2pxdWVyeS10YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBTbGljZUNvbmZpZyB9IGZyb20gJy4uL3NsaWNlLXBhbmVsL3NsaWNlLXBhbmVsLm1vZGVsJztcbmltcG9ydCB7IGh1bWFuaXplS2V5IH0gZnJvbSAnLi4vdGFibGUudXRpbHMnO1xuXG5leHBvcnQgdHlwZSB7IFZpZXdGaWVsZCwgVmlld0NvbmZpZywgVmlld1N0YXRlLCBWaWV3RXZlbnQgfSBmcm9tICdAb25ldGVtZS9qcXVlcnktY29yZSc7XG5leHBvcnQgeyB2aWV3RmllbGQsIGdyb3VwYWJsZVZpZXdGaWVsZHMsIHNsaWNlYWJsZVZpZXdGaWVsZHMsIGluaXRpYWxWaWV3U3RhdGUgfSBmcm9tICdAb25ldGVtZS9qcXVlcnktY29yZSc7XG5cbi8vIOKUgOKUgCBUeXBlcyBpbnRlcm5lc1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdGaWVsZFN0YXRlIHtcbiAgYWN0aXZlQ29sdW1uczogVGFibGVDb2x1bW5Qcm92aWRlcjxhbnk+W107XG4gIC8qKiB0cnVlIHNpIGwndXRpbGlzYXRldXIgYSBkw6lqw6AgcGVyc29ubmFsaXPDqSBsYSBzw6lsZWN0aW9uIGRlIGNvbG9ubmVzICovXG4gIHVzZXJDdXN0b21pemVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdHcm91cEJ5U3RhdGUge1xuICBhY3RpdmVLZXk6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJDdXN0b21pemVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdTbGljZUJ5U3RhdGUge1xuICBhY3RpdmVEeW5hbWljQ29sdW1uczogVGFibGVDb2x1bW5Qcm92aWRlcjxhbnk+W107XG4gIGF2YWlsYWJsZUZvckR5bmFtaWM6IFRhYmxlQ29sdW1uUHJvdmlkZXI8YW55PltdO1xuICBhbGxEeW5hbWljQ29sdW1uczogVGFibGVDb2x1bW5Qcm92aWRlcjxhbnk+W107XG4gIGFjdGl2ZUxhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld1BhbmVsQ29uZmlnIHtcbiAgLyoqIENvbmZpZyBicnV0ZSBpc3N1ZSBkZSBUYWJsZVByb3ZpZGVyLnZpZXcgKi9cbiAgY29uZmlnPzogVGFibGVWaWV3Q29uZmlnO1xuICAvKiogVG91dGVzIGxlcyBjb2xvbm5lcyByw6lzb2x1ZXMgKG5vbiBmaWx0csOpZXMpICovXG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uUHJvdmlkZXI8YW55PltdO1xuICAvKiogU2xpY2VzIHN0YXRpcXVlcyAqL1xuICBzbGljZUNvbmZpZ3M6IFNsaWNlQ29uZmlnPGFueT5bXTtcbiAgLyoqIExhYmVsIHV0aWxpc8OpIHF1YW5kIGF1Y3VuIGdyb3VwZSAvIGF1Y3VuZSBzbGljZSBu4oCZZXN0IGFjdGlmLiBEw6lmYXV0wqA6ICdBdWN1bicuICovXG4gIG5vbmVMYWJlbD86IHN0cmluZzsgIC8qKiBDbMOpIGRlIGNvbG9ubmUgdXRpbGlzw6llIGNvbW1lIGdyb3VwLWJ5IHBhciBkw6lmYXV0IGF1IGNoYXJnZW1lbnQuICovXG4gIGRlZmF1bHRHcm91cEJ5Pzogc3RyaW5nIHwgbnVsbDt9XG5cbi8vIOKUgOKUgCBGYWNhZGVcblxuLyoqXG4gKiBDZW50cmFsaXNlIGwnw6l0YXQgZXQgbGVzIGFjdGlvbnMgZHUgcGFubmVhdSBWaWV3IChDaGFtcHMgLyBHcm91cCBieSAvIFNsaWNlIGJ5KS5cbiAqIFBhcyBkZSBkw6lwZW5kYW5jZSBBbmd1bGFyL0RPTSA6IHBldXQgw6p0cmUgZXh0cmFpdGUgdmVycyBqcXVlcnktY29yZSDDoCB0ZXJtZS5cbiAqXG4gKiBVc2FnZSA6XG4gKiAgIHRoaXMuX3ZpZXcgPSBuZXcgVmlld0ZhY2FkZSgpO1xuICogICB0aGlzLl92aWV3LmV2ZW50cyQuc3Vic2NyaWJlKGUgPT4geyAuLi4gfSk7XG4gKiAgIHRoaXMuX3ZpZXcudXBkYXRlKHsgY29uZmlnLCBjb2x1bW5zLCBzbGljZUNvbmZpZ3MgfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBWaWV3RmFjYWRlPFQgPSBhbnk+IHtcblxuICAvLyDilIDilIAgU3RhdGVcblxuICByZWFkb25seSBmaWVsZHM6IFZpZXdGaWVsZFN0YXRlID0ge1xuICAgIGFjdGl2ZUNvbHVtbnM6IFtdLFxuICAgIHVzZXJDdXN0b21pemVkOiBmYWxzZSxcbiAgfTtcblxuICByZWFkb25seSBncm91cEJ5OiBWaWV3R3JvdXBCeVN0YXRlID0ge1xuICAgIGFjdGl2ZUtleTogbnVsbCxcbiAgICB1c2VyQ3VzdG9taXplZDogZmFsc2UsXG4gIH07XG5cbiAgcmVhZG9ubHkgc2xpY2VCeTogVmlld1NsaWNlQnlTdGF0ZSA9IHtcbiAgICBhY3RpdmVEeW5hbWljQ29sdW1uczogW10sXG4gICAgYXZhaWxhYmxlRm9yRHluYW1pYzogW10sXG4gICAgYWxsRHluYW1pY0NvbHVtbnM6IFtdLFxuICAgIGFjdGl2ZUxhYmVsOiAnQXVjdW4nLFxuICB9O1xuXG4gIHByaXZhdGUgX3BhbmVsQ29uZmlnOiBWaWV3UGFuZWxDb25maWcgPSB7IGNvbHVtbnM6IFtdLCBzbGljZUNvbmZpZ3M6IFtdIH07XG4gIHByaXZhdGUgX2hpZGRlblN0YXRpY0tleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAvLyDilIDilIAgRXZlbnRzXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRzJCA9IG5ldyBTdWJqZWN0PFZpZXdFdmVudD4oKTtcbiAgcmVhZG9ubHkgZXZlbnRzJCA9IHRoaXMuX2V2ZW50cyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLy8g4pSA4pSAIENvbXB1dGVkIGZsYWdzXG5cbiAgZ2V0IGVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsQ29uZmlnLmNvbmZpZz8uZW5hYmxlZCA9PT0gdHJ1ZTtcbiAgfVxuXG4gIGdldCBzaG93RmllbGRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWQ7XG4gIH1cblxuICBnZXQgc2hvd0dyb3VwQnlTZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWQgJiYgdGhpcy5ncm91cEJ5Q29sdW1ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgZ2V0IHNob3dTbGljZUJ5U2VjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkICYmIChcbiAgICAgICh0aGlzLl9wYW5lbENvbmZpZy5zbGljZUNvbmZpZ3M/Lmxlbmd0aCA/PyAwKSA+IDAgfHxcbiAgICAgIHRoaXMuc2xpY2VCeS5hbGxEeW5hbWljQ29sdW1ucy5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIGdldCBhbGxvd0NvbHVtblJlbW92YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsQ29uZmlnLmNvbmZpZz8uZW5hYmxlQ29sdW1uUmVtb3ZhbCAhPT0gZmFsc2U7XG4gIH1cblxuICBnZXQgaXNDb2x1bW5EcmFnRHJvcEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhbmVsQ29uZmlnLmNvbmZpZz8uZW5hYmxlQ29sdW1uRHJhZ0Ryb3AgPT09IHRydWU7XG4gIH1cblxuICBnZXQgbWVudUJhc2VDb2x1bW5zKCk6IFRhYmxlQ29sdW1uUHJvdmlkZXI8VD5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3VuaXF1ZUJ5S2V5KCh0aGlzLl9wYW5lbENvbmZpZy5jb2x1bW5zIHx8IFtdKS5maWx0ZXIoYyA9PiAhYy5vcHRpb25hbCkpO1xuICB9XG5cbiAgZ2V0IG1lbnVPcHRpb25hbENvbHVtbnMoKTogVGFibGVDb2x1bW5Qcm92aWRlcjxUPltdIHtcbiAgICByZXR1cm4gdGhpcy5fdW5pcXVlQnlLZXkoKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgfHwgW10pLmZpbHRlcihjID0+IGMub3B0aW9uYWwpKTtcbiAgfVxuXG4gIGdldCB0b3RhbENvbHVtbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBTZXQoKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgfHwgW10pLm1hcChjID0+IGMua2V5KSkuc2l6ZTtcbiAgfVxuXG4gIGdldCBncm91cEJ5Q29sdW1ucygpOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+W10ge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICByZXR1cm4gKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgfHwgW10pLmZpbHRlcihjID0+IHtcbiAgICAgIGlmIChjLmdyb3VwYWJsZSA9PT0gZmFsc2UgfHwgc2Vlbi5oYXMoYy5rZXkpKSByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoIWMuaGVhZGVyICYmIGMuZ3JvdXBhYmxlICE9PSB0cnVlKSByZXR1cm4gZmFsc2U7XG4gICAgICBzZWVuLmFkZChjLmtleSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhY3RpdmVHcm91cEJ5TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuZ3JvdXBCeS5hY3RpdmVLZXkpIHJldHVybiB0aGlzLl9wYW5lbENvbmZpZy5ub25lTGFiZWwgPz8gJ0F1Y3VuJztcbiAgICBjb25zdCBjb2wgPSB0aGlzLmdyb3VwQnlDb2x1bW5zLmZpbmQoYyA9PiBjLmtleSA9PT0gdGhpcy5ncm91cEJ5LmFjdGl2ZUtleSk7XG4gICAgcmV0dXJuIGNvbD8uaGVhZGVyIHx8IHRoaXMuZ3JvdXBCeS5hY3RpdmVLZXk7XG4gIH1cblxuICBnZXQgc3RhdGljU2xpY2VzRm9yTWVudSgpOiBBcnJheTx7IGtleTogc3RyaW5nOyB0aXRsZTogc3RyaW5nOyBpY29uPzogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gKHRoaXMuX3BhbmVsQ29uZmlnLnNsaWNlQ29uZmlncyA/PyBbXSlcbiAgICAgIC5maWx0ZXIocyA9PiAhIXMuY29sdW1uS2V5KVxuICAgICAgLm1hcChzID0+IHtcbiAgICAgICAgY29uc3QgY29sSWNvbiA9ICh0aGlzLl9wYW5lbENvbmZpZy5jb2x1bW5zID8/IFtdKS5maW5kKGMgPT4gYy5rZXkgPT09IHMuY29sdW1uS2V5KT8uaWNvbjtcbiAgICAgICAgcmV0dXJuIHsga2V5OiBzLmNvbHVtbktleSEsIHRpdGxlOiBzLnRpdGxlIHx8IGh1bWFuaXplS2V5KHMuY29sdW1uS2V5ISksIGljb246IHMuaWNvbiA/PyBjb2xJY29uIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbExhYmVsKGNvbDogeyBrZXk6IHN0cmluZzsgaGVhZGVyPzogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2wuaGVhZGVyIHx8IGh1bWFuaXplS2V5KGNvbC5rZXkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIE1pc2Ugw6Agam91ciBkZSBsYSBjb25maWcgKGFwcGVsw6llIGRlcHVpcyByZWZyZXNoVmlld01vZGVsKVxuXG4gIHVwZGF0ZShwYW5lbENvbmZpZzogVmlld1BhbmVsQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5fcGFuZWxDb25maWcgPSBwYW5lbENvbmZpZztcbiAgICB0aGlzLl9yZWZyZXNoRGVmYXVsdENvbHVtbnMoKTtcbiAgICB0aGlzLl9yZWZyZXNoRHluYW1pY1NsaWNlTWV0YSgpO1xuICAgIGlmICghdGhpcy5ncm91cEJ5LnVzZXJDdXN0b21pemVkKSB7XG4gICAgICB0aGlzLmdyb3VwQnkuYWN0aXZlS2V5ID0gcGFuZWxDb25maWcuZGVmYXVsdEdyb3VwQnkgPz8gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIAgQWN0aW9ucyBGaWVsZHNcblxuICBzZXRBY3RpdmVDb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uUHJvdmlkZXI8VD5bXSk6IHZvaWQge1xuICAgIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMgPSBjb2x1bW5zO1xuICAgIHRoaXMuZmllbGRzLnVzZXJDdXN0b21pemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNldFVzZXJDdXN0b21pemVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5maWVsZHMudXNlckN1c3RvbWl6ZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBSZW1ldCBsYSB2dWUgZGFucyBzb24gw6l0YXQgaW5pdGlhbCA6IGNvbG9ubmVzIHBhciBkw6lmYXV0LCBncm91cEJ5IHBhciBkw6lmYXV0LCBwYXMgZGUgZHluYW1pYyBzbGljZXMuICovXG4gIHJlc2V0VG9EZWZhdWx0cygpOiB2b2lkIHtcbiAgICB0aGlzLmZpZWxkcy51c2VyQ3VzdG9taXplZCA9IGZhbHNlO1xuICAgIHRoaXMuZ3JvdXBCeS51c2VyQ3VzdG9taXplZCA9IGZhbHNlO1xuICAgIHRoaXMuX3JlZnJlc2hEZWZhdWx0Q29sdW1ucygpO1xuICAgIHRoaXMuZ3JvdXBCeS5hY3RpdmVLZXkgPSB0aGlzLl9wYW5lbENvbmZpZy5kZWZhdWx0R3JvdXBCeSA/PyBudWxsO1xuICAgIHRoaXMuc2xpY2VCeS5hY3RpdmVEeW5hbWljQ29sdW1ucyA9IFtdO1xuICAgIHRoaXMuX3JlZnJlc2hEeW5hbWljU2xpY2VNZXRhKCk7XG4gIH1cblxuICBhZGRDb2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnQ29scyA9IHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3QgY29uZmlnSW5kZXggPSBjb25maWdDb2xzLmZpbmRJbmRleChjID0+IGMua2V5ID09PSBjb2x1bW4ua2V5KTtcbiAgICBpZiAoY29uZmlnSW5kZXggPT09IC0xKSB7XG4gICAgICB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zID0gWy4uLnRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMsIGNvbHVtbl07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGluc2VydEJlZm9yZSA9IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMuZmluZEluZGV4KGMgPT4ge1xuICAgICAgICBjb25zdCBjaSA9IGNvbmZpZ0NvbHMuZmluZEluZGV4KGNjID0+IGNjLmtleSA9PT0gYy5rZXkpO1xuICAgICAgICByZXR1cm4gY2kgIT09IC0xICYmIGNpID4gY29uZmlnSW5kZXg7XG4gICAgICB9KTtcbiAgICAgIGlmIChpbnNlcnRCZWZvcmUgPT09IC0xKSB7XG4gICAgICAgIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMgPSBbLi4udGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucywgY29sdW1uXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvcHkgPSBbLi4udGhpcy5maWVsZHMuYWN0aXZlQ29sdW1uc107XG4gICAgICAgIGNvcHkuc3BsaWNlKGluc2VydEJlZm9yZSwgMCwgY29sdW1uKTtcbiAgICAgICAgdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucyA9IGNvcHk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZmllbGRzLnVzZXJDdXN0b21pemVkID0gdHJ1ZTtcbiAgICB0aGlzLl9ldmVudHMkLm5leHQoeyB0eXBlOiAnZmllbGRzQ2hhbmdlZCcsIGZpZWxkSWRzOiB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLm1hcChjID0+IGMua2V5KSB9KTtcbiAgfVxuXG4gIHJlbW92ZUNvbHVtbihjb2x1bW5LZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbCA9IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMuZmluZChjID0+IGMua2V5ID09PSBjb2x1bW5LZXkpO1xuICAgIGlmICghY29sKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCFjb2wub3B0aW9uYWwgJiYgIXRoaXMuYWxsb3dDb2x1bW5SZW1vdmFsKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZTtcbiAgICB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zID0gdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5maWx0ZXIoYyA9PiBjLmtleSAhPT0gY29sdW1uS2V5KTtcbiAgICB0aGlzLmZpZWxkcy51c2VyQ3VzdG9taXplZCA9IHRydWU7XG4gICAgdGhpcy5fZXZlbnRzJC5uZXh0KHsgdHlwZTogJ2ZpZWxkc0NoYW5nZWQnLCBmaWVsZElkczogdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5tYXAoYyA9PiBjLmtleSkgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbjogVGFibGVDb2x1bW5Qcm92aWRlcjxUPiwgdmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGlzVmlzaWJsZSA9IHRoaXMuaXNDb2x1bW5WaXNpYmxlKGNvbHVtbi5rZXkpO1xuICAgIGlmICh2aXNpYmxlICYmICFpc1Zpc2libGUpIHtcbiAgICAgIHRoaXMuYWRkQ29sdW1uKGNvbHVtbik7XG4gICAgfSBlbHNlIGlmICghdmlzaWJsZSAmJiBpc1Zpc2libGUpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKGNvbHVtbi5rZXkpO1xuICAgIH1cbiAgfVxuXG4gIHJlb3JkZXJDb2x1bW5zKGZyb21LZXk6IHN0cmluZywgdG9LZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHByZXYgPSB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zLmZpbmRJbmRleChjID0+IGMua2V5ID09PSBmcm9tS2V5KTtcbiAgICBjb25zdCBjdXJyID0gdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5maW5kSW5kZXgoYyA9PiBjLmtleSA9PT0gdG9LZXkpO1xuICAgIGlmIChwcmV2ID09PSAtMSB8fCBjdXJyID09PSAtMSB8fCBwcmV2ID09PSBjdXJyKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVvcmRlcmVkID0gWy4uLnRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnNdO1xuICAgIGNvbnN0IFttb3ZlZF0gPSByZW9yZGVyZWQuc3BsaWNlKHByZXYsIDEpO1xuICAgIHJlb3JkZXJlZC5zcGxpY2UoY3VyciwgMCwgbW92ZWQpO1xuICAgIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMgPSByZW9yZGVyZWQ7XG4gICAgdGhpcy5maWVsZHMudXNlckN1c3RvbWl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuX2V2ZW50cyQubmV4dCh7IHR5cGU6ICdmaWVsZHNDaGFuZ2VkJywgZmllbGRJZHM6IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMubWFwKGMgPT4gYy5rZXkpIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNDb2x1bW5WaXNpYmxlKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMuc29tZShjID0+IGMua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIEFjdGlvbnMgR3JvdXAgYnlcblxuICBzZXRHcm91cEJ5KGtleTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZ3JvdXBCeS5hY3RpdmVLZXkgPSBrZXk7XG4gICAgdGhpcy5ncm91cEJ5LnVzZXJDdXN0b21pemVkID0gdHJ1ZTtcbiAgICB0aGlzLl9ldmVudHMkLm5leHQoeyB0eXBlOiAnZ3JvdXBCeUNoYW5nZWQnLCBrZXkgfSk7XG4gIH1cblxuICAvLyDilIDilIAgQWN0aW9ucyBTbGljZSBieSAoZHluYW1pcXVlKVxuXG4gIC8qKiBBcHBlbMOpZSBxdWFuZCBsZSBTbGljZVBhbmVsQ29tcG9uZW50IMOpbWV0IGR5bmFtaWNTbGljZUtleXNDaGFuZ2UgKi9cbiAgb25EeW5hbWljU2xpY2VLZXlzQ2hhbmdlKGtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgYWxsQ29scyA9IHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3Qgc3RhdGljS2V5cyA9IG5ldyBTZXQoXG4gICAgICAodGhpcy5fcGFuZWxDb25maWcuc2xpY2VDb25maWdzID8/IFtdKS5tYXAocyA9PiBzLmNvbHVtbktleSkuZmlsdGVyKChrKTogayBpcyBzdHJpbmcgPT4gISFrKVxuICAgICk7XG4gICAgY29uc3QgZHluYW1pY0tleVNldCA9IG5ldyBTZXQoa2V5cyk7XG4gICAgY29uc3QgZXhpc3RpbmdLZXlzID0gbmV3IFNldChbLi4uc3RhdGljS2V5cywgLi4uZHluYW1pY0tleVNldF0pO1xuXG4gICAgdGhpcy5zbGljZUJ5LmFjdGl2ZUR5bmFtaWNDb2x1bW5zID0ga2V5c1xuICAgICAgLm1hcChrID0+IGFsbENvbHMuZmluZChjID0+IGMua2V5ID09PSBrKSlcbiAgICAgIC5maWx0ZXIoKGMpOiBjIGlzIFRhYmxlQ29sdW1uUHJvdmlkZXI8VD4gPT4gISFjKTtcblxuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLnNsaWNlQnkuYXZhaWxhYmxlRm9yRHluYW1pYyA9IGFsbENvbHMuZmlsdGVyKGMgPT4ge1xuICAgICAgaWYgKGMuc2xpY2VhYmxlID09PSBmYWxzZSB8fCBleGlzdGluZ0tleXMuaGFzKGMua2V5KSB8fCBzZWVuLmhhcyhjLmtleSkpIHJldHVybiBmYWxzZTtcbiAgICAgIHNlZW4uYWRkKGMua2V5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fY29tcHV0ZVNsaWNlTGFiZWwoKTtcbiAgICB0aGlzLl9ldmVudHMkLm5leHQoeyB0eXBlOiAnZHluYW1pY1NsaWNlc0NoYW5nZWQnLCBrZXlzIH0pO1xuICB9XG5cbiAgaXNEeW5hbWljU2xpY2VBY3RpdmUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zbGljZUJ5LmFjdGl2ZUR5bmFtaWNDb2x1bW5zLnNvbWUoYyA9PiBjLmtleSA9PT0ga2V5KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBDb250cmF0IGNvcmVcblxuICAvKiogUmV0b3VybmUgdW4gc25hcHNob3QgVmlld1N0YXRlIChjb250cmF0IGNvcmUpIGRlIGwnw6l0YXQgY291cmFudC4gKi9cbiAgdG9WaWV3U3RhdGUoKTogVmlld1N0YXRlIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0ZWRGaWVsZElkczogdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucy5tYXAoYyA9PiBjLmtleSksXG4gICAgICBncm91cEJ5S2V5OiB0aGlzLmdyb3VwQnkuYWN0aXZlS2V5LFxuICAgICAgZHluYW1pY1NsaWNlS2V5czogdGhpcy5zbGljZUJ5LmFjdGl2ZUR5bmFtaWNDb2x1bW5zLm1hcChjID0+IGMua2V5KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENvbnZlcnRpdCB1bmUgVGFibGVDb2x1bW5Qcm92aWRlciBlbiBWaWV3RmllbGQgKGNvbnRyYXQgY29yZSkuICovXG4gIHN0YXRpYyB0b1ZpZXdGaWVsZChjb2w6IFRhYmxlQ29sdW1uUHJvdmlkZXI8YW55Pik6IFZpZXdGaWVsZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBjb2wua2V5LFxuICAgICAgbGFiZWw6IGNvbC5oZWFkZXIsXG4gICAgICBpY29uOiBjb2wuaWNvbixcbiAgICAgIGdyb3VwYWJsZTogY29sLmdyb3VwYWJsZSxcbiAgICAgIHNsaWNlYWJsZTogY29sLnNsaWNlYWJsZSxcbiAgICAgIG9wdGlvbmFsOiBjb2wub3B0aW9uYWwsXG4gICAgfTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBEZXN0cnVjdG9yXG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9ldmVudHMkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvLyDilIDilIAgSGVscGVycyBwcml2w6lzXG5cbiAgcHJpdmF0ZSBfcmVmcmVzaERlZmF1bHRDb2x1bW5zKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRDb2xzID0gKHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgfHwgW10pLmZpbHRlcihjID0+ICFjLm9wdGlvbmFsKTtcbiAgICBpZiAoIXRoaXMuZmllbGRzLnVzZXJDdXN0b21pemVkIHx8IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmZpZWxkcy5hY3RpdmVDb2x1bW5zID0gWy4uLmRlZmF1bHRDb2xzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWxsb3dlZEtleXMgPSBuZXcgU2V0KCh0aGlzLl9wYW5lbENvbmZpZy5jb2x1bW5zIHx8IFtdKS5tYXAoYyA9PiBjLmtleSkpO1xuICAgICAgdGhpcy5maWVsZHMuYWN0aXZlQ29sdW1ucyA9IHRoaXMuZmllbGRzLmFjdGl2ZUNvbHVtbnMuZmlsdGVyKGMgPT4gYWxsb3dlZEtleXMuaGFzKGMua2V5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVmcmVzaER5bmFtaWNTbGljZU1ldGEoKTogdm9pZCB7XG4gICAgY29uc3QgYWxsQ29scyA9IHRoaXMuX3BhbmVsQ29uZmlnLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3Qgc3RhdGljS2V5cyA9IG5ldyBTZXQoXG4gICAgICAodGhpcy5fcGFuZWxDb25maWcuc2xpY2VDb25maWdzID8/IFtdKS5tYXAocyA9PiBzLmNvbHVtbktleSkuZmlsdGVyKChrKTogayBpcyBzdHJpbmcgPT4gISFrKVxuICAgICk7XG4gICAgY29uc3QgYWN0aXZlRHluS2V5cyA9IG5ldyBTZXQodGhpcy5zbGljZUJ5LmFjdGl2ZUR5bmFtaWNDb2x1bW5zLm1hcChjID0+IGMua2V5KSk7XG5cbiAgICBjb25zdCBzZWVuMSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHRoaXMuc2xpY2VCeS5hdmFpbGFibGVGb3JEeW5hbWljID0gYWxsQ29scy5maWx0ZXIoYyA9PiB7XG4gICAgICBpZiAoYy5zbGljZWFibGUgPT09IGZhbHNlIHx8IHN0YXRpY0tleXMuaGFzKGMua2V5KSB8fCBhY3RpdmVEeW5LZXlzLmhhcyhjLmtleSkgfHwgc2VlbjEuaGFzKGMua2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKCFjLmhlYWRlciAmJiBjLnNsaWNlYWJsZSAhPT0gdHJ1ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgc2VlbjEuYWRkKGMua2V5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VlbjIgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLnNsaWNlQnkuYWxsRHluYW1pY0NvbHVtbnMgPSBhbGxDb2xzLmZpbHRlcihjID0+IHtcbiAgICAgIGlmIChjLnNsaWNlYWJsZSA9PT0gZmFsc2UgfHwgc3RhdGljS2V5cy5oYXMoYy5rZXkpIHx8IHNlZW4yLmhhcyhjLmtleSkpIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICghYy5oZWFkZXIgJiYgYy5zbGljZWFibGUgIT09IHRydWUpIHJldHVybiBmYWxzZTtcbiAgICAgIHNlZW4yLmFkZChjLmtleSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2NvbXB1dGVTbGljZUxhYmVsKCk7XG4gIH1cblxuICAvKiogTm90aWZpZSBsYSBmYWNhZGUgZGVzIHNsaWNlcyBzdGF0aXF1ZXMgYWN0dWVsbGVtZW50IGNhY2jDqWVzIChnw6lyw6kgcGFyIHRhYmxlLmNvbXBvbmVudCkuXG4gICAqIFJlY2FsY3VsZSBsZSBsYWJlbCBzbGljZSBhZmluIHF1J2lsIHJlZmzDqHRlIHVuaXF1ZW1lbnQgbGVzIHNsaWNlcyB2aXNpYmxlcy4gKi9cbiAgdXBkYXRlSGlkZGVuU3RhdGljS2V5cyhrZXlzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMuX2hpZGRlblN0YXRpY0tleXMgPSBrZXlzO1xuICAgIHRoaXMuX2NvbXB1dGVTbGljZUxhYmVsKCk7XG4gIH1cblxuICBwcml2YXRlIF9jb21wdXRlU2xpY2VMYWJlbCgpOiB2b2lkIHtcbiAgICBjb25zdCB2aXNpYmxlU3RhdGljcyA9ICh0aGlzLl9wYW5lbENvbmZpZy5zbGljZUNvbmZpZ3MgPz8gW10pLmZpbHRlcihcbiAgICAgIHMgPT4gIXMuY29sdW1uS2V5IHx8ICF0aGlzLl9oaWRkZW5TdGF0aWNLZXlzLmhhcyhzLmNvbHVtbktleSlcbiAgICApO1xuICAgIGNvbnN0IHZpc2libGVTdGF0aWNDb3VudCA9IHZpc2libGVTdGF0aWNzLmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbCA9IHZpc2libGVTdGF0aWNDb3VudCArIHRoaXMuc2xpY2VCeS5hY3RpdmVEeW5hbWljQ29sdW1ucy5sZW5ndGg7XG4gICAgaWYgKHRvdGFsID09PSAwKSB7IHRoaXMuc2xpY2VCeS5hY3RpdmVMYWJlbCA9IHRoaXMuX3BhbmVsQ29uZmlnLm5vbmVMYWJlbCA/PyAnQXVjdW4nOyByZXR1cm47IH1cbiAgICBpZiAodG90YWwgPT09IDEpIHtcbiAgICAgIGlmICh2aXNpYmxlU3RhdGljQ291bnQgPT09IDEpIHtcbiAgICAgICAgY29uc3QgZmlyc3QgPSB2aXNpYmxlU3RhdGljc1swXTtcbiAgICAgICAgdGhpcy5zbGljZUJ5LmFjdGl2ZUxhYmVsID0gZmlyc3Q/LnRpdGxlIHx8IGZpcnN0Py5jb2x1bW5LZXkgfHwgJzEnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNsaWNlQnkuYWN0aXZlTGFiZWwgPSB0aGlzLnNsaWNlQnkuYWN0aXZlRHluYW1pY0NvbHVtbnNbMF0/LmhlYWRlciB8fCAnMSc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2xpY2VCeS5hY3RpdmVMYWJlbCA9IGAke3RvdGFsfSBhY3RpZnNgO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5pcXVlQnlLZXkoY29sczogVGFibGVDb2x1bW5Qcm92aWRlcjxUPltdKTogVGFibGVDb2x1bW5Qcm92aWRlcjxUPltdIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgcmV0dXJuIGNvbHMuZmlsdGVyKGMgPT4ge1xuICAgICAgaWYgKHNlZW4uaGFzKGMua2V5KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgc2Vlbi5hZGQoYy5rZXkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -11,4 +11,4 @@
11
11
  export function col(key, header, overrides) {
12
12
  return { key, header, ...overrides };
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianF1ZXJ5LXRhYmxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25ldGVtZS9qcXVlcnktdGFibGUvc3JjL2xpYi9qcXVlcnktdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUVBOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQ2pCLEdBQVcsRUFDWCxNQUFjLEVBQ2QsU0FBMkM7SUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVByb3ZpZGVyIH0gZnJvbSAnQG9uZXRlbWUvanF1ZXJ5LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2xpY2VDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudC9zbGljZS1wYW5lbC9zbGljZS1wYW5lbC5tb2RlbCc7XG5leHBvcnQgeyBTbGljZUNvbmZpZyB9IGZyb20gJy4vY29tcG9uZW50L3NsaWNlLXBhbmVsL3NsaWNlLXBhbmVsLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtblByb3ZpZGVyPFQgPSBhbnk+IHtcbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBMaWJlbGzDqSBhZmZpY2jDqSBkYW5zIGwnZW4tdMOqdGUgZGUgY29sb25uZS4gT3B0aW9ubmVsIHNpIGxhIGNvbG9ubmUgdXRpbGlzZSB1biB0ZW1wbGF0ZSBjdXN0b20uICovXG4gIGhlYWRlcj86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgdmFsdWU/OiBEYXRhUHJvdmlkZXI8YW55PjtcbiAgLyoqIFZhbGV1ciB1dGlsaXPDqWUgcG91ciBsZSB0cmkgc2kgZGlmZsOpcmVudGUgZGUgYHZhbHVlYC4gVXRpbGUgcXVhbmQgYHZhbHVlYCByZXRvdXJuZSB1bmUgY2hhw65uZSBmb3JtYXTDqWUgKGRhdGUsIGR1csOpZS4uLikuICovXG4gIHNvcnRWYWx1ZT86IERhdGFQcm92aWRlcjxhbnk+O1xuICAvKipcbiAgICogVmFsZXVyIHV0aWxpc8OpZSBwb3VyIGxhIHJlY2hlcmNoZSBwbGVpbi10ZXh0ZS5cbiAgICogw4AgZMOpZmluaXIgcXVhbmQgbGEgY29sb25uZSB1dGlsaXNlIHVuIGBqcXQtY2VsbC1kZWZgIHRlbXBsYXRlIHBlcnNvbm5hbGlzw6kgZXQgcXUnYXVjdW4gYHZhbHVlYCBwcm92aWRlciBuJ2VzdCBkw6ljbGFyw6kuXG4gICAqIFNpIGFic2VudCwgbGEgcmVjaGVyY2hlIHV0aWxpc2UgYHZhbHVlYCBlbiBwcmlvcml0w6ksIHB1aXMgbGEgdmFsZXVyIGJydXRlIGRlIGxhIGxpZ25lLlxuICAgKiBFeGVtcGxlIDogYHNlYXJjaFZhbHVlOiAocm93KSA9PiBkdXJhdGlvblBpcGUudHJhbnNmb3JtKCh0b2RheSAtIHJvdy5zdGFydCkgLyAxMDAwKWBcbiAgICovXG4gIHNlYXJjaFZhbHVlPzogRGF0YVByb3ZpZGVyPHN0cmluZz47XG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcbiAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICB3aWR0aD86IHN0cmluZztcbiAgZ3JvdXBhYmxlPzogYm9vbGVhbjtcbiAgc2xpY2VhYmxlPzogYm9vbGVhbjtcbiAgLyoqIENoYXJnZW1lbnQgZGlmZsOpcsOpIDogbGEgcHLDqXNlbmNlIGRlIGNldCBvYmpldCBhY3RpdmUgbGUgbW9kZSBsYXp5LiAqL1xuICBsYXp5Pzoge1xuICAgIC8qKiBGb25jdGlvbiBhcHBlbMOpZSBwb3VyIGNoYXJnZXIgbGVzIHZhbGV1cnMgZGUgbGEgY29sb25uZS4gUmV0b3VybmUgdW4gdGFibGVhdSBkYW5zIGxlIG3Dqm1lIG9yZHJlIHF1ZSBsZXMgbGlnbmVzLiAqL1xuICAgIGZldGNoRm46ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xuICB9O1xufVxuXG4vKiogQ29uZmlndXJhdGlvbiBkZSBsYSBiYXJyZSBkZSByZWNoZXJjaGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU2VhcmNoQ29uZmlnIHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBWYWxldXIgaW5pdGlhbGUgYXUgY2hhcmdlbWVudC4gKi9cbiAgaW5pdGlhbFF1ZXJ5Pzogc3RyaW5nO1xuICAvKiogUmVzdHJlaW50IGxhIHJlY2hlcmNoZSB0ZXh0ZSBhdXggY29sb25uZXMgZG9udCBsYSBga2V5YCBlc3QgZGFucyBjZSB0YWJsZWF1LiBTaSBhYnNlbnQsIHRvdXRlcyBsZXMgY29sb25uZXMgc29udCBjaGVyY2jDqWVzLiAqL1xuICBzZWFyY2hDb2x1bW5zPzogc3RyaW5nW107XG59XG5cbi8qKiBDb25maWd1cmF0aW9uIGRlIGxhIHBhZ2luYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUGFnaW5hdGlvbkNvbmZpZyB7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG4gIC8qKiBPcHRpb25zIGRlIHRhaWxsZSBkZSBwYWdlIHNww6ljaWZpcXVlcyBhdSBtb2RlIEdyb3VwIGJ5LiBTaSBhYnNlbnQsIHV0aWxpc2UgYHBhZ2VTaXplT3B0aW9uc2AuICovXG4gIHBhZ2VTaXplT3B0aW9uc0dyb3VwQnk/OiBudW1iZXJbXTtcbn1cblxuLyoqIENvbmZpZ3VyYXRpb24gZHUgbWVudSBWaWV3IChDaGFtcHMgLyBHcm91cCBieSAvIFNsaWNlIGJ5KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVWaWV3Q29uZmlnIHtcbiAgLyoqIEFjdGl2ZSBsZSBib3V0b24gVmlldy4gUGFyIGTDqWZhdXQgOiBgZmFsc2VgLiAqL1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqIEF1dG9yaXNlIGxlIG1hc3F1YWdlL2FmZmljaGFnZSBkZXMgY29sb25uZXMgZGUgYmFzZSB2aWEgVmlldyA+IENoYW1wcy4gUGFyIGTDqWZhdXQgOiBgdHJ1ZWAuICovXG4gIGVuYWJsZUNvbHVtblJlbW92YWw/OiBib29sZWFuO1xuICAvKiogQWN0aXZlIGxlIGRyYWcgJiBkcm9wIHBvdXIgcsOpb3Jkb25uZXIgbGVzIGNvbG9ubmVzLiBQYXIgZMOpZmF1dCA6IGBmYWxzZWAuICovXG4gIGVuYWJsZUNvbHVtbkRyYWdEcm9wPzogYm9vbGVhbjtcbn1cblxuLyoqIExhYmVscyBkJ8OpdGF0IGR1IHRhYmxlYXUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTGFiZWxzQ29uZmlnIHtcbiAgLyoqIEFmZmljaMOpIHF1YW5kIGxlIHRhYmxlYXUgZXN0IHZpZGUuIFBhciBkw6lmYXV0IDogYCdBdWN1bmUgZG9ubsOpZSdgLiAqL1xuICBlbXB0eT86IHN0cmluZztcbiAgLyoqIEFmZmljaMOpIHBlbmRhbnQgbGUgY2hhcmdlbWVudC4gUGFyIGTDqWZhdXQgOiBgJ0NoYXJnZW1lbnQgZGVzIGRvbm7DqWVzLi4uJ2AuICovXG4gIGxvYWRpbmc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmFjY291cmNpIHBvdXIgZMOpY2xhcmVyIHVuZSBjb2xvbm5lIGRlIGJhc2UuXG4gKlxuICogYGBgdHNcbiAqIGNvbHVtbnM6IFtcbiAqICAgY29sKCduYW1lJywgJ05vbScpLFxuICogICBjb2woJ3N0YXR1cycsICdTdGF0dXQnLCB7IHNvcnRhYmxlOiBmYWxzZSB9KSxcbiAqIF1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sPFQgPSBhbnk+KFxuICBrZXk6IHN0cmluZyxcbiAgaGVhZGVyOiBzdHJpbmcsXG4gIG92ZXJyaWRlcz86IFBhcnRpYWw8VGFibGVDb2x1bW5Qcm92aWRlcjxUPj4sXG4pOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+IHtcbiAgcmV0dXJuIHsga2V5LCBoZWFkZXIsIC4uLm92ZXJyaWRlcyB9O1xufVxuXG4vKiogQ29uZmlndXJhdGlvbiBkZSBs4oCZZXhwb3J0IENTViBkw6ljbGVuY2jDqSBkZXB1aXMgbGEgdG9vbGJhci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVFeHBvcnRDb25maWc8VCA9IGFueT4ge1xuICAvKiogQWZmaWNoZSBsZSBib3V0b24gRXhwb3J0IGRhbnMgbGEgdG9vbGJhci4gUGFyIGTDqWZhdXTCoDogYGZhbHNlYC4gKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBOb20gZHUgZmljaGllciBnw6luw6lyw6kuIFBhciBkw6lmYXV0wqA6IGAnZXhwb3J0LmNzdidgLiAqL1xuICBmaWxlbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRyYW5zZm9ybWUgY2hhcXVlIGxpZ25lIGF2YW50IGV4cG9ydC5cbiAgICogU2kgYWJzZW50LCBsZXMgdmFsZXVycyBhZmZpY2jDqWVzIChhcHLDqHMgYG5vcm1hbGl6ZUNlbGxWYWx1ZWApIHNvbnQgdXRpbGlzw6llcy5cbiAgICogU2V1bGVzIGxlcyBjb2xvbm5lcyB2aXNpYmxlcyBzb250IGV4cG9ydMOpZXMuXG4gICAqL1xuICB0cmFuc2Zvcm0/OiAocm93OiBUKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGRlIGxhIGZvbmN0aW9ubmFsaXTDqSBQcsOpZsOpcmVuY2VzLlxuICpcbiAqIEFqb3V0ZSB1biBtZW51IFwiUHLDqWbDqXJlbmNlc1wiIGRhbnMgVmlldyBxdWkgcGVybWV0IDpcbiAqIC0gTGUgKiptb2RlIMOpZGl0aW9uKiogKHJlZGltZW5zaW9ubmVyIC8gcsOpb3Jkb25uZXIgbGVzIGNvbG9ubmVzIMOgIGxhIHNvdXJpcylcbiAqIC0gTCcqKmVucmVnaXN0cmVtZW50KiogZGUgbGEgY29uZmlndXJhdGlvbiBjb3VyYW50ZSBkYW5zIGxlIGxvY2FsU3RvcmFnZVxuICogLSBMJyoqZWZmYWNlbWVudCoqIGRlIGxhIGNvbmZpZ3VyYXRpb24gc2F1dmVnYXJkw6llXG4gKlxuICogQ2hhcXVlIHRhYmxlYXUgZXN0IGlkZW50aWZpw6kgcGFyIGB0YWJsZUlkYCAoY2zDqSBsb2NhbFN0b3JhZ2UgdW5pcXVlKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVByZWZlcmVuY2VzQ29uZmlnIHtcbiAgLyoqIEFjdGl2ZSBsYSBmb25jdGlvbm5hbGl0w6kuIFBhciBkw6lmYXV0IDogYGZhbHNlYC4gKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZGVudGlmaWFudCB1bmlxdWUgZHUgdGFibGVhdSwgdXRpbGlzw6kgY29tbWUgY2zDqSBsb2NhbFN0b3JhZ2UuXG4gICAqIERvaXQgw6p0cmUgc3RhYmxlIGVudHJlIGxlcyByZWNoYXJnZW1lbnRzIGRlIHBhZ2UuXG4gICAqIEV4ZW1wbGUgOiBgJ3VzZXItdGFibGUnYCwgYCdpbnZvaWNlLWxpc3QnYC5cbiAgICovXG4gIHRhYmxlSWQ6IHN0cmluZztcbn1cblxuLyoqIFNuYXBzaG90IGRlIGNvbmZpZ3VyYXRpb24gcGVyc2lzdMOpIGRhbnMgbGUgbG9jYWxTdG9yYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYXZlZFRhYmxlQ29uZmlnIHtcbiAgLyoqIFZhbGV1ciBkZSBsYSBzZWFyY2hiYXIuICovXG4gIHNlYXJjaD86IHN0cmluZztcbiAgLyoqIENsw6kgZGUgbGEgY29sb25uZSB1dGlsaXPDqWUgcG91ciBsZSBncm91cCBieS4gYG51bGxgID0gYXVjdW4uICovXG4gIGdyb3VwQnk/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogT3JkcmUgZGVzIGNsw6lzIGRlIGNvbG9ubmVzIChwb3NpdGlvbikuICovXG4gIGNvbHVtbk9yZGVyPzogc3RyaW5nW107XG4gIC8qKiBDbMOpcyBkZXMgY29sb25uZXMgdmlzaWJsZXMuICovXG4gIHZpc2libGVDb2x1bW5zPzogc3RyaW5nW107XG4gIC8qKiBMYXJnZXVycyBkZSBjb2xvbm5lcyBlbiBwaXhlbHMsIGluZGV4w6llcyBwYXIgY2zDqS4gKi9cbiAgY29sdW1uV2lkdGhzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgLyoqIFBhbm5lYXUgc2xpY2UgcmVwbGnDqSBvdSBub24uICovXG4gIHNsaWNlUGFuZWxDb2xsYXBzZWQ/OiBib29sZWFuO1xuICAvKiogQ2zDqXMgZGVzIHNsaWNlcyBzdGF0aXF1ZXMgY2FjaMOpZXMgcGFyIGwndXRpbGlzYXRldXIgKHZpYSB0b2dnbGUgZGFucyBsZSBtZW51IFZpZXcpLiAqL1xuICBoaWRkZW5TbGljZUtleXM/OiBzdHJpbmdbXTtcbiAgLyoqIENsw6lzIGRlcyBjb2xvbm5lcyB1dGlsaXPDqWVzIGNvbW1lIHNsaWNlcyBkeW5hbWlxdWVzLiAqL1xuICBkeW5hbWljU2xpY2VLZXlzPzogc3RyaW5nW107XG4gIC8qKiBGaWx0cmVzIGFjdGlmcyBkdSBzbGljZSBwYW5lbCA6IG1hcCBzbGljZUluZGV4IOKGkiB0YWJsZWF1IGRlIGNsw6lzIGFjdGl2ZXMuICovXG4gIHNsaWNlRmlsdGVycz86IFJlY29yZDxudW1iZXIsIHN0cmluZ1tdPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm92aWRlcjxUID0gYW55PiB7XG4gIGNvbHVtbnM/OiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+W107XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzbGljZXM/OiBTbGljZUNvbmZpZzxUPltdO1xuICAvKiogQWZmaWNoZSBsZSBib3V0b24gdG9nZ2xlIHBvdXIgcmVwbGllci9kw6lwbGllciBsZSBwYW5uZWF1IGRlIHNsaWNlcy4gUGFyIGTDqWZhdXQgOiBgdHJ1ZWAuICovXG4gIGVuYWJsZVNsaWNlVG9nZ2xlPzogYm9vbGVhbjtcbiAgc2VhcmNoPzogVGFibGVTZWFyY2hDb25maWc7XG4gIHBhZ2luYXRpb24/OiBUYWJsZVBhZ2luYXRpb25Db25maWc7XG4gIHZpZXc/OiBUYWJsZVZpZXdDb25maWc7XG4gIGxhYmVscz86IFRhYmxlTGFiZWxzQ29uZmlnO1xuICAvKiogVHJpIGluaXRpYWwgYXBwbGlxdcOpIGF1IGNoYXJnZW1lbnQuIE4nZXN0IHBhcyDDqWNyYXPDqSBwYXIgbGVzIGNoYW5nZW1lbnRzIGRlIGRvbm7DqWVzLiAqL1xuICBkZWZhdWx0U29ydD86IHsgYWN0aXZlOiBzdHJpbmc7IGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgfTtcbiAgcm93Q2xhc3M/OiAocm93OiBULCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAvKiogQ2FsbGJhY2sgZMOpY2xlbmNow6kgcXVhbmQgbCd1dGlsaXNhdGV1ciBjbGlxdWUgc3VyIHVuZSBsaWduZS4gQWx0ZXJuYXRpdmUgYXUgYChyb3dTZWxlY3RlZClgIE91dHB1dC4gKi9cbiAgb25Sb3dTZWxlY3RlZD86IChyb3c6IFQsIGV2ZW50OiBNb3VzZUV2ZW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIENvbmZpZ3VyYXRpb24gZGUgbCdleHBvcnQgQ1NWLiAqL1xuICBleHBvcnQ/OiBUYWJsZUV4cG9ydENvbmZpZzxUPjtcbiAgLyoqIENvbmZpZ3VyYXRpb24gZGUgbGEgZm9uY3Rpb25uYWxpdMOpIFByw6lmw6lyZW5jZXMgKMOpZGl0aW9uICsgcGVyc2lzdGFuY2UgbG9jYWxTdG9yYWdlKS4gKi9cbiAgcHJlZmVyZW5jZXM/OiBUYWJsZVByZWZlcmVuY2VzQ29uZmlnO1xufVxuXG5cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianF1ZXJ5LXRhYmxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25ldGVtZS9qcXVlcnktdGFibGUvc3JjL2xpYi9qcXVlcnktdGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUVBOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQ2pCLEdBQVcsRUFDWCxNQUFjLEVBQ2QsU0FBMkM7SUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVByb3ZpZGVyIH0gZnJvbSAnQG9uZXRlbWUvanF1ZXJ5LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2xpY2VDb25maWcgfSBmcm9tICcuL2NvbXBvbmVudC9zbGljZS1wYW5lbC9zbGljZS1wYW5lbC5tb2RlbCc7XG5leHBvcnQgeyBTbGljZUNvbmZpZyB9IGZyb20gJy4vY29tcG9uZW50L3NsaWNlLXBhbmVsL3NsaWNlLXBhbmVsLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtblByb3ZpZGVyPFQgPSBhbnk+IHtcbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBMaWJlbGzDqSBhZmZpY2jDqSBkYW5zIGwnZW4tdMOqdGUgZGUgY29sb25uZS4gT3B0aW9ubmVsIHNpIGxhIGNvbG9ubmUgdXRpbGlzZSB1biB0ZW1wbGF0ZSBjdXN0b20uICovXG4gIGhlYWRlcj86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgdmFsdWU/OiBEYXRhUHJvdmlkZXI8YW55PjtcbiAgLyoqIFZhbGV1ciB1dGlsaXPDqWUgcG91ciBsZSB0cmkgc2kgZGlmZsOpcmVudGUgZGUgYHZhbHVlYC4gVXRpbGUgcXVhbmQgYHZhbHVlYCByZXRvdXJuZSB1bmUgY2hhw65uZSBmb3JtYXTDqWUgKGRhdGUsIGR1csOpZS4uLikuICovXG4gIHNvcnRWYWx1ZT86IERhdGFQcm92aWRlcjxhbnk+O1xuICAvKipcbiAgICogVmFsZXVyIHV0aWxpc8OpZSBwb3VyIGxhIHJlY2hlcmNoZSBwbGVpbi10ZXh0ZS5cbiAgICogw4AgZMOpZmluaXIgcXVhbmQgbGEgY29sb25uZSB1dGlsaXNlIHVuIGBqcXQtY2VsbC1kZWZgIHRlbXBsYXRlIHBlcnNvbm5hbGlzw6kgZXQgcXUnYXVjdW4gYHZhbHVlYCBwcm92aWRlciBuJ2VzdCBkw6ljbGFyw6kuXG4gICAqIFNpIGFic2VudCwgbGEgcmVjaGVyY2hlIHV0aWxpc2UgYHZhbHVlYCBlbiBwcmlvcml0w6ksIHB1aXMgbGEgdmFsZXVyIGJydXRlIGRlIGxhIGxpZ25lLlxuICAgKiBFeGVtcGxlIDogYHNlYXJjaFZhbHVlOiAocm93KSA9PiBkdXJhdGlvblBpcGUudHJhbnNmb3JtKCh0b2RheSAtIHJvdy5zdGFydCkgLyAxMDAwKWBcbiAgICovXG4gIHNlYXJjaFZhbHVlPzogRGF0YVByb3ZpZGVyPHN0cmluZz47XG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcbiAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICB3aWR0aD86IHN0cmluZztcbiAgZ3JvdXBhYmxlPzogYm9vbGVhbjtcbiAgc2xpY2VhYmxlPzogYm9vbGVhbjtcbiAgLyoqIENoYXJnZW1lbnQgZGlmZsOpcsOpIDogbGEgcHLDqXNlbmNlIGRlIGNldCBvYmpldCBhY3RpdmUgbGUgbW9kZSBsYXp5LiAqL1xuICBsYXp5Pzoge1xuICAgIC8qKiBGb25jdGlvbiBhcHBlbMOpZSBwb3VyIGNoYXJnZXIgbGVzIHZhbGV1cnMgZGUgbGEgY29sb25uZS4gUmV0b3VybmUgdW4gdGFibGVhdSBkYW5zIGxlIG3Dqm1lIG9yZHJlIHF1ZSBsZXMgbGlnbmVzLiAqL1xuICAgIGZldGNoRm46ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xuICB9O1xufVxuXG4vKiogQ29uZmlndXJhdGlvbiBkZSBsYSBiYXJyZSBkZSByZWNoZXJjaGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU2VhcmNoQ29uZmlnIHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKiBWYWxldXIgaW5pdGlhbGUgYXUgY2hhcmdlbWVudC4gKi9cbiAgaW5pdGlhbFF1ZXJ5Pzogc3RyaW5nO1xuICAvKiogUmVzdHJlaW50IGxhIHJlY2hlcmNoZSB0ZXh0ZSBhdXggY29sb25uZXMgZG9udCBsYSBga2V5YCBlc3QgZGFucyBjZSB0YWJsZWF1LiBTaSBhYnNlbnQsIHRvdXRlcyBsZXMgY29sb25uZXMgc29udCBjaGVyY2jDqWVzLiAqL1xuICBzZWFyY2hDb2x1bW5zPzogc3RyaW5nW107XG59XG5cbi8qKiBDb25maWd1cmF0aW9uIGRlIGxhIHBhZ2luYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUGFnaW5hdGlvbkNvbmZpZyB7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG4gIC8qKiBPcHRpb25zIGRlIHRhaWxsZSBkZSBwYWdlIHNww6ljaWZpcXVlcyBhdSBtb2RlIEdyb3VwIGJ5LiBTaSBhYnNlbnQsIHV0aWxpc2UgYHBhZ2VTaXplT3B0aW9uc2AuICovXG4gIHBhZ2VTaXplT3B0aW9uc0dyb3VwQnk/OiBudW1iZXJbXTtcbn1cblxuLyoqIENvbmZpZ3VyYXRpb24gZHUgbWVudSBWaWV3IChDaGFtcHMgLyBHcm91cCBieSAvIFNsaWNlIGJ5KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVWaWV3Q29uZmlnIHtcbiAgLyoqIEFjdGl2ZSBsZSBib3V0b24gVmlldy4gUGFyIGTDqWZhdXQgOiBgZmFsc2VgLiAqL1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqIEF1dG9yaXNlIGxlIG1hc3F1YWdlL2FmZmljaGFnZSBkZXMgY29sb25uZXMgZGUgYmFzZSB2aWEgVmlldyA+IENoYW1wcy4gUGFyIGTDqWZhdXQgOiBgdHJ1ZWAuICovXG4gIGVuYWJsZUNvbHVtblJlbW92YWw/OiBib29sZWFuO1xuICAvKiogQWN0aXZlIGxlIGRyYWcgJiBkcm9wIHBvdXIgcsOpb3Jkb25uZXIgbGVzIGNvbG9ubmVzLiBQYXIgZMOpZmF1dCA6IGBmYWxzZWAuICovXG4gIGVuYWJsZUNvbHVtbkRyYWdEcm9wPzogYm9vbGVhbjtcbn1cblxuLyoqIExhYmVscyBkJ8OpdGF0IGR1IHRhYmxlYXUuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTGFiZWxzQ29uZmlnIHtcbiAgLyoqIEFmZmljaMOpIHF1YW5kIGxlIHRhYmxlYXUgZXN0IHZpZGUuIFBhciBkw6lmYXV0IDogYCdBdWN1bmUgZG9ubsOpZSdgLiAqL1xuICBlbXB0eT86IHN0cmluZztcbiAgLyoqIEFmZmljaMOpIHBlbmRhbnQgbGUgY2hhcmdlbWVudC4gUGFyIGTDqWZhdXQgOiBgJ0NoYXJnZW1lbnQgZGVzIGRvbm7DqWVzLi4uJ2AuICovXG4gIGxvYWRpbmc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmFjY291cmNpIHBvdXIgZMOpY2xhcmVyIHVuZSBjb2xvbm5lIGRlIGJhc2UuXG4gKlxuICogYGBgdHNcbiAqIGNvbHVtbnM6IFtcbiAqICAgY29sKCduYW1lJywgJ05vbScpLFxuICogICBjb2woJ3N0YXR1cycsICdTdGF0dXQnLCB7IHNvcnRhYmxlOiBmYWxzZSB9KSxcbiAqIF1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sPFQgPSBhbnk+KFxuICBrZXk6IHN0cmluZyxcbiAgaGVhZGVyOiBzdHJpbmcsXG4gIG92ZXJyaWRlcz86IFBhcnRpYWw8VGFibGVDb2x1bW5Qcm92aWRlcjxUPj4sXG4pOiBUYWJsZUNvbHVtblByb3ZpZGVyPFQ+IHtcbiAgcmV0dXJuIHsga2V5LCBoZWFkZXIsIC4uLm92ZXJyaWRlcyB9O1xufVxuXG4vKiogQ29uZmlndXJhdGlvbiBkZSBs4oCZZXhwb3J0IENTViBkw6ljbGVuY2jDqSBkZXB1aXMgbGEgdG9vbGJhci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVFeHBvcnRDb25maWc8VCA9IGFueT4ge1xuICAvKiogQWZmaWNoZSBsZSBib3V0b24gRXhwb3J0IGRhbnMgbGEgdG9vbGJhci4gUGFyIGTDqWZhdXQgOiBgdHJ1ZWAuICovXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICAvKiogTm9tIGR1IGZpY2hpZXIgZ8OpbsOpcsOpLiBQYXIgZMOpZmF1dMKgOiBgJ2V4cG9ydC5jc3YnYC4gKi9cbiAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1lIGNoYXF1ZSBsaWduZSBhdmFudCBleHBvcnQuXG4gICAqIFNpIGFic2VudCwgbGVzIHZhbGV1cnMgYWZmaWNow6llcyAoYXByw6hzIGBub3JtYWxpemVDZWxsVmFsdWVgKSBzb250IHV0aWxpc8OpZXMuXG4gICAqIFNldWxlcyBsZXMgY29sb25uZXMgdmlzaWJsZXMgc29udCBleHBvcnTDqWVzLlxuICAgKi9cbiAgdHJhbnNmb3JtPzogKHJvdzogVCkgPT4gUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBkZSBsYSBmb25jdGlvbm5hbGl0w6kgUHLDqWbDqXJlbmNlcy5cbiAqXG4gKiBBam91dGUgdW4gbWVudSBcIlByw6lmw6lyZW5jZXNcIiBkYW5zIFZpZXcgcXVpIHBlcm1ldCA6XG4gKiAtIExlICoqbW9kZSDDqWRpdGlvbioqIChyZWRpbWVuc2lvbm5lciAvIHLDqW9yZG9ubmVyIGxlcyBjb2xvbm5lcyDDoCBsYSBzb3VyaXMpXG4gKiAtIEwnKiplbnJlZ2lzdHJlbWVudCoqIGRlIGxhIGNvbmZpZ3VyYXRpb24gY291cmFudGUgZGFucyBsZSBsb2NhbFN0b3JhZ2VcbiAqIC0gTCcqKmVmZmFjZW1lbnQqKiBkZSBsYSBjb25maWd1cmF0aW9uIHNhdXZlZ2FyZMOpZVxuICpcbiAqIENoYXF1ZSB0YWJsZWF1IGVzdCBpZGVudGlmacOpIHBhciBgdGFibGVJZGAgKGNsw6kgbG9jYWxTdG9yYWdlIHVuaXF1ZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcmVmZXJlbmNlc0NvbmZpZyB7XG4gIC8qKiBBY3RpdmUgbGEgZm9uY3Rpb25uYWxpdMOpLiBQYXIgZMOpZmF1dCA6IGB0cnVlYC4gKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZGVudGlmaWFudCB1bmlxdWUgZHUgdGFibGVhdSwgdXRpbGlzw6kgY29tbWUgY2zDqSBsb2NhbFN0b3JhZ2UuXG4gICAqIERvaXQgw6p0cmUgc3RhYmxlIGVudHJlIGxlcyByZWNoYXJnZW1lbnRzIGRlIHBhZ2UuXG4gICAqIFNpIGFic2VudCwgdW4gaWRlbnRpZmlhbnQgZXN0IGTDqXJpdsOpIGF1dG9tYXRpcXVlbWVudCBkZXMgY2zDqXMgZGUgY29sb25uZXMuXG4gICAqIEV4ZW1wbGUgOiBgJ3VzZXItdGFibGUnYCwgYCdpbnZvaWNlLWxpc3QnYC5cbiAgICovXG4gIHRhYmxlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTbmFwc2hvdCBkZSBjb25maWd1cmF0aW9uIHBlcnNpc3TDqSBkYW5zIGxlIGxvY2FsU3RvcmFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2F2ZWRUYWJsZUNvbmZpZyB7XG4gIC8qKiBWYWxldXIgZGUgbGEgc2VhcmNoYmFyLiAqL1xuICBzZWFyY2g/OiBzdHJpbmc7XG4gIC8qKiBDbMOpIGRlIGxhIGNvbG9ubmUgdXRpbGlzw6llIHBvdXIgbGUgZ3JvdXAgYnkuIGBudWxsYCA9IGF1Y3VuLiAqL1xuICBncm91cEJ5Pzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIE9yZHJlIGRlcyBjbMOpcyBkZSBjb2xvbm5lcyAocG9zaXRpb24pLiAqL1xuICBjb2x1bW5PcmRlcj86IHN0cmluZ1tdO1xuICAvKiogQ2zDqXMgZGVzIGNvbG9ubmVzIHZpc2libGVzLiAqL1xuICB2aXNpYmxlQ29sdW1ucz86IHN0cmluZ1tdO1xuICAvKiogTGFyZ2V1cnMgZGUgY29sb25uZXMgZW4gcGl4ZWxzLCBpbmRleMOpZXMgcGFyIGNsw6kuICovXG4gIGNvbHVtbldpZHRocz86IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIC8qKiBQYW5uZWF1IHNsaWNlIHJlcGxpw6kgb3Ugbm9uLiAqL1xuICBzbGljZVBhbmVsQ29sbGFwc2VkPzogYm9vbGVhbjtcbiAgLyoqIENsw6lzIGRlcyBzbGljZXMgc3RhdGlxdWVzIGNhY2jDqWVzIHBhciBsJ3V0aWxpc2F0ZXVyICh2aWEgdG9nZ2xlIGRhbnMgbGUgbWVudSBWaWV3KS4gKi9cbiAgaGlkZGVuU2xpY2VLZXlzPzogc3RyaW5nW107XG4gIC8qKiBDbMOpcyBkZXMgY29sb25uZXMgdXRpbGlzw6llcyBjb21tZSBzbGljZXMgZHluYW1pcXVlcy4gKi9cbiAgZHluYW1pY1NsaWNlS2V5cz86IHN0cmluZ1tdO1xuICAvKiogRmlsdHJlcyBhY3RpZnMgZHUgc2xpY2UgcGFuZWwgOiBtYXAgc2xpY2VJbmRleCDihpIgdGFibGVhdSBkZSBjbMOpcyBhY3RpdmVzLiAqL1xuICBzbGljZUZpbHRlcnM/OiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmdbXT47XG59XG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUHJvdmlkZXI8VCA9IGFueT4ge1xuICBjb2x1bW5zPzogVGFibGVDb2x1bW5Qcm92aWRlcjxUPltdO1xuICB0aXRsZT86IHN0cmluZztcbiAgc2xpY2VzPzogU2xpY2VDb25maWc8VD5bXTtcbiAgLyoqIEFmZmljaGUgbGUgYm91dG9uIHRvZ2dsZSBwb3VyIHJlcGxpZXIvZMOpcGxpZXIgbGUgcGFubmVhdSBkZSBzbGljZXMuIFBhciBkw6lmYXV0IDogYHRydWVgLiAqL1xuICBlbmFibGVTbGljZVRvZ2dsZT86IGJvb2xlYW47XG4gIHNlYXJjaD86IFRhYmxlU2VhcmNoQ29uZmlnO1xuICBwYWdpbmF0aW9uPzogVGFibGVQYWdpbmF0aW9uQ29uZmlnO1xuICB2aWV3PzogVGFibGVWaWV3Q29uZmlnO1xuICBsYWJlbHM/OiBUYWJsZUxhYmVsc0NvbmZpZztcbiAgLyoqIFRyaSBpbml0aWFsIGFwcGxpcXXDqSBhdSBjaGFyZ2VtZW50LiBOJ2VzdCBwYXMgw6ljcmFzw6kgcGFyIGxlcyBjaGFuZ2VtZW50cyBkZSBkb25uw6llcy4gKi9cbiAgZGVmYXVsdFNvcnQ/OiB7IGFjdGl2ZTogc3RyaW5nOyBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnIH07XG4gIC8qKiBDbMOpIGRlIGNvbG9ubmUgw6AgdXRpbGlzZXIgY29tbWUgZ3JvdXAtYnkgcGFyIGTDqWZhdXQgYXUgY2hhcmdlbWVudC4gTidlc3QgcGFzIMOpY3Jhc8OpIHBhciBsZXMgY2hhbmdlbWVudHMgZGUgZG9ubsOpZXMgbmkgcGFyIHVuIHJlc2V0IGV4cGxpY2l0ZSBkZSBsJ3V0aWxpc2F0ZXVyLiAqL1xuICBkZWZhdWx0R3JvdXBCeT86IHN0cmluZyB8IG51bGw7XG4gIHJvd0NsYXNzPzogKHJvdzogVCwgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgLyoqIENhbGxiYWNrIGTDqWNsZW5jaMOpIHF1YW5kIGwndXRpbGlzYXRldXIgY2xpcXVlIHN1ciB1bmUgbGlnbmUuIEFsdGVybmF0aXZlIGF1IGAocm93U2VsZWN0ZWQpYCBPdXRwdXQuICovXG4gIG9uUm93U2VsZWN0ZWQ/OiAocm93OiBULCBldmVudDogTW91c2VFdmVudCB8IG51bGwpID0+IHZvaWQ7XG4gIC8qKiBDb25maWd1cmF0aW9uIGRlIGwnZXhwb3J0IENTVi4gKi9cbiAgZXhwb3J0PzogVGFibGVFeHBvcnRDb25maWc8VD47XG4gIC8qKiBDb25maWd1cmF0aW9uIGRlIGxhIGZvbmN0aW9ubmFsaXTDqSBQcsOpZsOpcmVuY2VzICjDqWRpdGlvbiArIHBlcnNpc3RhbmNlIGxvY2FsU3RvcmFnZSkuICovXG4gIHByZWZlcmVuY2VzPzogVGFibGVQcmVmZXJlbmNlc0NvbmZpZztcbn1cblxuXG4iXX0=