@elderbyte/ngx-starter 12.13.0 → 12.13.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.
@@ -3,13 +3,14 @@
3
3
  */
4
4
  export * from './public_api';
5
5
  export { ELDER_DATA_VIEW as ɵf } from './lib/components/data-view/base/elder-data-view';
6
- export { ElderPaginatorIntl as ɵk } from './lib/components/data-view/table/elder-paginator-intl';
7
- export { ElderTableColumnDirective as ɵi } from './lib/components/data-view/table/elder-table-column.directive';
8
- export { ElderTableRowDirective as ɵj } from './lib/components/data-view/table/elder-table-row.directive';
6
+ export { DataContextStateIndicatorComponent as ɵh } from './lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component';
7
+ export { ElderPaginatorIntl as ɵl } from './lib/components/data-view/table/elder-paginator-intl';
8
+ export { ElderTableColumnDirective as ɵj } from './lib/components/data-view/table/elder-table-column.directive';
9
+ export { ElderTableRowDirective as ɵk } from './lib/components/data-view/table/elder-table-row.directive';
9
10
  export { provideForm as ɵc } from './lib/components/forms/directives/elder-plug-parent-form.directive';
10
- export { ElderTripleStateCheckboxDirective as ɵh } from './lib/components/forms/directives/elder-triple-state-checkbox.directive';
11
+ export { ElderTripleStateCheckboxDirective as ɵi } from './lib/components/forms/directives/elder-triple-state-checkbox.directive';
11
12
  export { ElderPanelComponentBase as ɵa, _ElderPanelMixinBase as ɵb } from './lib/components/panels/flat/elder-panel.component';
12
- export { ElderSelectBase as ɵm } from './lib/components/select/elder-select-base';
13
+ export { ElderSelectBase as ɵn } from './lib/components/select/elder-select-base';
13
14
  export { createDataViewSelection as ɵe, createSelectionModel as ɵd } from './lib/components/select/popup/selection-model-popup.directive';
14
- export { StandardToastComponent as ɵl } from './lib/components/toasts/standard-toast/standard-toast.component';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXJieXRlLW5neC1zdGFydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9lbGRlcmJ5dGUtbmd4LXN0YXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBc0IsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDL0YsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzlHLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN4RyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxpQ0FBaUMsSUFBSSxFQUFFLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNoSSxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzVILE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUN2SSxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0saUVBQWlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7RUxERVJfREFUQV9WSUVXIGFzIMm1ZixJRWxkZXJEYXRhVmlldyBhcyDJtWd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2Jhc2UvZWxkZXItZGF0YS12aWV3JztcbmV4cG9ydCB7RWxkZXJQYWdpbmF0b3JJbnRsIGFzIMm1a30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItcGFnaW5hdG9yLWludGwnO1xuZXhwb3J0IHtFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlIGFzIMm1aX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUtY29sdW1uLmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmUgYXMgybVqfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci10YWJsZS1yb3cuZGlyZWN0aXZlJztcbmV4cG9ydCB7cHJvdmlkZUZvcm0gYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItcGx1Zy1wYXJlbnQtZm9ybS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGRlclRyaXBsZVN0YXRlQ2hlY2tib3hEaXJlY3RpdmUgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItdHJpcGxlLXN0YXRlLWNoZWNrYm94LmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyUGFuZWxDb21wb25lbnRCYXNlIGFzIMm1YSxfRWxkZXJQYW5lbE1peGluQmFzZSBhcyDJtWJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFuZWxzL2ZsYXQvZWxkZXItcGFuZWwuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJTZWxlY3RCYXNlIGFzIMm1bX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3QvZWxkZXItc2VsZWN0LWJhc2UnO1xuZXhwb3J0IHtjcmVhdGVEYXRhVmlld1NlbGVjdGlvbiBhcyDJtWUsY3JlYXRlU2VsZWN0aW9uTW9kZWwgYXMgybVkfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC9wb3B1cC9zZWxlY3Rpb24tbW9kZWwtcG9wdXAuZGlyZWN0aXZlJztcbmV4cG9ydCB7U3RhbmRhcmRUb2FzdENvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9hc3RzL3N0YW5kYXJkLXRvYXN0L3N0YW5kYXJkLXRvYXN0LmNvbXBvbmVudCc7Il19
15
+ export { StandardToastComponent as ɵm } from './lib/components/toasts/standard-toast/standard-toast.component';
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXJieXRlLW5neC1zdGFydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9lbGRlcmJ5dGUtbmd4LXN0YXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBc0IsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0NBQWtDLElBQUksRUFBRSxFQUFDLE1BQU0sdUdBQXVHLENBQUM7QUFDL0osT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyx5QkFBeUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNyRyxPQUFPLEVBQUMsaUNBQWlDLElBQUksRUFBRSxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEksT0FBTyxFQUFDLHVCQUF1QixJQUFJLEVBQUUsRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM1SCxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDdkksT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlFQUFpRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0VMREVSX0RBVEFfVklFVyBhcyDJtWYsSUVsZGVyRGF0YVZpZXcgYXMgybVnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5leHBvcnQge0RhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9jb21tb24vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyUGFnaW5hdG9ySW50bCBhcyDJtWx9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXBhZ2luYXRvci1pbnRsJztcbmV4cG9ydCB7RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZSBhcyDJtWp9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGRlclRhYmxlUm93RGlyZWN0aXZlIGFzIMm1a30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5leHBvcnQge3Byb3ZpZGVGb3JtIGFzIMm1Y30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXBsdWctcGFyZW50LWZvcm0uZGlyZWN0aXZlJztcbmV4cG9ydCB7RWxkZXJUcmlwbGVTdGF0ZUNoZWNrYm94RGlyZWN0aXZlIGFzIMm1aX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXRyaXBsZS1zdGF0ZS1jaGVja2JveC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtFbGRlclBhbmVsQ29tcG9uZW50QmFzZSBhcyDJtWEsX0VsZGVyUGFuZWxNaXhpbkJhc2UgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BhbmVscy9mbGF0L2VsZGVyLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyU2VsZWN0QmFzZSBhcyDJtW59IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L2VsZGVyLXNlbGVjdC1iYXNlJztcbmV4cG9ydCB7Y3JlYXRlRGF0YVZpZXdTZWxlY3Rpb24gYXMgybVlLGNyZWF0ZVNlbGVjdGlvbk1vZGVsIGFzIMm1ZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3QvcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSc7XG5leHBvcnQge1N0YW5kYXJkVG9hc3RDb21wb25lbnQgYXMgybVtfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvYXN0cy9zdGFuZGFyZC10b2FzdC9zdGFuZGFyZC10b2FzdC5jb21wb25lbnQnOyJdfQ==
@@ -102,6 +102,9 @@ export class DataContextBase extends DataSource {
102
102
  get isStarted() {
103
103
  return this.started;
104
104
  }
105
+ get isStarted$() {
106
+ return this._started.asObservable();
107
+ }
105
108
  get isClosed() {
106
109
  return this._closed.getValue();
107
110
  }
@@ -278,4 +281,4 @@ export class DataContextBase extends DataSource {
278
281
  this._primaryIndex.clear();
279
282
  }
280
283
  }
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHNUMsTUFBTSxPQUFnQixlQUFtQixTQUFRLFVBQWE7SUE4QjVEOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQ2xCLFFBQTRCLEVBQzVCLFdBQWlDLEVBQ2pDLFVBQStDO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBdEN6RDs7OztvRkFJNEU7UUFFM0QsWUFBTyxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUk3RCxZQUFPLEdB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QUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRXBFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWx0ZXJDb250ZXh0fSBmcm9tICcuLi9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U25hcHNob3QsIElEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFDb250ZXh0QmFzZTxUPiBleHRlbmRzIERhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZWxvZzogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0RhdGFDb250ZXh0QmFzZScpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlciA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnQgPSBuZXcgU29ydENvbnRleHQoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90b3RhbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFDb250ZXh0U3RhdHVzPihEYXRhQ29udGV4dFN0YXR1cy5pZGxlKCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpbWFyeUluZGV4ID0gbmV3IE1hcDxhbnksIFQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VD4sXG4gICAgcHJpdmF0ZSBfaW5kZXhGbjogKChpdGVtOiBUKSA9PiBhbnkpLFxuICAgIHByaXZhdGUgX2xvY2FsQXBwbHk6ICgoZGF0YTogVFtdKSA9PiBUW10pLFxuICAgIHByaXZhdGUgX2xvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSksXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcblxuICAgIHRoaXMuX2xvYWRpbmcgPSB0aGlzLl9zdGF0dXMucGlwZShcbiAgICAgIG1hcChzdGF0dXMgPT4gc3RhdHVzLmxvYWRpbmcpXG4gICAgKTtcblxuICAgIHRoaXMuX2ZpbHRlci5maWx0ZXJzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGZpbHRlcnMgPT4gdGhpcy5vbkZpbHRlcnNDaGFuZ2VkKGZpbHRlcnMpXG4gICAgKTtcblxuICAgIHRoaXMuX3NvcnQuc29ydHMucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgc29ydHMgPT4gdGhpcy5vblNvcnRzQ2hhbmdlZChzb3J0cylcbiAgICApO1xuXG4gICAgdGhpcy5fcmVsb2FkUXVldWUucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7ICAvLyBEb250IGRpZSBvbiBlcnJvcnNcbiAgICAgICAgdGhpcy5iYXNlbG9nLmVycm9yKCdSZWxvYWQgcXVldWUgZGV0ZWN0ZWQgZXJyb3IsIGJhZCEnLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVsb2FkTm93KCkpO1xuICAgIC8vIE1heWJlIHNraXBNYXAgdGhlIHJlYWwgcmVxdWVzdHMgZm9yIGF1dG8gYWJvcnQgcGVuZGluZyAoZXhjZXB0IGZvciBjb250aW51YXRpb24gLyBwYWdlZClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJIE1hdGVyaWFsIERDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgLy8gdGhpcy5jbG9zZSgpOyBDbG9zaW5nIHdpbGwgZGVzdHJveSB0aGUgRENcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNuYXBzaG90KCk6IERhdGFDb250ZXh0U25hcHNob3Q8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTbmFwc2hvdChcbiAgICAgIHRoaXMuZGF0YVNuYXBzaG90LFxuICAgICAgdGhpcy5pc0VtcHR5LFxuICAgICAgdGhpcy5sb2FkaW5nU25hcHNob3QsXG4gICAgICB0aGlzLnRvdGFsU25hcHNob3QsXG4gICAgICB0aGlzLnN0YXR1c1NuYXBzaG90XG4gICAgKTtcbiAgfVxuXG5cbiAgcHVibGljIGdldCB0b3RhbCgpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG90YWxTbmFwc2hvdCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0KCk6IFNvcnRDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fc29ydDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyKCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmdTbmFwc2hvdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNTbmFwc2hvdD8ubG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YSgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU25hcHNob3QoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0dXMoKTogT2JzZXJ2YWJsZTxEYXRhQ29udGV4dFN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1c1NuYXBzaG90KCk6IERhdGFDb250ZXh0U3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNuYXBzaG90Lmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQ2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzdGFydGVkKHN0YXJ0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGFydGVkLm5leHQoc3RhcnRlZCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhcnQoc29ydHM/OiBTb3J0W10sIGZpbHRlcnM/OiBGaWx0ZXJbXSk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAodGhpcy5pc0Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXN0YXJ0aW5nIGEgY2xvc2VkIERhdGFDb250ZXh0IGlzIG5vdCBwb3NzaWJsZSEnKTsgLy8gU2VlIHVuc3Vic2NyaWJlJFxuICAgIH1cblxuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnU3RhcnRpbmcgZnJlc2ggZGF0YUNvbnRleHQgLi4uJyk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuX3NvcnQucmVwbGFjZVNvcnRzKHNvcnRzIHx8IHRoaXMuc29ydC5zb3J0c1NuYXBzaG90KTtcbiAgICB0aGlzLl9maWx0ZXIucmVwbGFjZUZpbHRlcnMoZmlsdGVycyB8fCB0aGlzLmZpbHRlci5maWx0ZXJzU25hcHNob3QpO1xuXG4gICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcblxuICAgIHJldHVybiB0aGlzLnJlbG9hZE5vdygpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWxvYWRRdWV1ZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SW5kZXgoa2V5OiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuX2luZGV4Rm4pIHsgdGhyb3cgbmV3IEVycm9yKCdmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpOyB9XG4gICAgcmV0dXJuIHRoaXMuX3ByaW1hcnlJbmRleC5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhpcyBEYXRhQ29udGV4dCBhbmQgY2xlYW5zIHVwIGFsbCB1c2VkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Nsb3NlZC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5fZGF0YS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3RvdGFsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fc3RhdHVzLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLmNsZWFyQWxsKCk7XG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdEYXRhQ29udGV4dCBoYXMgYmVlbiBjbG9zZWQgYW5kIHJlc291cmNlcyBjbGVhbmVkIHVwIScpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2RhdGEuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLl9kYXRhLm5leHQoY3VycmVudCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcmVsb2FkTm93KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsb2FkSW50ZXJuYWwoKTsgLy8gVE9ETyBUaGlzIHNob3VsZCBhY3R1YWxseSByZXR1cm4gdGhlIHJlYWwgKGh0dHApIHJlcXVlc3RcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGhlIGdpdmVuIHJvd3MgdG8gdG8gZXhpc3Rpbmcgb25lcy5cbiAgICovXG4gIHByb3RlY3RlZCBhcHBlbmREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10pOiB2b2lkIHtcbiAgICAvLyBXZSBoYWQgcHJldmlvdXMgY2h1bmtzIHNvIGFwcGVuZCB0byBjdXJyZW50IGRhdGEuXG4gICAgY29uc3QgbmV3RGF0YSA9IFsuLi50aGlzLmRhdGFTbmFwc2hvdF07XG4gICAgbmV3RGF0YS5wdXNoKC4uLmFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLmluZGV4QWxsKGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLnNldERhdGEobmV3RGF0YSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGV4aXN0aW5nIGRhdGEgd2l0aCB0aGUgbmV3IHNldC5cbiAgICogQHBhcmFtIG5ld0RhdGEgVGhlIG5ldyBkYXRhIHNldC5cbiAgICogQHBhcmFtIGFscmVhZHlJbmRleGVkIFRoZSByb3dzIHdpbGwgYmUgaW5kZXhlZCB1bmxlc3MgdGhleSBhbHJlYWR5IGhhdmUgYmVlbi5cbiAgICovXG4gIHByb3RlY3RlZCBzZXREYXRhKG5ld0RhdGE6IFRbXSwgYWxyZWFkeUluZGV4ZWQgPSBmYWxzZSk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuX2xvY2FsQXBwbHkpIHtcbiAgICAgIG5ld0RhdGEgPSB0aGlzLl9sb2NhbEFwcGx5KG5ld0RhdGEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIG5ld0RhdGEgPSB0aGlzLl9sb2NhbFNvcnQobmV3RGF0YSwgdGhpcy5fc29ydC5zb3J0c1NuYXBzaG90KTtcbiAgICB9XG5cbiAgICBpZiAoIWFscmVhZHlJbmRleGVkKSB7XG4gICAgICB0aGlzLmluZGV4QWxsKG5ld0RhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmRhdGFTbmFwc2hvdDtcblxuICAgIGlmICghKGN1cnJlbnQubGVuZ3RoID09PSAwICYmIG5ld0RhdGEubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdEYXRhIGhhcyBjaGFuZ2VkOiAnICsgbmV3RGF0YS5sZW5ndGgpO1xuICAgICAgdGhpcy5fZGF0YS5uZXh0KG5ld0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb3RhbCh0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fdG90YWwubmV4dCh0b3RhbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjdXJyZW50IGRhdGEtY29udGV4dCBjYWNoZWQgZGF0YS5cbiAgICogU3RhdGUgc3VjaCBhcyBjdXJyZW50IHNvcnRpbmcgYW5kIGZpbHRlcnNTbmFwc2hvdCBhcmUga2VwdC5cbiAgICovXG4gIHByb3RlY3RlZCBjbGVhckFsbChzaWxlbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuXG4gICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgIHRoaXMuc2V0VG90YWwoMCk7XG4gICAgICB0aGlzLnNldERhdGEoW10pO1xuICAgIH1cblxuICAgIHRoaXMub25JZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlSW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckluZGV4KCk7XG4gICAgdGhpcy5pbmRleEFsbCh0aGlzLmRhdGFTbmFwc2hvdCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kZXhlcyB0aGUgZ2l2ZW4gaXRlbSBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICB0aGlzLl9wcmltYXJ5SW5kZXguc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgYWxsIHRoZSBnaXZlbiBpdGVtcyBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEFsbChpdGVtczogVFtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLmluZGV4SXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1LZXkoaXRlbTogVCk6IGFueSAge1xuICAgIGlmICh0aGlzLl9pbmRleEZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5kZXhGbihpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXZlbnQgaGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2NjdXJzIHdoZW4gdGhlIHNvcnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Tb3J0c0NoYW5nZWQoc29ydHM6IFNvcnRbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbG9jYWxTb3J0KSB7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldERhdGEodGhpcy5kYXRhU25hcHNob3QsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgZmlsdGVyIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRmlsdGVyc0NoYW5nZWQoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlbG9hZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRXJyb3IoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmVycm9yKGVycikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSWRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmlkbGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Mb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMubG9hZGluZygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN0YXR1cyhzdGF0dXM6IERhdGFDb250ZXh0U3RhdHVzKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzLm5leHQoc3RhdHVzKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIGFuZFxuICAgKiByZWxvYWQgdGhlIGN1cnJlbnRseSBoZWxkIGRhdGEuXG4gICAqIElmIHBvc3NpYmxlLCB0aGUgY3VycmVudCB2aWV3IHN0YXRlIHNob3VsZCBiZSBrZXB0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcmVsb2FkIGpvYi5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWxvYWRJbnRlcm5hbCgpOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjbGVhckluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuX3ByaW1hcnlJbmRleC5jbGVhcigpO1xuICB9XG59XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzNELE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWtCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHNUMsTUFBTSxPQUFnQixlQUFtQixTQUFRLFVBQWE7SUE4QjVEOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQ2xCLFFBQTRCLEVBQzVCLFdBQWlDLEVBQ2pDLFVBQStDO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBSkEsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXFDO1FBdEN6RDs7OztvRkFJNEU7UUFFM0QsWUFBTyxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUk3RCxZQUFPLEdB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LEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRXBFLFVBQVU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ2dlciwgTG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWx0ZXJDb250ZXh0fSBmcm9tICcuLi9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U25hcHNob3QsIElEYXRhQ29udGV4dH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydENvbnRleHR9IGZyb20gJy4uL3NvcnQtY29udGV4dCc7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFDb250ZXh0QmFzZTxUPiBleHRlbmRzIERhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZWxvZzogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0RhdGFDb250ZXh0QmFzZScpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlciA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnQgPSBuZXcgU29ydENvbnRleHQoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF90b3RhbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFDb250ZXh0U3RhdHVzPihEYXRhQ29udGV4dFN0YXR1cy5pZGxlKCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpbWFyeUluZGV4ID0gbmV3IE1hcDxhbnksIFQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVsb2FkUXVldWUgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VD4sXG4gICAgcHJpdmF0ZSBfaW5kZXhGbjogKChpdGVtOiBUKSA9PiBhbnkpLFxuICAgIHByaXZhdGUgX2xvY2FsQXBwbHk6ICgoZGF0YTogVFtdKSA9PiBUW10pLFxuICAgIHByaXZhdGUgX2xvY2FsU29ydDogKChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSksXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcblxuICAgIHRoaXMuX2xvYWRpbmcgPSB0aGlzLl9zdGF0dXMucGlwZShcbiAgICAgIG1hcChzdGF0dXMgPT4gc3RhdHVzLmxvYWRpbmcpXG4gICAgKTtcblxuICAgIHRoaXMuX2ZpbHRlci5maWx0ZXJzLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zdGFydGVkKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGZpbHRlcnMgPT4gdGhpcy5vbkZpbHRlcnNDaGFuZ2VkKGZpbHRlcnMpXG4gICAgKTtcblxuICAgIHRoaXMuX3NvcnQuc29ydHMucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgc29ydHMgPT4gdGhpcy5vblNvcnRzQ2hhbmdlZChzb3J0cylcbiAgICApO1xuXG4gICAgdGhpcy5fcmVsb2FkUXVldWUucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnN0YXJ0ZWQpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7ICAvLyBEb250IGRpZSBvbiBlcnJvcnNcbiAgICAgICAgdGhpcy5iYXNlbG9nLmVycm9yKCdSZWxvYWQgcXVldWUgZGV0ZWN0ZWQgZXJyb3IsIGJhZCEnLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVsb2FkTm93KCkpO1xuICAgIC8vIE1heWJlIHNraXBNYXAgdGhlIHJlYWwgcmVxdWVzdHMgZm9yIGF1dG8gYWJvcnQgcGVuZGluZyAoZXhjZXB0IGZvciBjb250aW51YXRpb24gLyBwYWdlZClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJIE1hdGVyaWFsIERDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XG4gICAgLy8gdGhpcy5jbG9zZSgpOyBDbG9zaW5nIHdpbGwgZGVzdHJveSB0aGUgRENcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJRGF0YVNvdXJjZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNuYXBzaG90KCk6IERhdGFDb250ZXh0U25hcHNob3Q8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRTbmFwc2hvdChcbiAgICAgIHRoaXMuZGF0YVNuYXBzaG90LFxuICAgICAgdGhpcy5pc0VtcHR5LFxuICAgICAgdGhpcy5sb2FkaW5nU25hcHNob3QsXG4gICAgICB0aGlzLnRvdGFsU25hcHNob3QsXG4gICAgICB0aGlzLnN0YXR1c1NuYXBzaG90XG4gICAgKTtcbiAgfVxuXG5cbiAgcHVibGljIGdldCB0b3RhbCgpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG90YWxTbmFwc2hvdCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90b3RhbC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0KCk6IFNvcnRDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fc29ydDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyKCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmdTbmFwc2hvdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNTbmFwc2hvdD8ubG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YSgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU25hcHNob3QoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0dXMoKTogT2JzZXJ2YWJsZTxEYXRhQ29udGV4dFN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXR1c1NuYXBzaG90KCk6IERhdGFDb250ZXh0U3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNuYXBzaG90Lmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RhcnRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzQ2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldCBzdGFydGVkKHN0YXJ0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGFydGVkLm5leHQoc3RhcnRlZCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhcnQoc29ydHM/OiBTb3J0W10sIGZpbHRlcnM/OiBGaWx0ZXJbXSk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBpZiAodGhpcy5pc0Nsb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXN0YXJ0aW5nIGEgY2xvc2VkIERhdGFDb250ZXh0IGlzIG5vdCBwb3NzaWJsZSEnKTsgLy8gU2VlIHVuc3Vic2NyaWJlJFxuICAgIH1cblxuICAgIHRoaXMuYmFzZWxvZy5kZWJ1ZygnU3RhcnRpbmcgZnJlc2ggZGF0YUNvbnRleHQgLi4uJyk7XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuX3NvcnQucmVwbGFjZVNvcnRzKHNvcnRzIHx8IHRoaXMuc29ydC5zb3J0c1NuYXBzaG90KTtcbiAgICB0aGlzLl9maWx0ZXIucmVwbGFjZUZpbHRlcnMoZmlsdGVycyB8fCB0aGlzLmZpbHRlci5maWx0ZXJzU25hcHNob3QpO1xuXG4gICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcblxuICAgIHJldHVybiB0aGlzLnJlbG9hZE5vdygpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWxvYWRRdWV1ZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SW5kZXgoa2V5OiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuX2luZGV4Rm4pIHsgdGhyb3cgbmV3IEVycm9yKCdmaW5kQnlJbmRleCByZXF1aXJlcyB5b3UgdG8gcGFzcyBhIGluZGV4IGZ1bmN0aW9uIScpOyB9XG4gICAgcmV0dXJuIHRoaXMuX3ByaW1hcnlJbmRleC5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhpcyBEYXRhQ29udGV4dCBhbmQgY2xlYW5zIHVwIGFsbCB1c2VkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcblxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Nsb3NlZC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5fZGF0YS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3RvdGFsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fc3RhdHVzLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLmNsZWFyQWxsKCk7XG4gICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdEYXRhQ29udGV4dCBoYXMgYmVlbiBjbG9zZWQgYW5kIHJlc291cmNlcyBjbGVhbmVkIHVwIScpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2RhdGEuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLl9kYXRhLm5leHQoY3VycmVudCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcmVsb2FkTm93KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsb2FkSW50ZXJuYWwoKTsgLy8gVE9ETyBUaGlzIHNob3VsZCBhY3R1YWxseSByZXR1cm4gdGhlIHJlYWwgKGh0dHApIHJlcXVlc3RcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGhlIGdpdmVuIHJvd3MgdG8gdG8gZXhpc3Rpbmcgb25lcy5cbiAgICovXG4gIHByb3RlY3RlZCBhcHBlbmREYXRhKGFkZGl0aW9uYWxEYXRhOiBUW10pOiB2b2lkIHtcbiAgICAvLyBXZSBoYWQgcHJldmlvdXMgY2h1bmtzIHNvIGFwcGVuZCB0byBjdXJyZW50IGRhdGEuXG4gICAgY29uc3QgbmV3RGF0YSA9IFsuLi50aGlzLmRhdGFTbmFwc2hvdF07XG4gICAgbmV3RGF0YS5wdXNoKC4uLmFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLmluZGV4QWxsKGFkZGl0aW9uYWxEYXRhKTtcbiAgICB0aGlzLnNldERhdGEobmV3RGF0YSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGV4aXN0aW5nIGRhdGEgd2l0aCB0aGUgbmV3IHNldC5cbiAgICogQHBhcmFtIG5ld0RhdGEgVGhlIG5ldyBkYXRhIHNldC5cbiAgICogQHBhcmFtIGFscmVhZHlJbmRleGVkIFRoZSByb3dzIHdpbGwgYmUgaW5kZXhlZCB1bmxlc3MgdGhleSBhbHJlYWR5IGhhdmUgYmVlbi5cbiAgICovXG4gIHByb3RlY3RlZCBzZXREYXRhKG5ld0RhdGE6IFRbXSwgYWxyZWFkeUluZGV4ZWQgPSBmYWxzZSk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuX2xvY2FsQXBwbHkpIHtcbiAgICAgIG5ld0RhdGEgPSB0aGlzLl9sb2NhbEFwcGx5KG5ld0RhdGEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9sb2NhbFNvcnQpIHtcbiAgICAgIG5ld0RhdGEgPSB0aGlzLl9sb2NhbFNvcnQobmV3RGF0YSwgdGhpcy5fc29ydC5zb3J0c1NuYXBzaG90KTtcbiAgICB9XG5cbiAgICBpZiAoIWFscmVhZHlJbmRleGVkKSB7XG4gICAgICB0aGlzLmluZGV4QWxsKG5ld0RhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmRhdGFTbmFwc2hvdDtcblxuICAgIGlmICghKGN1cnJlbnQubGVuZ3RoID09PSAwICYmIG5ld0RhdGEubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhpcy5iYXNlbG9nLmRlYnVnKCdEYXRhIGhhcyBjaGFuZ2VkOiAnICsgbmV3RGF0YS5sZW5ndGgpO1xuICAgICAgdGhpcy5fZGF0YS5uZXh0KG5ld0RhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb3RhbCh0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5fdG90YWwubmV4dCh0b3RhbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjdXJyZW50IGRhdGEtY29udGV4dCBjYWNoZWQgZGF0YS5cbiAgICogU3RhdGUgc3VjaCBhcyBjdXJyZW50IHNvcnRpbmcgYW5kIGZpbHRlcnNTbmFwc2hvdCBhcmUga2VwdC5cbiAgICovXG4gIHByb3RlY3RlZCBjbGVhckFsbChzaWxlbnQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJJbmRleCgpO1xuXG4gICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgIHRoaXMuc2V0VG90YWwoMCk7XG4gICAgICB0aGlzLnNldERhdGEoW10pO1xuICAgIH1cblxuICAgIHRoaXMub25JZGxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlSW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckluZGV4KCk7XG4gICAgdGhpcy5pbmRleEFsbCh0aGlzLmRhdGFTbmFwc2hvdCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kZXhlcyB0aGUgZ2l2ZW4gaXRlbSBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICB0aGlzLl9wcmltYXJ5SW5kZXguc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGV4ZXMgYWxsIHRoZSBnaXZlbiBpdGVtcyBieSBrZXkgaWYgdGhlcmUgaXMgYW4gaW5kZXggZnVuY3Rpb24gZGVmaW5lZC5cbiAgICovXG4gIHByb3RlY3RlZCBpbmRleEFsbChpdGVtczogVFtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luZGV4Rm4pIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLmluZGV4SXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1LZXkoaXRlbTogVCk6IGFueSAge1xuICAgIGlmICh0aGlzLl9pbmRleEZuKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5kZXhGbihpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXZlbnQgaGFuZGxlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2NjdXJzIHdoZW4gdGhlIHNvcnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25Tb3J0c0NoYW5nZWQoc29ydHM6IFNvcnRbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbG9jYWxTb3J0KSB7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldERhdGEodGhpcy5kYXRhU25hcHNob3QsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgZmlsdGVyIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRmlsdGVyc0NoYW5nZWQoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlbG9hZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRXJyb3IoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmVycm9yKGVycikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSWRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3RhdHVzKERhdGFDb250ZXh0U3RhdHVzLmlkbGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Mb2FkaW5nKCk6IHZvaWQge1xuICAgIHRoaXMub25TdGF0dXMoRGF0YUNvbnRleHRTdGF0dXMubG9hZGluZygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN0YXR1cyhzdGF0dXM6IERhdGFDb250ZXh0U3RhdHVzKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdHVzLm5leHQoc3RhdHVzKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIGFuZFxuICAgKiByZWxvYWQgdGhlIGN1cnJlbnRseSBoZWxkIGRhdGEuXG4gICAqIElmIHBvc3NpYmxlLCB0aGUgY3VycmVudCB2aWV3IHN0YXRlIHNob3VsZCBiZSBrZXB0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcmVsb2FkIGpvYi5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWxvYWRJbnRlcm5hbCgpOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjbGVhckluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuX3ByaW1hcnlJbmRleC5jbGVhcigpO1xuICB9XG59XG4iXX0=
@@ -27,4 +27,4 @@ export function isContinuableDataContext(object) {
27
27
  export function isActivePagedDataContext(object) {
28
28
  return object.setActivePage !== undefined;
29
29
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ2tCLElBQVMsRUFDVCxPQUFnQixFQUNoQixTQUFrQixFQUNsQixLQUF5QixFQUN6QixNQUF5QjtRQUp6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQ3ZDLENBQUM7Q0FDTjtBQThKRDs7Ozs0RUFJNEU7QUFFNUUsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFXO0lBRXZDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBRTlCLE9BQVEsTUFBNEIsQ0FBQyxJQUFJLEtBQUssU0FBUztXQUNqRCxNQUE0QixDQUFDLEtBQUssS0FBSyxTQUFTO1dBQ2hELE1BQTRCLENBQUMsTUFBTSxLQUFLLFNBQVM7V0FDakQsTUFBNEIsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBeUI7SUFDaEUsT0FBUSxNQUF1QyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QjtJQUNoRSxPQUFRLE1BQXNDLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQztBQUM3RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uL2ZpbHRlci1jb250ZXh0JztcbmltcG9ydCB7UGFnZVJlcXVlc3R9IGZyb20gJy4uL3BhZ2UnO1xuaW1wb3J0IHtTb3J0Q29udGV4dH0gZnJvbSAnLi4vc29ydC1jb250ZXh0JztcbmltcG9ydCB7SURhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dFNuYXBzaG90PFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFRbXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNFbXB0eTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNMb2FkaW5nOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSB0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXM6IERhdGFDb250ZXh0U3RhdHVzXG4gICkgeyB9XG59XG5cbi8qKlxuICogTWFuYWdlcyBhIHNldCBvZiBkYXRhIChyb3dzKSB3aGljaCBhcmUgdG8gYmUgZGlzcGxheWVkIGluIGEgVUkgQ29tcG9uZW50LlxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIERhdGFTb3VyY2Ugb2YgdGhpcyBEYXRhQ29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+O1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUgaW4gdGhpcyBkYXRhLWNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90OiBEYXRhQ29udGV4dFNuYXBzaG90PFQ+O1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHRoZSBjdXJyZW50IGRhdGEgb3ZlciB0aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgY3VycmVudGx5IGhvbGRzIG5vIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGlzRW1wdHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29udGV4dCBoYXMgYmVlbiBzdGFydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNTdGFydGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gY2xvc2VkLlxuICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCByZXN0YXJ0aW5nIG1pZ2h0IG5vdCBiZSBwb3NzaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGlzQ2xvc2VkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgZGF0YSBpcyBsb2FkaW5nIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGluZzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIHRvdGFsIGNvdW50IG9mIGFsbCBlbGVtZW50cyBvdmVyIHRpbWVcbiAgICogKEkuZS4gdGhlIGV4cGVjdGVkIGNvdW50IHdoZW4gdGhlIGRhdGEgY29udGV4IGlzIGNvbXBsZXRlZClcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD47XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgd2hpY2ggZW1pdHMgd2hlbiB0aGUgc3RhdHVzIGNoYW5nZXMgKGkuZS4gZXJyb3IpXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM6IE9ic2VydmFibGU8RGF0YUNvbnRleHRTdGF0dXM+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBzb3J0IGNvbnRleHQuIENoYW5nZXMgaW4gdGhpcyBjb250ZXh0IGFyZSByZWZsZWN0ZWQgYnkgdGhlIGRhdGEtY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHNvcnQ6IFNvcnRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWx0ZXIgY29udGV4dC4gQ2hhbmdlcyBpbiB0aGlzIGNvbnRleHQgYXJlIHJlZmxlY3RlZCBieSB0aGUgZGF0YS1jb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyOiBGaWx0ZXJDb250ZXh0O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBTdGFydHMgcG9wdWxhdGluZyBkYXRhIGNvbnRleHQgYnkgbG9hZGluZyBmaXJzdFxuICAgKiBiYXRjaCBvZiBkYXRhLlxuICAgKi9cbiAgc3RhcnQoc29ydHM/OiBTb3J0W10sIGZpbHRlcnM/OiBGaWx0ZXJbXSk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogUmVxdWVzdHMgYSByZWxvYWQgb2YgdGhlIGN1cnJlbnQgZGF0YSAvIGNodW5rLlxuICAgKiBBdHRlbXB0cyB0byBrZWVwIHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuICAgKi9cbiAgcmVsb2FkKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGRhdGEgdmlldyBmcm9tIHRoZSBsb2NhbCBkYXRhIG1vZGVsLiAoRG9lcyBub3QgcmVxdWVzdCBuZXcgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIpXG4gICAqIFVzZWZ1bCBpZiB0aGUgZGF0YSBtb2RlbCBoYXMgY2hhbmdlcyB0aGF0IG5lZWQgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBVSS5cbiAgICovXG4gIHJlZnJlc2goKTogdm9pZDtcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBkYXRhLWNvbnRleHQgYW5kIGNsZWFucyB1cCByZXNvdXJjZXNcbiAgICovXG4gIGNsb3NlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGl0ZW0gYnkgdGhlIGdpdmVuIGluZGV4IGtleS5cbiAgICogUmVxdWlyZXMgdGhhdCBpbmRleCBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQuXG4gICAqIEBwYXJhbSBrZXlcbiAgICovXG4gIGZpbmRCeUluZGV4KGtleTogYW55KTogVCB8IHVuZGVmaW5lZDtcblxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkYXRhLWNvbnRleHQgd2hpY2ggYmFja3MgYSBpbmZpbml0ZSBsaWtlIGRhdGEgc3RyZWFtXG4gKiB3aGVyZSBtb3JlIGRhdGEgd2lsbCBiZSBsb2FkZWQgYW5kIGFkZGVkIHRvIHRoZSBiYWNraW5nIHJvd3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb250ZXh0Q29udGludWFibGU8VD4gZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBkYXRhLWNvbnRleHQgY2FuIGxvYWQgbW9yZSBkYXRhXG4gICAqL1xuICByZWFkb25seSBoYXNNb3JlRGF0YVNuYXBzaG90OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBkYXRhLWNvbnRleHQgY2FuIGxvYWQgbW9yZSBkYXRhIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgaGFzTW9yZURhdGE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIExvYWRzIG1vcmUgZGF0YSBpZiBhbnkgYXZhaWxhYmxlLlxuICAgKiBFLmcuIG5leHQgcGFnZS5cbiAgICpcbiAgICovXG4gIGxvYWRNb3JlKCk6IE9ic2VydmFibGU8YW55PjtcblxuICAvKipcbiAgICogTG9hZHMgYWxsIGF2YWlsYWJsZSBkYXRhLiBJbiBjYXNlIG9mXG4gICAqIHBhZ2VkIGNvbnRleHQgbG9hZHMgcGFnZSBieSBwYWdlIHVudGlsIGZpbmlzaGVkLlxuICAgKi9cbiAgbG9hZEFsbChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogdm9pZDtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4gZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhY3RpdmUgcGFnZSBvdmVyIHRpbWVcbiAgICovXG4gIHJlYWRvbmx5IHBhZ2U6IE9ic2VydmFibGU8UGFnZVJlcXVlc3Q+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGFjdGl2ZSBwYWdlXG4gICAqL1xuICByZWFkb25seSBwYWdlU25hcHNob3Q6IFBhZ2VSZXF1ZXN0O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgcGFnZVxuICAgKi9cbiAgc2V0QWN0aXZlUGFnZShwYWdlOiBQYWdlUmVxdWVzdCk6IHZvaWQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqIFR5cGUgUHJlZGljYXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YUNvbnRleHQob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgSURhdGFDb250ZXh0PGFueT4ge1xuXG4gIGlmICghb2JqZWN0KSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIHJldHVybiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5kYXRhICE9PSB1bmRlZmluZWRcbiAgICAmJiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5zdGFydCAhPT0gdW5kZWZpbmVkXG4gICAgJiYgKG9iamVjdCBhcyBJRGF0YUNvbnRleHQ8YW55PikucmVsb2FkICE9PSB1bmRlZmluZWRcbiAgICAmJiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5yZWZyZXNoICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQob2JqZWN0OiBJRGF0YUNvbnRleHQ8YW55Pik6IG9iamVjdCBpcyBJRGF0YUNvbnRleHRDb250aW51YWJsZTxhbnk+IHtcbiAgcmV0dXJuIChvYmplY3QgYXMgSURhdGFDb250ZXh0Q29udGludWFibGU8YW55PikubG9hZE1vcmUgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aXZlUGFnZWREYXRhQ29udGV4dChvYmplY3Q6IElEYXRhQ29udGV4dDxhbnk+KTogb2JqZWN0IGlzIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8YW55PiB7XG4gIHJldHVybiAob2JqZWN0IGFzIElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8YW55Pikuc2V0QWN0aXZlUGFnZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ2tCLElBQVMsRUFDVCxPQUFnQixFQUNoQixTQUFrQixFQUNsQixLQUF5QixFQUN6QixNQUF5QjtRQUp6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQ3ZDLENBQUM7Q0FDTjtBQW1LRDs7Ozs0RUFJNEU7QUFFNUUsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFXO0lBRXZDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQztLQUFFO0lBRTlCLE9BQVEsTUFBNEIsQ0FBQyxJQUFJLEtBQUssU0FBUztXQUNqRCxNQUE0QixDQUFDLEtBQUssS0FBSyxTQUFTO1dBQ2hELE1BQTRCLENBQUMsTUFBTSxLQUFLLFNBQVM7V0FDakQsTUFBNEIsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBeUI7SUFDaEUsT0FBUSxNQUF1QyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QjtJQUNoRSxPQUFRLE1BQXNDLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQztBQUM3RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhQ29udGV4dFN0YXR1c30gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdHVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uL2ZpbHRlci1jb250ZXh0JztcbmltcG9ydCB7UGFnZVJlcXVlc3R9IGZyb20gJy4uL3BhZ2UnO1xuaW1wb3J0IHtTb3J0Q29udGV4dH0gZnJvbSAnLi4vc29ydC1jb250ZXh0JztcbmltcG9ydCB7SURhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dFNuYXBzaG90PFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFRbXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNFbXB0eTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNMb2FkaW5nOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSB0b3RhbDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXM6IERhdGFDb250ZXh0U3RhdHVzXG4gICkgeyB9XG59XG5cbi8qKlxuICogTWFuYWdlcyBhIHNldCBvZiBkYXRhIChyb3dzKSB3aGljaCBhcmUgdG8gYmUgZGlzcGxheWVkIGluIGEgVUkgQ29tcG9uZW50LlxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGF0YUNvbnRleHQ8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIERhdGFTb3VyY2Ugb2YgdGhpcyBEYXRhQ29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+O1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUgaW4gdGhpcyBkYXRhLWNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90OiBEYXRhQ29udGV4dFNuYXBzaG90PFQ+O1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHRoZSBjdXJyZW50IGRhdGEgb3ZlciB0aW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgY3VycmVudGx5IGhvbGRzIG5vIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGlzRW1wdHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29udGV4dCBoYXMgYmVlbiBzdGFydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNTdGFydGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gc3RhcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGlzU3RhcnRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29udGV4dCBoYXMgYmVlbiBjbG9zZWQuXG4gICAqIERlcGVuZGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24sIHJlc3RhcnRpbmcgbWlnaHQgbm90IGJlIHBvc3NpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNDbG9zZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBkYXRhIGlzIGxvYWRpbmcgb3ZlciB0aW1lXG4gICAqL1xuICByZWFkb25seSBsb2FkaW5nOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgY291bnQgb2YgYWxsIGVsZW1lbnRzIG92ZXIgdGltZVxuICAgKiAoSS5lLiB0aGUgZXhwZWN0ZWQgY291bnQgd2hlbiB0aGUgZGF0YSBjb250ZXggaXMgY29tcGxldGVkKVxuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IE9ic2VydmFibGU8bnVtYmVyIHwgdW5kZWZpbmVkPjtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIHRoZSBzdGF0dXMgY2hhbmdlcyAoaS5lLiBlcnJvcilcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1czogT2JzZXJ2YWJsZTxEYXRhQ29udGV4dFN0YXR1cz47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNvcnQgY29udGV4dC4gQ2hhbmdlcyBpbiB0aGlzIGNvbnRleHQgYXJlIHJlZmxlY3RlZCBieSB0aGUgZGF0YS1jb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydDogU29ydENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGZpbHRlciBjb250ZXh0LiBDaGFuZ2VzIGluIHRoaXMgY29udGV4dCBhcmUgcmVmbGVjdGVkIGJ5IHRoZSBkYXRhLWNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IEZpbHRlckNvbnRleHQ7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFN0YXJ0cyBwb3B1bGF0aW5nIGRhdGEgY29udGV4dCBieSBsb2FkaW5nIGZpcnN0XG4gICAqIGJhdGNoIG9mIGRhdGEuXG4gICAqL1xuICBzdGFydChzb3J0cz86IFNvcnRbXSwgZmlsdGVycz86IEZpbHRlcltdKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBSZXF1ZXN0cyBhIHJlbG9hZCBvZiB0aGUgY3VycmVudCBkYXRhIC8gY2h1bmsuXG4gICAqIEF0dGVtcHRzIHRvIGtlZXAgdGhlIGN1cnJlbnQgcG9zaXRpb24uXG4gICAqL1xuICByZWxvYWQoKTogdm9pZDtcblxuICAvKipcbiAgICogUmVmcmVzaCB0aGUgZGF0YSB2aWV3IGZyb20gdGhlIGxvY2FsIGRhdGEgbW9kZWwuIChEb2VzIG5vdCByZXF1ZXN0IG5ldyBkYXRhIGZyb20gdGhlIHNlcnZlcilcbiAgICogVXNlZnVsIGlmIHRoZSBkYXRhIG1vZGVsIGhhcyBjaGFuZ2VzIHRoYXQgbmVlZCB0byBiZSByZWZsZWN0ZWQgaW4gdGhlIFVJLlxuICAgKi9cbiAgcmVmcmVzaCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGRhdGEtY29udGV4dCBhbmQgY2xlYW5zIHVwIHJlc291cmNlc1xuICAgKi9cbiAgY2xvc2UoKTogdm9pZDtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaXRlbSBieSB0aGUgZ2l2ZW4gaW5kZXgga2V5LlxuICAgKiBSZXF1aXJlcyB0aGF0IGluZGV4IGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZC5cbiAgICogQHBhcmFtIGtleVxuICAgKi9cbiAgZmluZEJ5SW5kZXgoa2V5OiBhbnkpOiBUIHwgdW5kZWZpbmVkO1xuXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRhdGEtY29udGV4dCB3aGljaCBiYWNrcyBhIGluZmluaXRlIGxpa2UgZGF0YSBzdHJlYW1cbiAqIHdoZXJlIG1vcmUgZGF0YSB3aWxsIGJlIGxvYWRlZCBhbmQgYWRkZWQgdG8gdGhlIGJhY2tpbmcgcm93cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiBleHRlbmRzIElEYXRhQ29udGV4dDxUPiB7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGRhdGEtY29udGV4dCBjYW4gbG9hZCBtb3JlIGRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGhhc01vcmVEYXRhU25hcHNob3Q6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGRhdGEtY29udGV4dCBjYW4gbG9hZCBtb3JlIGRhdGEgb3ZlciB0aW1lXG4gICAqL1xuICByZWFkb25seSBoYXNNb3JlRGF0YTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogTG9hZHMgbW9yZSBkYXRhIGlmIGFueSBhdmFpbGFibGUuXG4gICAqIEUuZy4gbmV4dCBwYWdlLlxuICAgKlxuICAgKi9cbiAgbG9hZE1vcmUoKTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgYXZhaWxhYmxlIGRhdGEuIEluIGNhc2Ugb2ZcbiAgICogcGFnZWQgY29udGV4dCBsb2FkcyBwYWdlIGJ5IHBhZ2UgdW50aWwgZmluaXNoZWQuXG4gICAqL1xuICBsb2FkQWxsKHNvcnRzPzogU29ydFtdLCBmaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiBleHRlbmRzIElEYXRhQ29udGV4dDxUPiB7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFjdGl2ZSBwYWdlIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFnZTogT2JzZXJ2YWJsZTxQYWdlUmVxdWVzdD47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgYWN0aXZlIHBhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHBhZ2VTbmFwc2hvdDogUGFnZVJlcXVlc3Q7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBwYWdlXG4gICAqL1xuICBzZXRBY3RpdmVQYWdlKHBhZ2U6IFBhZ2VSZXF1ZXN0KTogdm9pZDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICogVHlwZSBQcmVkaWNhdGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhQ29udGV4dChvYmplY3Q6IGFueSk6IG9iamVjdCBpcyBJRGF0YUNvbnRleHQ8YW55PiB7XG5cbiAgaWYgKCFvYmplY3QpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgcmV0dXJuIChvYmplY3QgYXMgSURhdGFDb250ZXh0PGFueT4pLmRhdGEgIT09IHVuZGVmaW5lZFxuICAgICYmIChvYmplY3QgYXMgSURhdGFDb250ZXh0PGFueT4pLnN0YXJ0ICE9PSB1bmRlZmluZWRcbiAgICAmJiAob2JqZWN0IGFzIElEYXRhQ29udGV4dDxhbnk+KS5yZWxvYWQgIT09IHVuZGVmaW5lZFxuICAgICYmIChvYmplY3QgYXMgSURhdGFDb250ZXh0PGFueT4pLnJlZnJlc2ggIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGludWFibGVEYXRhQ29udGV4dChvYmplY3Q6IElEYXRhQ29udGV4dDxhbnk+KTogb2JqZWN0IGlzIElEYXRhQ29udGV4dENvbnRpbnVhYmxlPGFueT4ge1xuICByZXR1cm4gKG9iamVjdCBhcyBJRGF0YUNvbnRleHRDb250aW51YWJsZTxhbnk+KS5sb2FkTW9yZSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBY3RpdmVQYWdlZERhdGFDb250ZXh0KG9iamVjdDogSURhdGFDb250ZXh0PGFueT4pOiBvYmplY3QgaXMgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxhbnk+IHtcbiAgcmV0dXJuIChvYmplY3QgYXMgSURhdGFDb250ZXh0QWN0aXZlUGFnZTxhbnk+KS5zZXRBY3RpdmVQYWdlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ export class DataContextStateIndicatorComponent {
4
+ /***************************************************************************
5
+ * *
6
+ * Constructor *
7
+ * *
8
+ **************************************************************************/
9
+ constructor() {
10
+ /***************************************************************************
11
+ * *
12
+ * Fields *
13
+ * *
14
+ **************************************************************************/
15
+ this.dataContext$ = new BehaviorSubject(null);
16
+ }
17
+ /***************************************************************************
18
+ * *
19
+ * Life Cycle *
20
+ * *
21
+ **************************************************************************/
22
+ ngOnInit() {
23
+ }
24
+ /***************************************************************************
25
+ * *
26
+ * Properties *
27
+ * *
28
+ **************************************************************************/
29
+ set dataContext(dataContext) {
30
+ this.dataContext$.next(dataContext);
31
+ }
32
+ }
33
+ DataContextStateIndicatorComponent.decorators = [
34
+ { type: Component, args: [{
35
+ selector: 'elder-data-context-state-indicator',
36
+ template: "<ng-container *ngIf=\"dataContext$ | async as dataContext\">\n\n <ng-container *ngIf=\"dataContext else noDataContext\">\n\n <ng-container *ngIf=\"(dataContext.isStarted$ | async) else dataContextNotStarted\">\n\n <ng-container *ngIf=\"!(dataContext?.status | async)?.hasError else dataContextHasError\">\n\n <ng-container *ngIf=\"(dataContext?.data | async)?.length === 0\">\n <ng-template [ngTemplateOutlet]=\"dataContextNoData\"></ng-template>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</ng-container>\n\n<ng-template #noDataContext>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'No data context'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNotStarted>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'Data context not started'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextHasError>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', iconColor: 'warn', text: 'Error while loading data'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNoData>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'info', text: 'No data available'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #indicator let-icon=\"icon\" let-iconColor=\"iconColor\" let-text=\"text\">\n\n <div fxFill\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n class=\"elder-table-hint mat-body-1\">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"16px\">\n <mat-icon [color]=\"iconColor\">{{icon}}</mat-icon>\n <span class=\"hint mat-body-1\">{{text | translate}}</span>\n </div>\n\n </div>\n\n</ng-template>\n",
37
+ changeDetection: ChangeDetectionStrategy.OnPush,
38
+ styles: [""]
39
+ },] }
40
+ ];
41
+ DataContextStateIndicatorComponent.ctorParameters = () => [];
42
+ DataContextStateIndicatorComponent.propDecorators = {
43
+ dataContext: [{ type: Input }]
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9jb21tb24vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBU3JDLE1BQU0sT0FBTyxrQ0FBa0M7SUFVN0M7Ozs7Z0ZBSTRFO0lBRTVFO1FBZEE7Ozs7b0ZBSTRFO1FBRTVELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxDQUFDO0lBUzVFLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsUUFBUTtJQUNSLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxXQUFXLENBQUMsV0FBOEI7UUFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7O1lBM0NGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0NBQW9DO2dCQUM5Qywyd0RBQTREO2dCQUU1RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7Ozs7MEJBbUNFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SURhdGFDb250ZXh0PGFueT4+KG51bGwpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFDb250ZXh0KGRhdGFDb250ZXh0OiBJRGF0YUNvbnRleHQ8YW55Pikge1xuICAgIHRoaXMuZGF0YUNvbnRleHQkLm5leHQoZGF0YUNvbnRleHQpO1xuICB9XG5cbn1cbiJdfQ==
@@ -16,6 +16,7 @@ import { ElderDataToolbarComponent, ElderToolbarContentDirective } from './elder
16
16
  import { ElderSingleSortComponent } from './elder-single-sort/elder-single-sort.component';
17
17
  import { ElderSelectionMasterCheckboxComponent } from './selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
18
18
  import { DataContextSelectionDirective } from './selection/data-context-selection.directive';
19
+ import { DataContextStateIndicatorComponent } from './data-context-state-indicator/data-context-state-indicator.component';
19
20
  export { ElderSingleSortComponent } from './elder-single-sort/elder-single-sort.component';
20
21
  export { ElderDataToolbarComponent, ElderToolbarContentDirective } from './elder-data-toolbar/elder-data-toolbar.component';
21
22
  export { ElderSelectionMasterCheckboxComponent } from './selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
@@ -41,15 +42,17 @@ ElderDataCommonModule.decorators = [
41
42
  ElderToolbarContentDirective,
42
43
  ElderSingleSortComponent,
43
44
  ElderSelectionMasterCheckboxComponent,
44
- DataContextSelectionDirective
45
+ DataContextSelectionDirective,
46
+ DataContextStateIndicatorComponent
45
47
  ],
46
48
  exports: [
47
49
  ElderDataToolbarComponent,
48
50
  ElderToolbarContentDirective,
49
51
  ElderSingleSortComponent,
50
52
  ElderSelectionMasterCheckboxComponent,
51
- DataContextSelectionDirective
53
+ DataContextSelectionDirective,
54
+ DataContextStateIndicatorComponent
52
55
  ],
53
56
  },] }
54
57
  ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0YS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvY29tbW9uL2VsZGVyLWRhdGEtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDMUgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sdUZBQXVGLENBQUM7QUFDOUksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFN0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUEwQixNQUFNLG1EQUFtRCxDQUFDO0FBQ25KLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUN2Qyx1RkFBdUYsQ0FBQztBQUUvRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQWlDM0YsTUFBTSxPQUFPLHFCQUFxQjs7O1lBOUJqQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVksRUFBRSxZQUFZO29CQUUxQixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsaUJBQWlCLEVBQUUsYUFBYTtvQkFDaEMsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjO29CQUM5QyxvQkFBb0I7b0JBQ3BCLGVBQWUsRUFBRSxnQkFBZ0I7b0JBRWpDLGVBQWU7b0JBQ2YsZUFBZSxFQUFFLGdCQUFnQjtpQkFDbEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHlCQUF5QjtvQkFDekIsNEJBQTRCO29CQUM1Qix3QkFBd0I7b0JBQ3hCLHFDQUFxQztvQkFDckMsNkJBQTZCO2lCQUM5QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AseUJBQXlCO29CQUN6Qiw0QkFBNEI7b0JBQzVCLHdCQUF3QjtvQkFDeEIscUNBQXFDO29CQUNyQyw2QkFBNkI7aUJBQzlCO2FBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGbGV4TGF5b3V0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQge0VsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsIEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItZGF0YS10b29sYmFyL2VsZGVyLWRhdGEtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9lbGRlci1zaW5nbGUtc29ydC9lbGRlci1zaW5nbGUtc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0aW9uL2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3gvZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGlvbi9kYXRhLWNvbnRleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB7IEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCB9IGZyb20gJy4vZWxkZXItc2luZ2xlLXNvcnQvZWxkZXItc2luZ2xlLXNvcnQuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCwgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSwgRWxkZXJUb29sYmFyQ29udGVudFNsb3R9IGZyb20gJy4vZWxkZXItZGF0YS10b29sYmFyL2VsZGVyLWRhdGEtdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50fVxuICBmcm9tICcuL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50JztcblxuZXhwb3J0IHtNYXN0ZXJTZWxlY3Rpb25TdGF0ZX0gZnJvbSAnLi9zZWxlY3Rpb24vbWFzdGVyLXNlbGVjdGlvbi1zdGF0ZSc7XG5leHBvcnQge0RhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL3NlbGVjdGlvbi9kYXRhLWNvbnRleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLFxuXG4gICAgLy8gTWF0ZXJpYWxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLCBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0QmFkZ2VNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLFxuXG4gICAgLy8gdHJhbnNsYXRpb25zXG4gICAgVHJhbnNsYXRlTW9kdWxlLCBGbGV4TGF5b3V0TW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbGRlckRhdGFUb29sYmFyQ29tcG9uZW50LFxuICAgIEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmUsXG4gICAgRWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50LFxuICAgIEVsZGVyU2VsZWN0aW9uTWFzdGVyQ2hlY2tib3hDb21wb25lbnQsXG4gICAgRGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsXG4gICAgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSxcbiAgICBFbGRlclNpbmdsZVNvcnRDb21wb25lbnQsXG4gICAgRWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudCxcbiAgICBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZVxuICBdLFxuXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGF0YUNvbW1vbk1vZHVsZSB7IH1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0YS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvY29tbW9uL2VsZGVyLWRhdGEtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDMUgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sdUZBQXVGLENBQUM7QUFDOUksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFFekgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUEwQixNQUFNLG1EQUFtRCxDQUFDO0FBQ25KLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUN2Qyx1RkFBdUYsQ0FBQztBQUUvRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQW1DM0YsTUFBTSxPQUFPLHFCQUFxQjs7O1lBaENqQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVksRUFBRSxZQUFZO29CQUUxQixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsaUJBQWlCLEVBQUUsYUFBYTtvQkFDaEMsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjO29CQUM5QyxvQkFBb0I7b0JBQ3BCLGVBQWUsRUFBRSxnQkFBZ0I7b0JBRWpDLGVBQWU7b0JBQ2YsZUFBZSxFQUFFLGdCQUFnQjtpQkFDbEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHlCQUF5QjtvQkFDekIsNEJBQTRCO29CQUM1Qix3QkFBd0I7b0JBQ3hCLHFDQUFxQztvQkFDckMsNkJBQTZCO29CQUM3QixrQ0FBa0M7aUJBQ25DO2dCQUNELE9BQU8sRUFBRTtvQkFDUCx5QkFBeUI7b0JBQ3pCLDRCQUE0QjtvQkFDNUIsd0JBQXdCO29CQUN4QixxQ0FBcUM7b0JBQ3JDLDZCQUE2QjtvQkFDN0Isa0NBQWtDO2lCQUNuQzthQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RmxleExheW91dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHtFbGRlckRhdGFUb29sYmFyQ29tcG9uZW50LCBFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLWRhdGEtdG9vbGJhci9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCB9IGZyb20gJy4vZWxkZXItc2luZ2xlLXNvcnQvZWxkZXItc2luZ2xlLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEVsZGVyU2VsZWN0aW9uTWFzdGVyQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3Rpb24vZGF0YS1jb250ZXh0LXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IvZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBFbGRlclNpbmdsZVNvcnRDb21wb25lbnQgfSBmcm9tICcuL2VsZGVyLXNpbmdsZS1zb3J0L2VsZGVyLXNpbmdsZS1zb3J0LmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsIEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmUsIEVsZGVyVG9vbGJhckNvbnRlbnRTbG90fSBmcm9tICcuL2VsZGVyLWRhdGEtdG9vbGJhci9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudH1cbiAgZnJvbSAnLi9zZWxlY3Rpb24vZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7TWFzdGVyU2VsZWN0aW9uU3RhdGV9IGZyb20gJy4vc2VsZWN0aW9uL21hc3Rlci1zZWxlY3Rpb24tc3RhdGUnO1xuZXhwb3J0IHtEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9zZWxlY3Rpb24vZGF0YS1jb250ZXh0LXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSxcblxuICAgIC8vIE1hdGVyaWFsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSwgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJhZGdlTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSxcblxuICAgIC8vIHRyYW5zbGF0aW9uc1xuICAgIFRyYW5zbGF0ZU1vZHVsZSwgRmxleExheW91dE1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCxcbiAgICBFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlLFxuICAgIEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCxcbiAgICBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LFxuICAgIERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlLFxuICAgIERhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsXG4gICAgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSxcbiAgICBFbGRlclNpbmdsZVNvcnRDb21wb25lbnQsXG4gICAgRWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudCxcbiAgICBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50XG4gIF0sXG5cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEYXRhQ29tbW9uTW9kdWxlIHsgfVxuIl19
@@ -285,7 +285,7 @@ export class ElderTableComponent extends ElderDataViewBaseComponent {
285
285
  ElderTableComponent.decorators = [
286
286
  { type: Component, args: [{
287
287
  selector: 'elder-table, ebs-table',
288
- template: "\n<div fxLayout=\"column\" fxFlex\n class=\"elder-table\"\n [class.elder-mat-table-container]=\"!embedded\"\n [class.mat-elevation-z5]=\"float\"\n [class.elder-mat-table-flat]=\"!embedded && !float\"\n>\n\n <!-- Toolbar Rows -->\n <ng-container *ngFor=\"let toolbarRowTemplate of toolbarRowTemplates$ | async\">\n <ng-template *ngTemplateOutlet=\"toolbarRowTemplate; context: {$implicit: this}\">\n </ng-template>\n </ng-container>\n\n <!-- Scrollable Table -->\n <div fxLayout=\"column\" class=\"scrollable elder-table-scroll\"\n infiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !(canLoadMore$ | async)\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"dataContext$ | async\"\n [elderDataContextSelection]=\"dataContext$ | async\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selectionModel.toggle(entity) : null\"\n [checked]=\"selectionModel.observeSelection(entity) | async\"\n [disabled]=\"!selectionModel.isSelectable(entity)\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"(dataSelection.selectionState$ | async).anySelected\"\n >\n </mat-checkbox>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container *ngIf=\"(tableModel.displayedColumnsInner$ | async) as displayedColumnsInner\">\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n <tr mat-row class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner;\"\n [elderTableRow]=\"entity\"\n [class.dense]=\"dense\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n [class.elder-table-row-selected]=\"interactionMode == 'selection' && selectionModel.observeSelection(entity) | async\"\n (click)=\"onItemClick(entity)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n >\n </tr>\n <ng-container *ngIf=\"showFooter\">\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n </ng-container>\n </ng-container>\n </table>\n </div>\n\n <div fxLayout=\"column\" fxFlex fxLayoutAlign=\"center center\">\n\n <span class=\"elder-table-hint mat-body-1\" *ngIf=\"(dataContext?.data | async)?.length === 0 && !(dataContext?.status | async)?.hasError\">\n {{'No data available' | translate}}\n </span>\n\n <div *ngIf=\"(dataContext?.status | async)?.hasError\"\n fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"20px\">\n <mat-icon color=\"warn\">warning</mat-icon>\n <span class=\"hint mat-body-1\">{{'Error while loading data' | translate}}</span>\n </div>\n\n </div>\n\n <mat-progress-bar fxFlex=\"none\"\n [mode]=\"(dataContext?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"((dataContext?.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Optional Paginator Toolbar -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n fxFlex=\"none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Optional Continuation Footer -->\n <div *ngIf=\"isContinuable\" class=\"elder-table-footer\"\n fxLayout=\"row\" fxFlex=\"none\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\"\n style=\"padding-right: 10px\" >\n\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataContext?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\" color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataContinuable.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n\n</div>\n",
288
+ template: "\n<div fxLayout=\"column\" fxFlex\n class=\"elder-table\"\n [class.elder-mat-table-container]=\"!embedded\"\n [class.mat-elevation-z5]=\"float\"\n [class.elder-mat-table-flat]=\"!embedded && !float\"\n>\n\n <!-- Toolbar Rows -->\n <ng-container *ngFor=\"let toolbarRowTemplate of toolbarRowTemplates$ | async\">\n <ng-template *ngTemplateOutlet=\"toolbarRowTemplate; context: {$implicit: this}\">\n </ng-template>\n </ng-container>\n\n <!-- Scrollable Table -->\n <div fxLayout=\"column\" class=\"scrollable elder-table-scroll\"\n infiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !(canLoadMore$ | async)\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"dataContext$ | async\"\n [elderDataContextSelection]=\"dataContext$ | async\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selectionModel.toggle(entity) : null\"\n [checked]=\"selectionModel.observeSelection(entity) | async\"\n [disabled]=\"!selectionModel.isSelectable(entity)\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"(dataSelection.selectionState$ | async).anySelected\"\n >\n </mat-checkbox>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container *ngIf=\"(tableModel.displayedColumnsInner$ | async) as displayedColumnsInner\">\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n <tr mat-row class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner;\"\n [elderTableRow]=\"entity\"\n [class.dense]=\"dense\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n [class.elder-table-row-selected]=\"interactionMode == 'selection' && selectionModel.observeSelection(entity) | async\"\n (click)=\"onItemClick(entity)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n >\n </tr>\n <ng-container *ngIf=\"showFooter\">\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n </ng-container>\n </ng-container>\n </table>\n </div>\n\n <elder-data-context-state-indicator fxFlex [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n\n <mat-progress-bar fxFlex=\"none\"\n [mode]=\"(dataContext?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"((dataContext?.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Optional Paginator Toolbar -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n fxFlex=\"none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Optional Continuation Footer -->\n <div *ngIf=\"isContinuable\" class=\"elder-table-footer\"\n fxLayout=\"row\" fxFlex=\"none\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\"\n style=\"padding-right: 10px\" >\n\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataContext?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\" color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataContinuable.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n\n</div>\n",
289
289
  changeDetection: ChangeDetectionStrategy.OnPush,
290
290
  providers: [
291
291
  ElderTableProviders.ExistingOrNewTableModel,
@@ -326,4 +326,4 @@ ElderTableComponent.propDecorators = {
326
326
  displayedColumns: [{ type: Input }],
327
327
  selectionVisible: [{ type: Input }]
328
328
  };
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFFUixRQUFRLEVBQ1IsV0FBVyxFQUVYLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFlLGFBQWEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFD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QU07Ozt1QkFpRkwsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7MkJBR2xDLFNBQVMsU0FBQyxZQUFZO3lCQUt0QixlQUFlLFNBQUMsWUFBWTsyQkFHNUIsZUFBZSxTQUFDLHlCQUF5QjtzQkFHekMsZUFBZSxTQUFDLFNBQVM7c0JBVXpCLEtBQUs7NEJBU0wsS0FBSzswQkFVTCxLQUFLOzhCQUdMLEtBQUs7c0JBVUwsS0FBSzs0QkFHTCxLQUFLO3lCQUdMLEtBQUs7c0NBU0wsZUFBZSxTQUFDLDBCQUEwQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQzt3QkFTL0QsWUFBWSxTQUFDLHNCQUFzQjs4QkE0R25DLEtBQUs7bUJBS0wsS0FBSzsrQkE4Q0wsS0FBSzsrQkFVTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJ9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9tYXQtdGFibGUtZGF0YS1jb250ZXh0LWJpbmRpbmcnO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge01hdFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtNYXRDb2x1bW5EZWYsIE1hdFJvd0RlZiwgTWF0VGFibGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7SURhdGFDb250ZXh0LCBpc0RhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtDZGtDb2x1bW5EZWYsIENka1Jvd0RlZiwgQ2RrVGFibGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0QnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1idWlsZGVyJztcbmltcG9ydCB7RUxERVJfREFUQV9WSUVXfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5pbXBvcnQge0VsZGVyRGF0YVZpZXdTZWxlY3Rpb25Nb2RlfSBmcm9tICcuLi8uLi8uLi9zZWxlY3QvcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtJRGF0YVNvdXJjZSwgaXNEYXRhU291cmNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LWJhc2UnO1xuaW1wb3J0IHtFbGRlclRhYmxlTW9kZWx9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJztcbmltcG9ydCB7RWxkZXJUYWJsZVByb3ZpZGVyc30gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwtcHJvdmlkZXInO1xuaW1wb3J0IHtRdWVyeUxpc3RCaW5kaW5nfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvcXVlcnktbGlzdC1iaW5kaW5nJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsQ2RrVGFibGVCaW5kaW5nfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1jZGstdGFibGUtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXB9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXF1ZXJ5LWdyb3VwJztcbmltcG9ydCB7RWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4uL21vZGVsL2VsZGVyLWNvbHVtbi1sYXlvdXQnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIHByb2plY3RzIG1hcmtlZCBjb250ZW50IGludG8gYSB0b29sYmFyLlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tlbGRlclRhYmxlVG9vbGJhcl0nfSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlLCBlYnMtdGFibGUnLCAvLyBlYnMtdGFibGUgaXMgZGVwcmVjYXRlZFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRWxkZXJUYWJsZVByb3ZpZGVycy5FeGlzdGluZ09yTmV3VGFibGVNb2RlbCxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9EQVRBX1ZJRVcsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlclRhYmxlQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBMb2FkIG5leHQgY2h1bmsgYWZ0ZXIgY3VycmVudCBpcyBkb25lXG4gICAqL1xuICBwcml2YXRlIGxvYWROZXh0UXVldWVkID0gZmFsc2U7XG5cbiAgLy8vIFRhYmxlXG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgbWF0VGFibGU6IENka1RhYmxlPGFueT47XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpXG4gIHB1YmxpYyBtYXRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXRTb3J0OiBNYXRTb3J0O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q29sdW1uRGVmKVxuICBwdWJsaWMgY29sdW1uRGVmczogUXVlcnlMaXN0PENka0NvbHVtbkRlZj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zOiBRdWVyeUxpc3Q8RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpXG4gIHB1YmxpYyByb3dEZWZzOiBRdWVyeUxpc3Q8Q2RrUm93RGVmPGFueT4+O1xuXG4gIC8qKlxuICAgKiBGaWVsZCB0byBpZGVudGlmeSB0aGUgZGF0YSByZWNvcmRzIChJRCBmaWVsZCkuXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGluIGNhc2UgdGhlXG4gICAqIHVuZGVybHlpbmcgZGF0YSBpcyBhbiBBcnJheS5cbiAgICogSW4gY2FzZSBvZiBEYXRhQ29udGV4dCwgdGhlIElEIGZpZWxkIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlIGNvbnRleHQuXG4gICAqIEluIGNhc2Ugb2YgRGF0YVNvdXJjZSwgdGhlIElEIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgcGlja2VkIGZyb20gdGhlIERhdGFTb3VyY2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgZmllbGQgaXMgcHJlc2VudCBhbmQgdHJ1ZSxcbiAgICogdGhlIGNvcmVzcG9uZGluZyByb3cgaXMgbWFya2VkIHRvIGJlIGluIHRoZSBwcm9jZXNzZWQgb2YgYmVpbmcgcmVtb3ZlZC5cbiAgICpcbiAgICogSS5lLiAncmVtb3ZpbmcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVtb3ZpbmdGaWVsZDogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZpZWxkIGlzIHByZXNlbnQgYW5kIHRydWUsXG4gICAqIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBpcyBoaWRkZW4uXG4gICAqXG4gICAqIEkuZS4gJ2RlbGV0ZWQnXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZGVuRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9ucyA9IFszMCwgNTAsIDEwMCwgMTUwLCAyMDBdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgaWYgZWxkZXItdGFibGUgc2hvdWxkIGNsZWFuIHVwIHRoZVxuICAgKiBkYXRhLWNvbnRleHQgcmVzb3VyY2VzIGZvciB5b3UuXG4gICAqXG4gICAqIEluIG1vcmUgYWR2YW5jZWQgc2NlbmFyaW9zIHdoZXJlIHlvdSBwbGFuIHRvIHJldXNlIHRoZSBzYW1lIGRhdGEtY29udGV4dFxuICAgKiBzZXQgdGhpcyB0byBmYWxzZSBhbmQgcmVsZWFzZSB0aGUgcmVzb3VyY2VzIHlvdXJzZWxmLiAoZGF0YUNvbnRleHQuY2xvc2UpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2xlYW5VcCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGtlZXBTZWxlY3Rpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Rm9vdGVyID0gZmFsc2U7XG5cbiAgcHVibGljIGNhbkxvYWRNb3JlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIHRvdGFsJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgdG9vbGJhclxuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgcHVibGljIHRvb2xiYXJSb3dUZW1wbGF0ZVF1ZXJ5OiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSB0b29sYmFyUm93VGVtcGxhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55PltdPihbXSk7XG5cbiAgLyoqXG4gICAqIFNlbGVjdGlvbiBtb2RlbCBsaWZlIGN5Y2xlXG4gICAqL1xuICBwcml2YXRlIHNlbGVjdGlvbkxpZmVDeWNsZTogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZSlcbiAgcHJpdmF0ZSByb3dzUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlclRhYmxlUm93RGlyZWN0aXZlPGFueT4+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHJvd3Mgb2YgdGhpcyB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxhbnk+W10+KFtdKTtcblxuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoaXMgdGFibGUgZ3JvdXAgZXh0ZW5zaW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9leHRlbnNpb25Hcm91cEluZGV4OiBudW1iZXI7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHRhYmxlTW9kZWw6IEVsZGVyVGFibGVNb2RlbCxcbiAgICBAT3B0aW9uYWwoKSBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8YW55PixcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBkYXRhVmlld1NlbGVjdGlvbjogRWxkZXJEYXRhVmlld1NlbGVjdGlvbk1vZGUsXG4gICAgQE9wdGlvbmFsKCkgbWF0U29ydDogTWF0U29ydCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEV4dGVuc2lvbjogRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3U2VsZWN0aW9uKTtcbiAgICB0aGlzLl9tYXRTb3J0ID0gbWF0U29ydDtcbiAgICB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4ID0gKHBhcmVudEV4dGVuc2lvbj8uZXh0ZW5zaW9uR3JvdXBJbmRleCA/PyAwKSArIDE7XG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5kYXRhVmlld1NlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb25WaXNpYmxlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTXVsdGlFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmludGVyYWN0aW9uTW9kZSA9ICdzZWxlY3Rpb24nO1xuICAgICAgdGhpcy5mbG9hdCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgICB0aGlzLmRhdGFDb250ZXh0LmZpbHRlci51cGRhdGVGaWx0ZXJzKHRoaXMuZGF0YVZpZXdTZWxlY3Rpb24uZmlsdGVycyk7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuc29ydC51cGRhdGVTb3J0cyh0aGlzLmRhdGFWaWV3U2VsZWN0aW9uLnNvcnRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnRhYmxlTW9kZWwpXG4gICAgICAudGFibGUodGhpcy5tYXRUYWJsZSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXG4gICAgRWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cFxuICAgICAgLnN0YXJ0KHRoaXMudGFibGVNb2RlbCwgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKENvbHVtblBvc2l0aW9uU3BlYy5yZWxhdGl2ZVRvUHJldkdyb3VwKCdzdGFydCcpKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmcywgdGhpcy5lbGRlckNvbHVtbnMpXG4gICAgICAud2l0aFJvd0RlZnModGhpcy5yb3dEZWZzKVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuXG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMudG9vbGJhclJvd1RlbXBsYXRlUXVlcnkpXG4gICAgICAudXBkYXRlZCh0b29sYmFyUm93cyA9PiB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQodG9vbGJhclJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJcbiAgICAgIC5zdGFydCh0aGlzLmRhdGFDb250ZXh0JClcbiAgICAgIC53aXRoU29ydHModGhpcy50YWJsZU1vZGVsLnNvcnRzJClcbiAgICAgIC53aXRoUGFnaW5hdG9yKG9mKHRoaXMubWF0UGFnaW5hdG9yKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy5yb3dzUXVlcnkpXG4gICAgICAudXBkYXRlZChyb3dzID0+IHRoaXMucm93cyQubmV4dChyb3dzKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQoW3RlbXBsYXRlXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogQXJyYXk8YW55PiB8IElEYXRhU291cmNlPGFueT4gfCBJRGF0YUNvbnRleHQ8YW55Pikge1xuXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuXG4gICAgbGV0IGRjOiBJRGF0YUNvbnRleHQ8YW55PjtcblxuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KClcbiAgICAgICAgLmxvY2FsU29ydCgpXG4gICAgICAgIC5idWlsZExvY2FsKGRhdGEsIHRoaXMuaWRGaWVsZCk7IC8vIFBvdGVudGlhbCBNZW1vcnkgbGVhayAoU2VlIGF1dG9DbGVhblVwKVxuICAgICAgZGMuc3RhcnQoKTtcbiAgICB9IGVsc2UgaWYgKGlzRGF0YVNvdXJjZShkYXRhKSkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKVxuICAgICAgICAubG9jYWxTb3J0KClcbiAgICAgICAgLnJlbG9hZE9uTG9jYWxDaGFuZ2VzKClcbiAgICAgICAgLmJ1aWxkKGRhdGEpOyAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFDb250ZXh0KGRhdGEpKSB7XG4gICAgICBkYyA9IGRhdGE7XG4gICAgfSBlbHNlIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKS5idWlsZEVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhdGEgbXVzdCBlaXRoZXIgYmUgYW4gQXJyYXksIElEYXRhU291cmNlIG9yIElEYXRhQ29udGV4dCwgYnV0IHdhczogJyArICh0eXBlb2YgZGF0YSkpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gZGM7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dFNldChkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuICAgIHRoaXMudG90YWwkID0gZGF0YS50b3RhbC5waXBlKFxuICAgICAgbWFwKHRvdGFsID0+IHRvdGFsID8gdG90YWwgKyAnJyA6ICfiiJ4nKVxuICAgICk7XG5cbiAgICB0aGlzLnNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGEpO1xuXG4gICAgLy8gdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpOyAvLyBUT0RPIFN1cHBvcnQgY2hhbmdlYWJsZSBkYXRhLWNvbnRleHQgZm9yIHN0YXRpYyBhcnJheSB1c2UgY2FzZVxuXG4gICAgaWYgKHRoaXMuaXNDb250aW51YWJsZSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhXSkucGlwZShcbiAgICAgICAgbWFwKChbbG9hZGluZywgaGFzTW9yZURhdGFdKSA9PiAhbG9hZGluZyAmJiBoYXNNb3JlRGF0YSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gb2YoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheWVkQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zID0gZGlzcGxheWVkQ29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zO1xuICB9XG5cbiAgLyoqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gY29sdW1uIGlzIHNob3duLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGlvblZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlID0gdmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLnNlbGVjdGlvblZpc2libGU7XG4gIH1cblxuICAvKlxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBhY3RpdmVJdGVtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJsZUFjdGl2YXRpb24uYWN0aXZlSXRlbSQ7XG4gIH0qL1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogYW55KTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuaGFzTW9yZURhdGFTbmFwc2hvdCkge1xuXG4gICAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuc25hcHNob3QuaXNMb2FkaW5nKSB7XG4gICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udGludWFibGUubG9hZE1vcmUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgbG9hZGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2FkTmV4dFF1ZXVlZCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0TW9yZURhdGFab25lZChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHJhY2tCeUZuKCk6IFRyYWNrQnlGdW5jdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gKGluZGV4OiBudW1iZXIsIGVudGl0eTogYW55KSA9PiB0aGlzLmdldElkKGVudGl0eSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGE6IElEYXRhQ29udGV4dDxhbnk+KTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25MaWZlQ3ljbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlLnVuc3Vic2NyaWJlKCk7IC8vIENsZWFuIHVwIHByZXZpb3VzIHN1YlxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlID0gZGF0YS5kYXRhLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShuZXdEYXRhID0+IHtcblxuICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAvLyBJZiBrZWVwIHNlbGVjdGlvbiBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmhhc1ZhbHVlKSB7XG5cbiAgICAgICAgICAvLyBDaGVjayB0aGF0IGFsbCBzZWxlY3RlZCB2YWx1ZXMgYXJlIHN0aWxsIHByZXNlbnQgb3IgcmVtb3ZlIHRoZW1cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQ8YW55PihcbiAgICAgICAgICAgIG5ld0RhdGFcbiAgICAgICAgICAgICAgLm1hcChkID0+IHRoaXMuZ2V0SWQoZCkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IG5vTG9uZ2VyQXZhaWxhYmxlSWRzID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25TbmFwc2hvdFxuICAgICAgICAgICAgLm1hcChzZWxlY3RlZCA9PiB0aGlzLmdldElkKHNlbGVjdGVkKSlcbiAgICAgICAgICAgIC5maWx0ZXIoc2VsZWN0ZWRJZCA9PiAhZXhpc3RpbmdJZHMuaGFzKHNlbGVjdGVkSWQpKTtcblxuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3RJZHMobm9Mb25nZXJBdmFpbGFibGVJZHMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgY2xlYW4gdXAgb2YgdGhlIGN1cnJlbnQgZGF0YSBjb250ZXh0IGlmIGF1dG8gY2xlYW4gdXAgaXMgZW5hYmxlZC5cbiAgICovXG4gIHByaXZhdGUgYXV0b0NsZWFuVXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xlYW5VcCAmJiB0aGlzLmRhdGFDb250ZXh0KSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUmVsZWFzaW5nIERhdGFDb250ZXh0IHJlc291cmNlcyB0byBwcmV2ZW50IG1lbW9yeSBsZWFrLiBbY2xlYW5VcF09XCJ0cnVlXCInKTtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFFBQVEsRUFFUixRQUFRLEVBQ1IsV0FBVyxFQUVYLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFlLGFBQWEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFD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QU07Ozt1QkFpRkwsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7MkJBR2xDLFNBQVMsU0FBQyxZQUFZO3lCQUt0QixlQUFlLFNBQUMsWUFBWTsyQkFHNUIsZUFBZSxTQUFDLHlCQUF5QjtzQkFHekMsZUFBZSxTQUFDLFNBQVM7c0JBVXpCLEtBQUs7NEJBU0wsS0FBSzswQkFVTCxLQUFLOzhCQUdMLEtBQUs7c0JBVUwsS0FBSzs0QkFHTCxLQUFLO3lCQUdMLEtBQUs7c0NBU0wsZUFBZSxTQUFDLDBCQUEwQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQzt3QkFTL0QsWUFBWSxTQUFDLHNCQUFzQjs4QkE0R25DLEtBQUs7bUJBS0wsS0FBSzsrQkE4Q0wsS0FBSzsrQkFVTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJ9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9tYXQtdGFibGUtZGF0YS1jb250ZXh0LWJpbmRpbmcnO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge01hdFNvcnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtNYXRDb2x1bW5EZWYsIE1hdFJvd0RlZiwgTWF0VGFibGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7SURhdGFDb250ZXh0LCBpc0RhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtDZGtDb2x1bW5EZWYsIENka1Jvd0RlZiwgQ2RrVGFibGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0QnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1idWlsZGVyJztcbmltcG9ydCB7RUxERVJfREFUQV9WSUVXfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5pbXBvcnQge0VsZGVyRGF0YVZpZXdTZWxlY3Rpb25Nb2RlfSBmcm9tICcuLi8uLi8uLi9zZWxlY3QvcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtJRGF0YVNvdXJjZSwgaXNEYXRhU291cmNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJztcbmltcG9ydCB7RWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LWJhc2UnO1xuaW1wb3J0IHtFbGRlclRhYmxlTW9kZWx9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJztcbmltcG9ydCB7RWxkZXJUYWJsZVByb3ZpZGVyc30gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwtcHJvdmlkZXInO1xuaW1wb3J0IHtRdWVyeUxpc3RCaW5kaW5nfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvcXVlcnktbGlzdC1iaW5kaW5nJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsQ2RrVGFibGVCaW5kaW5nfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1jZGstdGFibGUtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXB9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXF1ZXJ5LWdyb3VwJztcbmltcG9ydCB7RWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtDb2x1bW5Qb3NpdGlvblNwZWN9IGZyb20gJy4uL21vZGVsL2VsZGVyLWNvbHVtbi1sYXlvdXQnO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIHByb2plY3RzIG1hcmtlZCBjb250ZW50IGludG8gYSB0b29sYmFyLlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tlbGRlclRhYmxlVG9vbGJhcl0nfSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlLCBlYnMtdGFibGUnLCAvLyBlYnMtdGFibGUgaXMgZGVwcmVjYXRlZFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRWxkZXJUYWJsZVByb3ZpZGVycy5FeGlzdGluZ09yTmV3VGFibGVNb2RlbCxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9EQVRBX1ZJRVcsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlclRhYmxlQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBMb2FkIG5leHQgY2h1bmsgYWZ0ZXIgY3VycmVudCBpcyBkb25lXG4gICAqL1xuICBwcml2YXRlIGxvYWROZXh0UXVldWVkID0gZmFsc2U7XG5cbiAgLy8vIFRhYmxlXG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgbWF0VGFibGU6IENka1RhYmxlPGFueT47XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpXG4gIHB1YmxpYyBtYXRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXRTb3J0OiBNYXRTb3J0O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q29sdW1uRGVmKVxuICBwdWJsaWMgY29sdW1uRGVmczogUXVlcnlMaXN0PENka0NvbHVtbkRlZj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zOiBRdWVyeUxpc3Q8RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpXG4gIHB1YmxpYyByb3dEZWZzOiBRdWVyeUxpc3Q8Q2RrUm93RGVmPGFueT4+O1xuXG4gIC8qKlxuICAgKiBGaWVsZCB0byBpZGVudGlmeSB0aGUgZGF0YSByZWNvcmRzIChJRCBmaWVsZCkuXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGluIGNhc2UgdGhlXG4gICAqIHVuZGVybHlpbmcgZGF0YSBpcyBhbiBBcnJheS5cbiAgICogSW4gY2FzZSBvZiBEYXRhQ29udGV4dCwgdGhlIElEIGZpZWxkIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlIGNvbnRleHQuXG4gICAqIEluIGNhc2Ugb2YgRGF0YVNvdXJjZSwgdGhlIElEIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgcGlja2VkIGZyb20gdGhlIERhdGFTb3VyY2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgZmllbGQgaXMgcHJlc2VudCBhbmQgdHJ1ZSxcbiAgICogdGhlIGNvcmVzcG9uZGluZyByb3cgaXMgbWFya2VkIHRvIGJlIGluIHRoZSBwcm9jZXNzZWQgb2YgYmVpbmcgcmVtb3ZlZC5cbiAgICpcbiAgICogSS5lLiAncmVtb3ZpbmcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVtb3ZpbmdGaWVsZDogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZpZWxkIGlzIHByZXNlbnQgYW5kIHRydWUsXG4gICAqIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBpcyBoaWRkZW4uXG4gICAqXG4gICAqIEkuZS4gJ2RlbGV0ZWQnXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZGVuRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9ucyA9IFszMCwgNTAsIDEwMCwgMTUwLCAyMDBdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgaWYgZWxkZXItdGFibGUgc2hvdWxkIGNsZWFuIHVwIHRoZVxuICAgKiBkYXRhLWNvbnRleHQgcmVzb3VyY2VzIGZvciB5b3UuXG4gICAqXG4gICAqIEluIG1vcmUgYWR2YW5jZWQgc2NlbmFyaW9zIHdoZXJlIHlvdSBwbGFuIHRvIHJldXNlIHRoZSBzYW1lIGRhdGEtY29udGV4dFxuICAgKiBzZXQgdGhpcyB0byBmYWxzZSBhbmQgcmVsZWFzZSB0aGUgcmVzb3VyY2VzIHlvdXJzZWxmLiAoZGF0YUNvbnRleHQuY2xvc2UpXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2xlYW5VcCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGtlZXBTZWxlY3Rpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Rm9vdGVyID0gZmFsc2U7XG5cbiAgcHVibGljIGNhbkxvYWRNb3JlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIHRvdGFsJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgdG9vbGJhclxuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmfSlcbiAgcHVibGljIHRvb2xiYXJSb3dUZW1wbGF0ZVF1ZXJ5OiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSB0b29sYmFyUm93VGVtcGxhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55PltdPihbXSk7XG5cbiAgLyoqXG4gICAqIFNlbGVjdGlvbiBtb2RlbCBsaWZlIGN5Y2xlXG4gICAqL1xuICBwcml2YXRlIHNlbGVjdGlvbkxpZmVDeWNsZTogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZSlcbiAgcHJpdmF0ZSByb3dzUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlclRhYmxlUm93RGlyZWN0aXZlPGFueT4+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHJvd3Mgb2YgdGhpcyB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxhbnk+W10+KFtdKTtcblxuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoaXMgdGFibGUgZ3JvdXAgZXh0ZW5zaW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9leHRlbnNpb25Hcm91cEluZGV4OiBudW1iZXI7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHRhYmxlTW9kZWw6IEVsZGVyVGFibGVNb2RlbCxcbiAgICBAT3B0aW9uYWwoKSBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8YW55PixcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBkYXRhVmlld1NlbGVjdGlvbjogRWxkZXJEYXRhVmlld1NlbGVjdGlvbk1vZGUsXG4gICAgQE9wdGlvbmFsKCkgbWF0U29ydDogTWF0U29ydCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEV4dGVuc2lvbjogRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3U2VsZWN0aW9uKTtcbiAgICB0aGlzLl9tYXRTb3J0ID0gbWF0U29ydDtcbiAgICB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4ID0gKHBhcmVudEV4dGVuc2lvbj8uZXh0ZW5zaW9uR3JvdXBJbmRleCA/PyAwKSArIDE7XG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5kYXRhVmlld1NlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb25WaXNpYmxlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTXVsdGlFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmludGVyYWN0aW9uTW9kZSA9ICdzZWxlY3Rpb24nO1xuICAgICAgdGhpcy5mbG9hdCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgICB0aGlzLmRhdGFDb250ZXh0LmZpbHRlci51cGRhdGVGaWx0ZXJzKHRoaXMuZGF0YVZpZXdTZWxlY3Rpb24uZmlsdGVycyk7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuc29ydC51cGRhdGVTb3J0cyh0aGlzLmRhdGFWaWV3U2VsZWN0aW9uLnNvcnRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnRhYmxlTW9kZWwpXG4gICAgICAudGFibGUodGhpcy5tYXRUYWJsZSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuXG4gICAgRWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cFxuICAgICAgLnN0YXJ0KHRoaXMudGFibGVNb2RlbCwgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKENvbHVtblBvc2l0aW9uU3BlYy5yZWxhdGl2ZVRvUHJldkdyb3VwKCdzdGFydCcpKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmcywgdGhpcy5lbGRlckNvbHVtbnMpXG4gICAgICAud2l0aFJvd0RlZnModGhpcy5yb3dEZWZzKVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuXG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMudG9vbGJhclJvd1RlbXBsYXRlUXVlcnkpXG4gICAgICAudXBkYXRlZCh0b29sYmFyUm93cyA9PiB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQodG9vbGJhclJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJcbiAgICAgIC5zdGFydCh0aGlzLmRhdGFDb250ZXh0JClcbiAgICAgIC53aXRoU29ydHModGhpcy50YWJsZU1vZGVsLnNvcnRzJClcbiAgICAgIC53aXRoUGFnaW5hdG9yKG9mKHRoaXMubWF0UGFnaW5hdG9yKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy5yb3dzUXVlcnkpXG4gICAgICAudXBkYXRlZChyb3dzID0+IHRoaXMucm93cyQubmV4dChyb3dzKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuYXV0b0NsZWFuVXAoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQoW3RlbXBsYXRlXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogQXJyYXk8YW55PiB8IElEYXRhU291cmNlPGFueT4gfCBJRGF0YUNvbnRleHQ8YW55Pikge1xuXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuXG4gICAgbGV0IGRjOiBJRGF0YUNvbnRleHQ8YW55PjtcblxuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KClcbiAgICAgICAgLmxvY2FsU29ydCgpXG4gICAgICAgIC5idWlsZExvY2FsKGRhdGEsIHRoaXMuaWRGaWVsZCk7IC8vIFBvdGVudGlhbCBNZW1vcnkgbGVhayAoU2VlIGF1dG9DbGVhblVwKVxuICAgICAgZGMuc3RhcnQoKTtcbiAgICB9IGVsc2UgaWYgKGlzRGF0YVNvdXJjZShkYXRhKSkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKVxuICAgICAgICAubG9jYWxTb3J0KClcbiAgICAgICAgLnJlbG9hZE9uTG9jYWxDaGFuZ2VzKClcbiAgICAgICAgLmJ1aWxkKGRhdGEpOyAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFDb250ZXh0KGRhdGEpKSB7XG4gICAgICBkYyA9IGRhdGE7XG4gICAgfSBlbHNlIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKS5idWlsZEVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhdGEgbXVzdCBlaXRoZXIgYmUgYW4gQXJyYXksIElEYXRhU291cmNlIG9yIElEYXRhQ29udGV4dCwgYnV0IHdhczogJyArICh0eXBlb2YgZGF0YSkpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gZGM7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dFNldChkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuICAgIHRoaXMudG90YWwkID0gZGF0YS50b3RhbC5waXBlKFxuICAgICAgbWFwKHRvdGFsID0+IHRvdGFsID8gdG90YWwgKyAnJyA6ICfiiJ4nKVxuICAgICk7XG5cbiAgICB0aGlzLnNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGEpO1xuXG4gICAgLy8gdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpOyAvLyBUT0RPIFN1cHBvcnQgY2hhbmdlYWJsZSBkYXRhLWNvbnRleHQgZm9yIHN0YXRpYyBhcnJheSB1c2UgY2FzZVxuXG4gICAgaWYgKHRoaXMuaXNDb250aW51YWJsZSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhXSkucGlwZShcbiAgICAgICAgbWFwKChbbG9hZGluZywgaGFzTW9yZURhdGFdKSA9PiAhbG9hZGluZyAmJiBoYXNNb3JlRGF0YSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gb2YoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheWVkQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zID0gZGlzcGxheWVkQ29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zO1xuICB9XG5cbiAgLyoqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gY29sdW1uIGlzIHNob3duLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGlvblZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlID0gdmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLnNlbGVjdGlvblZpc2libGU7XG4gIH1cblxuICAvKlxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBhY3RpdmVJdGVtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJsZUFjdGl2YXRpb24uYWN0aXZlSXRlbSQ7XG4gIH0qL1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogYW55KTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuaGFzTW9yZURhdGFTbmFwc2hvdCkge1xuXG4gICAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuc25hcHNob3QuaXNMb2FkaW5nKSB7XG4gICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udGludWFibGUubG9hZE1vcmUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgbG9hZGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2FkTmV4dFF1ZXVlZCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0TW9yZURhdGFab25lZChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHJhY2tCeUZuKCk6IFRyYWNrQnlGdW5jdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gKGluZGV4OiBudW1iZXIsIGVudGl0eTogYW55KSA9PiB0aGlzLmdldElkKGVudGl0eSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGE6IElEYXRhQ29udGV4dDxhbnk+KTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25MaWZlQ3ljbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlLnVuc3Vic2NyaWJlKCk7IC8vIENsZWFuIHVwIHByZXZpb3VzIHN1YlxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlID0gZGF0YS5kYXRhLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShuZXdEYXRhID0+IHtcblxuICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAvLyBJZiBrZWVwIHNlbGVjdGlvbiBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmhhc1ZhbHVlKSB7XG5cbiAgICAgICAgICAvLyBDaGVjayB0aGF0IGFsbCBzZWxlY3RlZCB2YWx1ZXMgYXJlIHN0aWxsIHByZXNlbnQgb3IgcmVtb3ZlIHRoZW1cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQ8YW55PihcbiAgICAgICAgICAgIG5ld0RhdGFcbiAgICAgICAgICAgICAgLm1hcChkID0+IHRoaXMuZ2V0SWQoZCkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IG5vTG9uZ2VyQXZhaWxhYmxlSWRzID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25TbmFwc2hvdFxuICAgICAgICAgICAgLm1hcChzZWxlY3RlZCA9PiB0aGlzLmdldElkKHNlbGVjdGVkKSlcbiAgICAgICAgICAgIC5maWx0ZXIoc2VsZWN0ZWRJZCA9PiAhZXhpc3RpbmdJZHMuaGFzKHNlbGVjdGVkSWQpKTtcblxuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3RJZHMobm9Mb25nZXJBdmFpbGFibGVJZHMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgY2xlYW4gdXAgb2YgdGhlIGN1cnJlbnQgZGF0YSBjb250ZXh0IGlmIGF1dG8gY2xlYW4gdXAgaXMgZW5hYmxlZC5cbiAgICovXG4gIHByaXZhdGUgYXV0b0NsZWFuVXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xlYW5VcCAmJiB0aGlzLmRhdGFDb250ZXh0KSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUmVsZWFzaW5nIERhdGFDb250ZXh0IHJlc291cmNlcyB0byBwcmV2ZW50IG1lbW9yeSBsZWFrLiBbY2xlYW5VcF09XCJ0cnVlXCInKTtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==