td-stylekit 27.2.0 → 27.3.1

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [27.3.1](https://github.com/treasure-data/td-stylekit/compare/v27.3.0...v27.3.1) (2022-09-26)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **CON-11126:** Datagrid should flatmap children ([#1336](https://github.com/treasure-data/td-stylekit/issues/1336)) ([24ca052](https://github.com/treasure-data/td-stylekit/commit/24ca052))
7
+
8
+ # [27.3.0](https://github.com/treasure-data/td-stylekit/compare/v27.2.0...v27.3.0) (2022-09-26)
9
+
10
+
11
+ ### Features
12
+
13
+ * **Icons:** Add legacy rts and key icons ([#1334](https://github.com/treasure-data/td-stylekit/issues/1334)) ([f83d98a](https://github.com/treasure-data/td-stylekit/commit/f83d98a))
14
+
1
15
  # [27.2.0](https://github.com/treasure-data/td-stylekit/compare/v27.1.1...v27.2.0) (2022-09-15)
2
16
 
3
17
 
@@ -33,7 +33,7 @@ export declare type SelectableType = 'single' | 'multi';
33
33
  declare type ColumnFunction = (args: BasicColumnMappedProps) => React.ReactNode;
34
34
  export declare type DataGridProps = {
35
35
  /** Functions that create react virtualized Columns. Default column is exposed as DataGrid.Column. */
36
- children: ColumnFunction | Array<ColumnFunction>;
36
+ children: ColumnFunction | (ColumnFunction | ColumnFunction[])[];
37
37
  /** Instrumentation */
38
38
  'data-instrumentation'?: string;
39
39
  /** Called during the onContextMenu event of each row. */
@@ -397,7 +397,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
397
397
  };
398
398
 
399
399
  var children = IsArray(_this.props.children) ? _this.props.children : [_this.props.children];
400
- var validChildren = children.filter(function (child) {
400
+ var validChildren = children.flat().filter(function (child) {
401
401
  return typeof child === 'function';
402
402
  });
403
403
  return validChildren.map(function (child, index) {
@@ -677,7 +677,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
677
677
  css: /*#__PURE__*/(0, _react.css)({
678
678
  width: width,
679
679
  height: height
680
- }, process.env.NODE_ENV === "production" ? "" : ";label:render;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9EYXRhR3JpZC9EYXRhR3JpZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb3FCUSIsImZpbGUiOiIuLi8uLi8uLi9zcmMvRGF0YUdyaWQvRGF0YUdyaWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7XG4gIEluZmluaXRlTG9hZGVyLFxuICBUYWJsZSxcbiAgU29ydERpcmVjdGlvbixcbiAgVGFibGVSb3dQcm9wc1xufSBmcm9tICdyZWFjdC12aXJ0dWFsaXplZCdcbmltcG9ydCB0eXBlIHtcbiAgU29ydERpcmVjdGlvblR5cGUsXG4gIFRhYmxlUHJvcHMsXG4gIEluZGV4UmFuZ2UsXG4gIEluZGV4LFxuICBSb3dNb3VzZUV2ZW50SGFuZGxlclBhcmFtc1xufSBmcm9tICdyZWFjdC12aXJ0dWFsaXplZCdcbmltcG9ydCAqIGFzIEVsZW1lbnRzIGZyb20gJy4vZWxlbWVudHMnXG5pbXBvcnQgKiBhcyBSZW5kZXJlcnMgZnJvbSAnLi9yZW5kZXJlcnMnXG5pbXBvcnQge1xuICBCYXNpY0NvbHVtbixcbiAgRm9jdXNhYmxlUm93LFxuICBJbnB1dENlbGwsXG4gIENvbGxhcHNpYmxlQ2VsbCxcbiAgU2Nyb2xsYWJsZVRhYmxlXG59IGZyb20gJy4vY29tcG9uZW50cydcbmltcG9ydCB7IENsb3NlV3JhcHBlciB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IGN1cnJ5IGZyb20gJ2xvZGFzaC5jdXJyeSdcbmltcG9ydCBpbmNsdWRlcyBmcm9tICdsb2Rhc2guaW5jbHVkZXMnXG5pbXBvcnQgbm9vcCBmcm9tICdsb2Rhc2gubm9vcCdcbmltcG9ydCByYW5nZSBmcm9tICdsb2Rhc2gucmFuZ2UnXG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoLnRocm90dGxlJ1xuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLnVuaXEnXG5pbXBvcnQgKiBhcyBkYXRhR3JpZFV0aWxzIGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJhc2ljQ29sdW1uTWFwcGVkUHJvcHMsXG4gIEJhc2ljQ29sdW1uUHJvcHNcbn0gZnJvbSAnLi9jb21wb25lbnRzL0Jhc2ljQ29sdW1uJ1xuaW1wb3J0IHR5cGUgeyBMb2NhbGVTdHJpbmdzIH0gZnJvbSAnLi9jb25zdGFudHMnXG5cbmV4cG9ydCB0eXBlIG9uRmlsdGVyQXJndW1lbnRzID0ge1xuICBmaWx0ZXJzOiB7IFtkYXRhS2V5OiBzdHJpbmddOiBhbnkgfVxuICBzb3J0Qnk/OiBzdHJpbmdcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb25UeXBlXG59XG5cbnR5cGUgYWN0aXZlQ29udGV4dE1lbnVTdGF0ZSA9IHtcbiAgdG9wOiBudW1iZXJcbiAgbGVmdDogbnVtYmVyXG4gIGluZGV4OiBudW1iZXJcbiAgcm93RGF0YTogYW55XG59XG5cbnR5cGUgY29udGV4dE1lbnVSZW5kZXJlckFyZ3VtZW50cyA9IHtcbiAgdG9wPzogbnVtYmVyXG4gIGxlZnQ/OiBudW1iZXJcbiAgaW5kZXg/OiBudW1iZXJcbiAgcm93RGF0YT86IGFueVxuICBzZWxlY3RlZFJvd3M6IEFycmF5PG51bWJlcj5cbiAgb25DbG9zZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTZWxlY3RhYmxlVHlwZSA9ICdzaW5nbGUnIHwgJ211bHRpJ1xuXG50eXBlIENvbHVtbkZ1bmN0aW9uID0gKGFyZ3M6IEJhc2ljQ29sdW1uTWFwcGVkUHJvcHMpID0+IFJlYWN0LlJlYWN0Tm9kZVxuXG5leHBvcnQgdHlwZSBEYXRhR3JpZFByb3BzID0ge1xuICAvKiogRnVuY3Rpb25zIHRoYXQgY3JlYXRlIHJlYWN0IHZpcnR1YWxpemVkIENvbHVtbnMuIERlZmF1bHQgY29sdW1uIGlzIGV4cG9zZWQgYXMgRGF0YUdyaWQuQ29sdW1uLiAqL1xuICAvLyBDYW4gdGFrZSBhIHNpbmdsZSBjb2x1bW4gb3IgYW4gYXJyYXkgb2YgY29sdW1uc1xuICBjaGlsZHJlbjogQ29sdW1uRnVuY3Rpb24gfCBBcnJheTxDb2x1bW5GdW5jdGlvbj5cbiAgLyoqIEluc3RydW1lbnRhdGlvbiAqL1xuICAnZGF0YS1pbnN0cnVtZW50YXRpb24nPzogc3RyaW5nXG4gIC8qKiBDYWxsZWQgZHVyaW5nIHRoZSBvbkNvbnRleHRNZW51IGV2ZW50IG9mIGVhY2ggcm93LiAqL1xuICBjb250ZXh0TWVudVJlbmRlcmVyPzogKFxuICAgIGNvbnRleHRNZW51UmVuZGVyZXJBcmd1bWVudHM6IGNvbnRleHRNZW51UmVuZGVyZXJBcmd1bWVudHNcbiAgKSA9PiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqIENhbGxlZCB3aGVuIGEgY29sdW1uIGlzIGZpbHRlcmVkIG9yIHNvcnRlZC4gKi9cbiAgb25GaWx0ZXI6IChvbkZpbHRlckFyZ3VtZW50czogb25GaWx0ZXJBcmd1bWVudHMpID0+IHZvaWRcbiAgLyoqIENhbGxlZCB3aGVuIGEgY29sdW1uIGlzIHJlc2l6ZWQgYnkgdGhlIHVzZXIuIFBhc3NpbmcgdGhpcyBpbiBlbmFibGVzXG4gICAqIHJlc2l6ZSBoYW5kbGVzIG9uIHRoZSByaWdodCBlZGdlIG9mIHRoZSBoZWFkZXIgY2VsbHMuICovXG4gIG9uUmVzaXplPzogKG5ld1NpemVzOiBudW1iZXJbXSkgPT4gdm9pZFxuICAvKiogQ2FsbGVkIHdoZW4gdGhlIHJvdyBzZWxlY3Rpb24gY2hhbmdlcy4gUmVjZWl2ZXMgYXJyYXkgb2YgaW5kaWNlcy4gKi9cbiAgb25TZWxlY3Q6IChpbmRleGVzOiBudW1iZXJbXSkgPT4gdm9pZFxuICAvKiogQ2FsbGVkIHdoZW4gdGhlIHJvdyBpcyBkb3VibGUgY2xpY2tlZC4gUmVjZWl2ZXMgaW5kZXguICovXG4gIG9uUm93RG91YmxlQ2xpY2s/OiAoaW5mbzogUm93TW91c2VFdmVudEhhbmRsZXJQYXJhbXMpID0+IHZvaWRcbiAgLyoqIEluZmluaXRlIGxvYWRpbmc6IEluZGljYXRlcyBtb3JlIHJvd3MgbmVlZCB0byBiZSBsb2FkZWQuICovXG4gIGhhc01vcmVSb3dzPzogYm9vbGVhblxuICAvKiogSW5maW5pdGUgbG9hZGluZzogQ2FsbGVkIHdoZW4gbW9yZSByb3dzIG5lZWQgdG8gYmUgbG9hZGVkLiAqL1xuICBsb2FkTW9yZVJvd3M/OiAocHJvcHM6IEluZGV4UmFuZ2UpID0+IFByb21pc2U8YW55PlxuICAvKiogQ291bnQgb2Ygcm93cyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGxvYWRlZC4gKi9cbiAgcm93Q291bnQ6IG51bWJlclxuICAvKiogUmVxdWlyZWQgYnkgcmVhY3QtdmlydHVhbGl6ZWQgdGFibGUuICovXG4gIHJvd0dldHRlcjogKHByb3BzOiB7IGluZGV4OiBudW1iZXIgfSkgPT4gYW55XG4gIC8qKiBXaGV0aGVyIHJvd3MgY2FuIGJlIHNlbGVjdGVkIChhbmQgaG93IG1hbnkpLiAqL1xuICBzZWxlY3RhYmxlPzogU2VsZWN0YWJsZVR5cGUgfCBmYWxzZVxuICAvKiogQXJyYXkgb2YgaW5kaWNlcyB0aGF0IHNob3VsZCBiZSBzZWxlY3RlZC4gT25seSB1c2VkIGlmIGBzZWxlY3RhYmxlYCBpcyBzZXQuICovXG4gIHNlbGVjdGVkUm93czogQXJyYXk8bnVtYmVyPlxuICAvKiogVGhlIGNvbHVtbiB5b3Ugd2FudCB0byBzb3J0ICovXG4gIHNvcnRCeT86IHN0cmluZ1xuICAvKiogVGhlIGRpcmVjdGlvbiBzb3J0aW5nIHNob3VsZCBiZSBkb25lICovXG4gIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uVHlwZVxuICAvKiogQSBtYXAgb2YgY29sdW1ucyB0byBmaWx0ZXIgZGF0YSAqL1xuICBmaWx0ZXJzPzogeyBbZGF0YUtleTogc3RyaW5nXTogYW55IH1cbiAgLyoqIFNldCB0aGUgd2lkdGggb2Ygc2Nyb2xsYWJsZSBjb250ZW50ICovXG4gIHNjcm9sbFdpZHRoPzogbnVtYmVyXG4gIHdpZHRoOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbiAgLyoqIExvY2FsZSBzdHJpbmc6IGphLCBkZSwgZXMsIGtvLCBlbiwgZXRjLiAqL1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgLyoqIExvY2FsZSBzdHJpbmdzIHRvIG92ZXJyaWRlIGVuIGZvciBsYW5ndWFnZSBpbiBsb2NhbGUgKi9cbiAgbG9jYWxlU3RyaW5ncz86IExvY2FsZVN0cmluZ3NcbiAgLyoqIGFsbG93IGV2ZW50cyB0byBwcm9wYWdhdGUgdG8gYSBjZWxsIG9uIHJvdyBzZWxlY3QgKi9cbiAgYWxsb3dSb3dFdmVudFBhc3N0aHJvdWdoPzogYm9vbGVhblxufSAmIFBhcnRpYWw8VGFibGVQcm9wcz5cblxudHlwZSBEYXRhR3JpZFN0YXRlID0ge1xuICBhY3RpdmVDb250ZXh0TWVudTogYWN0aXZlQ29udGV4dE1lbnVTdGF0ZSB8IG51bGxcbiAgZGlzYWJsZUtleWJvYXJkU2hvcnRjdXRzOiBib29sZWFuXG4gIGZvY3VzZWRSb3c6IG51bWJlciB8IG51bGxcbiAgc2VsZWN0aW5nOiBib29sZWFuXG4gIGxhc3RTZWxlY3RlZFJvdzogbnVtYmVyIHwgbnVsbFxufVxuXG50eXBlIEhhbmRsZUZpbHRlckFyZ3VtZW50cyA9IHtcbiAgc29ydEJ5Pzogc3RyaW5nXG4gIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uVHlwZVxuICBmaWx0ZXJzPzogYW55XG59XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGRhdGEgaW4gYSBncmlkIHdpdGggc3VwcG9ydCBmb3IgdGhpbmdzIGxpa2VcbiAqIGZpbHRlcmluZywgc29ydGluZywgYW5kIGNvbnRleHQgbWVudXMuXG4gKlxuICogRGVwZW5kcyBvbiByZWFjdC12aXJ0dWFsaXplZC9zdHlsZXMuY3NzLlxuICpcbiAqIEZvciByZWFjdC12aXJ0dWFsaXplZCBUYWJsZSBkb2NzIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2J2YXVnaG4vcmVhY3QtdmlydHVhbGl6ZWQvYmxvYi9tYXN0ZXIvZG9jcy9UYWJsZS5tZFxuICpcbiAqL1xuY2xhc3MgRGF0YUdyaWQgZXh0ZW5kcyBDb21wb25lbnQ8RGF0YUdyaWRQcm9wcywgRGF0YUdyaWRTdGF0ZT4ge1xuICAvLyBleHBvc2Ugc3ViLWNvbXBvbmVudHNcbiAgc3RhdGljIENvbHVtbiA9IGN1cnJ5KEJhc2ljQ29sdW1uKVxuICBzdGF0aWMgU29ydERpcmVjdGlvbiA9IFNvcnREaXJlY3Rpb25cbiAgc3RhdGljIEVsZW1lbnRzID0gRWxlbWVudHNcbiAgc3RhdGljIElucHV0Q2VsbCA9IElucHV0Q2VsbFxuICBzdGF0aWMgQ29sbGFwc2libGVDZWxsID0gQ29sbGFwc2libGVDZWxsXG4gIHN0YXRpYyBSZW5kZXJlcnMgPSBSZW5kZXJlcnNcblxuICBzdGF0aWMgU0lOR0xFX1NFTEVDVDogU2VsZWN0YWJsZVR5cGUgPSAnc2luZ2xlJ1xuICBzdGF0aWMgTVVMVElfU0VMRUNUOiBTZWxlY3RhYmxlVHlwZSA9ICdtdWx0aSdcbiAgc3RhdGljIE1JTl9DT0xfV0lEVEggPSA1MFxuXG4gIHN0YXRpYyB1dGlscyA9IGRhdGFHcmlkVXRpbHNcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGxvYWRNb3JlUm93czogbm9vcCxcbiAgICBvblNlbGVjdDogbm9vcCxcbiAgICBvbkZpbHRlcjogbm9vcCxcbiAgICAnZGF0YS1pbnN0cnVtZW50YXRpb24nOiAnZGF0YWdyaWQnLFxuICAgIHNvcnRCeTogJycsXG4gICAgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbi5BU0MsXG4gICAgZmlsdGVyczoge30sXG4gICAgc2VsZWN0ZWRSb3dzOiBbXSxcbiAgICBhbGxvd1Jvd0V2ZW50UGFzc3Rocm91Z2g6IGZhbHNlXG4gIH1cblxuICBzdGF0aWMgZGlzcGxheU5hbWUgPSAnRGF0YUdyaWQnXG5cbiAgc3RhdGU6IERhdGFHcmlkU3RhdGUgPSB7XG4gICAgYWN0aXZlQ29udGV4dE1lbnU6IG51bGwsXG4gICAgZGlzYWJsZUtleWJvYXJkU2hvcnRjdXRzOiBmYWxzZSxcbiAgICBmb2N1c2VkUm93OiBudWxsLFxuICAgIGxhc3RTZWxlY3RlZFJvdzogbnVsbCxcbiAgICBzZWxlY3Rpbmc6IGZhbHNlXG4gIH1cblxuICBpbmZpbml0ZVRhYmxlID0gUmVhY3QuY3JlYXRlUmVmPEluZmluaXRlTG9hZGVyPigpXG5cbiAgdG90YWxXaWR0aCA9IDBcbiAgY29sdW1uV2lkdGhQZXJjZW50czogbnVtYmVyW10gPSBbXVxuXG4gIGNvbHVtblRyYW5zZm9ybWVyOiAoXG4gICAgY29sdW1uczogUmVhY3QuUmVhY3RFbGVtZW50PGFueT5bXSxcbiAgICByb3dEYXRhOiBhbnksXG4gICAgcm93SW5kZXg6IG51bWJlclxuICApID0+IFJlYWN0LlJlYWN0Tm9kZVtdIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4gIHNlbGVjdCA9ICh7XG4gICAgaW5kZXgsXG4gICAgY29udGlndW91cyA9IGZhbHNlXG4gIH06IHtcbiAgICBpbmRleDogbnVtYmVyXG4gICAgY29udGlndW91czogYm9vbGVhblxuICB9KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSA9PiB7XG4gICAgICBjb25zdCB7IGxhc3RTZWxlY3RlZFJvdyB9ID0gc3RhdGVcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dzIH0gPSB0aGlzLnByb3BzXG4gICAgICBsZXQgc2VsZWN0ZWQgPSBbLi4uc2VsZWN0ZWRSb3dzLCBpbmRleF1cbiAgICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdGFibGUgPT09IERhdGFHcmlkLlNJTkdMRV9TRUxFQ1QpIHtcbiAgICAgICAgc2VsZWN0ZWQgPSBbaW5kZXhdXG4gICAgICB9IGVsc2UgaWYgKGNvbnRpZ3VvdXMgJiYgdHlwZW9mIGxhc3RTZWxlY3RlZFJvdyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1pbihsYXN0U2VsZWN0ZWRSb3csIGluZGV4KVxuICAgICAgICBjb25zdCBlbmQgPSBNYXRoLm1heChsYXN0U2VsZWN0ZWRSb3csIGluZGV4KVxuICAgICAgICBzZWxlY3RlZCA9IHVuaXEoWy4uLnNlbGVjdGVkUm93cywgLi4ucmFuZ2Uoc3RhcnQsIGVuZCArIDEpXSlcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3Qoc2VsZWN0ZWQpXG4gICAgICByZXR1cm4geyBsYXN0U2VsZWN0ZWRSb3c6IGluZGV4IH1cbiAgICB9KVxuICB9XG5cbiAgc2VsZWN0QWxsID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcm93Q291bnQgfSA9IHRoaXMucHJvcHNcbiAgICB0aGlzLnNldFNlbGVjdGVkUm93cyhBcnJheS5mcm9tKHsgbGVuZ3RoOiByb3dDb3VudCB9KS5tYXAoKF8sIGlkeCkgPT4gaWR4KSlcbiAgfVxuXG4gIGRlc2VsZWN0ID0gKHtcbiAgICBpbmRleCxcbiAgICBjb250aWd1b3VzID0gZmFsc2VcbiAgfToge1xuICAgIGluZGV4OiBudW1iZXJcbiAgICBjb250aWd1b3VzOiBib29sZWFuXG4gIH0pID0+IHtcbiAgICBpZiAoaW5kZXggPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IHsgbGFzdFNlbGVjdGVkUm93IH0gPSBzdGF0ZVxuICAgICAgY29uc3QgeyBzZWxlY3RlZFJvd3MgfSA9IHRoaXMucHJvcHNcbiAgICAgIGxldCBzZWxlY3RlZCA9IHNlbGVjdGVkUm93cy5maWx0ZXIoaWR4ID0+IGlkeCAhPT0gaW5kZXgpXG4gICAgICBpZiAoY29udGlndW91cyAmJiB0eXBlb2YgbGFzdFNlbGVjdGVkUm93ID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zdCBzdGFydCA9IE1hdGgubWluKGxhc3RTZWxlY3RlZFJvdywgaW5kZXgpXG4gICAgICAgIGNvbnN0IGVuZCA9IE1hdGgubWF4KGxhc3RTZWxlY3RlZFJvdywgaW5kZXgpXG4gICAgICAgIGNvbnN0IHRvRGVzZWxlY3QgPSByYW5nZShzdGFydCwgZW5kICsgMSlcbiAgICAgICAgc2VsZWN0ZWQgPSBzZWxlY3RlZFJvd3MuZmlsdGVyKGlkeCA9PiAhaW5jbHVkZXModG9EZXNlbGVjdCwgaWR4KSlcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5wcm9wcy5zZWxlY3RhYmxlID09PSBEYXRhR3JpZC5TSU5HTEVfU0VMRUNUICYmXG4gICAgICAgICFzZWxlY3RlZC5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChzZWxlY3RlZClcbiAgICAgIHJldHVybiB7IGxhc3RTZWxlY3RlZFJvdzogaW5kZXggfVxuICAgIH0pXG4gIH1cblxuICBkZXNlbGVjdEFsbCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFNlbGVjdGVkUm93cyhbXSlcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGxhc3RTZWxlY3RlZFJvdzogbnVsbFxuICAgIH0pXG4gIH1cblxuICB0b2dnbGVTZWxlY3QgPSAoe1xuICAgIGluZGV4LFxuICAgIGNvbnRpZ3VvdXNcbiAgfToge1xuICAgIGluZGV4OiBudW1iZXJcbiAgICBjb250aWd1b3VzOiBib29sZWFuXG4gIH0pID0+IHtcbiAgICBpZiAoaW5kZXggPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoIXRoaXMucHJvcHMuc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKGluZGV4KSkge1xuICAgICAgdGhpcy5zZWxlY3QoeyBpbmRleCwgY29udGlndW91cyB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc2VsZWN0KHsgaW5kZXgsIGNvbnRpZ3VvdXMgfSlcbiAgICB9XG4gIH1cblxuICBzZXRTZWxlY3RlZFJvd3MgPSAocm93czogQXJyYXk8bnVtYmVyPikgPT4ge1xuICAgIHRoaXMucHJvcHMub25TZWxlY3Qocm93cylcbiAgfVxuXG4gIGhhbmRsZUZpbHRlciA9ICh7XG4gICAgc29ydEJ5LFxuICAgIHNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyc1xuICB9OiBIYW5kbGVGaWx0ZXJBcmd1bWVudHMpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzb3J0Qnk6IG9sZFNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb246IG9sZFNvcnREaXJlY3Rpb24sXG4gICAgICBmaWx0ZXJzOiBvbGRGaWx0ZXJzXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBuZXdEYXRhID0ge1xuICAgICAgc29ydEJ5OiBzb3J0QnkgfHwgb2xkU29ydEJ5LFxuICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbiB8fCBvbGRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyczoge1xuICAgICAgICAuLi5vbGRGaWx0ZXJzLFxuICAgICAgICAuLi5maWx0ZXJzXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucHJvcHMub25GaWx0ZXIobmV3RGF0YSlcbiAgfVxuXG4gIGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUuZGlzYWJsZUtleWJvYXJkU2hvcnRjdXRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgICBpZiAoXG4gICAgICAgICAgKGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSkgJiZcbiAgICAgICAgICB0aGlzLnByb3BzLnNlbGVjdGFibGUgPT09IERhdGFHcmlkLk1VTFRJX1NFTEVDVFxuICAgICAgICApIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMucm93Q291bnQgPT09IHRoaXMucHJvcHMuc2VsZWN0ZWRSb3dzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEFsbCgpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlID0+ICh7XG4gICAgICAgICAgZm9jdXNlZFJvdzogTWF0aC5tYXgoKHN0YXRlLmZvY3VzZWRSb3cgfHwgMCkgLSAxLCAwKVxuICAgICAgICB9KSlcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgIGZvY3VzZWRSb3c6XG4gICAgICAgICAgICBzdGF0ZS5mb2N1c2VkUm93ICE9IG51bGxcbiAgICAgICAgICAgICAgPyBNYXRoLm1pbihzdGF0ZS5mb2N1c2VkUm93ICsgMSwgdGhpcy5wcm9wcy5yb3dDb3VudCAtIDEpXG4gICAgICAgICAgICAgIDogMFxuICAgICAgICB9KSlcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgY2FzZSAnICc6XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdCh7XG4gICAgICAgICAgICBpbmRleDogdGhpcy5zdGF0ZS5mb2N1c2VkUm93IHx8IDAsXG4gICAgICAgICAgICBjb250aWd1b3VzOiBldmVudC5zaGlmdEtleVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnU2hpZnQnOlxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3Rpbmc6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlVcCA9IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZS5kaXNhYmxlS2V5Ym9hcmRTaG9ydGN1dHMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnU2hpZnQnOlxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBzZWxlY3Rpbmc6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLy8gdGhyb3R0bGluZyB0aGlzIHNvIGEgZG91YmxlIGNsaWNrIGJlaGF2ZXMgbGlrZSBhIHNpbmdsZSBjbGlja1xuICBoYW5kbGVSb3dDbGljayA9IHRocm90dGxlKFxuICAgICh7IGV2ZW50LCBpbmRleCB9OiB7IGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PGFueT47IGluZGV4OiBudW1iZXIgfSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmFsbG93Um93RXZlbnRQYXNzdGhyb3VnaCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRvZ2dsZVNlbGVjdCh7IGluZGV4LCBjb250aWd1b3VzOiBldmVudC5zaGlmdEtleSB9KVxuICAgIH0sXG4gICAgMjUwLFxuICAgIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IGZhbHNlIH1cbiAgKVxuXG4gIGhhbmRsZVJlc2l6ZSA9ICh7IHgsIGluZGV4IH06IHsgeDogbnVtYmVyOyBpbmRleDogbnVtYmVyIH0pID0+IHtcbiAgICBpZiAodGhpcy5jb2x1bW5XaWR0aFBlcmNlbnRzLmxlbmd0aCA+IDAgJiYgdGhpcy50b3RhbFdpZHRoKSB7XG4gICAgICBjb25zdCBwcmV2V2lkdGhzID0gdGhpcy5jb2x1bW5XaWR0aFBlcmNlbnRzXG4gICAgICBjb25zdCBuZXdXaWR0aHMgPSBbLi4ucHJldldpZHRoc11cbiAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gdGhpcy5wcm9wcy5zY3JvbGxXaWR0aCA/PyB0aGlzLnByb3BzLndpZHRoXG4gICAgICAvLyBsaW1pdCBuZXh0IGluZGV4IGZyb20gZ29pbmcgYmV5b25kIGJvdW5kc1xuICAgICAgY29uc3QgbmV4dEluZGV4ID0gTWF0aC5taW4oaW5kZXggKyAxLCBwcmV2V2lkdGhzLmxlbmd0aCAtIDEpXG4gICAgICBjb25zdCBwZXJjZW50Q2hhbmdlID0geCAvIHRoaXMudG90YWxXaWR0aFxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5zY3JvbGxXaWR0aCkge1xuICAgICAgICAvLyBpZiB0YWJsZSBpcyBzY3JvbGxhYmxlLCB3ZSBjYW4gZ3JvdyB0aGUgY29sdW1uIHdpdGhvdXRcbiAgICAgICAgLy8gc2hyaW5raW5nIHRoZSBvdGhlcnNcbiAgICAgICAgY29uc3Qgc2FmZVBlcmNlbnRDaGFuZ2UgPVxuICAgICAgICAgIChwcmV2V2lkdGhzW2luZGV4XSArIHBlcmNlbnRDaGFuZ2UpICogcGFyZW50V2lkdGggPFxuICAgICAgICAgIERhdGFHcmlkLk1JTl9DT0xfV0lEVEhcbiAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgOiBwZXJjZW50Q2hhbmdlXG4gICAgICAgIG5ld1dpZHRoc1tpbmRleF0gPSBwcmV2V2lkdGhzW2luZGV4XSArIHNhZmVQZXJjZW50Q2hhbmdlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpZiB0aGUgdGFibGUgaXMgbm90IHNjcm9sbGFibGUsIGVuc3VyZSBhbGwgY29sdW1ucyBmaXQgYnlcbiAgICAgICAgLy8gYWRqdXN0aW5nIHRoZSBjdXJyZW50IGNvbHVtbiBhbmQgdGhlIG9uZSBhZnRlciBpdFxuICAgICAgICBjb25zdCBzYWZlUGVyY2VudENoYW5nZSA9XG4gICAgICAgICAgKHByZXZXaWR0aHNbaW5kZXhdICsgcGVyY2VudENoYW5nZSkgKiBwYXJlbnRXaWR0aCA8XG4gICAgICAgICAgICBEYXRhR3JpZC5NSU5fQ09MX1dJRFRIIHx8XG4gICAgICAgICAgKHByZXZXaWR0aHNbbmV4dEluZGV4XSAtIHBlcmNlbnRDaGFuZ2UpICogcGFyZW50V2lkdGggPFxuICAgICAgICAgICAgRGF0YUdyaWQuTUlOX0NPTF9XSURUSFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHBlcmNlbnRDaGFuZ2VcbiAgICAgICAgbmV3V2lkdGhzW2luZGV4XSA9IHByZXZXaWR0aHNbaW5kZXhdICsgc2FmZVBlcmNlbnRDaGFuZ2VcbiAgICAgICAgbmV3V2lkdGhzW25leHRJbmRleF0gPSBwcmV2V2lkdGhzW25leHRJbmRleF0gLSBzYWZlUGVyY2VudENoYW5nZVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5vblJlc2l6ZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplKFxuICAgICAgICAgIC8vIG11bHRpcGx5IGJ5IHdpZHRoIHByb3AgdG8gZ2V0IGNvcnJlY3QgcGVyY2VudGFnZVxuICAgICAgICAgIG5ld1dpZHRocy5tYXAod2lkdGggPT4gTWF0aC5yb3VuZCh3aWR0aCAqIHBhcmVudFdpZHRoKSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1hcENoaWxkcmVuID0gKCkgPT4ge1xuICAgIGNvbnN0IElzQXJyYXkgPSAoY2hpbGRyZW4pOiBjaGlsZHJlbiBpcyBBcnJheTxDb2x1bW5GdW5jdGlvbj4gPT5cbiAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG5cbiAgICBjb25zdCBjaGlsZHJlbjogQXJyYXk8Q29sdW1uRnVuY3Rpb24+ID0gSXNBcnJheSh0aGlzLnByb3BzLmNoaWxkcmVuKVxuICAgICAgPyB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgICA6IFt0aGlzLnByb3BzLmNoaWxkcmVuXVxuXG4gICAgY29uc3QgdmFsaWRDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB0eXBlb2YgY2hpbGQgPT09ICdmdW5jdGlvbicpXG5cbiAgICByZXR1cm4gdmFsaWRDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT5cbiAgICAgIGNoaWxkKHtcbiAgICAgICAgbG9jYWxlOiB0aGlzLnByb3BzLmxvY2FsZSB8fCAnZW4nLFxuICAgICAgICBsb2NhbGVTdHJpbmdzOiB0aGlzLnByb3BzLmxvY2FsZVN0cmluZ3MgfHwge30sXG4gICAgICAgIGNvbHVtbkluZGV4OiBpbmRleCxcbiAgICAgICAgY29sdW1uQ291bnQ6IHZhbGlkQ2hpbGRyZW4ubGVuZ3RoLFxuICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YUtleSA9PlxuICAgICAgICAgIHRoaXMucHJvcHMuZmlsdGVycyAmJiB0aGlzLnByb3BzLmZpbHRlcnNbZGF0YUtleV0sXG4gICAgICAgIG9uSGVhZGVyUG9wb3Zlck9wZW46IG9wZW4gPT5cbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlzYWJsZUtleWJvYXJkU2hvcnRjdXRzOiBvcGVuIH0pLFxuICAgICAgICBvblNvcnQ6IHNvcnRBcmdzID0+IHtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkUm93cyhbXSlcbiAgICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcih7IC4uLnNvcnRBcmdzIH0pXG4gICAgICAgIH0sXG4gICAgICAgIG9uRmlsdGVyOiAoeyBkYXRhS2V5LCB2YWx1ZSwgb3BlcmF0b3IgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRSb3dzKFtdKVxuICAgICAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKHtcbiAgICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgICAgW2RhdGFLZXldOiBvcGVyYXRvclxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgb25SZXNpemU6XG4gICAgICAgICAgLy8gdGhlIHByZXNlbmNlIG9mIGBvblJlc2l6ZWAgd2lsbCBzaG93IGRyYWcgaGFuZGxlcyBzbyBkb24ndCBzZXQgaXRcbiAgICAgICAgICAvLyBpZiBubyBwcm9wIGlzIHBhc3NlZCBpbiBvciBmb3IgdGhlIGxhc3QgY29sdW1uIGlmIHRoZSB0YWJsZSBpc24ndFxuICAgICAgICAgIC8vIHNjcm9sbGFibGVcbiAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplICYmXG4gICAgICAgICAgKCghdGhpcy5wcm9wcy5zY3JvbGxXaWR0aCAmJiBpbmRleCAhPT0gdmFsaWRDaGlsZHJlbi5sZW5ndGggLSAxKSB8fFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5zY3JvbGxXaWR0aClcbiAgICAgICAgICAgID8gKHsgeCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNpemUoeyB4LCBpbmRleCB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpc1Jvd0xvYWRlZCA9ICh7IGluZGV4IH06IEluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBoYXNNb3JlUm93cywgcm93Q291bnQgfSA9IHRoaXMucHJvcHNcbiAgICByZXR1cm4gIWhhc01vcmVSb3dzIHx8IGluZGV4IDwgcm93Q291bnRcbiAgfVxuXG4gIGlzQ29udGV4dE1lbnVWaXNpYmxlID0gKGluZGV4OiBudW1iZXIpID0+XG4gICAgdGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudSAmJiB0aGlzLnN0YXRlLmFjdGl2ZUNvbnRleHRNZW51LmluZGV4ID09PSBpbmRleFxuXG4gIGNsb3NlQ29udGV4dE1lbnUgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBhY3RpdmVDb250ZXh0TWVudTogbnVsbFxuICAgIH0pXG4gIH1cblxuICBjb250ZXh0TWVudVJlbmRlcmVyID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnByb3BzLmNvbnRleHRNZW51UmVuZGVyZXIgJiZcbiAgICAgIHRoaXMuaXNDb250ZXh0TWVudVZpc2libGUoaW5kZXgpICYmXG4gICAgICBkb2N1bWVudC5ib2R5ICE9PSBudWxsXG4gICAgKSB7XG4gICAgICBjb25zdCBjb250ZXh0TWVudUNsb3NlV3JhcHBlciA9IChcbiAgICAgICAgPENsb3NlV3JhcHBlciBvbkNsb3NlPXt0aGlzLmNsb3NlQ29udGV4dE1lbnV9PlxuICAgICAgICAgIHt0aGlzLnByb3BzLmNvbnRleHRNZW51UmVuZGVyZXIoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudSxcbiAgICAgICAgICAgIHNlbGVjdGVkUm93czogdGhpcy5wcm9wcy5zZWxlY3RlZFJvd3MsXG4gICAgICAgICAgICBvbkNsb3NlOiB0aGlzLmNsb3NlQ29udGV4dE1lbnVcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9DbG9zZVdyYXBwZXI+XG4gICAgICApXG4gICAgICByZXR1cm4gUmVhY3RET00uY3JlYXRlUG9ydGFsKGNvbnRleHRNZW51Q2xvc2VXcmFwcGVyLCBkb2N1bWVudC5ib2R5KVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaGVhZGVyUm93UmVuZGVyZXIgPSAoe1xuICAgIGNvbHVtbnMsXG4gICAgc3R5bGVcbiAgfToge1xuICAgIGNvbHVtbnM6IFJlYWN0LlJlYWN0Tm9kZVtdXG4gICAgc3R5bGU6IHt9XG4gIH0pID0+IChcbiAgICA8RWxlbWVudHMuUm93IHJvbGU9XCJyb3dcIiBoZWFkZXIgemVicmEgc3R5bGU9e3N0eWxlfT5cbiAgICAgIHtjb2x1bW5zfVxuICAgIDwvRWxlbWVudHMuUm93PlxuICApXG5cbiAgcm93UmVuZGVyZXIgPSAoe1xuICAgIGtleSxcbiAgICBzdHlsZSxcbiAgICBpbmRleCxcbiAgICByb3dEYXRhLFxuICAgIGNvbHVtbnMsXG4gICAgY2xhc3NOYW1lLFxuICAgIG9uUm93TW91c2VPdmVyLFxuICAgIG9uUm93TW91c2VPdXRcbiAgfTogVGFibGVSb3dQcm9wcykgPT4gKFxuICAgIDxGb2N1c2FibGVSb3dcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgYXJpYS1yb3dpbmRleD17aW5kZXggKyAxfVxuICAgICAgemVicmE9e2luZGV4ICUgMiA9PT0gMX1cbiAgICAgIHNlbGVjdGVkPXt0aGlzLnByb3BzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhpbmRleCl9XG4gICAgICBzZWxlY3Rpbmc9e3RoaXMuc3RhdGUuc2VsZWN0aW5nfVxuICAgICAgZm9jdXNlZD17aW5kZXggPT09IHRoaXMuc3RhdGUuZm9jdXNlZFJvd31cbiAgICAgIGtleT17a2V5fVxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgb25Nb3VzZUxlYXZlPXtldmVudCA9PiB7XG4gICAgICAgIG9uUm93TW91c2VPdXQgJiYgb25Sb3dNb3VzZU91dCh7IHJvd0RhdGEsIGluZGV4LCBldmVudCB9KVxuICAgICAgfX1cbiAgICAgIG9uTW91c2VFbnRlcj17ZXZlbnQgPT4ge1xuICAgICAgICBvblJvd01vdXNlT3ZlciAmJiBvblJvd01vdXNlT3Zlcih7IHJvd0RhdGEsIGluZGV4LCBldmVudCB9KVxuICAgICAgfX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHRoaXMuc2V0U3RhdGUoeyBmb2N1c2VkUm93OiBpbmRleCB9KX1cbiAgICAgIGRhdGEtaW5zdHJ1bWVudGF0aW9uPXtgJHt0aGlzLnByb3BzWydkYXRhLWluc3RydW1lbnRhdGlvbiddfS1yb3cke1xuICAgICAgICBpbmRleCArIDFcbiAgICAgIH1gfVxuICAgICAgb25DbGljaz17XG4gICAgICAgIHRoaXMucHJvcHMuc2VsZWN0YWJsZSAmJiAhdGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudVxuICAgICAgICAgID8gZXZlbnQgPT4gdGhpcy5oYW5kbGVSb3dDbGljayh7IGV2ZW50LCBpbmRleDogaW5kZXggfSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgb25Db250ZXh0TWVudT17XG4gICAgICAgIHRoaXMucHJvcHMuY29udGV4dE1lbnVSZW5kZXJlclxuICAgICAgICAgID8gZXZlbnQgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBhY3RpdmVDb250ZXh0TWVudToge1xuICAgICAgICAgICAgICAgICAgbGVmdDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICAgICAgICAgIHRvcDogZXZlbnQuY2xpZW50WSxcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgIHJvd0RhdGE6IHJvd0RhdGFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5wcm9wcy5zZWxlY3RlZFJvd3MuaW5jbHVkZXMoaW5kZXgpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5zZWxlY3RhYmxlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUm93Q2xpY2soeyBldmVudCwgaW5kZXg6IGluZGV4IH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBvbkRvdWJsZUNsaWNrPXtldmVudCA9PlxuICAgICAgICB0aGlzLnByb3BzLm9uUm93RG91YmxlQ2xpY2sgJiZcbiAgICAgICAgdGhpcy5wcm9wcy5vblJvd0RvdWJsZUNsaWNrKHsgaW5kZXgsIGV2ZW50LCByb3dEYXRhIH0pXG4gICAgICB9XG4gICAgPlxuICAgICAge3RoaXMuY29sdW1uVHJhbnNmb3JtZXJcbiAgICAgICAgPyB0aGlzLmNvbHVtblRyYW5zZm9ybWVyKGNvbHVtbnMsIHJvd0RhdGEsIGluZGV4KVxuICAgICAgICA6IGNvbHVtbnN9XG4gICAgICB7dGhpcy5jb250ZXh0TWVudVJlbmRlcmVyKGluZGV4KX1cbiAgICA8L0ZvY3VzYWJsZVJvdz5cbiAgKVxuXG4gIC8qKlxuICAgKiAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIGlzIGFkZGVkIGJlY2F1c2UgZXZlbiB0aG91Z2ggdGhlIHByb3BzIGFyZSBub3QgdXNlZCBpbiB0aGlzIGNvbXBvbmVudFxuICAgKiB0aGV5IGFyZSBnZXR0aW5nIGRlc3RydWN0dXJlZCBpbnRvIC4uLnByb3BzIGFuZCBwYXNzZWQgZnVydGhlciBkb3duIHRoZSB0cmVlXG4gICAqL1xuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgY2hpbGRyZW4sXG4gICAgICBoYXNNb3JlUm93cyxcbiAgICAgIGhlaWdodCxcbiAgICAgIGxvYWRNb3JlUm93cyxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIG9uRmlsdGVyLFxuICAgICAgcm93Q291bnQsXG4gICAgICBzb3J0QnkgPSAnJyxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB3aWR0aCxcbiAgICAgIC4uLnByb3BzXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIC8vIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGhlYWRlciBvZiB0aGUgRGF0YUdyaWQgZG9lc24ndCByZW5kZXIgb24gcGFnZSBsb2FkIGluIFNhZmFyaVxuICAgIGNvbnN0IHNhZmFyaVN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWigwKWBcbiAgICB9XG5cbiAgICBjb25zdCBtYXBwZWRDaGlsZHJlbiA9IHRoaXMubWFwQ2hpbGRyZW4oKS5maWx0ZXIoY2hpbGQgPT4gY2hpbGQgIT09IG51bGwpXG4gICAgLy8gVE9ETzogQmV0dGVyIHR5cGUgc2lnbmF0dXJlIHdoZW4gYWNjZXNzaW5nIGNoaWxkcmVuIHByb3BzP1xuICAgIGNvbnN0IHNwYW5EYXRhID0gbWFwcGVkQ2hpbGRyZW4ubWFwKChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiAoe1xuICAgICAgY29sc3BhbjogY2hpbGQucHJvcHMuY29sc3BhbiA/IGNoaWxkLnByb3BzLmNvbHNwYW4gOiAoKSA9PiAxLFxuICAgICAgd2lkdGg6IGNoaWxkLnByb3BzLndpZHRoLFxuICAgICAgZmxleEdyb3c6IGNoaWxkLnByb3BzLmZsZXhHcm93XG4gICAgfSkpXG4gICAgLy8gR2V0IHRoZSBhY3R1YWwgd2lkdGggb2YgYWxsIHRoZSBjb2x1bW5zLiBUaGlzIGlzIGluZGVwZW5kZW50IGZyb20gdGhlXG4gICAgLy8gd2lkdGggcHJvcC5cbiAgICB0aGlzLnRvdGFsV2lkdGggPSBtYXBwZWRDaGlsZHJlbi5yZWR1Y2U8bnVtYmVyPihcbiAgICAgICh0b3RhbDogbnVtYmVyLCBjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50PEJhc2ljQ29sdW1uUHJvcHM+KSA9PlxuICAgICAgICB0b3RhbCArIGNoaWxkLnByb3BzLndpZHRoLFxuICAgICAgMFxuICAgIClcbiAgICAvLyBDb252ZXJ0IHRoZSB3aWR0aHMgdG8gcGVyY2VudHMgc28gd2UgY2FuIG1hcCB0aGVtIGJhY2sgdG8gdGhlIHJlYWwgdGFibGVcbiAgICAvLyB3aWR0aCBsYXRlci5cbiAgICB0aGlzLmNvbHVtbldpZHRoUGVyY2VudHMgPSBtYXBwZWRDaGlsZHJlbi5tYXAoXG4gICAgICAoeyBwcm9wcyB9OiBSZWFjdC5SZWFjdEVsZW1lbnQpID0+IHByb3BzLndpZHRoIC8gdGhpcy50b3RhbFdpZHRoXG4gICAgKVxuXG4gICAgdGhpcy5jb2x1bW5UcmFuc2Zvcm1lciA9IChcbiAgICAgIGNvbHVtbnM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10sXG4gICAgICByb3dEYXRhLFxuICAgICAgcm93SW5kZXhcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHNwYW5zID0gc3BhbkRhdGEubWFwKGl0ZW0gPT4gaXRlbS5jb2xzcGFuKHJvd0RhdGEpKVxuICAgICAgY29uc3Qgc3Bhbm5lZENvbHVtbnM6IFJlYWN0LlJlYWN0RWxlbWVudFtdID0gW11cbiAgICAgIGxldCBpbmRleCA9IDBcbiAgICAgIHdoaWxlIChpbmRleCA8IGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHNwYW4gPSBzcGFuc1tpbmRleF1cbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1tpbmRleF1cbiAgICAgICAgaWYgKHNwYW4gPiAxKSB7XG4gICAgICAgICAgY29uc3QgZm9sbG93aW5nQ29sdW1ucyA9IHNwYW5EYXRhLnNsaWNlKGluZGV4LCBzcGFuKVxuICAgICAgICAgIC8vIGZpbmQgbmV3IHdpZHRoIGJ5IGFkZGluZyBjdXJyZW50IGNvbHVtbiB3aWR0aCBwbHVzIGNvbHVtbnMgdGhhdCBhcmUgc3Bhbm5lZCBvdmVyXG5cbiAgICAgICAgICBjb25zdCB3aWR0aCA9IGZvbGxvd2luZ0NvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKGFjY3VtdWxhdG9yLCB7IHdpZHRoIH06IHsgd2lkdGg6IG51bWJlciB9KSA9PiBhY2N1bXVsYXRvciArIHdpZHRoLFxuICAgICAgICAgICAgMFxuICAgICAgICAgIClcblxuICAgICAgICAgIGNvbnN0IGZsZXhHcm93ID0gZm9sbG93aW5nQ29sdW1ucy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdW11bGF0b3IsIHsgZmxleEdyb3cgfTogeyBmbGV4R3JvdzogbnVtYmVyIH0pID0+XG4gICAgICAgICAgICAgIGFjY3VtdWxhdG9yICsgZmxleEdyb3csXG4gICAgICAgICAgICAwXG4gICAgICAgICAgKVxuICAgICAgICAgIHNwYW5uZWRDb2x1bW5zLnB1c2goXG4gICAgICAgICAgICBSZWFjdC5jbG9uZUVsZW1lbnQoY29sdW1uLCB7XG4gICAgICAgICAgICAgICdkYXRhLWluc3RydW1lbnRhdGlvbic6IGAke3RoaXMucHJvcHNbJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJ119LXJvdyR7cm93SW5kZXh9LWNvbCR7aW5kZXh9YCxcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAuLi5FbGVtZW50cy5jZWxsUmVzZXRTdHlsZSxcbiAgICAgICAgICAgICAgICBmbGV4OiBgMCAxICR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgIGZsZXhHcm93XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIGluZGV4ICs9IHNwYW4gLy8gc2tpcCBjb2x1bW5zIHRoYXQgaGF2ZSBiZWVuIHNwYW5uZWQgb3ZlclxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNwYW5uZWRDb2x1bW5zLnB1c2goXG4gICAgICAgICAgICBSZWFjdC5jbG9uZUVsZW1lbnQoY29sdW1uLCB7XG4gICAgICAgICAgICAgICdkYXRhLWluc3RydW1lbnRhdGlvbic6IGAke3RoaXMucHJvcHNbJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJ119LXJvdyR7cm93SW5kZXh9LWNvbCR7aW5kZXh9YFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgaW5kZXgrK1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3Bhbm5lZENvbHVtbnNcbiAgICB9XG5cbiAgICBjb25zdCBUYWJsZUNvbXBvbmVudCA9XG4gICAgICB0aGlzLnByb3BzLnNjcm9sbFdpZHRoICE9PSB1bmRlZmluZWQgPyBTY3JvbGxhYmxlVGFibGUgOiBUYWJsZVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxFbGVtZW50cy5UYWJsZUNvbnRhaW5lclxuICAgICAgICBjc3M9e3sgd2lkdGgsIGhlaWdodCB9fVxuICAgICAgICBvbktleURvd249e3RoaXMuaGFuZGxlS2V5RG93bn1cbiAgICAgICAgb25LZXlVcD17dGhpcy5oYW5kbGVLZXlVcH1cbiAgICAgICAgZGF0YS1pbnN0cnVtZW50YXRpb249e2Ake3RoaXMucHJvcHNbJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJ119LWdyaWRgfVxuICAgICAgPlxuICAgICAgICA8SW5maW5pdGVMb2FkZXJcbiAgICAgICAgICBpc1Jvd0xvYWRlZD17dGhpcy5pc1Jvd0xvYWRlZH1cbiAgICAgICAgICBsb2FkTW9yZVJvd3M9e2xvYWRNb3JlUm93cyB8fCAoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKSl9XG4gICAgICAgICAgcm93Q291bnQ9e2hhc01vcmVSb3dzID8gcm93Q291bnQgKyAxIDogcm93Q291bnR9XG4gICAgICAgICAgdGhyZXNob2xkPXs1fVxuICAgICAgICAgIHJlZj17dGhpcy5pbmZpbml0ZVRhYmxlfVxuICAgICAgICA+XG4gICAgICAgICAgeyh7IG9uUm93c1JlbmRlcmVkLCByZWdpc3RlckNoaWxkIH0pID0+IChcbiAgICAgICAgICAgIDxUYWJsZUNvbXBvbmVudFxuICAgICAgICAgICAgICBzdHlsZT17c2FmYXJpU3R5bGV9XG4gICAgICAgICAgICAgIGdyaWRTdHlsZT17eyBvdXRsaW5lOiAnbm9uZScgfX1cbiAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0PXszNn1cbiAgICAgICAgICAgICAgcm93SGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgc29ydEJ5PXtzb3J0Qnl9XG4gICAgICAgICAgICAgIHNvcnREaXJlY3Rpb249e3NvcnREaXJlY3Rpb259XG4gICAgICAgICAgICAgIHJlZj17cmVnaXN0ZXJDaGlsZH1cbiAgICAgICAgICAgICAgbm9Sb3dzUmVuZGVyZWQ9eygpID0+IDxkaXY+Tm8gcmVzdWx0czwvZGl2Pn1cbiAgICAgICAgICAgICAgb25Sb3dzUmVuZGVyZWQ9e29uUm93c1JlbmRlcmVkfVxuICAgICAgICAgICAgICBvblNjcm9sbD17XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudVxuICAgICAgICAgICAgICAgICAgPyAoKSA9PiB0aGlzLmNsb3NlQ29udGV4dE1lbnUoKVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByb3dDb3VudD17aGFzTW9yZVJvd3MgPyByb3dDb3VudCArIDEgOiByb3dDb3VudH1cbiAgICAgICAgICAgICAgaGVhZGVyUm93UmVuZGVyZXI9e3RoaXMuaGVhZGVyUm93UmVuZGVyZXJ9XG4gICAgICAgICAgICAgIHJvd1JlbmRlcmVyPXt0aGlzLnJvd1JlbmRlcmVyfVxuICAgICAgICAgICAgICAvLyBhY2NvdW50IGZvciBib3JkZXIgd2lkdGggb2YgY29udGFpbmVyXG4gICAgICAgICAgICAgIHdpZHRoPXt3aWR0aCAtIDJ9XG4gICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0IC0gMn1cbiAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bWFwcGVkQ2hpbGRyZW59XG4gICAgICAgICAgICA8L1RhYmxlQ29tcG9uZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvSW5maW5pdGVMb2FkZXI+XG4gICAgICA8L0VsZW1lbnRzLlRhYmxlQ29udGFpbmVyPlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRhR3JpZFxuIl19 */"),
680
+ }, process.env.NODE_ENV === "production" ? "" : ";label:render;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9EYXRhR3JpZC9EYXRhR3JpZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMHFCUSIsImZpbGUiOiIuLi8uLi8uLi9zcmMvRGF0YUdyaWQvRGF0YUdyaWQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7XG4gIEluZmluaXRlTG9hZGVyLFxuICBUYWJsZSxcbiAgU29ydERpcmVjdGlvbixcbiAgVGFibGVSb3dQcm9wc1xufSBmcm9tICdyZWFjdC12aXJ0dWFsaXplZCdcbmltcG9ydCB0eXBlIHtcbiAgU29ydERpcmVjdGlvblR5cGUsXG4gIFRhYmxlUHJvcHMsXG4gIEluZGV4UmFuZ2UsXG4gIEluZGV4LFxuICBSb3dNb3VzZUV2ZW50SGFuZGxlclBhcmFtc1xufSBmcm9tICdyZWFjdC12aXJ0dWFsaXplZCdcbmltcG9ydCAqIGFzIEVsZW1lbnRzIGZyb20gJy4vZWxlbWVudHMnXG5pbXBvcnQgKiBhcyBSZW5kZXJlcnMgZnJvbSAnLi9yZW5kZXJlcnMnXG5pbXBvcnQge1xuICBCYXNpY0NvbHVtbixcbiAgRm9jdXNhYmxlUm93LFxuICBJbnB1dENlbGwsXG4gIENvbGxhcHNpYmxlQ2VsbCxcbiAgU2Nyb2xsYWJsZVRhYmxlXG59IGZyb20gJy4vY29tcG9uZW50cydcbmltcG9ydCB7IENsb3NlV3JhcHBlciB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IGN1cnJ5IGZyb20gJ2xvZGFzaC5jdXJyeSdcbmltcG9ydCBpbmNsdWRlcyBmcm9tICdsb2Rhc2guaW5jbHVkZXMnXG5pbXBvcnQgbm9vcCBmcm9tICdsb2Rhc2gubm9vcCdcbmltcG9ydCByYW5nZSBmcm9tICdsb2Rhc2gucmFuZ2UnXG5pbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoLnRocm90dGxlJ1xuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLnVuaXEnXG5pbXBvcnQgKiBhcyBkYXRhR3JpZFV0aWxzIGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJhc2ljQ29sdW1uTWFwcGVkUHJvcHMsXG4gIEJhc2ljQ29sdW1uUHJvcHNcbn0gZnJvbSAnLi9jb21wb25lbnRzL0Jhc2ljQ29sdW1uJ1xuaW1wb3J0IHR5cGUgeyBMb2NhbGVTdHJpbmdzIH0gZnJvbSAnLi9jb25zdGFudHMnXG5cbmV4cG9ydCB0eXBlIG9uRmlsdGVyQXJndW1lbnRzID0ge1xuICBmaWx0ZXJzOiB7IFtkYXRhS2V5OiBzdHJpbmddOiBhbnkgfVxuICBzb3J0Qnk/OiBzdHJpbmdcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb25UeXBlXG59XG5cbnR5cGUgYWN0aXZlQ29udGV4dE1lbnVTdGF0ZSA9IHtcbiAgdG9wOiBudW1iZXJcbiAgbGVmdDogbnVtYmVyXG4gIGluZGV4OiBudW1iZXJcbiAgcm93RGF0YTogYW55XG59XG5cbnR5cGUgY29udGV4dE1lbnVSZW5kZXJlckFyZ3VtZW50cyA9IHtcbiAgdG9wPzogbnVtYmVyXG4gIGxlZnQ/OiBudW1iZXJcbiAgaW5kZXg/OiBudW1iZXJcbiAgcm93RGF0YT86IGFueVxuICBzZWxlY3RlZFJvd3M6IEFycmF5PG51bWJlcj5cbiAgb25DbG9zZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTZWxlY3RhYmxlVHlwZSA9ICdzaW5nbGUnIHwgJ211bHRpJ1xuXG50eXBlIENvbHVtbkZ1bmN0aW9uID0gKGFyZ3M6IEJhc2ljQ29sdW1uTWFwcGVkUHJvcHMpID0+IFJlYWN0LlJlYWN0Tm9kZVxuXG5leHBvcnQgdHlwZSBEYXRhR3JpZFByb3BzID0ge1xuICAvKiogRnVuY3Rpb25zIHRoYXQgY3JlYXRlIHJlYWN0IHZpcnR1YWxpemVkIENvbHVtbnMuIERlZmF1bHQgY29sdW1uIGlzIGV4cG9zZWQgYXMgRGF0YUdyaWQuQ29sdW1uLiAqL1xuICAvLyBDYW4gdGFrZSBhIHNpbmdsZSBjb2x1bW4gb3IgYW4gYXJyYXkgb2YgY29sdW1uc1xuICBjaGlsZHJlbjogQ29sdW1uRnVuY3Rpb24gfCAoQ29sdW1uRnVuY3Rpb24gfCBDb2x1bW5GdW5jdGlvbltdKVtdXG4gIC8qKiBJbnN0cnVtZW50YXRpb24gKi9cbiAgJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJz86IHN0cmluZ1xuICAvKiogQ2FsbGVkIGR1cmluZyB0aGUgb25Db250ZXh0TWVudSBldmVudCBvZiBlYWNoIHJvdy4gKi9cbiAgY29udGV4dE1lbnVSZW5kZXJlcj86IChcbiAgICBjb250ZXh0TWVudVJlbmRlcmVyQXJndW1lbnRzOiBjb250ZXh0TWVudVJlbmRlcmVyQXJndW1lbnRzXG4gICkgPT4gUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBDYWxsZWQgd2hlbiBhIGNvbHVtbiBpcyBmaWx0ZXJlZCBvciBzb3J0ZWQuICovXG4gIG9uRmlsdGVyOiAob25GaWx0ZXJBcmd1bWVudHM6IG9uRmlsdGVyQXJndW1lbnRzKSA9PiB2b2lkXG4gIC8qKiBDYWxsZWQgd2hlbiBhIGNvbHVtbiBpcyByZXNpemVkIGJ5IHRoZSB1c2VyLiBQYXNzaW5nIHRoaXMgaW4gZW5hYmxlc1xuICAgKiByZXNpemUgaGFuZGxlcyBvbiB0aGUgcmlnaHQgZWRnZSBvZiB0aGUgaGVhZGVyIGNlbGxzLiAqL1xuICBvblJlc2l6ZT86IChuZXdTaXplczogbnVtYmVyW10pID0+IHZvaWRcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSByb3cgc2VsZWN0aW9uIGNoYW5nZXMuIFJlY2VpdmVzIGFycmF5IG9mIGluZGljZXMuICovXG4gIG9uU2VsZWN0OiAoaW5kZXhlczogbnVtYmVyW10pID0+IHZvaWRcbiAgLyoqIENhbGxlZCB3aGVuIHRoZSByb3cgaXMgZG91YmxlIGNsaWNrZWQuIFJlY2VpdmVzIGluZGV4LiAqL1xuICBvblJvd0RvdWJsZUNsaWNrPzogKGluZm86IFJvd01vdXNlRXZlbnRIYW5kbGVyUGFyYW1zKSA9PiB2b2lkXG4gIC8qKiBJbmZpbml0ZSBsb2FkaW5nOiBJbmRpY2F0ZXMgbW9yZSByb3dzIG5lZWQgdG8gYmUgbG9hZGVkLiAqL1xuICBoYXNNb3JlUm93cz86IGJvb2xlYW5cbiAgLyoqIEluZmluaXRlIGxvYWRpbmc6IENhbGxlZCB3aGVuIG1vcmUgcm93cyBuZWVkIHRvIGJlIGxvYWRlZC4gKi9cbiAgbG9hZE1vcmVSb3dzPzogKHByb3BzOiBJbmRleFJhbmdlKSA9PiBQcm9taXNlPGFueT5cbiAgLyoqIENvdW50IG9mIHJvd3MgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2FkZWQuICovXG4gIHJvd0NvdW50OiBudW1iZXJcbiAgLyoqIFJlcXVpcmVkIGJ5IHJlYWN0LXZpcnR1YWxpemVkIHRhYmxlLiAqL1xuICByb3dHZXR0ZXI6IChwcm9wczogeyBpbmRleDogbnVtYmVyIH0pID0+IGFueVxuICAvKiogV2hldGhlciByb3dzIGNhbiBiZSBzZWxlY3RlZCAoYW5kIGhvdyBtYW55KS4gKi9cbiAgc2VsZWN0YWJsZT86IFNlbGVjdGFibGVUeXBlIHwgZmFsc2VcbiAgLyoqIEFycmF5IG9mIGluZGljZXMgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQuIE9ubHkgdXNlZCBpZiBgc2VsZWN0YWJsZWAgaXMgc2V0LiAqL1xuICBzZWxlY3RlZFJvd3M6IEFycmF5PG51bWJlcj5cbiAgLyoqIFRoZSBjb2x1bW4geW91IHdhbnQgdG8gc29ydCAqL1xuICBzb3J0Qnk/OiBzdHJpbmdcbiAgLyoqIFRoZSBkaXJlY3Rpb24gc29ydGluZyBzaG91bGQgYmUgZG9uZSAqL1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvblR5cGVcbiAgLyoqIEEgbWFwIG9mIGNvbHVtbnMgdG8gZmlsdGVyIGRhdGEgKi9cbiAgZmlsdGVycz86IHsgW2RhdGFLZXk6IHN0cmluZ106IGFueSB9XG4gIC8qKiBTZXQgdGhlIHdpZHRoIG9mIHNjcm9sbGFibGUgY29udGVudCAqL1xuICBzY3JvbGxXaWR0aD86IG51bWJlclxuICB3aWR0aDogbnVtYmVyXG4gIGhlaWdodDogbnVtYmVyXG4gIC8qKiBMb2NhbGUgc3RyaW5nOiBqYSwgZGUsIGVzLCBrbywgZW4sIGV0Yy4gKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKiBMb2NhbGUgc3RyaW5ncyB0byBvdmVycmlkZSBlbiBmb3IgbGFuZ3VhZ2UgaW4gbG9jYWxlICovXG4gIGxvY2FsZVN0cmluZ3M/OiBMb2NhbGVTdHJpbmdzXG4gIC8qKiBhbGxvdyBldmVudHMgdG8gcHJvcGFnYXRlIHRvIGEgY2VsbCBvbiByb3cgc2VsZWN0ICovXG4gIGFsbG93Um93RXZlbnRQYXNzdGhyb3VnaD86IGJvb2xlYW5cbn0gJiBQYXJ0aWFsPFRhYmxlUHJvcHM+XG5cbnR5cGUgRGF0YUdyaWRTdGF0ZSA9IHtcbiAgYWN0aXZlQ29udGV4dE1lbnU6IGFjdGl2ZUNvbnRleHRNZW51U3RhdGUgfCBudWxsXG4gIGRpc2FibGVLZXlib2FyZFNob3J0Y3V0czogYm9vbGVhblxuICBmb2N1c2VkUm93OiBudW1iZXIgfCBudWxsXG4gIHNlbGVjdGluZzogYm9vbGVhblxuICBsYXN0U2VsZWN0ZWRSb3c6IG51bWJlciB8IG51bGxcbn1cblxudHlwZSBIYW5kbGVGaWx0ZXJBcmd1bWVudHMgPSB7XG4gIHNvcnRCeT86IHN0cmluZ1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvblR5cGVcbiAgZmlsdGVycz86IGFueVxufVxuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBkYXRhIGluIGEgZ3JpZCB3aXRoIHN1cHBvcnQgZm9yIHRoaW5ncyBsaWtlXG4gKiBmaWx0ZXJpbmcsIHNvcnRpbmcsIGFuZCBjb250ZXh0IG1lbnVzLlxuICpcbiAqIERlcGVuZHMgb24gcmVhY3QtdmlydHVhbGl6ZWQvc3R5bGVzLmNzcy5cbiAqXG4gKiBGb3IgcmVhY3QtdmlydHVhbGl6ZWQgVGFibGUgZG9jcyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9idmF1Z2huL3JlYWN0LXZpcnR1YWxpemVkL2Jsb2IvbWFzdGVyL2RvY3MvVGFibGUubWRcbiAqXG4gKi9cbmNsYXNzIERhdGFHcmlkIGV4dGVuZHMgQ29tcG9uZW50PERhdGFHcmlkUHJvcHMsIERhdGFHcmlkU3RhdGU+IHtcbiAgLy8gZXhwb3NlIHN1Yi1jb21wb25lbnRzXG4gIHN0YXRpYyBDb2x1bW4gPSBjdXJyeShCYXNpY0NvbHVtbilcbiAgc3RhdGljIFNvcnREaXJlY3Rpb24gPSBTb3J0RGlyZWN0aW9uXG4gIHN0YXRpYyBFbGVtZW50cyA9IEVsZW1lbnRzXG4gIHN0YXRpYyBJbnB1dENlbGwgPSBJbnB1dENlbGxcbiAgc3RhdGljIENvbGxhcHNpYmxlQ2VsbCA9IENvbGxhcHNpYmxlQ2VsbFxuICBzdGF0aWMgUmVuZGVyZXJzID0gUmVuZGVyZXJzXG5cbiAgc3RhdGljIFNJTkdMRV9TRUxFQ1Q6IFNlbGVjdGFibGVUeXBlID0gJ3NpbmdsZSdcbiAgc3RhdGljIE1VTFRJX1NFTEVDVDogU2VsZWN0YWJsZVR5cGUgPSAnbXVsdGknXG4gIHN0YXRpYyBNSU5fQ09MX1dJRFRIID0gNTBcblxuICBzdGF0aWMgdXRpbHMgPSBkYXRhR3JpZFV0aWxzXG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBsb2FkTW9yZVJvd3M6IG5vb3AsXG4gICAgb25TZWxlY3Q6IG5vb3AsXG4gICAgb25GaWx0ZXI6IG5vb3AsXG4gICAgJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJzogJ2RhdGFncmlkJyxcbiAgICBzb3J0Qnk6ICcnLFxuICAgIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24uQVNDLFxuICAgIGZpbHRlcnM6IHt9LFxuICAgIHNlbGVjdGVkUm93czogW10sXG4gICAgYWxsb3dSb3dFdmVudFBhc3N0aHJvdWdoOiBmYWxzZVxuICB9XG5cbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0RhdGFHcmlkJ1xuXG4gIHN0YXRlOiBEYXRhR3JpZFN0YXRlID0ge1xuICAgIGFjdGl2ZUNvbnRleHRNZW51OiBudWxsLFxuICAgIGRpc2FibGVLZXlib2FyZFNob3J0Y3V0czogZmFsc2UsXG4gICAgZm9jdXNlZFJvdzogbnVsbCxcbiAgICBsYXN0U2VsZWN0ZWRSb3c6IG51bGwsXG4gICAgc2VsZWN0aW5nOiBmYWxzZVxuICB9XG5cbiAgaW5maW5pdGVUYWJsZSA9IFJlYWN0LmNyZWF0ZVJlZjxJbmZpbml0ZUxvYWRlcj4oKVxuXG4gIHRvdGFsV2lkdGggPSAwXG4gIGNvbHVtbldpZHRoUGVyY2VudHM6IG51bWJlcltdID0gW11cblxuICBjb2x1bW5UcmFuc2Zvcm1lcjogKFxuICAgIGNvbHVtbnM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10sXG4gICAgcm93RGF0YTogYW55LFxuICAgIHJvd0luZGV4OiBudW1iZXJcbiAgKSA9PiBSZWFjdC5SZWFjdE5vZGVbXSB8IG51bGwgfCB1bmRlZmluZWRcblxuICBzZWxlY3QgPSAoe1xuICAgIGluZGV4LFxuICAgIGNvbnRpZ3VvdXMgPSBmYWxzZVxuICB9OiB7XG4gICAgaW5kZXg6IG51bWJlclxuICAgIGNvbnRpZ3VvdXM6IGJvb2xlYW5cbiAgfSkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgeyBsYXN0U2VsZWN0ZWRSb3cgfSA9IHN0YXRlXG4gICAgICBjb25zdCB7IHNlbGVjdGVkUm93cyB9ID0gdGhpcy5wcm9wc1xuICAgICAgbGV0IHNlbGVjdGVkID0gWy4uLnNlbGVjdGVkUm93cywgaW5kZXhdXG4gICAgICBpZiAodGhpcy5wcm9wcy5zZWxlY3RhYmxlID09PSBEYXRhR3JpZC5TSU5HTEVfU0VMRUNUKSB7XG4gICAgICAgIHNlbGVjdGVkID0gW2luZGV4XVxuICAgICAgfSBlbHNlIGlmIChjb250aWd1b3VzICYmIHR5cGVvZiBsYXN0U2VsZWN0ZWRSb3cgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gTWF0aC5taW4obGFzdFNlbGVjdGVkUm93LCBpbmRleClcbiAgICAgICAgY29uc3QgZW5kID0gTWF0aC5tYXgobGFzdFNlbGVjdGVkUm93LCBpbmRleClcbiAgICAgICAgc2VsZWN0ZWQgPSB1bmlxKFsuLi5zZWxlY3RlZFJvd3MsIC4uLnJhbmdlKHN0YXJ0LCBlbmQgKyAxKV0pXG4gICAgICB9XG4gICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHNlbGVjdGVkKVxuICAgICAgcmV0dXJuIHsgbGFzdFNlbGVjdGVkUm93OiBpbmRleCB9XG4gICAgfSlcbiAgfVxuXG4gIHNlbGVjdEFsbCA9ICgpID0+IHtcbiAgICBjb25zdCB7IHJvd0NvdW50IH0gPSB0aGlzLnByb3BzXG4gICAgdGhpcy5zZXRTZWxlY3RlZFJvd3MoQXJyYXkuZnJvbSh7IGxlbmd0aDogcm93Q291bnQgfSkubWFwKChfLCBpZHgpID0+IGlkeCkpXG4gIH1cblxuICBkZXNlbGVjdCA9ICh7XG4gICAgaW5kZXgsXG4gICAgY29udGlndW91cyA9IGZhbHNlXG4gIH06IHtcbiAgICBpbmRleDogbnVtYmVyXG4gICAgY29udGlndW91czogYm9vbGVhblxuICB9KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSA9PiB7XG4gICAgICBjb25zdCB7IGxhc3RTZWxlY3RlZFJvdyB9ID0gc3RhdGVcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dzIH0gPSB0aGlzLnByb3BzXG4gICAgICBsZXQgc2VsZWN0ZWQgPSBzZWxlY3RlZFJvd3MuZmlsdGVyKGlkeCA9PiBpZHggIT09IGluZGV4KVxuICAgICAgaWYgKGNvbnRpZ3VvdXMgJiYgdHlwZW9mIGxhc3RTZWxlY3RlZFJvdyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBNYXRoLm1pbihsYXN0U2VsZWN0ZWRSb3csIGluZGV4KVxuICAgICAgICBjb25zdCBlbmQgPSBNYXRoLm1heChsYXN0U2VsZWN0ZWRSb3csIGluZGV4KVxuICAgICAgICBjb25zdCB0b0Rlc2VsZWN0ID0gcmFuZ2Uoc3RhcnQsIGVuZCArIDEpXG4gICAgICAgIHNlbGVjdGVkID0gc2VsZWN0ZWRSb3dzLmZpbHRlcihpZHggPT4gIWluY2x1ZGVzKHRvRGVzZWxlY3QsIGlkeCkpXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucHJvcHMuc2VsZWN0YWJsZSA9PT0gRGF0YUdyaWQuU0lOR0xFX1NFTEVDVCAmJlxuICAgICAgICAhc2VsZWN0ZWQubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3Qoc2VsZWN0ZWQpXG4gICAgICByZXR1cm4geyBsYXN0U2VsZWN0ZWRSb3c6IGluZGV4IH1cbiAgICB9KVxuICB9XG5cbiAgZGVzZWxlY3RBbGwgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZFJvd3MoW10pXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBsYXN0U2VsZWN0ZWRSb3c6IG51bGxcbiAgICB9KVxuICB9XG5cbiAgdG9nZ2xlU2VsZWN0ID0gKHtcbiAgICBpbmRleCxcbiAgICBjb250aWd1b3VzXG4gIH06IHtcbiAgICBpbmRleDogbnVtYmVyXG4gICAgY29udGlndW91czogYm9vbGVhblxuICB9KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCF0aGlzLnByb3BzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhpbmRleCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0KHsgaW5kZXgsIGNvbnRpZ3VvdXMgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXNlbGVjdCh7IGluZGV4LCBjb250aWd1b3VzIH0pXG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0ZWRSb3dzID0gKHJvd3M6IEFycmF5PG51bWJlcj4pID0+IHtcbiAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHJvd3MpXG4gIH1cblxuICBoYW5kbGVGaWx0ZXIgPSAoe1xuICAgIHNvcnRCeSxcbiAgICBzb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcnNcbiAgfTogSGFuZGxlRmlsdGVyQXJndW1lbnRzKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgc29ydEJ5OiBvbGRTb3J0QnksXG4gICAgICBzb3J0RGlyZWN0aW9uOiBvbGRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyczogb2xkRmlsdGVyc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgbmV3RGF0YSA9IHtcbiAgICAgIHNvcnRCeTogc29ydEJ5IHx8IG9sZFNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb246IHNvcnREaXJlY3Rpb24gfHwgb2xkU29ydERpcmVjdGlvbixcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgLi4ub2xkRmlsdGVycyxcbiAgICAgICAgLi4uZmlsdGVyc1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnByb3BzLm9uRmlsdGVyKG5ld0RhdGEpXG4gIH1cblxuICBoYW5kbGVLZXlEb3duID0gKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlLmRpc2FibGVLZXlib2FyZFNob3J0Y3V0cykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdhJzpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpICYmXG4gICAgICAgICAgdGhpcy5wcm9wcy5zZWxlY3RhYmxlID09PSBEYXRhR3JpZC5NVUxUSV9TRUxFQ1RcbiAgICAgICAgKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLnJvd0NvdW50ID09PSB0aGlzLnByb3BzLnNlbGVjdGVkUm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzZWxlY3RBbGwoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgIGZvY3VzZWRSb3c6IE1hdGgubWF4KChzdGF0ZS5mb2N1c2VkUm93IHx8IDApIC0gMSwgMClcbiAgICAgICAgfSkpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICBmb2N1c2VkUm93OlxuICAgICAgICAgICAgc3RhdGUuZm9jdXNlZFJvdyAhPSBudWxsXG4gICAgICAgICAgICAgID8gTWF0aC5taW4oc3RhdGUuZm9jdXNlZFJvdyArIDEsIHRoaXMucHJvcHMucm93Q291bnQgLSAxKVxuICAgICAgICAgICAgICA6IDBcbiAgICAgICAgfSkpXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3Qoe1xuICAgICAgICAgICAgaW5kZXg6IHRoaXMuc3RhdGUuZm9jdXNlZFJvdyB8fCAwLFxuICAgICAgICAgICAgY29udGlndW91czogZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ1NoaWZ0JzpcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0aW5nOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5VXAgPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUuZGlzYWJsZUtleWJvYXJkU2hvcnRjdXRzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1NoaWZ0JzpcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgc2VsZWN0aW5nOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8vIHRocm90dGxpbmcgdGhpcyBzbyBhIGRvdWJsZSBjbGljayBiZWhhdmVzIGxpa2UgYSBzaW5nbGUgY2xpY2tcbiAgaGFuZGxlUm93Q2xpY2sgPSB0aHJvdHRsZShcbiAgICAoeyBldmVudCwgaW5kZXggfTogeyBldmVudDogUmVhY3QuTW91c2VFdmVudDxhbnk+OyBpbmRleDogbnVtYmVyIH0pID0+IHtcbiAgICAgIGlmICghdGhpcy5wcm9wcy5hbGxvd1Jvd0V2ZW50UGFzc3Rocm91Z2gpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIH1cblxuICAgICAgdGhpcy50b2dnbGVTZWxlY3QoeyBpbmRleCwgY29udGlndW91czogZXZlbnQuc2hpZnRLZXkgfSlcbiAgICB9LFxuICAgIDI1MCxcbiAgICB7IGxlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiBmYWxzZSB9XG4gIClcblxuICBoYW5kbGVSZXNpemUgPSAoeyB4LCBpbmRleCB9OiB7IHg6IG51bWJlcjsgaW5kZXg6IG51bWJlciB9KSA9PiB7XG4gICAgaWYgKHRoaXMuY29sdW1uV2lkdGhQZXJjZW50cy5sZW5ndGggPiAwICYmIHRoaXMudG90YWxXaWR0aCkge1xuICAgICAgY29uc3QgcHJldldpZHRocyA9IHRoaXMuY29sdW1uV2lkdGhQZXJjZW50c1xuICAgICAgY29uc3QgbmV3V2lkdGhzID0gWy4uLnByZXZXaWR0aHNdXG4gICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMucHJvcHMuc2Nyb2xsV2lkdGggPz8gdGhpcy5wcm9wcy53aWR0aFxuICAgICAgLy8gbGltaXQgbmV4dCBpbmRleCBmcm9tIGdvaW5nIGJleW9uZCBib3VuZHNcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgMSwgcHJldldpZHRocy5sZW5ndGggLSAxKVxuICAgICAgY29uc3QgcGVyY2VudENoYW5nZSA9IHggLyB0aGlzLnRvdGFsV2lkdGhcblxuICAgICAgaWYgKHRoaXMucHJvcHMuc2Nyb2xsV2lkdGgpIHtcbiAgICAgICAgLy8gaWYgdGFibGUgaXMgc2Nyb2xsYWJsZSwgd2UgY2FuIGdyb3cgdGhlIGNvbHVtbiB3aXRob3V0XG4gICAgICAgIC8vIHNocmlua2luZyB0aGUgb3RoZXJzXG4gICAgICAgIGNvbnN0IHNhZmVQZXJjZW50Q2hhbmdlID1cbiAgICAgICAgICAocHJldldpZHRoc1tpbmRleF0gKyBwZXJjZW50Q2hhbmdlKSAqIHBhcmVudFdpZHRoIDxcbiAgICAgICAgICBEYXRhR3JpZC5NSU5fQ09MX1dJRFRIXG4gICAgICAgICAgICA/IDBcbiAgICAgICAgICAgIDogcGVyY2VudENoYW5nZVxuICAgICAgICBuZXdXaWR0aHNbaW5kZXhdID0gcHJldldpZHRoc1tpbmRleF0gKyBzYWZlUGVyY2VudENoYW5nZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWYgdGhlIHRhYmxlIGlzIG5vdCBzY3JvbGxhYmxlLCBlbnN1cmUgYWxsIGNvbHVtbnMgZml0IGJ5XG4gICAgICAgIC8vIGFkanVzdGluZyB0aGUgY3VycmVudCBjb2x1bW4gYW5kIHRoZSBvbmUgYWZ0ZXIgaXRcbiAgICAgICAgY29uc3Qgc2FmZVBlcmNlbnRDaGFuZ2UgPVxuICAgICAgICAgIChwcmV2V2lkdGhzW2luZGV4XSArIHBlcmNlbnRDaGFuZ2UpICogcGFyZW50V2lkdGggPFxuICAgICAgICAgICAgRGF0YUdyaWQuTUlOX0NPTF9XSURUSCB8fFxuICAgICAgICAgIChwcmV2V2lkdGhzW25leHRJbmRleF0gLSBwZXJjZW50Q2hhbmdlKSAqIHBhcmVudFdpZHRoIDxcbiAgICAgICAgICAgIERhdGFHcmlkLk1JTl9DT0xfV0lEVEhcbiAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgOiBwZXJjZW50Q2hhbmdlXG4gICAgICAgIG5ld1dpZHRoc1tpbmRleF0gPSBwcmV2V2lkdGhzW2luZGV4XSArIHNhZmVQZXJjZW50Q2hhbmdlXG4gICAgICAgIG5ld1dpZHRoc1tuZXh0SW5kZXhdID0gcHJldldpZHRoc1tuZXh0SW5kZXhdIC0gc2FmZVBlcmNlbnRDaGFuZ2VcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJvcHMub25SZXNpemUpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblJlc2l6ZShcbiAgICAgICAgICAvLyBtdWx0aXBseSBieSB3aWR0aCBwcm9wIHRvIGdldCBjb3JyZWN0IHBlcmNlbnRhZ2VcbiAgICAgICAgICBuZXdXaWR0aHMubWFwKHdpZHRoID0+IE1hdGgucm91bmQod2lkdGggKiBwYXJlbnRXaWR0aCkpXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBtYXBDaGlsZHJlbiA9ICgpID0+IHtcbiAgICBjb25zdCBJc0FycmF5ID0gKFxuICAgICAgY2hpbGRyZW5cbiAgICApOiBjaGlsZHJlbiBpcyAoQ29sdW1uRnVuY3Rpb24gfCBDb2x1bW5GdW5jdGlvbltdKVtdID0+XG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuXG4gICAgY29uc3QgY2hpbGRyZW46IChDb2x1bW5GdW5jdGlvbiB8IENvbHVtbkZ1bmN0aW9uW10pW10gPSBJc0FycmF5KFxuICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgIClcbiAgICAgID8gdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgICAgOiBbdGhpcy5wcm9wcy5jaGlsZHJlbl1cblxuICAgIGNvbnN0IHZhbGlkQ2hpbGRyZW4gPSBjaGlsZHJlblxuICAgICAgLmZsYXQoKVxuICAgICAgLmZpbHRlcihjaGlsZCA9PiB0eXBlb2YgY2hpbGQgPT09ICdmdW5jdGlvbicpXG5cbiAgICByZXR1cm4gdmFsaWRDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT5cbiAgICAgIGNoaWxkKHtcbiAgICAgICAgbG9jYWxlOiB0aGlzLnByb3BzLmxvY2FsZSB8fCAnZW4nLFxuICAgICAgICBsb2NhbGVTdHJpbmdzOiB0aGlzLnByb3BzLmxvY2FsZVN0cmluZ3MgfHwge30sXG4gICAgICAgIGNvbHVtbkluZGV4OiBpbmRleCxcbiAgICAgICAgY29sdW1uQ291bnQ6IHZhbGlkQ2hpbGRyZW4ubGVuZ3RoLFxuICAgICAgICBnZXRGaWx0ZXJWYWx1ZTogZGF0YUtleSA9PlxuICAgICAgICAgIHRoaXMucHJvcHMuZmlsdGVycyAmJiB0aGlzLnByb3BzLmZpbHRlcnNbZGF0YUtleV0sXG4gICAgICAgIG9uSGVhZGVyUG9wb3Zlck9wZW46IG9wZW4gPT5cbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlzYWJsZUtleWJvYXJkU2hvcnRjdXRzOiBvcGVuIH0pLFxuICAgICAgICBvblNvcnQ6IHNvcnRBcmdzID0+IHtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkUm93cyhbXSlcbiAgICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcih7IC4uLnNvcnRBcmdzIH0pXG4gICAgICAgIH0sXG4gICAgICAgIG9uRmlsdGVyOiAoeyBkYXRhS2V5LCB2YWx1ZSwgb3BlcmF0b3IgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRSb3dzKFtdKVxuICAgICAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKHtcbiAgICAgICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICAgICAgW2RhdGFLZXldOiBvcGVyYXRvclxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3JcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgb25SZXNpemU6XG4gICAgICAgICAgLy8gdGhlIHByZXNlbmNlIG9mIGBvblJlc2l6ZWAgd2lsbCBzaG93IGRyYWcgaGFuZGxlcyBzbyBkb24ndCBzZXQgaXRcbiAgICAgICAgICAvLyBpZiBubyBwcm9wIGlzIHBhc3NlZCBpbiBvciBmb3IgdGhlIGxhc3QgY29sdW1uIGlmIHRoZSB0YWJsZSBpc24ndFxuICAgICAgICAgIC8vIHNjcm9sbGFibGVcbiAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplICYmXG4gICAgICAgICAgKCghdGhpcy5wcm9wcy5zY3JvbGxXaWR0aCAmJiBpbmRleCAhPT0gdmFsaWRDaGlsZHJlbi5sZW5ndGggLSAxKSB8fFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5zY3JvbGxXaWR0aClcbiAgICAgICAgICAgID8gKHsgeCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNpemUoeyB4LCBpbmRleCB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpc1Jvd0xvYWRlZCA9ICh7IGluZGV4IH06IEluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBoYXNNb3JlUm93cywgcm93Q291bnQgfSA9IHRoaXMucHJvcHNcbiAgICByZXR1cm4gIWhhc01vcmVSb3dzIHx8IGluZGV4IDwgcm93Q291bnRcbiAgfVxuXG4gIGlzQ29udGV4dE1lbnVWaXNpYmxlID0gKGluZGV4OiBudW1iZXIpID0+XG4gICAgdGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudSAmJiB0aGlzLnN0YXRlLmFjdGl2ZUNvbnRleHRNZW51LmluZGV4ID09PSBpbmRleFxuXG4gIGNsb3NlQ29udGV4dE1lbnUgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBhY3RpdmVDb250ZXh0TWVudTogbnVsbFxuICAgIH0pXG4gIH1cblxuICBjb250ZXh0TWVudVJlbmRlcmVyID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnByb3BzLmNvbnRleHRNZW51UmVuZGVyZXIgJiZcbiAgICAgIHRoaXMuaXNDb250ZXh0TWVudVZpc2libGUoaW5kZXgpICYmXG4gICAgICBkb2N1bWVudC5ib2R5ICE9PSBudWxsXG4gICAgKSB7XG4gICAgICBjb25zdCBjb250ZXh0TWVudUNsb3NlV3JhcHBlciA9IChcbiAgICAgICAgPENsb3NlV3JhcHBlciBvbkNsb3NlPXt0aGlzLmNsb3NlQ29udGV4dE1lbnV9PlxuICAgICAgICAgIHt0aGlzLnByb3BzLmNvbnRleHRNZW51UmVuZGVyZXIoe1xuICAgICAgICAgICAgLi4udGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudSxcbiAgICAgICAgICAgIHNlbGVjdGVkUm93czogdGhpcy5wcm9wcy5zZWxlY3RlZFJvd3MsXG4gICAgICAgICAgICBvbkNsb3NlOiB0aGlzLmNsb3NlQ29udGV4dE1lbnVcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9DbG9zZVdyYXBwZXI+XG4gICAgICApXG4gICAgICByZXR1cm4gUmVhY3RET00uY3JlYXRlUG9ydGFsKGNvbnRleHRNZW51Q2xvc2VXcmFwcGVyLCBkb2N1bWVudC5ib2R5KVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaGVhZGVyUm93UmVuZGVyZXIgPSAoe1xuICAgIGNvbHVtbnMsXG4gICAgc3R5bGVcbiAgfToge1xuICAgIGNvbHVtbnM6IFJlYWN0LlJlYWN0Tm9kZVtdXG4gICAgc3R5bGU6IHt9XG4gIH0pID0+IChcbiAgICA8RWxlbWVudHMuUm93IHJvbGU9XCJyb3dcIiBoZWFkZXIgemVicmEgc3R5bGU9e3N0eWxlfT5cbiAgICAgIHtjb2x1bW5zfVxuICAgIDwvRWxlbWVudHMuUm93PlxuICApXG5cbiAgcm93UmVuZGVyZXIgPSAoe1xuICAgIGtleSxcbiAgICBzdHlsZSxcbiAgICBpbmRleCxcbiAgICByb3dEYXRhLFxuICAgIGNvbHVtbnMsXG4gICAgY2xhc3NOYW1lLFxuICAgIG9uUm93TW91c2VPdmVyLFxuICAgIG9uUm93TW91c2VPdXRcbiAgfTogVGFibGVSb3dQcm9wcykgPT4gKFxuICAgIDxGb2N1c2FibGVSb3dcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgYXJpYS1yb3dpbmRleD17aW5kZXggKyAxfVxuICAgICAgemVicmE9e2luZGV4ICUgMiA9PT0gMX1cbiAgICAgIHNlbGVjdGVkPXt0aGlzLnByb3BzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhpbmRleCl9XG4gICAgICBzZWxlY3Rpbmc9e3RoaXMuc3RhdGUuc2VsZWN0aW5nfVxuICAgICAgZm9jdXNlZD17aW5kZXggPT09IHRoaXMuc3RhdGUuZm9jdXNlZFJvd31cbiAgICAgIGtleT17a2V5fVxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgb25Nb3VzZUxlYXZlPXtldmVudCA9PiB7XG4gICAgICAgIG9uUm93TW91c2VPdXQgJiYgb25Sb3dNb3VzZU91dCh7IHJvd0RhdGEsIGluZGV4LCBldmVudCB9KVxuICAgICAgfX1cbiAgICAgIG9uTW91c2VFbnRlcj17ZXZlbnQgPT4ge1xuICAgICAgICBvblJvd01vdXNlT3ZlciAmJiBvblJvd01vdXNlT3Zlcih7IHJvd0RhdGEsIGluZGV4LCBldmVudCB9KVxuICAgICAgfX1cbiAgICAgIG9uRm9jdXM9eygpID0+IHRoaXMuc2V0U3RhdGUoeyBmb2N1c2VkUm93OiBpbmRleCB9KX1cbiAgICAgIGRhdGEtaW5zdHJ1bWVudGF0aW9uPXtgJHt0aGlzLnByb3BzWydkYXRhLWluc3RydW1lbnRhdGlvbiddfS1yb3cke1xuICAgICAgICBpbmRleCArIDFcbiAgICAgIH1gfVxuICAgICAgb25DbGljaz17XG4gICAgICAgIHRoaXMucHJvcHMuc2VsZWN0YWJsZSAmJiAhdGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudVxuICAgICAgICAgID8gZXZlbnQgPT4gdGhpcy5oYW5kbGVSb3dDbGljayh7IGV2ZW50LCBpbmRleDogaW5kZXggfSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgb25Db250ZXh0TWVudT17XG4gICAgICAgIHRoaXMucHJvcHMuY29udGV4dE1lbnVSZW5kZXJlclxuICAgICAgICAgID8gZXZlbnQgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBhY3RpdmVDb250ZXh0TWVudToge1xuICAgICAgICAgICAgICAgICAgbGVmdDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICAgICAgICAgIHRvcDogZXZlbnQuY2xpZW50WSxcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgIHJvd0RhdGE6IHJvd0RhdGFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5wcm9wcy5zZWxlY3RlZFJvd3MuaW5jbHVkZXMoaW5kZXgpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5zZWxlY3RhYmxlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUm93Q2xpY2soeyBldmVudCwgaW5kZXg6IGluZGV4IH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBvbkRvdWJsZUNsaWNrPXtldmVudCA9PlxuICAgICAgICB0aGlzLnByb3BzLm9uUm93RG91YmxlQ2xpY2sgJiZcbiAgICAgICAgdGhpcy5wcm9wcy5vblJvd0RvdWJsZUNsaWNrKHsgaW5kZXgsIGV2ZW50LCByb3dEYXRhIH0pXG4gICAgICB9XG4gICAgPlxuICAgICAge3RoaXMuY29sdW1uVHJhbnNmb3JtZXJcbiAgICAgICAgPyB0aGlzLmNvbHVtblRyYW5zZm9ybWVyKGNvbHVtbnMsIHJvd0RhdGEsIGluZGV4KVxuICAgICAgICA6IGNvbHVtbnN9XG4gICAgICB7dGhpcy5jb250ZXh0TWVudVJlbmRlcmVyKGluZGV4KX1cbiAgICA8L0ZvY3VzYWJsZVJvdz5cbiAgKVxuXG4gIC8qKlxuICAgKiAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzIGlzIGFkZGVkIGJlY2F1c2UgZXZlbiB0aG91Z2ggdGhlIHByb3BzIGFyZSBub3QgdXNlZCBpbiB0aGlzIGNvbXBvbmVudFxuICAgKiB0aGV5IGFyZSBnZXR0aW5nIGRlc3RydWN0dXJlZCBpbnRvIC4uLnByb3BzIGFuZCBwYXNzZWQgZnVydGhlciBkb3duIHRoZSB0cmVlXG4gICAqL1xuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgY2hpbGRyZW4sXG4gICAgICBoYXNNb3JlUm93cyxcbiAgICAgIGhlaWdodCxcbiAgICAgIGxvYWRNb3JlUm93cyxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgIG9uRmlsdGVyLFxuICAgICAgcm93Q291bnQsXG4gICAgICBzb3J0QnkgPSAnJyxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB3aWR0aCxcbiAgICAgIC4uLnByb3BzXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIC8vIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGhlYWRlciBvZiB0aGUgRGF0YUdyaWQgZG9lc24ndCByZW5kZXIgb24gcGFnZSBsb2FkIGluIFNhZmFyaVxuICAgIGNvbnN0IHNhZmFyaVN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWigwKWBcbiAgICB9XG5cbiAgICBjb25zdCBtYXBwZWRDaGlsZHJlbiA9IHRoaXMubWFwQ2hpbGRyZW4oKS5maWx0ZXIoY2hpbGQgPT4gY2hpbGQgIT09IG51bGwpXG4gICAgLy8gVE9ETzogQmV0dGVyIHR5cGUgc2lnbmF0dXJlIHdoZW4gYWNjZXNzaW5nIGNoaWxkcmVuIHByb3BzP1xuICAgIGNvbnN0IHNwYW5EYXRhID0gbWFwcGVkQ2hpbGRyZW4ubWFwKChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiAoe1xuICAgICAgY29sc3BhbjogY2hpbGQucHJvcHMuY29sc3BhbiA/IGNoaWxkLnByb3BzLmNvbHNwYW4gOiAoKSA9PiAxLFxuICAgICAgd2lkdGg6IGNoaWxkLnByb3BzLndpZHRoLFxuICAgICAgZmxleEdyb3c6IGNoaWxkLnByb3BzLmZsZXhHcm93XG4gICAgfSkpXG4gICAgLy8gR2V0IHRoZSBhY3R1YWwgd2lkdGggb2YgYWxsIHRoZSBjb2x1bW5zLiBUaGlzIGlzIGluZGVwZW5kZW50IGZyb20gdGhlXG4gICAgLy8gd2lkdGggcHJvcC5cbiAgICB0aGlzLnRvdGFsV2lkdGggPSBtYXBwZWRDaGlsZHJlbi5yZWR1Y2U8bnVtYmVyPihcbiAgICAgICh0b3RhbDogbnVtYmVyLCBjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50PEJhc2ljQ29sdW1uUHJvcHM+KSA9PlxuICAgICAgICB0b3RhbCArIGNoaWxkLnByb3BzLndpZHRoLFxuICAgICAgMFxuICAgIClcbiAgICAvLyBDb252ZXJ0IHRoZSB3aWR0aHMgdG8gcGVyY2VudHMgc28gd2UgY2FuIG1hcCB0aGVtIGJhY2sgdG8gdGhlIHJlYWwgdGFibGVcbiAgICAvLyB3aWR0aCBsYXRlci5cbiAgICB0aGlzLmNvbHVtbldpZHRoUGVyY2VudHMgPSBtYXBwZWRDaGlsZHJlbi5tYXAoXG4gICAgICAoeyBwcm9wcyB9OiBSZWFjdC5SZWFjdEVsZW1lbnQpID0+IHByb3BzLndpZHRoIC8gdGhpcy50b3RhbFdpZHRoXG4gICAgKVxuXG4gICAgdGhpcy5jb2x1bW5UcmFuc2Zvcm1lciA9IChcbiAgICAgIGNvbHVtbnM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10sXG4gICAgICByb3dEYXRhLFxuICAgICAgcm93SW5kZXhcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHNwYW5zID0gc3BhbkRhdGEubWFwKGl0ZW0gPT4gaXRlbS5jb2xzcGFuKHJvd0RhdGEpKVxuICAgICAgY29uc3Qgc3Bhbm5lZENvbHVtbnM6IFJlYWN0LlJlYWN0RWxlbWVudFtdID0gW11cbiAgICAgIGxldCBpbmRleCA9IDBcbiAgICAgIHdoaWxlIChpbmRleCA8IGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHNwYW4gPSBzcGFuc1tpbmRleF1cbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1tpbmRleF1cbiAgICAgICAgaWYgKHNwYW4gPiAxKSB7XG4gICAgICAgICAgY29uc3QgZm9sbG93aW5nQ29sdW1ucyA9IHNwYW5EYXRhLnNsaWNlKGluZGV4LCBzcGFuKVxuICAgICAgICAgIC8vIGZpbmQgbmV3IHdpZHRoIGJ5IGFkZGluZyBjdXJyZW50IGNvbHVtbiB3aWR0aCBwbHVzIGNvbHVtbnMgdGhhdCBhcmUgc3Bhbm5lZCBvdmVyXG5cbiAgICAgICAgICBjb25zdCB3aWR0aCA9IGZvbGxvd2luZ0NvbHVtbnMucmVkdWNlKFxuICAgICAgICAgICAgKGFjY3VtdWxhdG9yLCB7IHdpZHRoIH06IHsgd2lkdGg6IG51bWJlciB9KSA9PiBhY2N1bXVsYXRvciArIHdpZHRoLFxuICAgICAgICAgICAgMFxuICAgICAgICAgIClcblxuICAgICAgICAgIGNvbnN0IGZsZXhHcm93ID0gZm9sbG93aW5nQ29sdW1ucy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdW11bGF0b3IsIHsgZmxleEdyb3cgfTogeyBmbGV4R3JvdzogbnVtYmVyIH0pID0+XG4gICAgICAgICAgICAgIGFjY3VtdWxhdG9yICsgZmxleEdyb3csXG4gICAgICAgICAgICAwXG4gICAgICAgICAgKVxuICAgICAgICAgIHNwYW5uZWRDb2x1bW5zLnB1c2goXG4gICAgICAgICAgICBSZWFjdC5jbG9uZUVsZW1lbnQoY29sdW1uLCB7XG4gICAgICAgICAgICAgICdkYXRhLWluc3RydW1lbnRhdGlvbic6IGAke3RoaXMucHJvcHNbJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJ119LXJvdyR7cm93SW5kZXh9LWNvbCR7aW5kZXh9YCxcbiAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAuLi5FbGVtZW50cy5jZWxsUmVzZXRTdHlsZSxcbiAgICAgICAgICAgICAgICBmbGV4OiBgMCAxICR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgIGZsZXhHcm93XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIGluZGV4ICs9IHNwYW4gLy8gc2tpcCBjb2x1bW5zIHRoYXQgaGF2ZSBiZWVuIHNwYW5uZWQgb3ZlclxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNwYW5uZWRDb2x1bW5zLnB1c2goXG4gICAgICAgICAgICBSZWFjdC5jbG9uZUVsZW1lbnQoY29sdW1uLCB7XG4gICAgICAgICAgICAgICdkYXRhLWluc3RydW1lbnRhdGlvbic6IGAke3RoaXMucHJvcHNbJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJ119LXJvdyR7cm93SW5kZXh9LWNvbCR7aW5kZXh9YFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgaW5kZXgrK1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3Bhbm5lZENvbHVtbnNcbiAgICB9XG5cbiAgICBjb25zdCBUYWJsZUNvbXBvbmVudCA9XG4gICAgICB0aGlzLnByb3BzLnNjcm9sbFdpZHRoICE9PSB1bmRlZmluZWQgPyBTY3JvbGxhYmxlVGFibGUgOiBUYWJsZVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxFbGVtZW50cy5UYWJsZUNvbnRhaW5lclxuICAgICAgICBjc3M9e3sgd2lkdGgsIGhlaWdodCB9fVxuICAgICAgICBvbktleURvd249e3RoaXMuaGFuZGxlS2V5RG93bn1cbiAgICAgICAgb25LZXlVcD17dGhpcy5oYW5kbGVLZXlVcH1cbiAgICAgICAgZGF0YS1pbnN0cnVtZW50YXRpb249e2Ake3RoaXMucHJvcHNbJ2RhdGEtaW5zdHJ1bWVudGF0aW9uJ119LWdyaWRgfVxuICAgICAgPlxuICAgICAgICA8SW5maW5pdGVMb2FkZXJcbiAgICAgICAgICBpc1Jvd0xvYWRlZD17dGhpcy5pc1Jvd0xvYWRlZH1cbiAgICAgICAgICBsb2FkTW9yZVJvd3M9e2xvYWRNb3JlUm93cyB8fCAoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKSl9XG4gICAgICAgICAgcm93Q291bnQ9e2hhc01vcmVSb3dzID8gcm93Q291bnQgKyAxIDogcm93Q291bnR9XG4gICAgICAgICAgdGhyZXNob2xkPXs1fVxuICAgICAgICAgIHJlZj17dGhpcy5pbmZpbml0ZVRhYmxlfVxuICAgICAgICA+XG4gICAgICAgICAgeyh7IG9uUm93c1JlbmRlcmVkLCByZWdpc3RlckNoaWxkIH0pID0+IChcbiAgICAgICAgICAgIDxUYWJsZUNvbXBvbmVudFxuICAgICAgICAgICAgICBzdHlsZT17c2FmYXJpU3R5bGV9XG4gICAgICAgICAgICAgIGdyaWRTdHlsZT17eyBvdXRsaW5lOiAnbm9uZScgfX1cbiAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0PXszNn1cbiAgICAgICAgICAgICAgcm93SGVpZ2h0PXszMH1cbiAgICAgICAgICAgICAgc29ydEJ5PXtzb3J0Qnl9XG4gICAgICAgICAgICAgIHNvcnREaXJlY3Rpb249e3NvcnREaXJlY3Rpb259XG4gICAgICAgICAgICAgIHJlZj17cmVnaXN0ZXJDaGlsZH1cbiAgICAgICAgICAgICAgbm9Sb3dzUmVuZGVyZWQ9eygpID0+IDxkaXY+Tm8gcmVzdWx0czwvZGl2Pn1cbiAgICAgICAgICAgICAgb25Sb3dzUmVuZGVyZWQ9e29uUm93c1JlbmRlcmVkfVxuICAgICAgICAgICAgICBvblNjcm9sbD17XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5hY3RpdmVDb250ZXh0TWVudVxuICAgICAgICAgICAgICAgICAgPyAoKSA9PiB0aGlzLmNsb3NlQ29udGV4dE1lbnUoKVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByb3dDb3VudD17aGFzTW9yZVJvd3MgPyByb3dDb3VudCArIDEgOiByb3dDb3VudH1cbiAgICAgICAgICAgICAgaGVhZGVyUm93UmVuZGVyZXI9e3RoaXMuaGVhZGVyUm93UmVuZGVyZXJ9XG4gICAgICAgICAgICAgIHJvd1JlbmRlcmVyPXt0aGlzLnJvd1JlbmRlcmVyfVxuICAgICAgICAgICAgICAvLyBhY2NvdW50IGZvciBib3JkZXIgd2lkdGggb2YgY29udGFpbmVyXG4gICAgICAgICAgICAgIHdpZHRoPXt3aWR0aCAtIDJ9XG4gICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0IC0gMn1cbiAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bWFwcGVkQ2hpbGRyZW59XG4gICAgICAgICAgICA8L1RhYmxlQ29tcG9uZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvSW5maW5pdGVMb2FkZXI+XG4gICAgICA8L0VsZW1lbnRzLlRhYmxlQ29udGFpbmVyPlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRhR3JpZFxuIl19 */"),
681
681
  onKeyDown: this.handleKeyDown,
682
682
  onKeyUp: this.handleKeyUp,
683
683
  "data-instrumentation": "".concat(this.props['data-instrumentation'], "-grid"),
@@ -536,6 +536,8 @@ export declare type IconTypes = {
536
536
  QueryIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
537
537
  RealTimeSegment: React.ComponentType<JSX.IntrinsicElements['svg']>;
538
538
  RealTimeSegmentIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
539
+ RealTimeSegmentLegacy: React.ComponentType<JSX.IntrinsicElements['svg']>;
540
+ RealTimeSegmentLegacyIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
539
541
  Redo: React.ComponentType<JSX.IntrinsicElements['svg']>;
540
542
  RedoIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
541
543
  Refresh: React.ComponentType<JSX.IntrinsicElements['svg']>;
@@ -570,6 +572,8 @@ export declare type IconTypes = {
570
572
  SymbolMinusIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
571
573
  Table: React.ComponentType<JSX.IntrinsicElements['svg']>;
572
574
  TableIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
575
+ ToolKeyStriped: React.ComponentType<JSX.IntrinsicElements['svg']>;
576
+ ToolKeyStripedIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
573
577
  Train: React.ComponentType<JSX.IntrinsicElements['svg']>;
574
578
  TrainIcon: React.ComponentType<JSX.IntrinsicElements['svg']>;
575
579
  TreeNav: React.ComponentType<JSX.IntrinsicElements['svg']>;
@@ -1084,7 +1084,10 @@ React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
1084
1084
  d: "M16.997 10.8l.388.318a.497.497 0 00.067-.532.503.503 0 00-.455-.286v.5zm-4.191 0l-.49-.116a.498.498 0 00.49.616v-.5zm1.504-6.3l.49.115a.499.499 0 00-.264-.562.505.505 0 00-.612.127l.386.32zm-7.307 8.7l-.386-.32a.498.498 0 00-.07.532c.083.176.26.288.456.288v-.5zm4.191 0l.491.108a.498.498 0 00-.491-.608v.5zm-1.397 6.3l-.491-.108a.5.5 0 00.271.558c.21.1.46.046.609-.132l-.389-.318zm7.2-9.2h-4.191v1h4.191v-1zm-3.702.615l1.505-6.3-.98-.23-.492 2.065-1.012 4.234.98.232zm.63-6.735l-7.308 8.7.772.64.69-.82 5.248-6.25 1.37-1.63-.773-.64zM7.002 13.7h4.191v-1H7.003v1zm3.7-.608l-1.397 6.3.982.216.451-2.034.946-4.266-.982-.216zm-.517 6.726l7.2-8.7-.778-.636-.676.818-5.193 6.274-1.33 1.608.777.636z"
1085
1085
  }), /*#__PURE__*/React.createElement("path", {
1086
1086
  d: "M12.411 11.11a.498.498 0 01-.095-.425l1.011-4.235-5.249 6.25h3.116c.152 0 .297.069.392.187a.498.498 0 01.1.42l-.947 4.267 5.193-6.274h-3.126c-.154 0-.3-.07-.395-.19z"
1087
- })),Redo: /*#__PURE__*/
1087
+ })),RealTimeSegmentLegacy: /*#__PURE__*/
1088
+ React.createElement("path", {
1089
+ d: "M14.636 5.303l.164-.688a.495.495 0 00.006-.203l-.404-.404a.505.505 0 00-.478.172l-.188.223.9.9zM12.768 5.556l.484-.576 1.18 1.18-.205.855-1.46-1.459zM11.8 6.71l.484-.577 1.738 1.739-.204.856-2.019-2.019zM10.831 7.862l.484-.576 2.298 2.298-.17.716h.886l2.043 2.042-.48.58-5.061-5.06zM9.863 9.015l.484-.576 5.064 5.064-.48.58-5.068-5.068zM8.894 10.168l.484-.576 5.073 5.072-.48.58-5.077-5.076zM7.926 11.321l.484-.576 5.08 5.08-.48.58-2.49-2.49.048-.215h-.263l-2.38-2.379zM6.958 12.474l.484-.576L9.244 13.7h-1.06l-1.226-1.226zM9.365 19.124l.193-.868 1.05 1.05-.422.512a.497.497 0 01-.064.063l-.757-.757zM11.089 18.727L9.75 17.388l.193-.868 1.626 1.626-.48.58zM12.53 16.985l-.48.58-1.915-1.913.193-.868 2.202 2.201zM7.123 13.7h-.12a.503.503 0 01-.49-.61l.61.61zM17.332 11.182l-.48.58L15.39 10.3h1.06l.882.882z"
1090
+ }),Redo: /*#__PURE__*/
1088
1091
  React.createElement("path", {
1089
1092
  d: "M15.571 4.501a.5.5 0 01.854-.354l3.323 3.324a.5.5 0 010 .707l-3.323 3.323a.5.5 0 01-.854-.353V8.824h-5.285a4.286 4.286 0 100 8.572h2.265a1 1 0 110 2h-2.265a6.286 6.286 0 110-12.572h5.285V4.501z",
1090
1093
  fillRule: "evenodd"
@@ -1212,6 +1215,9 @@ React.createElement("path", {
1212
1215
  React.createElement("path", {
1213
1216
  d: "M11.876 12.992A4.002 4.002 0 014 12a4 4 0 017.876-.992c.04-.005.082-.008.124-.008h7a1 1 0 110 2h-1v1.5a1 1 0 11-2 0V13h-4c-.042 0-.083-.003-.124-.008zM10 12a2 2 0 11-4 0 2 2 0 014 0z",
1214
1217
  fillRule: "evenodd"
1218
+ }),ToolKeyStriped: /*#__PURE__*/
1219
+ React.createElement("path", {
1220
+ d: "M7.227 15.925a4.004 4.004 0 01-3.152-3.152l3.152 3.152zM8.347 15.985l-4.332-4.332c.026-.306.087-.601.178-.883l1.935 1.935c.202.537.63.965 1.167 1.167l1.935 1.935a3.979 3.979 0 01-.883.178zM10.591 15.047c-.193.165-.402.31-.624.437l-1.531-1.532c.268-.06.516-.173.732-.328l1.423 1.423zM11.536 13.87c-.12.228-.261.442-.421.64l-1.43-1.43c.146-.23.247-.49.291-.77l1.56 1.56zM12.787 13H12c-.042 0-.083-.003-.124-.008-.01.042-.022.083-.034.124l-2.101-2.101a2.01 2.01 0 00-.756-.756L6.884 8.158a3.99 3.99 0 01.908-.153L12.787 13zM13.848 13L8.965 8.117a4.007 4.007 0 012.911 2.89c.04-.004.082-.007.124-.007h.908l2 2h-1.06zM18 13.97v.53a.996.996 0 01-.098.433L16 13.03V13h-.031l-2-2h1.06L18 13.97zM18.09 13l-2-2h1.06l1.99 1.99c-.045.007-.092.01-.14.01h-.91zM19.805 12.594L18.21 11H19c.114 0 .224.02.327.055l.618.618a1 1 0 01-.14.92zM16 14.092l1.346 1.346A1 1 0 0116 14.5v-.408zM7.69 10.024l-1.56-1.56c-.228.12-.442.261-.64.421l1.43 1.43c.23-.146.49-.247.77-.291zM6.376 10.832L4.953 9.41c-.165.193-.31.402-.437.624l1.532 1.531a1.99 1.99 0 01.328-.732z"
1215
1221
  }),ToolPen: /*#__PURE__*/
1216
1222
  React.createElement("path", {
1217
1223
  d: "M14.038 7.301a.5.5 0 00-.707 0l-9.184 9.184A.5.5 0 004 16.84V19.5a.5.5 0 00.5.5h2.662a.5.5 0 00.353-.146L16.7 10.67a.5.5 0 000-.707L14.038 7.3zm5.264-2.603a2.381 2.381 0 00-3.368 0l-.633.633a.5.5 0 000 .707L17.962 8.7a.5.5 0 00.707 0l.633-.634c.93-.93.93-2.438 0-3.368z"
@@ -1,17 +1,3 @@
1
- import type React from 'react';
2
- import { RenderOptions, RenderResult } from '@testing-library/react';
3
1
  export declare const mountWithTheme: (tree: any) => any;
4
2
  export declare const mountWithV5Theme: (tree: any) => any;
5
- /**
6
- * Custom render method to allow wrapping components in ThemeProvider for testing
7
- *
8
- * @param {ReactElement} ui - The component to be rendered
9
- * @param {RenderOptions} options - testing library options
10
- *
11
- * @return {RenderResult} testing library render result
12
- */
13
- declare function customRender(ui: React.ReactElement, options?: RenderOptions & {
14
- theme: 'v4' | 'v5';
15
- }): RenderResult;
16
- export { customRender as render };
17
3
  //# sourceMappingURL=enzyme.d.ts.map
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.mountWithV5Theme = exports.mountWithTheme = void 0;
7
- exports.render = customRender;
8
7
 
9
8
  var _react = require("@emotion/react");
10
9
 
@@ -12,22 +11,8 @@ var _enzyme = require("enzyme");
12
11
 
13
12
  var _src = require("../../src");
14
13
 
15
- var _react2 = require("@testing-library/react");
16
-
17
14
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
18
15
 
19
- var _excluded = ["theme"];
20
-
21
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
22
-
23
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
-
25
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
-
27
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
28
-
29
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
30
-
31
16
  if (typeof window !== "undefined" && !window.gs) window.gs = function () {};
32
17
  if (typeof window !== "undefined" && !window.gsC) window.gsC = function () {};
33
18
 
@@ -67,37 +52,5 @@ var mountWithV5Theme = function mountWithV5Theme(tree) {
67
52
  wrappingComponent: ThemeProviderWrapperV5
68
53
  });
69
54
  };
70
- /**
71
- * Custom render method to allow wrapping components in ThemeProvider for testing
72
- *
73
- * @param {ReactElement} ui - The component to be rendered
74
- * @param {RenderOptions} options - testing library options
75
- *
76
- * @return {RenderResult} testing library render result
77
- */
78
-
79
-
80
- exports.mountWithV5Theme = mountWithV5Theme;
81
-
82
- function customRender(ui, options) {
83
- var _ref3 = options || {},
84
- _ref3$theme = _ref3.theme,
85
- theme = _ref3$theme === void 0 ? 'v4' : _ref3$theme,
86
- rest = _objectWithoutProperties(_ref3, _excluded);
87
-
88
- var Providers = function Providers(_ref4) {
89
- var children = _ref4.children;
90
- return (0, _jsxRuntime.jsx)(_react.ThemeProvider // types for v4 overrides are not correct
91
- // @ts-ignore
92
- , {
93
- "data-gs-c": gsC(children),
94
- "data-gs": gs("src", "utils", "enzyme.tsx", "custom-render", "emotion-theme-provider"),
95
- theme: theme === 'v5' ? _src.ThemeProvider.v5Theme : _src.ThemeProvider.v4Theme,
96
- children: children
97
- });
98
- };
99
55
 
100
- return (0, _react2.render)(ui, _objectSpread({
101
- wrapper: Providers
102
- }, rest));
103
- }
56
+ exports.mountWithV5Theme = mountWithV5Theme;
@@ -0,0 +1,18 @@
1
+ import type React from 'react';
2
+ import { RenderOptions, RenderResult } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ /**
5
+ * Custom render method to allow wrapping components in ThemeProvider for testing
6
+ *
7
+ * @param {ReactElement} ui - The component to be rendered
8
+ * @param {RenderOptions} options - testing library options
9
+ *
10
+ * @return {RenderResult} testing library render result
11
+ */
12
+ declare function customRender(ui: React.ReactElement, options?: RenderOptions & {
13
+ theme: 'v4' | 'v5';
14
+ }): RenderResult;
15
+ export * from '@testing-library/react';
16
+ export { userEvent };
17
+ export { customRender as render };
18
+ //# sourceMappingURL=testingLibrary.d.ts.map
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ render: true,
8
+ userEvent: true
9
+ };
10
+ exports.render = customRender;
11
+ Object.defineProperty(exports, "userEvent", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _userEvent["default"];
15
+ }
16
+ });
17
+
18
+ var _react = require("@emotion/react");
19
+
20
+ var _ = require("..");
21
+
22
+ var _react2 = require("@testing-library/react");
23
+
24
+ Object.keys(_react2).forEach(function (key) {
25
+ if (key === "default" || key === "__esModule") return;
26
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
27
+ if (key in exports && exports[key] === _react2[key]) return;
28
+ Object.defineProperty(exports, key, {
29
+ enumerable: true,
30
+ get: function get() {
31
+ return _react2[key];
32
+ }
33
+ });
34
+ });
35
+
36
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
37
+
38
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
39
+
40
+ var _excluded = ["theme"];
41
+
42
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
43
+
44
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
45
+
46
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
47
+
48
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
49
+
50
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
51
+
52
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
53
+
54
+ if (typeof window !== "undefined" && !window.gs) window.gs = function () {};
55
+ if (typeof window !== "undefined" && !window.gsC) window.gsC = function () {};
56
+
57
+ /**
58
+ * Custom render method to allow wrapping components in ThemeProvider for testing
59
+ *
60
+ * @param {ReactElement} ui - The component to be rendered
61
+ * @param {RenderOptions} options - testing library options
62
+ *
63
+ * @return {RenderResult} testing library render result
64
+ */
65
+ function customRender(ui, options) {
66
+ var _ref = options || {},
67
+ _ref$theme = _ref.theme,
68
+ theme = _ref$theme === void 0 ? 'v4' : _ref$theme,
69
+ rest = _objectWithoutProperties(_ref, _excluded);
70
+
71
+ var Providers = function Providers(_ref2) {
72
+ var children = _ref2.children;
73
+ return (0, _jsxRuntime.jsx)(_react.ThemeProvider // types for v4 overrides are not correct
74
+ // @ts-ignore
75
+ , {
76
+ "data-gs-c": gsC(children),
77
+ "data-gs": gs("src", "utils", "testinglibrary.tsx", "custom-render", "emotion-theme-provider"),
78
+ theme: theme === 'v5' ? _.ThemeProvider.v5Theme : _.ThemeProvider.v4Theme,
79
+ children: children
80
+ });
81
+ };
82
+
83
+ return (0, _react2.render)(ui, _objectSpread({
84
+ wrapper: Providers
85
+ }, rest));
86
+ } // re-export everything
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "td-stylekit",
3
- "version": "27.2.0",
3
+ "version": "27.3.1",
4
4
  "main": "dist/es/index.js",
5
5
  "module": "dist/es/index.js",
6
6
  "types": "dist/es/index.d.ts",
@@ -115,10 +115,10 @@
115
115
  "@storybook/source-loader": "6.5.0-alpha.50",
116
116
  "@storybook/testing-react": "^1.2.3",
117
117
  "@storybook/theming": "6.5.0-alpha.50",
118
- "@testing-library/dom": "^7.29.1",
119
- "@testing-library/jest-dom": "^5.11.8",
120
- "@testing-library/react": "^11.2.2",
121
- "@testing-library/user-event": "^12.6.0",
118
+ "@testing-library/dom": "^8.17.1",
119
+ "@testing-library/jest-dom": "^5.16.5",
120
+ "@testing-library/react": "^12.1.5",
121
+ "@testing-library/user-event": "^14.4.3",
122
122
  "@types/color": "^3.0.1",
123
123
  "@types/jest": "^29.0.0",
124
124
  "@types/lodash.clamp": "^4.0.6",