@datarailsshared/datarailsshared 1.6.244 → 1.6.254

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.
@@ -67,7 +67,11 @@ export class DrGridComponent {
67
67
  },
68
68
  defaultColDef: {
69
69
  headerComponent: 'header',
70
- cellRenderer: (params) => params.valueFormatted ?? params.value ?? '',
70
+ cellRenderer: (params) => {
71
+ const span = document.createElement('span');
72
+ span.textContent = params.valueFormatted ?? params.value ?? '';
73
+ return span;
74
+ },
71
75
  onCellDoubleClicked: (d) => this.copyToClipboard(d),
72
76
  tooltipValueGetter: (t) => t.value,
73
77
  sortable: true,
@@ -361,4 +365,4 @@ export class DrGridComponent {
361
365
  type: HostBinding,
362
366
  args: ['class']
363
367
  }] }); })();
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1ncmlkL2RyLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ3JpZC9kci1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDakcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDakgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDNUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7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a0JBRFIsS0FBSztZQW1CSSxVQUFVO2tCQUFuQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTtZQUNHLGdCQUFnQjtrQkFBekIsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNvQyxRQUFRO2tCQUFsRCxTQUFTO21CQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDZixXQUFXO2tCQUFwQyxXQUFXO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZ0dyaWRNb2R1bGUgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBJR3JpZEV2ZW50LFxuICAgIEdyaWREb21MYXlvdXRUeXBlLFxuICAgIElHcmlkT3B0aW9ucyxcbiAgICBJR3JpZFNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbiAgICBHcmlkQXBpLFxuICAgIEdyaWRDb2x1bW5BcGksXG4gICAgSUdyaWREckV2ZW50LFxuICAgIElHcmlkRHJFdmVudHMsXG4gICAgSUdyaWRDb2xEZWYsXG4gICAgSUdyaWRSb3dTZWxlY3RlZEV2ZW50LFxuICAgIElHcmlkUm93TW9kZWwsXG4gICAgR3JpZFJvd05vZGUsXG59IGZyb20gJy4vbW9kZWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRHJUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vZHItdG9hc3RyL2RyLXRvYXN0ci5zZXJ2aWNlJztcbmltcG9ydCB7IENlbGxBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1hY3Rpb24vY2VsbC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWNoZWNrYm94L2NlbGwtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NlbGxzL2NlbGwtbGluay9jZWxsLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxTZXRBc0RlZmF1bHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1zZXQtYXMtZGVmYXVsdC9jZWxsLXNldC1hcy1kZWZhdWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsSWNvbkFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1pY29uLWFjdGlvbnMvY2VsbC1pY29uLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxTcGxpdFJvd3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1zcGxpdC1yb3dzL2NlbGwtc3BsaXQtcm93cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWJ1dHRvbi9jZWxsLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbENoaWxkcmVuTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWNoaWxkcmVuLWxpc3QvY2VsbC1jaGlsZHJlbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsQ3VzdG9tVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1jdXN0b20tdGVtcGxhdGUvY2VsbC1jdXN0b20tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxCYWRnZVN0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWJhZGdlLXN0YXR1cy9jZWxsLWJhZGdlLXN0YXR1cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbEljb25UZXh0RWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWljb24tdGV4dC1lZGl0L2NlbGwtaWNvbi10ZXh0LWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRibEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy90YmwtaGVhZGVyL3RibC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC10b2dnbGUvY2VsbC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERyR3JpZE5vUm93c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1ncmlkLW5vLXJvd3MvZHItZ3JpZC1uby1yb3dzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NlbGxzL2NlbGwtc2VsZWN0L2NlbGwtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkRHJFdmVudFR5cGUgfSBmcm9tICcuL21vZGVscy9kci1ncmlkLWV2ZW50cyc7XG5pbXBvcnQgeyBHUklEX1RIRU1FX09QVElPTlMsIFREckdyaWRUaGVtZSB9IGZyb20gJy4vbW9kZWxzL2RyLWdyaWQtdGhlbWUnO1xuXG5jb25zdCBDRUxMX0NPTVBPTkVOVFMgPSBbXG4gICAgVGJsSGVhZGVyQ29tcG9uZW50LFxuICAgIENlbGxBY3Rpb25Db21wb25lbnQsXG4gICAgQ2VsbEljb25UZXh0RWRpdENvbXBvbmVudCxcbiAgICBDZWxsQmFkZ2VTdGF0dXNDb21wb25lbnQsXG4gICAgQ2VsbEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDZWxsQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ2VsbENoaWxkcmVuTGlzdENvbXBvbmVudCxcbiAgICBDZWxsQ3VzdG9tVGVtcGxhdGVDb21wb25lbnQsXG4gICAgQ2VsbEljb25BY3Rpb25zQ29tcG9uZW50LFxuICAgIENlbGxMaW5rQ29tcG9uZW50LFxuICAgIENlbGxTZXRBc0RlZmF1bHRDb21wb25lbnQsXG4gICAgQ2VsbFNwbGl0Um93c0NvbXBvbmVudCxcbiAgICBDZWxsVG9nZ2xlQ29tcG9uZW50LFxuICAgIENlbGxTZWxlY3RDb21wb25lbnQsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQWdHcmlkTW9kdWxlLCBDb21tb25Nb2R1bGUsIC4uLkNFTExfQ09NUE9ORU5UU10sXG59KVxuZXhwb3J0IGNsYXNzIERyR3JpZENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHIgPSBpbmplY3QoRHJUb2FzdHJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSBncmlkUm93TW9kZWw6IElHcmlkUm93TW9kZWw7XG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuICAgIHB1YmxpYyBkb21MYXlvdXQ6IEdyaWREb21MYXlvdXRUeXBlID0gJ2F1dG9IZWlnaHQnOyAvLyBEbyBub3QgdXNlIGFzIEBJbnB1dFxuICAgIEBJbnB1dCgpIGxheW91dFRocmVzaG9sZENvdW50ID0gMTAwOyAvLyBJbnB1dCBNVVNUIGJlIHJlcGxhY2VkIHdpdGggY29uc3RhbnQgYWZ0ZXIgZm9ybXMgcmVmYWN0b3JpbmdcbiAgICBASW5wdXQoKSBwaW5uZWRUb3BSb3dEYXRhOiBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwaW5uZWRCb3R0b21Sb3dEYXRhOiBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBjb2x1bW5EZWZzOiBJR3JpZENvbERlZltdO1xuICAgIEBJbnB1dCgpIHNldCBub1Jvd3NUZW1wbGF0ZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHtcbiAgICAgICAgaWYgKHRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIG5vUm93c092ZXJsYXlDb21wb25lbnQ6IERyR3JpZE5vUm93c0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBub1Jvd3NPdmVybGF5Q29tcG9uZW50UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhudWxsKS5yb290Tm9kZXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2VsbENvbXBvbmVudHMoY29tcG9uZW50czogYW55KSB7XG4gICAgICAgIHRoaXMuX2NlbGxDb21wb25lbnRzID0geyAuLi50aGlzLl9jZWxsQ29tcG9uZW50cywgLi4uKGNvbXBvbmVudHMgfHwge30pIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcm93RGF0YTogVFtdO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHJvd0RhdGEoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd0RhdGE7XG4gICAgfVxuICAgIHNldCByb3dEYXRhKHJvd0RhdGE6IFRbXSkge1xuICAgICAgICBjb25zdCBvbGRSb3dEYXRhQ291bnQgPSB0aGlzLl9yb3dEYXRhPy5sZW5ndGggfHwgMDtcbiAgICAgICAgdGhpcy5fcm93RGF0YSA9IHJvd0RhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Jvd0RhdGE/Lmxlbmd0aCA8IG9sZFJvd0RhdGFDb3VudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUdyaWREb21MYXlvdXQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREb21MYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dyaWRPcHRpb25zOiBJR3JpZE9wdGlvbnMgPSB7XG4gICAgICAgIHJvd0NsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgICdkci1yb3ctcGFyZW50JzogKHBhcmFtcykgPT4gKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd1BhcmVudCxcbiAgICAgICAgICAgICdkci1yb3ctcGFyZW50LWV4cGFuZGVkJzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93UGFyZW50ICYmICEocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyQ29sbGFwc2VkLFxuICAgICAgICAgICAgJ2RyLXJvdy1wYXJlbnQtY29sbGFwc2VkJzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93UGFyZW50ICYmIChwYXJhbXMubm9kZSBhcyBHcmlkUm93Tm9kZSkuZHJDb2xsYXBzZWQsXG4gICAgICAgICAgICAnZHItcm93LWNoaWxkJzogKHBhcmFtcykgPT4gKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkLFxuICAgICAgICAgICAgJ2RyLXJvdy1jaGlsZC1maXJzdCc6IChwYXJhbXMpID0+XG4gICAgICAgICAgICAgICAgKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkICYmIChwYXJhbXMubm9kZSBhcyBHcmlkUm93Tm9kZSkuZHJSb3dDaGlsZEZpcnN0LFxuICAgICAgICAgICAgJ2RyLXJvdy1jaGlsZC1sYXN0JzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93Q2hpbGQgJiYgKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkTGFzdCxcbiAgICAgICAgICAgICdkci1yb3ctY2hpbGQtbGFzdC1pbi10cmVlJzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93Q2hpbGQgJiYgKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkTGFzdEluVHJlZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiAnaGVhZGVyJyxcbiAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogKHBhcmFtcykgPT4gcGFyYW1zLnZhbHVlRm9ybWF0dGVkID8/IHBhcmFtcy52YWx1ZSA/PyAnJyxcbiAgICAgICAgICAgIG9uQ2VsbERvdWJsZUNsaWNrZWQ6IChkKSA9PiB0aGlzLmNvcHlUb0NsaXBib2FyZChkKSxcbiAgICAgICAgICAgIHRvb2x0aXBWYWx1ZUdldHRlcjogKHQpID0+IHQudmFsdWUsXG4gICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBncmlkT3B0aW9ucygpOiBJR3JpZE9wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JpZE9wdGlvbnM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgZ3JpZE9wdGlvbnModmFsdWU6IElHcmlkT3B0aW9ucykge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2dyaWRPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9ncmlkT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICByb3dDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2dyaWRPcHRpb25zLnJvd0NsYXNzUnVsZXMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnZhbHVlLnJvd0NsYXNzUnVsZXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9ncmlkT3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ3JpZEFwaTogR3JpZEFwaSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGdyaWRBcGkoKTogR3JpZEFwaSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JpZEFwaTtcbiAgICB9XG4gICAgc2V0IGdyaWRBcGkodmFsdWU6IEdyaWRBcGkgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2dyaWRBcGkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5ncmlkQXBpQ2hhbmdlLmVtaXQodGhpcy5fZ3JpZEFwaSk7XG4gICAgfVxuICAgIEBPdXRwdXQoKSBncmlkQXBpQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkQXBpPigpO1xuXG4gICAgcHJpdmF0ZSBfZ3JpZENvbHVtbkFwaTogR3JpZENvbHVtbkFwaSB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGdyaWRDb2x1bW5BcGkoKTogR3JpZENvbHVtbkFwaSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JpZENvbHVtbkFwaTtcbiAgICB9XG4gICAgc2V0IGdyaWRDb2x1bW5BcGkodmFsdWU6IEdyaWRDb2x1bW5BcGkgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2dyaWRDb2x1bW5BcGkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1uQXBpQ2hhbmdlLmVtaXQodGhpcy5fZ3JpZENvbHVtbkFwaSk7XG4gICAgfVxuICAgIEBPdXRwdXQoKSBncmlkQ29sdW1uQXBpQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxHcmlkQ29sdW1uQXBpPigpO1xuXG4gICAgcHVibGljIF90aGVtZTogVERyR3JpZFRoZW1lO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHRoZW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGhlbWU7XG4gICAgfVxuICAgIHNldCB0aGVtZSh0aGVtZTogVERyR3JpZFRoZW1lKSB7XG4gICAgICAgIGlmICghdGhlbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RoZW1lID0gdGhlbWU7XG5cbiAgICAgICAgaWYgKEdSSURfVEhFTUVfT1BUSU9OU1t0aGlzLl90aGVtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuX2dyaWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLkdSSURfVEhFTUVfT1BUSU9OU1t0aGlzLl90aGVtZV0sXG4gICAgICAgICAgICAgICAgLi4udGhpcy5fZ3JpZE9wdGlvbnMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHJvd0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHJvd0RyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElHcmlkU2VsZWN0aW9uQ2hhbmdlZEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSByb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUdyaWRSb3dTZWxlY3RlZEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBncmlkUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGdyaWREZXN0cm95ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBWaWV3Q2hpbGQoJ2FnR3JpZCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBhZ0dyaWRFbCE6IEVsZW1lbnRSZWY7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpIHtcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAodGhpcy50aGVtZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMudGhlbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdncmlkLWZ1bGwtaGVpZ2h0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucm93RGF0YT8ubGVuZ3RoICYmIHRoaXMuZ3JpZE9wdGlvbnMubm9Sb3dzT3ZlcmxheUNvbXBvbmVudCkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdncmlkLWVtcHR5LXdpdGgtdGVtcGxhdGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiAmJiAhdGhpcy5ncmlkT3B0aW9ucy5zdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2dyaWQtd2l0aC1yb3ctc2VsZWN0aW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG5cbiAgICBfY2VsbENvbXBvbmVudHMgPSB7XG4gICAgICAgIGhlYWRlcjogVGJsSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBjaGlsZHJlbkxpc3Q6IENlbGxDaGlsZHJlbkxpc3RDb21wb25lbnQsXG4gICAgICAgIGN1c3RvbVRlbXBsYXRlOiBDZWxsQ3VzdG9tVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIGJ1dHRvbjogQ2VsbEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgY2hlY2tib3g6IENlbGxDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgc2V0QXNEZWZhdWx0OiBDZWxsU2V0QXNEZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICBzcGxpdFJvd3M6IENlbGxTcGxpdFJvd3NDb21wb25lbnQsXG4gICAgICAgIGJhZGdlU3RhdHVzOiBDZWxsQmFkZ2VTdGF0dXNDb21wb25lbnQsXG4gICAgICAgIGljb25BY3Rpb25zOiBDZWxsSWNvbkFjdGlvbnNDb21wb25lbnQsXG4gICAgICAgIGNlbGxJY29uVGV4dEVkaXQ6IENlbGxJY29uVGV4dEVkaXRDb21wb25lbnQsXG4gICAgICAgIGxpbms6IENlbGxMaW5rQ29tcG9uZW50LFxuICAgICAgICBhY3Rpb246IENlbGxBY3Rpb25Db21wb25lbnQsXG4gICAgICAgIHRvZ2dsZTogQ2VsbFRvZ2dsZUNvbXBvbmVudCxcbiAgICAgICAgY2VsbFNlbGVjdDogQ2VsbFNlbGVjdENvbXBvbmVudCxcbiAgICB9O1xuICAgIGJvdHRvbUJsdXJIaWRkZW4kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMudGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMudGhlbWUgPSAnZHItZ3JpZC1kZWZhdWx0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uR3JpZFJlYWR5KHBhcmFtczogSUdyaWRFdmVudCkge1xuICAgICAgICBjb25zdCBkckdyaWRBcGkgPSBwYXJhbXMuYXBpIGFzIEdyaWRBcGk7XG4gICAgICAgIGRyR3JpZEFwaS5kckV2ZW50cyA9IERyR3JpZENvbXBvbmVudC5nZXREckV2ZW50c09iamVjdCgpO1xuICAgICAgICBkckdyaWRBcGkudXBkYXRlR3JpZERvbUxheW91dCA9IHRoaXMudXBkYXRlR3JpZERvbUxheW91dC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmdyaWRBcGkgPSBkckdyaWRBcGk7XG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XG4gICAgICAgIHRoaXMuZ3JpZFJvd01vZGVsID0gdGhpcy5ncmlkQXBpLmdldE1vZGVsKCk7XG4gICAgICAgIHRoaXMuZ3JpZFJlYWR5LmVtaXQocGFyYW1zKTtcbiAgICAgICAgdGhpcy5pbml0SG9zdFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuaW5pdEJvZHlTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRBcGk/LmRyRXZlbnRzPy5fZGVzdHJveSQ/Lm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuZ3JpZEFwaT8uZHJFdmVudHM/Ll9kZXN0cm95JD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5ncmlkQXBpPy5kZXN0cm95Py4oKTtcbiAgICAgICAgdGhpcy5ncmlkQXBpID0gbnVsbDtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5ncmlkRGVzdHJveS5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3B5VG9DbGlwYm9hcmQoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YS52YWx1ZSAmJiB0eXBlb2YgZGF0YS52YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gKGU6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xpcGJvYXJkID0gZS5jbGlwYm9hcmREYXRhO1xuICAgICAgICAgICAgICAgIGNsaXBib2FyZC5zZXREYXRhKCd0ZXh0JywgZGF0YS5ldmVudC50YXJnZXQuaW5uZXJUZXh0KTtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29weScsIGxpc3RlbmVyLCBmYWxzZSk7XG4gICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29weScsIGxpc3RlbmVyLCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdWYWx1ZSBjb3BpZWQgdG8gY2xpcGJvYXJkJywgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Qm9keVNjcm9sbExpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy50aGVtZSAhPT0gJ2RyLWdyaWQtYm9yZGVybGVzcycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5hZGRFdmVudExpc3RlbmVyKCdib2R5U2Nyb2xsJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGlyZWN0aW9uICE9PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZE5vZGVzID0gdGhpcy5ncmlkQXBpLmdldFJlbmRlcmVkTm9kZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZW5kZXJlZE5vZGUgPSByZW5kZXJlZE5vZGVzPy5bcmVuZGVyZWROb2Rlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3ROb2RlID0gdGhpcy5ncmlkUm93TW9kZWwuZ2V0Um93KHRoaXMuZ3JpZFJvd01vZGVsLmdldFJvd0NvdW50KCkgLSAxKTtcbiAgICAgICAgICAgIC8vIHdvcmtzIG9ubHkgaWYgcm93QnVmZmVyID09PSAwXG4gICAgICAgICAgICB0aGlzLmJvdHRvbUJsdXJIaWRkZW4kLm5leHQobGFzdFJlbmRlcmVkTm9kZT8uZGF0YSA9PT0gbGFzdE5vZGU/LmRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRIb3N0UmVzaXplTGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy51cGRhdGVHcmlkRG9tTGF5b3V0KCkpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlR3JpZERvbUxheW91dCgpIHtcbiAgICAgICAgbGV0IGRlc2lyZWRMYXlvdXQ6IEdyaWREb21MYXlvdXRUeXBlO1xuXG4gICAgICAgIGlmICh0aGlzLnJvd0RhdGE/Lmxlbmd0aCA+IHRoaXMubGF5b3V0VGhyZXNob2xkQ291bnQpIHtcbiAgICAgICAgICAgIGRlc2lyZWRMYXlvdXQgPSAnbm9ybWFsJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmdyaWRBcGkgJiYgdGhpcy5hZ0dyaWRFbCAmJiB0aGlzLnJvd0RhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZ3JpZEJvZHkgPSB0aGlzLmFnR3JpZEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFnLXJvb3Qtd3JhcHBlci1ib2R5Jyk7XG4gICAgICAgICAgICBjb25zdCBncmlkQm9keVZpZXdwb3J0ID0gdGhpcy5hZ0dyaWRFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LXZpZXdwb3J0Jyk7XG4gICAgICAgICAgICBjb25zdCBncmlkQm9keVZpZXdwb3J0Q29scyA9IHRoaXMuYWdHcmlkRWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctY2VudGVyLWNvbHMtdmlld3BvcnQnKTtcblxuICAgICAgICAgICAgY29uc3Qgd3JhcHBlck5vU2Nyb2xsID0gZ3JpZEJvZHkuc2Nyb2xsSGVpZ2h0IDw9IHdyYXBwZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgZ3JpZFNob3dBbGxSb3dzID0gdGhpcy5ncmlkQXBpLmdldERpc3BsYXllZFJvd0NvdW50KCkgPT09IHRoaXMuZ3JpZEFwaS5nZXRSZW5kZXJlZE5vZGVzKCk/Lmxlbmd0aDtcbiAgICAgICAgICAgIGNvbnN0IGdyaWRTaG93QWxsUm93c1dpdGhvdXRTY3JvbGwgPSBncmlkQm9keVZpZXdwb3J0Q29scy5jbGllbnRIZWlnaHQgPD0gZ3JpZEJvZHlWaWV3cG9ydC5jbGllbnRIZWlnaHQ7XG5cbiAgICAgICAgICAgIGRlc2lyZWRMYXlvdXQgPSB3cmFwcGVyTm9TY3JvbGwgJiYgZ3JpZFNob3dBbGxSb3dzICYmIGdyaWRTaG93QWxsUm93c1dpdGhvdXRTY3JvbGwgPyAnYXV0b0hlaWdodCcgOiAnbm9ybWFsJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlc2lyZWRMYXlvdXQgPSAnYXV0b0hlaWdodCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kb21MYXlvdXQgIT09IGRlc2lyZWRMYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMuZG9tTGF5b3V0ID0gZGVzaXJlZExheW91dDtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5yZWRyYXdSb3dzKCk7XG4gICAgICAgICAgICB0aGlzLmdyaWRBcGkucmVmcmVzaENlbGxzKHsgZm9yY2U6IHRydWUgfSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RHJFdmVudHNPYmplY3QgPSAoZXZlbnRzJD86IEJlaGF2aW9yU3ViamVjdDxJR3JpZERyRXZlbnQ+LCBkZXN0cm95JD86IFN1YmplY3Q8dm9pZD4pOiBJR3JpZERyRXZlbnRzID0+IHtcbiAgICAgICAgZXZlbnRzJCA9IGV2ZW50cyQgPyBldmVudHMkIDogbmV3IEJlaGF2aW9yU3ViamVjdDxJR3JpZERyRXZlbnQ+KHsgdHlwZTogbnVsbCwgZGF0YTogbnVsbCB9KTtcbiAgICAgICAgZGVzdHJveSQgPSBkZXN0cm95JCA/IGRlc3Ryb3kkIDogbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIF9kZXN0cm95JDogZGVzdHJveSQsXG4gICAgICAgICAgICBfZXZlbnRzJDogZXZlbnRzJCxcbiAgICAgICAgICAgIGVtaXQ6IChlOiBJR3JpZERyRXZlbnQpID0+IGV2ZW50cyQubmV4dChlKSxcbiAgICAgICAgICAgIG9uOiAodHlwZT86IEdyaWREckV2ZW50VHlwZSkgPT5cbiAgICAgICAgICAgICAgICBldmVudHMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IElHcmlkRHJFdmVudCkgPT4gIXR5cGUgfHwgZXZlbnQudHlwZSA9PT0gdHlwZSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQ6IElHcmlkRHJFdmVudCkgPT4gKHR5cGUgPyBldmVudC5kYXRhIDogZXZlbnQpKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgZmlsdGVyc01hcDogbmV3IE1hcDxzdHJpbmcsIGFueT4oKSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgb25Sb3dTZWxlY3QoJGV2ZW50OiBJR3JpZFJvd1NlbGVjdGVkRXZlbnQ8YW55Pikge1xuICAgICAgICBpZiAoJGV2ZW50LnNvdXJjZSA9PT0gJ2NoZWNrYm94U2VsZWN0ZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxhZy1ncmlkLWFuZ3VsYXJcbiAgICAjYWdHcmlkXG4gICAgW2NsYXNzXT1cIidhZy10aGVtZS1hbHBpbmUnXCJcbiAgICBbZG9tTGF5b3V0XT1cImRvbUxheW91dFwiXG4gICAgKHJvd0NsaWNrZWQpPVwicm93Q2xpY2tlZC5lbWl0KCRldmVudClcIlxuICAgIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiXG4gICAgKHJvd0RyYWdFbmQpPVwicm93RHJhZ0VuZC5lbWl0KCRldmVudClcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cInNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAocm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3QoJGV2ZW50KVwiXG4gICAgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCJcbiAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCJcbiAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcbiAgICBbcGlubmVkVG9wUm93RGF0YV09XCJwaW5uZWRUb3BSb3dEYXRhXCJcbiAgICBbcGlubmVkQm90dG9tUm93RGF0YV09XCJwaW5uZWRCb3R0b21Sb3dEYXRhXCJcbiAgICBbY29tcG9uZW50c109XCJfY2VsbENvbXBvbmVudHNcIlxuICAgIFtyb3dCdWZmZXJdPVwiMFwiXG4gICAgW3VuZG9SZWRvQ2VsbEVkaXRpbmddPVwidHJ1ZVwiXG4gICAgW3N1cHByZXNzTm9Sb3dzT3ZlcmxheV09XCIhZ3JpZE9wdGlvbnM/Lm5vUm93c092ZXJsYXlDb21wb25lbnRcIlxuICAgIFtzdXBwcmVzc0xvYWRpbmdPdmVybGF5XT1cInRydWVcIj5cbjwvYWctZ3JpZC1hbmd1bGFyPlxuPGRpdiAqbmdJZj1cInRoZW1lID09PSAnZHItZ3JpZC1ib3JkZXJsZXNzJ1wiIGNsYXNzPVwidGFibGUtYmx1clwiIFtjbGFzcy4tLWhpZGRlbl09XCJib3R0b21CbHVySGlkZGVuJCB8IGFzeW5jXCI+PC9kaXY+XG4iXX0=
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1ncmlkL2RyLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZ3JpZC9kci1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDakcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDakgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDNUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOERBQThELENBQUM7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V0FBVztrQkFEckIsS0FBSztZQXdCRixPQUFPO2tCQURWLEtBQUs7WUFRSSxhQUFhO2tCQUF0QixNQUFNO1lBSUgsYUFBYTtrQkFEaEIsS0FBSztZQVFJLG1CQUFtQjtrQkFBNUIsTUFBTTtZQUlILEtBQUs7a0JBRFIsS0FBSztZQW1CSSxVQUFVO2tCQUFuQixNQUFNO1lBQ0csVUFBVTtrQkFBbkIsTUFBTTtZQUNHLGdCQUFnQjtrQkFBekIsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNvQyxRQUFRO2tCQUFsRCxTQUFTO21CQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDZixXQUFXO2tCQUFwQyxXQUFXO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZ0dyaWRNb2R1bGUgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBJR3JpZEV2ZW50LFxuICAgIEdyaWREb21MYXlvdXRUeXBlLFxuICAgIElHcmlkT3B0aW9ucyxcbiAgICBJR3JpZFNlbGVjdGlvbkNoYW5nZWRFdmVudCxcbiAgICBHcmlkQXBpLFxuICAgIEdyaWRDb2x1bW5BcGksXG4gICAgSUdyaWREckV2ZW50LFxuICAgIElHcmlkRHJFdmVudHMsXG4gICAgSUdyaWRDb2xEZWYsXG4gICAgSUdyaWRSb3dTZWxlY3RlZEV2ZW50LFxuICAgIElHcmlkUm93TW9kZWwsXG4gICAgR3JpZFJvd05vZGUsXG59IGZyb20gJy4vbW9kZWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRHJUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vZHItdG9hc3RyL2RyLXRvYXN0ci5zZXJ2aWNlJztcbmltcG9ydCB7IENlbGxBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1hY3Rpb24vY2VsbC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWNoZWNrYm94L2NlbGwtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NlbGxzL2NlbGwtbGluay9jZWxsLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxTZXRBc0RlZmF1bHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1zZXQtYXMtZGVmYXVsdC9jZWxsLXNldC1hcy1kZWZhdWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsSWNvbkFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1pY29uLWFjdGlvbnMvY2VsbC1pY29uLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxTcGxpdFJvd3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1zcGxpdC1yb3dzL2NlbGwtc3BsaXQtcm93cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWJ1dHRvbi9jZWxsLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbENoaWxkcmVuTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWNoaWxkcmVuLWxpc3QvY2VsbC1jaGlsZHJlbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsQ3VzdG9tVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC1jdXN0b20tdGVtcGxhdGUvY2VsbC1jdXN0b20tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxCYWRnZVN0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWJhZGdlLXN0YXR1cy9jZWxsLWJhZGdlLXN0YXR1cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbEljb25UZXh0RWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy9jZWxsLWljb24tdGV4dC1lZGl0L2NlbGwtaWNvbi10ZXh0LWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRibEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jZWxscy90YmwtaGVhZGVyL3RibC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENlbGxUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2VsbHMvY2VsbC10b2dnbGUvY2VsbC10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERyR3JpZE5vUm93c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1ncmlkLW5vLXJvd3MvZHItZ3JpZC1uby1yb3dzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NlbGxzL2NlbGwtc2VsZWN0L2NlbGwtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkRHJFdmVudFR5cGUgfSBmcm9tICcuL21vZGVscy9kci1ncmlkLWV2ZW50cyc7XG5pbXBvcnQgeyBHUklEX1RIRU1FX09QVElPTlMsIFREckdyaWRUaGVtZSB9IGZyb20gJy4vbW9kZWxzL2RyLWdyaWQtdGhlbWUnO1xuXG5jb25zdCBDRUxMX0NPTVBPTkVOVFMgPSBbXG4gICAgVGJsSGVhZGVyQ29tcG9uZW50LFxuICAgIENlbGxBY3Rpb25Db21wb25lbnQsXG4gICAgQ2VsbEljb25UZXh0RWRpdENvbXBvbmVudCxcbiAgICBDZWxsQmFkZ2VTdGF0dXNDb21wb25lbnQsXG4gICAgQ2VsbEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDZWxsQ2hlY2tib3hDb21wb25lbnQsXG4gICAgQ2VsbENoaWxkcmVuTGlzdENvbXBvbmVudCxcbiAgICBDZWxsQ3VzdG9tVGVtcGxhdGVDb21wb25lbnQsXG4gICAgQ2VsbEljb25BY3Rpb25zQ29tcG9uZW50LFxuICAgIENlbGxMaW5rQ29tcG9uZW50LFxuICAgIENlbGxTZXRBc0RlZmF1bHRDb21wb25lbnQsXG4gICAgQ2VsbFNwbGl0Um93c0NvbXBvbmVudCxcbiAgICBDZWxsVG9nZ2xlQ29tcG9uZW50LFxuICAgIENlbGxTZWxlY3RDb21wb25lbnQsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQWdHcmlkTW9kdWxlLCBDb21tb25Nb2R1bGUsIC4uLkNFTExfQ09NUE9ORU5UU10sXG59KVxuZXhwb3J0IGNsYXNzIERyR3JpZENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHIgPSBpbmplY3QoRHJUb2FzdHJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSBncmlkUm93TW9kZWw6IElHcmlkUm93TW9kZWw7XG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuICAgIHB1YmxpYyBkb21MYXlvdXQ6IEdyaWREb21MYXlvdXRUeXBlID0gJ2F1dG9IZWlnaHQnOyAvLyBEbyBub3QgdXNlIGFzIEBJbnB1dFxuICAgIEBJbnB1dCgpIGxheW91dFRocmVzaG9sZENvdW50ID0gMTAwOyAvLyBJbnB1dCBNVVNUIGJlIHJlcGxhY2VkIHdpdGggY29uc3RhbnQgYWZ0ZXIgZm9ybXMgcmVmYWN0b3JpbmdcbiAgICBASW5wdXQoKSBwaW5uZWRUb3BSb3dEYXRhOiBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwaW5uZWRCb3R0b21Sb3dEYXRhOiBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBjb2x1bW5EZWZzOiBJR3JpZENvbERlZltdO1xuICAgIEBJbnB1dCgpIHNldCBub1Jvd3NUZW1wbGF0ZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHtcbiAgICAgICAgaWYgKHRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIG5vUm93c092ZXJsYXlDb21wb25lbnQ6IERyR3JpZE5vUm93c0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBub1Jvd3NPdmVybGF5Q29tcG9uZW50UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhudWxsKS5yb290Tm9kZXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2VsbENvbXBvbmVudHMoY29tcG9uZW50czogYW55KSB7XG4gICAgICAgIHRoaXMuX2NlbGxDb21wb25lbnRzID0geyAuLi50aGlzLl9jZWxsQ29tcG9uZW50cywgLi4uKGNvbXBvbmVudHMgfHwge30pIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcm93RGF0YTogVFtdO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHJvd0RhdGEoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd0RhdGE7XG4gICAgfVxuICAgIHNldCByb3dEYXRhKHJvd0RhdGE6IFRbXSkge1xuICAgICAgICBjb25zdCBvbGRSb3dEYXRhQ291bnQgPSB0aGlzLl9yb3dEYXRhPy5sZW5ndGggfHwgMDtcbiAgICAgICAgdGhpcy5fcm93RGF0YSA9IHJvd0RhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Jvd0RhdGE/Lmxlbmd0aCA8IG9sZFJvd0RhdGFDb3VudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUdyaWREb21MYXlvdXQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREb21MYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dyaWRPcHRpb25zOiBJR3JpZE9wdGlvbnMgPSB7XG4gICAgICAgIHJvd0NsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgICdkci1yb3ctcGFyZW50JzogKHBhcmFtcykgPT4gKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd1BhcmVudCxcbiAgICAgICAgICAgICdkci1yb3ctcGFyZW50LWV4cGFuZGVkJzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93UGFyZW50ICYmICEocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyQ29sbGFwc2VkLFxuICAgICAgICAgICAgJ2RyLXJvdy1wYXJlbnQtY29sbGFwc2VkJzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93UGFyZW50ICYmIChwYXJhbXMubm9kZSBhcyBHcmlkUm93Tm9kZSkuZHJDb2xsYXBzZWQsXG4gICAgICAgICAgICAnZHItcm93LWNoaWxkJzogKHBhcmFtcykgPT4gKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkLFxuICAgICAgICAgICAgJ2RyLXJvdy1jaGlsZC1maXJzdCc6IChwYXJhbXMpID0+XG4gICAgICAgICAgICAgICAgKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkICYmIChwYXJhbXMubm9kZSBhcyBHcmlkUm93Tm9kZSkuZHJSb3dDaGlsZEZpcnN0LFxuICAgICAgICAgICAgJ2RyLXJvdy1jaGlsZC1sYXN0JzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93Q2hpbGQgJiYgKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkTGFzdCxcbiAgICAgICAgICAgICdkci1yb3ctY2hpbGQtbGFzdC1pbi10cmVlJzogKHBhcmFtcykgPT5cbiAgICAgICAgICAgICAgICAocGFyYW1zLm5vZGUgYXMgR3JpZFJvd05vZGUpLmRyUm93Q2hpbGQgJiYgKHBhcmFtcy5ub2RlIGFzIEdyaWRSb3dOb2RlKS5kclJvd0NoaWxkTGFzdEluVHJlZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiAnaGVhZGVyJyxcbiAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA/PyBwYXJhbXMudmFsdWUgPz8gJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNwYW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25DZWxsRG91YmxlQ2xpY2tlZDogKGQpID0+IHRoaXMuY29weVRvQ2xpcGJvYXJkKGQpLFxuICAgICAgICAgICAgdG9vbHRpcFZhbHVlR2V0dGVyOiAodCkgPT4gdC52YWx1ZSxcbiAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH07XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGdyaWRPcHRpb25zKCk6IElHcmlkT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncmlkT3B0aW9ucztcbiAgICB9XG4gICAgcHVibGljIHNldCBncmlkT3B0aW9ucyh2YWx1ZTogSUdyaWRPcHRpb25zKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZ3JpZE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuX2dyaWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2dyaWRPcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgICAgICAgIHJvd0NsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5fZ3JpZE9wdGlvbnMucm93Q2xhc3NSdWxlcyxcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsdWUucm93Q2xhc3NSdWxlcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2dyaWRPcHRpb25zID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9ncmlkQXBpOiBHcmlkQXBpIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBnZXQgZ3JpZEFwaSgpOiBHcmlkQXBpIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncmlkQXBpO1xuICAgIH1cbiAgICBzZXQgZ3JpZEFwaSh2YWx1ZTogR3JpZEFwaSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fZ3JpZEFwaSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmdyaWRBcGlDaGFuZ2UuZW1pdCh0aGlzLl9ncmlkQXBpKTtcbiAgICB9XG4gICAgQE91dHB1dCgpIGdyaWRBcGlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRBcGk+KCk7XG5cbiAgICBwcml2YXRlIF9ncmlkQ29sdW1uQXBpOiBHcmlkQ29sdW1uQXBpIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBnZXQgZ3JpZENvbHVtbkFwaSgpOiBHcmlkQ29sdW1uQXBpIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncmlkQ29sdW1uQXBpO1xuICAgIH1cbiAgICBzZXQgZ3JpZENvbHVtbkFwaSh2YWx1ZTogR3JpZENvbHVtbkFwaSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fZ3JpZENvbHVtbkFwaSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5BcGlDaGFuZ2UuZW1pdCh0aGlzLl9ncmlkQ29sdW1uQXBpKTtcbiAgICB9XG4gICAgQE91dHB1dCgpIGdyaWRDb2x1bW5BcGlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRDb2x1bW5BcGk+KCk7XG5cbiAgICBwdWJsaWMgX3RoZW1lOiBURHJHcmlkVGhlbWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgdGhlbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aGVtZTtcbiAgICB9XG4gICAgc2V0IHRoZW1lKHRoZW1lOiBURHJHcmlkVGhlbWUpIHtcbiAgICAgICAgaWYgKCF0aGVtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGhlbWUgPSB0aGVtZTtcblxuICAgICAgICBpZiAoR1JJRF9USEVNRV9PUFRJT05TW3RoaXMuX3RoZW1lXSkge1xuICAgICAgICAgICAgdGhpcy5fZ3JpZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4uR1JJRF9USEVNRV9PUFRJT05TW3RoaXMuX3RoZW1lXSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkT3B0aW9ucyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgcm93Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcm93RHJhZ0VuZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUdyaWRTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxJR3JpZFJvd1NlbGVjdGVkRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGdyaWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZ3JpZERlc3Ryb3kgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQFZpZXdDaGlsZCgnYWdHcmlkJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGFnR3JpZEVsITogRWxlbWVudFJlZjtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgICAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLnRoZW1lKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy50aGVtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2dyaWQtZnVsbC1oZWlnaHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5yb3dEYXRhPy5sZW5ndGggJiYgdGhpcy5ncmlkT3B0aW9ucy5ub1Jvd3NPdmVybGF5Q29tcG9uZW50KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2dyaWQtZW1wdHktd2l0aC10ZW1wbGF0ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMucm93U2VsZWN0aW9uICYmICF0aGlzLmdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZ3JpZC13aXRoLXJvdy1zZWxlY3Rpb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cblxuICAgIF9jZWxsQ29tcG9uZW50cyA9IHtcbiAgICAgICAgaGVhZGVyOiBUYmxIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIGNoaWxkcmVuTGlzdDogQ2VsbENoaWxkcmVuTGlzdENvbXBvbmVudCxcbiAgICAgICAgY3VzdG9tVGVtcGxhdGU6IENlbGxDdXN0b21UZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgYnV0dG9uOiBDZWxsQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBjaGVja2JveDogQ2VsbENoZWNrYm94Q29tcG9uZW50LFxuICAgICAgICBzZXRBc0RlZmF1bHQ6IENlbGxTZXRBc0RlZmF1bHRDb21wb25lbnQsXG4gICAgICAgIHNwbGl0Um93czogQ2VsbFNwbGl0Um93c0NvbXBvbmVudCxcbiAgICAgICAgYmFkZ2VTdGF0dXM6IENlbGxCYWRnZVN0YXR1c0NvbXBvbmVudCxcbiAgICAgICAgaWNvbkFjdGlvbnM6IENlbGxJY29uQWN0aW9uc0NvbXBvbmVudCxcbiAgICAgICAgY2VsbEljb25UZXh0RWRpdDogQ2VsbEljb25UZXh0RWRpdENvbXBvbmVudCxcbiAgICAgICAgbGluazogQ2VsbExpbmtDb21wb25lbnQsXG4gICAgICAgIGFjdGlvbjogQ2VsbEFjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgdG9nZ2xlOiBDZWxsVG9nZ2xlQ29tcG9uZW50LFxuICAgICAgICBjZWxsU2VsZWN0OiBDZWxsU2VsZWN0Q29tcG9uZW50LFxuICAgIH07XG4gICAgYm90dG9tQmx1ckhpZGRlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy50aGVtZSkge1xuICAgICAgICAgICAgdGhpcy50aGVtZSA9ICdkci1ncmlkLWRlZmF1bHQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25HcmlkUmVhZHkocGFyYW1zOiBJR3JpZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGRyR3JpZEFwaSA9IHBhcmFtcy5hcGkgYXMgR3JpZEFwaTtcbiAgICAgICAgZHJHcmlkQXBpLmRyRXZlbnRzID0gRHJHcmlkQ29tcG9uZW50LmdldERyRXZlbnRzT2JqZWN0KCk7XG4gICAgICAgIGRyR3JpZEFwaS51cGRhdGVHcmlkRG9tTGF5b3V0ID0gdGhpcy51cGRhdGVHcmlkRG9tTGF5b3V0LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZ3JpZEFwaSA9IGRyR3JpZEFwaTtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcbiAgICAgICAgdGhpcy5ncmlkUm93TW9kZWwgPSB0aGlzLmdyaWRBcGkuZ2V0TW9kZWwoKTtcbiAgICAgICAgdGhpcy5ncmlkUmVhZHkuZW1pdChwYXJhbXMpO1xuICAgICAgICB0aGlzLmluaXRIb3N0UmVzaXplTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5pbml0Qm9keVNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JpZEFwaT8uZHJFdmVudHM/Ll9kZXN0cm95JD8ubmV4dChudWxsKTtcbiAgICAgICAgdGhpcy5ncmlkQXBpPy5kckV2ZW50cz8uX2Rlc3Ryb3kkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmdyaWRBcGk/LmRlc3Ryb3k/LigpO1xuICAgICAgICB0aGlzLmdyaWRBcGkgPSBudWxsO1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5BcGkgPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmdyaWREZXN0cm95LmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvcHlUb0NsaXBib2FyZChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhLnZhbHVlICYmIHR5cGVvZiBkYXRhLnZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSAoZTogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlwYm9hcmQgPSBlLmNsaXBib2FyZERhdGE7XG4gICAgICAgICAgICAgICAgY2xpcGJvYXJkLnNldERhdGEoJ3RleHQnLCBkYXRhLmV2ZW50LnRhcmdldC5pbm5lclRleHQpO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb3B5JywgbGlzdGVuZXIsIGZhbHNlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjb3B5JywgbGlzdGVuZXIsIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ1ZhbHVlIGNvcGllZCB0byBjbGlwYm9hcmQnLCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRCb2R5U2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoZW1lICE9PSAnZHItZ3JpZC1ib3JkZXJsZXNzJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ncmlkQXBpLmFkZEV2ZW50TGlzdGVuZXIoJ2JvZHlTY3JvbGwnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5kaXJlY3Rpb24gIT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkTm9kZXMgPSB0aGlzLmdyaWRBcGkuZ2V0UmVuZGVyZWROb2RlcygpO1xuICAgICAgICAgICAgY29uc3QgbGFzdFJlbmRlcmVkTm9kZSA9IHJlbmRlcmVkTm9kZXM/LltyZW5kZXJlZE5vZGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgY29uc3QgbGFzdE5vZGUgPSB0aGlzLmdyaWRSb3dNb2RlbC5nZXRSb3codGhpcy5ncmlkUm93TW9kZWwuZ2V0Um93Q291bnQoKSAtIDEpO1xuICAgICAgICAgICAgLy8gd29ya3Mgb25seSBpZiByb3dCdWZmZXIgPT09IDBcbiAgICAgICAgICAgIHRoaXMuYm90dG9tQmx1ckhpZGRlbiQubmV4dChsYXN0UmVuZGVyZWROb2RlPy5kYXRhID09PSBsYXN0Tm9kZT8uZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEhvc3RSZXNpemVMaXN0ZW5lcigpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZUdyaWREb21MYXlvdXQoKSk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkRG9tTGF5b3V0KCkge1xuICAgICAgICBsZXQgZGVzaXJlZExheW91dDogR3JpZERvbUxheW91dFR5cGU7XG5cbiAgICAgICAgaWYgKHRoaXMucm93RGF0YT8ubGVuZ3RoID4gdGhpcy5sYXlvdXRUaHJlc2hvbGRDb3VudCkge1xuICAgICAgICAgICAgZGVzaXJlZExheW91dCA9ICdub3JtYWwnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZ3JpZEFwaSAmJiB0aGlzLmFnR3JpZEVsICYmIHRoaXMucm93RGF0YT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBncmlkQm9keSA9IHRoaXMuYWdHcmlkRWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctcm9vdC13cmFwcGVyLWJvZHknKTtcbiAgICAgICAgICAgIGNvbnN0IGdyaWRCb2R5Vmlld3BvcnQgPSB0aGlzLmFnR3JpZEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFnLWJvZHktdmlld3BvcnQnKTtcbiAgICAgICAgICAgIGNvbnN0IGdyaWRCb2R5Vmlld3BvcnRDb2xzID0gdGhpcy5hZ0dyaWRFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1jZW50ZXItY29scy12aWV3cG9ydCcpO1xuXG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyTm9TY3JvbGwgPSBncmlkQm9keS5zY3JvbGxIZWlnaHQgPD0gd3JhcHBlci5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBncmlkU2hvd0FsbFJvd3MgPSB0aGlzLmdyaWRBcGkuZ2V0RGlzcGxheWVkUm93Q291bnQoKSA9PT0gdGhpcy5ncmlkQXBpLmdldFJlbmRlcmVkTm9kZXMoKT8ubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgZ3JpZFNob3dBbGxSb3dzV2l0aG91dFNjcm9sbCA9IGdyaWRCb2R5Vmlld3BvcnRDb2xzLmNsaWVudEhlaWdodCA8PSBncmlkQm9keVZpZXdwb3J0LmNsaWVudEhlaWdodDtcblxuICAgICAgICAgICAgZGVzaXJlZExheW91dCA9IHdyYXBwZXJOb1Njcm9sbCAmJiBncmlkU2hvd0FsbFJvd3MgJiYgZ3JpZFNob3dBbGxSb3dzV2l0aG91dFNjcm9sbCA/ICdhdXRvSGVpZ2h0JyA6ICdub3JtYWwnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVzaXJlZExheW91dCA9ICdhdXRvSGVpZ2h0JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRvbUxheW91dCAhPT0gZGVzaXJlZExheW91dCkge1xuICAgICAgICAgICAgdGhpcy5kb21MYXlvdXQgPSBkZXNpcmVkTGF5b3V0O1xuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnJlZHJhd1Jvd3MoKTtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5yZWZyZXNoQ2VsbHMoeyBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXREckV2ZW50c09iamVjdCA9IChldmVudHMkPzogQmVoYXZpb3JTdWJqZWN0PElHcmlkRHJFdmVudD4sIGRlc3Ryb3kkPzogU3ViamVjdDx2b2lkPik6IElHcmlkRHJFdmVudHMgPT4ge1xuICAgICAgICBldmVudHMkID0gZXZlbnRzJCA/IGV2ZW50cyQgOiBuZXcgQmVoYXZpb3JTdWJqZWN0PElHcmlkRHJFdmVudD4oeyB0eXBlOiBudWxsLCBkYXRhOiBudWxsIH0pO1xuICAgICAgICBkZXN0cm95JCA9IGRlc3Ryb3kkID8gZGVzdHJveSQgOiBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgX2Rlc3Ryb3kkOiBkZXN0cm95JCxcbiAgICAgICAgICAgIF9ldmVudHMkOiBldmVudHMkLFxuICAgICAgICAgICAgZW1pdDogKGU6IElHcmlkRHJFdmVudCkgPT4gZXZlbnRzJC5uZXh0KGUpLFxuICAgICAgICAgICAgb246ICh0eXBlPzogR3JpZERyRXZlbnRUeXBlKSA9PlxuICAgICAgICAgICAgICAgIGV2ZW50cyQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKGRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChldmVudDogSUdyaWREckV2ZW50KSA9PiAhdHlwZSB8fCBldmVudC50eXBlID09PSB0eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChldmVudDogSUdyaWREckV2ZW50KSA9PiAodHlwZSA/IGV2ZW50LmRhdGEgOiBldmVudCkpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWx0ZXJzTWFwOiBuZXcgTWFwPHN0cmluZywgYW55PigpLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBvblJvd1NlbGVjdCgkZXZlbnQ6IElHcmlkUm93U2VsZWN0ZWRFdmVudDxhbnk+KSB7XG4gICAgICAgIGlmICgkZXZlbnQuc291cmNlID09PSAnY2hlY2tib3hTZWxlY3RlZCcpIHtcbiAgICAgICAgICAgIHRoaXMucm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGFnLWdyaWQtYW5ndWxhclxuICAgICNhZ0dyaWRcbiAgICBbY2xhc3NdPVwiJ2FnLXRoZW1lLWFscGluZSdcIlxuICAgIFtkb21MYXlvdXRdPVwiZG9tTGF5b3V0XCJcbiAgICAocm93Q2xpY2tlZCk9XCJyb3dDbGlja2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCJcbiAgICAocm93RHJhZ0VuZCk9XCJyb3dEcmFnRW5kLmVtaXQoJGV2ZW50KVwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwic2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgIChyb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdCgkZXZlbnQpXCJcbiAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIlxuICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxuICAgIFtyb3dEYXRhXT1cInJvd0RhdGFcIlxuICAgIFtwaW5uZWRUb3BSb3dEYXRhXT1cInBpbm5lZFRvcFJvd0RhdGFcIlxuICAgIFtwaW5uZWRCb3R0b21Sb3dEYXRhXT1cInBpbm5lZEJvdHRvbVJvd0RhdGFcIlxuICAgIFtjb21wb25lbnRzXT1cIl9jZWxsQ29tcG9uZW50c1wiXG4gICAgW3Jvd0J1ZmZlcl09XCIwXCJcbiAgICBbdW5kb1JlZG9DZWxsRWRpdGluZ109XCJ0cnVlXCJcbiAgICBbc3VwcHJlc3NOb1Jvd3NPdmVybGF5XT1cIiFncmlkT3B0aW9ucz8ubm9Sb3dzT3ZlcmxheUNvbXBvbmVudFwiXG4gICAgW3N1cHByZXNzTG9hZGluZ092ZXJsYXldPVwidHJ1ZVwiPlxuPC9hZy1ncmlkLWFuZ3VsYXI+XG48ZGl2ICpuZ0lmPVwidGhlbWUgPT09ICdkci1ncmlkLWJvcmRlcmxlc3MnXCIgY2xhc3M9XCJ0YWJsZS1ibHVyXCIgW2NsYXNzLi0taGlkZGVuXT1cImJvdHRvbUJsdXJIaWRkZW4kIHwgYXN5bmNcIj48L2Rpdj5cbiJdfQ==
@@ -17989,7 +17989,11 @@ class DrGridComponent {
17989
17989
  },
17990
17990
  defaultColDef: {
17991
17991
  headerComponent: 'header',
17992
- cellRenderer: (params) => params.valueFormatted ?? params.value ?? '',
17992
+ cellRenderer: (params) => {
17993
+ const span = document.createElement('span');
17994
+ span.textContent = params.valueFormatted ?? params.value ?? '';
17995
+ return span;
17996
+ },
17993
17997
  onCellDoubleClicked: (d) => this.copyToClipboard(d),
17994
17998
  tooltipValueGetter: (t) => t.value,
17995
17999
  sortable: true,