@one-paragon/angular-utilities 1.2.7 → 1.2.8-beta.3

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.
@@ -26,6 +26,6 @@ export interface State extends EntityState<ActionStatus> {
26
26
  }
27
27
  export declare const initialState: StatusState;
28
28
  export declare const getStatusState: import("@ngrx/store").MemoizedSelector<object, State, import("@ngrx/store").DefaultProjectorFn<State>>;
29
- export declare const selectIds: import("@ngrx/store").MemoizedSelector<object, string[] | number[], (entityState: EntityState<ActionStatus>) => string[] | number[]>, selectEntities: import("@ngrx/store").MemoizedSelector<object, import("@ngrx/entity").Dictionary<ActionStatus>, (entityState: EntityState<ActionStatus>) => import("@ngrx/entity").Dictionary<ActionStatus>>, selectAll: import("@ngrx/store").MemoizedSelector<object, ActionStatus[], (entityState: EntityState<ActionStatus>) => ActionStatus[]>, selectTotal: import("@ngrx/store").MemoizedSelector<object, number, (entityState: EntityState<ActionStatus>) => number>;
29
+ export declare const selectIds: import("@ngrx/store").MemoizedSelector<object, number[] | string[], (entityState: EntityState<ActionStatus>) => number[] | string[]>, selectEntities: import("@ngrx/store").MemoizedSelector<object, import("@ngrx/entity").Dictionary<ActionStatus>, (entityState: EntityState<ActionStatus>) => import("@ngrx/entity").Dictionary<ActionStatus>>, selectAll: import("@ngrx/store").MemoizedSelector<object, ActionStatus[], (entityState: EntityState<ActionStatus>) => ActionStatus[]>, selectTotal: import("@ngrx/store").MemoizedSelector<object, number, (entityState: EntityState<ActionStatus>) => number>;
30
30
  export declare const selectEntity: (id: string) => import("@ngrx/store").MemoizedSelector<object, any, (s1: import("@ngrx/entity").Dictionary<ActionStatus>) => any>;
31
31
  export declare function actionStatusReducer(state: StatusState | undefined, action: Action): StatusState;
@@ -12,8 +12,9 @@ export * from './table-builder/classes/table-builder';
12
12
  export * from './table-builder/classes/table-builder-general-settings';
13
13
  export * from './table-builder/components';
14
14
  export * from './table-builder/directives';
15
+ export * from './table-builder/enums/filterTypes';
15
16
  export * from './rxjs';
16
17
  export * from './utilities';
17
18
  export * from './action-state';
18
19
  export * from './ngrx';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFHckMsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyxzREFBc0QsQ0FBQztBQUVyRSxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLDRCQUE0QixDQUFDO0FBTzNDLGNBQWMsUUFBUSxDQUFBO0FBRXRCLGNBQWMsYUFBYSxDQUFBO0FBRTNCLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgaHR0cC1yZXF1ZXN0LXN0YXRlXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1yZXF1ZXN0LXN0YXRlL3J4anMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtcmVxdWVzdC1zdGF0ZSc7XHJcblxyXG5cclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL3RhYmxlLWJ1aWxkZXIubW9kdWxlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9jbGFzc2VzL01hdFRhYmxlT2JzZXJ2YWJsZURhdGFTb3VyY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NsYXNzZXMvdGFibGUtYnVpbGRlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2RpcmVjdGl2ZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUge0ZpbHRlclR5cGV9IGZyb20gJy4vdGFibGUtYnVpbGRlci9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcblxyXG5leHBvcnQgdHlwZSB7RmlsdGVyVHlwZXN9IGZyb20gJy4vdGFibGUtYnVpbGRlci9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcblxyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9yeGpzJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91dGlsaXRpZXMnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1zdGF0ZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL25ncngnO1xyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFHckMsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsY0FBYyxzREFBc0QsQ0FBQztBQUVyRSxjQUFjLHVDQUF1QyxDQUFDO0FBRXRELGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsbUNBQW1DLENBQUM7QUFHbEQsY0FBYyxRQUFRLENBQUE7QUFFdEIsY0FBYyxhQUFhLENBQUE7QUFFM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBodHRwLXJlcXVlc3Qtc3RhdGVcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtcmVxdWVzdC1zdGF0ZS9kaXJlY3RpdmVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLXJlcXVlc3Qtc3RhdGUvcnhqcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1yZXF1ZXN0LXN0YXRlJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvdGFibGUtYnVpbGRlci5tb2R1bGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1idWlsZGVyL2NsYXNzZXMvTWF0VGFibGVPYnNlcnZhYmxlRGF0YVNvdXJjZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtYnVpbGRlci9jbGFzc2VzL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvZGlyZWN0aXZlcyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWJ1aWxkZXIvZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vcnhqcydcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0aWVzJ1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tc3RhdGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9uZ3J4JztcclxuIl19
@@ -155,10 +155,7 @@ export class GenericTableComponent {
155
155
  this.state.on(this.selection.changed, c => this.selection$.emit(c));
156
156
  }
157
157
  $selectableData = computed(() => {
158
- if (this.state.$viewType() === 'paginator') {
159
- return this.state.props().dataSource.data;
160
- }
161
- else if (this.state.$viewType() === 'virtual paginator') {
158
+ if (this.state.$viewType() === 'paginator' || this.state.$viewType() === 'virtual paginator') {
162
159
  const previousPageRecords = this.state.state().currentPage * this.state.state().pageSize;
163
160
  return this.$data().slice(previousPageRecords, previousPageRecords + this.state.state().pageSize);
164
161
  }
@@ -252,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
252
249
  }], selection$: [{
253
250
  type: Output
254
251
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFvQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBYSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBZSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFhMUQsTUFBTSxPQUFPLHFCQUFxQjtJQUN0QixLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdCLGFBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6QyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUdwRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFFBQVEsRUFBQyxLQUFLLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBQ0QsUUFBUSxDQUFVO0lBQ2xCLElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDbEMsSUFBRyxPQUFPLEVBQUMsQ0FBQztZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFZLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksT0FBTyxLQUF5QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUEsQ0FBQyxDQUFDO0lBQ2pELFlBQVksQ0FBcUI7SUFDMUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUNoRCxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixJQUFJLENBQTZCO0lBQ2pDLGNBQWMsQ0FBNEI7SUFDMUMsV0FBVyxDQUE0QjtJQUVULEtBQUssQ0FBaUI7SUFDbkIsUUFBUSxDQUFlO0lBRWpFLGNBQWMsQ0FBWTtJQUMxQixJQUFJLEdBQWMsRUFBRSxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDekIsU0FBUyxFQUFFO1lBQ1QsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pELEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUN4RDtRQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUztLQUN2QixDQUFDLENBQUM7SUFDSCxTQUFTLEdBQXFCLEVBQUUsQ0FBQztJQUNqQyxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQ3ZCLFNBQVMsR0FBdUMsRUFBRSxDQUFDO0lBQ25ELFdBQVcsQ0FBdUI7SUFDbEMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFFLENBQUM7SUFDMUQsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQixRQUFRLENBQXFCO0lBRTdCO1FBQ0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjLEdBQUcsQ0FBQyxLQUFZLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDdEMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzNDLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFDLENBQUM7Z0JBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDckgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUM7U0FDbEksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQzlELE9BQU8sZUFBZSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDMUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFGLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQzNDLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMzRCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUdELGFBQWEsQ0FBQyxDQUFTLEVBQUUsR0FBK0I7UUFDdEQsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVyxFQUFFLFFBQWdCLEVBQUUsVUFBbUI7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUcsRUFBRyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWtCO1FBQzVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFHLGFBQWEsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFO2dCQUMzRSxLQUFLLEVBQUUsQ0FBQztnQkFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNsRCxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUIsR0FBRyxDQUFDLElBQXFCLEVBQUMsRUFBRTtRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNmLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUE7SUFFRCxTQUFTLENBQXdCO0lBQ3ZCLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztJQUNoRSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRSxFQUFFLENBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLDBCQUEwQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRyxlQUFlLENBQUMsT0FBZ0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFNLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM5QixJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVcsQ0FBQyxJQUFJLENBQUM7UUFDN0MsQ0FBQzthQUFNLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxtQkFBbUIsRUFBQyxDQUFDO1lBQ3hELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDekYsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEcsQ0FBQzthQUFLLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLEVBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztJQUNILGVBQWUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELGFBQWE7UUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDcEQsT0FBTyxXQUFXLEtBQUssT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsWUFBWTtRQUNWLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQ25ELGtCQUFrQixDQUFxQixDQUFDLENBQUMsRUFDekMsR0FBRyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUU7UUFDMUQsSUFBSSx1QkFBdUIsRUFBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxFQUFDLEtBQUssRUFBQyxHQUFHLHVCQUF1QixJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLEVBQUMsS0FBSyxFQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVaLFNBQVMsUUFBUTtZQUNmLE9BQU8sQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLENBQUMsSUFBRyxDQUFDLElBQUksdUJBQXVCLElBQUksSUFBSSxDQUFDO1FBQ2hGLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsY0FBYyxDQUErRDtJQUM3RSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDMUMsSUFBRyxHQUFHLElBQUksU0FBUyxJQUFJLEdBQUcsS0FBSyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDckMsSUFBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFLLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBeUMsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDO1lBQ3RILE9BQVEsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLGdCQUEwQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUU7UUFDbkcsQ0FBQztRQUNELElBQUcsT0FBTyxDQUFDLENBQUMseUJBQXlCLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEQsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQztJQUUvQyxDQUFDLENBQUMsQ0FBQztJQUVMLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMxQyxJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUssQ0FBQyxDQUFDLHlCQUF5QixDQUFDLGdCQUF5QyxFQUFFLG1CQUFtQixFQUFDLENBQUM7WUFDekgsT0FBUSxDQUFDLENBQUMseUJBQXlCLENBQUMsZ0JBQTBDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNyRyxDQUFDO1FBQ0QsSUFBRyxPQUFPLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFDLENBQUM7WUFDL0QsT0FBTyxDQUFDLENBQUMseUJBQXlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7dUdBak9oRixxQkFBcUI7MkZBQXJCLHFCQUFxQiw4N0JBeUJyQixRQUFRLHlGQUNSLFdBQVcsbUZDNUR4QixnNUdBK0VBLHM5QkRqREksY0FBYyx5N0NBQUUsY0FBYywwaUJBQUUsaUJBQWlCLG9ZQUFFLGVBQWUsMklBQUUsYUFBYSxvTEFBRSxnQkFBZ0IsbUpBQ25HLGdCQUFnQiwwQkFBRSxTQUFTLHlDQUFFLFlBQVk7OzJGQUdoQyxxQkFBcUI7a0JBWGpDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0I7d0JBQ25HLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZO3FCQUMxQzt3REFZWSxPQUFPO3NCQUFuQixLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFaUMsS0FBSztzQkFBM0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNLLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFzSDlCLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RvciwgRXZlbnRFbWl0dGVyLCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRSb3dEZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb2x1bW5CdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1uLWJ1aWxkZXIvY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGljdGlvbmFyeSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IHByZXZpb3VzQW5kQ3VycmVudCB9IGZyb20gJy4uLy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb2x1bW5JbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Db2x1bW5JbmZvJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0LCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBGdW5jdGlvblBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRyYW5zZm9ybUNyZWF0b3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvcic7XHJcbmltcG9ydCB7IGluaXRJbmRleFN5bWJvbCB9IGZyb20gJy4uL3RhYmxlLWNvbnRhaW5lci90YWJsZS1jb250YWluZXIuaGVscGVycy9zb3J0LXN0YXRlLmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1nZW5lcmljLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0VGFibGVNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSwgQXN5bmNQaXBlLCBGdW5jdGlvblBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJvdGVjdGVkIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuICBwcml2YXRlIHRyYW5zZm9ybUNyZWF0b3IgPSBpbmplY3QoVHJhbnNmb3JtQ3JlYXRvcik7XHJcblxyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIHRoaXMuc3RhdGUuc2V0VXNlckRlZmluZWRPcmRlcih7IG5ld09yZGVyOmV2ZW50LmN1cnJlbnRJbmRleCwgb2xkT3JkZXI6ZXZlbnQucHJldmlvdXNJbmRleCB9KVxyXG4gIH1cclxuICBfdHJhY2tCeT86IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgdHJhY2tCeSh0cmFja0J5OiBzdHJpbmcpe1xyXG4gICAgaWYodHJhY2tCeSl7XHJcbiAgICAgIHRoaXMuX3RyYWNrQnkgPSB0cmFja0J5O1xyXG4gICAgICB0aGlzLnRyYWNrQnlGdW5jdGlvbiA9IChpbmRleDpudW1iZXIsIGl0ZW06IGFueSkgPT4gaXRlbVt0cmFja0J5XTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0VXBTZWxlY3Rpb25zKHRyYWNrQnkpO1xyXG4gIH1cclxuICBnZXQgdHJhY2tCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fdHJhY2tCeSB9XHJcbiAgQElucHV0KCkgZGlzcGxheURhdGEkITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgJGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxhbnlbXT4oeyBhbGlhczogJ2RhdGEnIH0pXHJcbiAgZGF0YSQgPSB0b09ic2VydmFibGUodGhpcy4kZGF0YSk7XHJcbiAgQElucHV0KCkgcm93cyE6IFF1ZXJ5TGlzdDxNYXRSb3dEZWY8YW55Pj47XHJcbiAgQElucHV0KCkgY29sdW1uQnVpbGRlcnMhOiBDb2x1bW5CdWlsZGVyQ29tcG9uZW50W107XHJcbiAgQElucHV0KCkgY29sdW1uSW5mb3MhOiBPYnNlcnZhYmxlPENvbHVtbkluZm9bXT47XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUsIHsgc3RhdGljOiB0cnVlIH0pIHRhYmxlITogTWF0VGFibGU8YW55PjtcclxuICBAVmlld0NoaWxkKENka0Ryb3BMaXN0LCB7IHN0YXRpYzogdHJ1ZSB9KSBkcm9wTGlzdCE6IENka0Ryb3BMaXN0O1xyXG5cclxuICBjdXJyZW50Q29sdW1ucyE6IHN0cmluZ1tdO1xyXG4gIGtleXM6IHN0cmluZyBbXSA9IFtdO1xyXG4gIF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIHtwcm92aWRlOiBNYXRUYWJsZSwgdXNlRmFjdG9yeTogKCk9PiB0aGlzLnRhYmxlIH0sXHJcbiAgICAgIHtwcm92aWRlOiBDZGtEcm9wTGlzdCwgdXNlRmFjdG9yeTogKCk9PiB0aGlzLmRyb3BMaXN0IH0sXHJcbiAgICBdLFxyXG4gICAgcGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gIH0pO1xyXG4gIHJvd0RlZkFyciA6TWF0Um93RGVmPGFueT5bXSA9IFtdO1xyXG4gIGNvbHVtbnM6c3RyaW5nIFtdID0gW107XHJcbiAgbXlDb2x1bW5zOiBEaWN0aW9uYXJ5PENvbHVtbkJ1aWxkZXJDb21wb25lbnQ+ID0ge307XHJcbiAgc2hvd0hlYWRlciQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIG9mZnNldCQgPSB0aGlzLnN0YXRlLnNlbGVjdCggcyA9PiBzLnZpcnR1YWxTY3JvbGxPZmZzZXQgKTtcclxuICBvZmZzZXRJbmRleCA9IDA7XHJcbiAgZGF0YVZpZXchOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnNldFVwU2VsZWN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgZGVmYXVsdFRyYWNrQnkgPSAoaW5kZXg6bnVtYmVyLCBpdGVtOiBhbnkpID0+IGl0ZW1baW5pdEluZGV4U3ltYm9sXTtcclxuICB0cmFja0J5RnVuY3Rpb24gPSB0aGlzLmRlZmF1bHRUcmFja0J5O1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnJvd3MgJiYgdGhpcy5yb3dzICYmIHRoaXMubXlDb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVSb3dEZWZzKFsuLi50aGlzLnJvd3NdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUucHJvcHMoKS5zZWxlY3Rpb25Db2x1bW4pIHtcclxuICAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ3NlbGVjdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN0YXRlLnByb3BzKCkuaW5kZXhDb2x1bW4pIHtcclxuICAgICB0aGlzLmNvbHVtbnMucHVzaCgnaW5kZXgnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuY29sdW1uSW5mb3MsIGNvbHVtbnMgPT4ge1xyXG4gICAgICBjb2x1bW5zLmZvckVhY2goY2kgPT4gdGhpcy5hZGRNZXRhRGF0YShjaSkpXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemVSb3dEZWZzKFsuLi50aGlzLnJvd3NdKTtcclxuXHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuc3RhdGUuZGlzcGxheWVkQ29sdW1ucyQsIGtleXMgPT4ge1xyXG4gICAgICB0aGlzLmtleXMgPSBbLi4udGhpcy5jb2x1bW5zLCAuLi5rZXlzXTtcclxuICAgICAgdGhpcy5yb3dEZWZBcnI/LmZvckVhY2gocm93ID0+IHJvdy5jb2x1bW5zID0gdGhpcy5rZXlzKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnNlbGVjdGFibGVEYXRhJCwgKGRhdGEpID0+IHtcclxuICAgICAgaWYodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoKXtcclxuICAgICAgICBjb25zdCB0cmFja0J5RnVuY3Rpb24gPSB0aGlzLnRyYWNrQnkgPyAocykgPT4gZGF0YS5ldmVyeShkID0+ICBkW3RoaXMudHJhY2tCeSFdICE9PSBzW3RoaXMudHJhY2tCeSFdKSA6IHMgPT4gIWRhdGEuaW5jbHVkZXMocyk7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmZpbHRlcih0cmFja0J5RnVuY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0KC4uLnJlbW92ZWQpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc2hvd0hlYWRlciQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlcikpKTtcclxuXHJcbiAgICB0aGlzLnNob3dGb290ZXJSb3ckID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZGlzcGxheURhdGEkLnBpcGUobWFwKGQgPT4gISFkLmxlbmd0aCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgICB0aGlzLnN0YXRlLm1ldGFEYXRhQXJyYXkkLnBpcGUobWFwKG1ldGFEYXRhID0+IG1ldGFEYXRhLnNvbWUobWQgPT4gISFtZC5hZGRpdGlvbmFsPy5mb290ZXIpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICAgIHRoaXMuY29sdW1uSW5mb3MucGlwZShtYXAoY29sdW1uSW5mb3MgPT4gY29sdW1uSW5mb3Muc29tZShjaSA9PiAhIWNpLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgIF0pLnBpcGUobWFwKChbaGFzRGF0YSwgaGFzRm9vdGVyRGVmLCBoYXNDdXN0b21Gb290ZXJdKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc1NlbGVjdGlvbkNvbHVtbiA9IHRoaXMuc3RhdGUucHJvcHMoKS5zZWxlY3Rpb25Db2x1bW47XHJcbiAgICAgIHJldHVybiBoYXNDdXN0b21Gb290ZXIgfHwgKGhhc0RhdGEgJiYgKGhhc0Zvb3RlckRlZiB8fCBoYXNTZWxlY3Rpb25Db2x1bW4pKSA/ICdyZWd1bGFyLWZvb3RlcicgOiBoYXNEYXRhID8gJ25vLWZvb3RlcicgOiAnc21hbGwtZm9vdGVyJztcclxuICAgIH0pKTtcclxuXHJcbiAgICBpZih0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS51c2VQYWdpbmF0b3IgfHwgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlVmlydHVhbFNjcm9sbCkge1xyXG4gICAgICB0aGlzLnN0YXRlLm9uKHRoaXMuc3RhdGUuc3RhdGUkLCAoc3RhdGUpID0+IHtcclxuICAgICAgICB0aGlzLm9mZnNldEluZGV4ID0gc3RhdGUudmlydHVhbEVuZHMuc3RhcnQ7XHJcbiAgICAgICAgaWYodGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlUGFnaW5hdG9yKSB7XHJcbiAgICAgICAgICB0aGlzLm9mZnNldEluZGV4ICs9IChzdGF0ZS5wYWdlU2l6ZSAqIHN0YXRlLmN1cnJlbnRQYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGlzR3JvdXBIZWFkZXIoXzogbnVtYmVyLCByb3c6IHsgaXNHcm91cEhlYWRlcjogYm9vbGVhbiB9KSB7XHJcbiAgICByZXR1cm4gcm93LmlzR3JvdXBIZWFkZXI7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZChrZXk6IHN0cmluZywgZ3JvdXBLZXk6IHN0cmluZywgaXNFeHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGVFeHBhbmRlZEdyb3Vwcyh7IGtleSAsIGlzRXhwYW5kZWQsIGdyb3VwS2V5IH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTWV0YURhdGEoY29sdW1uOiBDb2x1bW5JbmZvKSB7XHJcbiAgICBjb25zdCBjb2x1bW5CdWlsZGVyID0gdGhpcy5teUNvbHVtbnNbY29sdW1uLm1ldGFEYXRhLmtleV07XHJcbiAgICBpZihjb2x1bW5CdWlsZGVyKSB7XHJcbiAgICAgIGNvbHVtbkJ1aWxkZXIubWV0YURhdGEgPSBjb2x1bW4ubWV0YURhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KENvbHVtbkJ1aWxkZXJDb21wb25lbnQsIHtcclxuICAgICAgICBpbmRleDogMCxcclxuICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvclxyXG4gICAgICB9KTtcclxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmN1c3RvbUNlbGwgPSBjb2x1bW4uY3VzdG9tQ2VsbDtcclxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlLm1ldGFEYXRhID0gY29sdW1uLm1ldGFEYXRhO1xyXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YSQgPSB0aGlzLmRhdGEkO1xyXG4gICAgICB0aGlzLm15Q29sdW1uc1tjb2x1bW4ubWV0YURhdGEua2V5XSA9IGNvbXBvbmVudC5pbnN0YW5jZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVSb3dEZWZzID0gKGRlZnM6TWF0Um93RGVmPGFueT5bXSk9PntcclxuICAgIHRoaXMucm93RGVmQXJyLmZvckVhY2gocj0+dGhpcy50YWJsZS5yZW1vdmVSb3dEZWYocikpO1xyXG4gICAgdGhpcy5yb3dEZWZBcnIgPSBkZWZzO1xyXG4gICAgZGVmcy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICByLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnMuY29uY2F0KE9iamVjdC52YWx1ZXModGhpcy5teUNvbHVtbnMpLmZpbHRlcihjID0+IGMubWV0YURhdGEuZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuKS5tYXAoYyA9PiBjLm1ldGFEYXRhLmtleSkpO1xyXG4gICAgICBpZiAodGhpcy50YWJsZSkge1xyXG4gICAgICAgIHRoaXMudGFibGUuYWRkUm93RGVmKHIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbiEgOiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb24kID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2U8YW55Pj4oKTtcclxuICBtYXN0ZXJUb2dnbGVDaGVja2VkJCA9IHRoaXMuc2VsZWN0aW9uJC5waXBlKG1hcCgoKT0+dGhpcy5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiB0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG4gIG1hc3RlclRvZ2dsZUluZGV0ZXJtaW5hdGUkID0gdGhpcy5zZWxlY3Rpb24kLnBpcGUobWFwKCgpPT50aGlzLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICF0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG4gIHNldFVwU2VsZWN0aW9ucyh0cmFja0J5Pzogc3RyaW5nKXtcclxuICAgIHRoaXMuc2VsZWN0aW9uID0gdHJhY2tCeSA/IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdLCB0cnVlLCAoYSwgYikgPT4gYVt0cmFja0J5XSA9PT0gYlt0cmFja0J5XSkgOiBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlLCBbXSk7XHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQsIGMgPT4gdGhpcy5zZWxlY3Rpb24kLmVtaXQoYykpO1xyXG4gIH1cclxuICAkc2VsZWN0YWJsZURhdGEgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZih0aGlzLnN0YXRlLiR2aWV3VHlwZSgpID09PSAncGFnaW5hdG9yJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5wcm9wcygpLmRhdGFTb3VyY2UhLmRhdGE7XHJcbiAgICB9IGVsc2UgaWYodGhpcy5zdGF0ZS4kdmlld1R5cGUoKSA9PT0gJ3ZpcnR1YWwgcGFnaW5hdG9yJyl7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzUGFnZVJlY29yZHMgPSB0aGlzLnN0YXRlLnN0YXRlKCkuY3VycmVudFBhZ2UgKiB0aGlzLnN0YXRlLnN0YXRlKCkucGFnZVNpemU7XHJcbiAgICAgIHJldHVybiB0aGlzLiRkYXRhKCkuc2xpY2UocHJldmlvdXNQYWdlUmVjb3JkcywgcHJldmlvdXNQYWdlUmVjb3JkcyArIHRoaXMuc3RhdGUuc3RhdGUoKS5wYWdlU2l6ZSk7XHJcbiAgICB9ZWxzZSBpZih0aGlzLnN0YXRlLiR2aWV3VHlwZSgpID09PSAnYWxsJyl7XHJcbiAgICAgIHJldHVybiB0aGlzLiRkYXRhKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfSk7XHJcbiAgc2VsZWN0YWJsZURhdGEkID0gdG9PYnNlcnZhYmxlKHRoaXMuJHNlbGVjdGFibGVEYXRhKTtcclxuICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy4kc2VsZWN0YWJsZURhdGEoKT8ubGVuZ3RoIHx8IDA7XHJcbiAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XHJcbiAgfVxyXG5cclxuICAvKiogU2VsZWN0cyBhbGwgcm93cyBpZiB0aGV5IGFyZSBub3QgYWxsIHNlbGVjdGVkOyBvdGhlcndpc2UgY2xlYXIgc2VsZWN0aW9uLiAqL1xyXG4gIG1hc3RlclRvZ2dsZSgpIHtcclxuICAgIGlmKHRoaXMuaXNBbGxTZWxlY3RlZCgpKXtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuJHNlbGVjdGFibGVEYXRhKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGFibGVXaWR0aCA9IHRoaXMuc3RhdGUuZ2V0VXNlckRlZmluZWRUYWJsZVNpemUkLnBpcGUoXHJcbiAgICBwcmV2aW91c0FuZEN1cnJlbnQ8bnVtYmVyIHwgdW5kZWZpbmVkPigwKSxcclxuICAgIG1hcCgoW3ByZXZpb3VzVXNlckRlZmluZWRXaWR0aCwgY3VycmVudFVzZXJEZWZpbmVkV2lkdGhdKSA9PiB7XHJcbiAgICAgIGlmKCBjdXJyZW50VXNlckRlZmluZWRXaWR0aCl7XHJcbiAgICAgICAgcmV0dXJuICh7d2lkdGg6YCR7Y3VycmVudFVzZXJEZWZpbmVkV2lkdGh9cHhgfSk7XHJcbiAgICAgIH0gaWYoIHdhc1Jlc2V0KCkgKXtcclxuICAgICAgICByZXR1cm4gKHt3aWR0aDonaW5pdGlhbCd9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKHt9KTtcclxuXHJcbiAgICAgIGZ1bmN0aW9uIHdhc1Jlc2V0KCl7XHJcbiAgICAgICAgcmV0dXJuIChwcmV2aW91c1VzZXJEZWZpbmVkV2lkdGggPz8gMCkgPj0wICYmIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoID09IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgKTtcclxuXHJcbiAgc2hvd0Zvb3RlclJvdyQhOiBPYnNlcnZhYmxlPCdyZWd1bGFyLWZvb3RlcicgfCAnbm8tZm9vdGVyJyB8ICdzbWFsbC1mb290ZXInPjtcclxuICBnZXRUcmFuc2Zvcm0gPSAoa2V5OiBzdHJpbmcsIHZhbDogc3RyaW5nKSA9PiB7XHJcbiAgICBpZih2YWwgPT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJ251bGwnKSByZXR1cm4gJyc7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1DcmVhdG9yLmNyZWF0ZVRyYW5zZm9ybWVyKHRoaXMubXlDb2x1bW5zW2tleV0ubWV0YURhdGEsIHRydWUpKHsgW2tleV06IHZhbH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHZhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICRyb3dIZWlnaHQgPSB0aGlzLnN0YXRlLnNlbGVjdFNpZ25hbChzID0+IHtcclxuICAgICAgaWYodGhpcy5zdGF0ZS4kaXNWaXJ0dWFsKCkgJiYgKHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zKT8uZW5mb3JjZVJvd0hlaWdodCl7XHJcbiAgICAgICAgcmV0dXJuIChzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucykhLnJvd0hlaWdodCArICdweCcgO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHR5cGVvZiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mucm93SGVpZ2h0ID09PSAnbnVtYmVyJyl7XHJcbiAgICAgICAgcmV0dXJuIHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy5yb3dIZWlnaHQgKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mucm93SGVpZ2h0O1xyXG4gICAgICBcclxuICAgIH0pO1xyXG5cclxuICAkaGVhZGVySGVpZ2h0ID0gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwocyA9PiB7XHJcbiAgICBpZih0aGlzLnN0YXRlLiRpc1ZpcnR1YWwoKSAmJiAocy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnMpPy5lbmZvcmNlSGVhZGVySGVpZ2h0KXtcclxuICAgICAgcmV0dXJuIChzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucykhLmhlYWRlckhlaWdodCArICdweCc7XHJcbiAgICB9XHJcbiAgICBpZih0eXBlb2Ygcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLmhlYWRlckhlaWdodCA9PT0gJ251bWJlcicpe1xyXG4gICAgICByZXR1cm4gcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLmhlYWRlckhlaWdodCArICdweCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLmhlYWRlckhlaWdodDtcclxuICB9KTtcclxuXHJcbiAgJHN0aWNreUZvb3RlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUucHJvcHMoKS5zdGlja3lGb290ZXIgfHwgdGhpcy5zdGF0ZS4kaXNWaXJ0dWFsKCkpO1xyXG59XHJcbiIsIjxtYXQtdGFibGVcclxuICBjZGtEcm9wTGlzdFxyXG4gIGNka0Ryb3BMaXN0TG9ja0F4aXM9J3gnXHJcbiAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxyXG4gIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuICBjbGFzcz1cInRhYmxlLWRyYWctbGlzdFwiXHJcbiAgW2NsYXNzXT1cIihzaG93Rm9vdGVyUm93JCB8IGFzeW5jKVwiXHJcbiAgI3RhYmxlXHJcbiAgW2RhdGFTb3VyY2VdPVwic3RhdGUucHJvcHMoKS5kYXRhU291cmNlIVwiXHJcbiAgW3RyYWNrQnldPVwidHJhY2tCeUZ1bmN0aW9uXCJcclxuICBbc3R5bGVdPVwidGFibGVXaWR0aCB8IGFzeW5jIFwiXHJcbj5cclxuXHJcbiAgPCEtLSBzZWxlY3QgY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XHJcblxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiAgY2xhc3M9XCJzZWxlY3QtY29sdW1uXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIiEhKG1hc3RlclRvZ2dsZUNoZWNrZWQkIHwgYXN5bmMpXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJtYXN0ZXJUb2dnbGVJbmRldGVybWluYXRlJCB8IGFzeW5jXCI+XHJcbiAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcblxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwic2VsZWN0LWNvbHVtblwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKHJvdykgOiBudWxsXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCIvPlxyXG4gICAgPC9tYXQtY2VsbD5cclxuXHJcbiAgICA8bWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmIGNsYXNzPVwic2VsZWN0LWNvbHVtblwiPlxyXG4gICAgICB7eyBzZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19XHJcbiAgICA8L21hdC1mb290ZXItY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gIDwhLS0gaW5kZXggY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJmLW1hdC1oZWFkZXItY2VsbFwiIGNsYXNzPVwiaW5kZXgtY29sdW1uXCI+I1xyXG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaSA9IGluZGV4O1wiIGNsYXNzPVwiaW5kZXgtY29sdW1uXCI+XHJcbiAgICAgIHt7IDEgKyBpICsgb2Zmc2V0SW5kZXggfX1cclxuICAgIDwvbWF0LWNlbGw+XHJcbiAgICA8bWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmIGNsYXNzPVwiaW5kZXgtY29sdW1uXCI+PC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gR3JvdXBpbmcgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEhlYWRlclwiPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICBAbGV0IGV4cGFuZGVkID0gKHN0YXRlLmdldElzRXhwYW5kZWQgfCBmdW5jIDogcm93LmtleSA6IHJvdy5ncm91cE5hbWUgKTtcclxuICAgICAgPGRpdiBbc3R5bGUucGFkZGluZ0xlZnRdPVwicm93LnBhZGRpbmcgKyAncHggIWltcG9ydGFudCdcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2V0RXhwYW5kZWQocm93LmtleSwgcm93Lmdyb3VwTmFtZSwgIWV4cGFuZGVkKCkpO1wiPlxyXG4gICAgICAgICAgQGlmICghZXhwYW5kZWQoKSkge1xyXG4gICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB7eyBnZXRUcmFuc2Zvcm0gfCBmdW5jIDogcm93LmtleSA6ICByb3cuZ3JvdXBIZWFkZXJEaXNwbGF5IH19ICh7eyByb3cubGVuZ3RoIH19KVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0ZS5wcm9wcygpLmdyb3VwSGVhZGVyVGVtcGxhdGUhOyBjb250ZXh0OiB7IGVsZW1lbnQ6IHJvdyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgQGlmIChzaG93SGVhZGVyJCB8IGFzeW5jKSB7XHJcbiAgICA8bWF0LWhlYWRlci1yb3cgW3N0eWxlLmhlaWdodF09XCIkaGVhZGVySGVpZ2h0KClcIiBbc3R5bGUubWluLWhlaWdodF09XCIkaGVhZGVySGVpZ2h0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICptYXRIZWFkZXJSb3dEZWY9XCJrZXlzOyBzdGlja3k6IHN0YXRlLnByb3BzKCkuaXNTdGlja3lcIiBbc3R5bGUudG9wLnB4XT1cIigob2Zmc2V0JCB8IGFzeW5jKSEgKiAtMSlcIi8+XHJcbiAgfVxyXG4gIDxtYXQtcm93IFtzdHlsZS5oZWlnaHRdPVwiJHJvd0hlaWdodCgpXCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwiJHJvd0hlaWdodCgpXCJcclxuICAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczoga2V5czsgbGV0IGkgPSBpbmRleFwiLz5cclxuICA8bWF0LXJvdyBbc3R5bGUuaGVpZ2h0XT1cIiRyb3dIZWlnaHQoKVwiIFtzdHlsZS5taW4taGVpZ2h0XT1cIiRyb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnZ3JvdXBIZWFkZXInXTsgd2hlbjogaXNHcm91cEhlYWRlclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCIvPlxyXG4gIDxtYXQtZm9vdGVyLXJvdyBbc3R5bGUuaGVpZ2h0XT1cIiRyb3dIZWlnaHQoKVwiIFtzdHlsZS5taW4taGVpZ2h0XT1cIiRyb3dIZWlnaHQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICptYXRGb290ZXJSb3dEZWY9XCIoc2hvd0Zvb3RlclJvdyQgfCBhc3luYykgPT09ICdyZWd1bGFyLWZvb3RlcicgPyBrZXlzIDogW107IHN0aWNreTogJHN0aWNreUZvb3RlcigpIFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiJHN0aWNreUZvb3RlcigpID8gKG9mZnNldCQgfCBhc3luYykgOiB1bmRlZmluZWRcIi8+XHJcblxyXG48L21hdC10YWJsZT5cclxuIl19
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFvQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBYSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBZSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENB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QUFDO3VHQS9OaEYscUJBQXFCOzJGQUFyQixxQkFBcUIsODdCQXlCckIsUUFBUSx5RkFDUixXQUFXLG1GQzVEeEIsZzVHQStFQSxzOUJEakRJLGNBQWMseTdDQUFFLGNBQWMsMGlCQUFFLGlCQUFpQixvWUFBRSxlQUFlLDJJQUFFLGFBQWEsb0xBQUUsZ0JBQWdCLG1KQUNuRyxnQkFBZ0IsMEJBQUUsU0FBUyx5Q0FBRSxZQUFZOzsyRkFHaEMscUJBQXFCO2tCQVhqQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCO3dCQUNuRyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWTtxQkFDMUM7d0RBWVksT0FBTztzQkFBbkIsS0FBSztnQkFRRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRWlDLEtBQUs7c0JBQTNDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSyxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBc0g5QixVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIElucHV0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NvbnRhaW5lclJlZiwgSW5qZWN0b3IsIEV2ZW50RW1pdHRlciwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Um93RGVmLCBNYXRUYWJsZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uQ2hhbmdlLCBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29sdW1uQnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBwcmV2aW91c0FuZEN1cnJlbnQgfSBmcm9tICcuLi8uLi8uLi9yeGpzL3J4anMtb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29sdW1uSW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQ29sdW1uSW5mbyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRnVuY3Rpb25QaXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBUcmFuc2Zvcm1DcmVhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBpbml0SW5kZXhTeW1ib2wgfSBmcm9tICcuLi90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLmhlbHBlcnMvc29ydC1zdGF0ZS5oZWxwZXJzJztcclxuaW1wb3J0IHsgVmlydHVhbFNjcm9sbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItZ2VuZXJpYy10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dlbmVyaWMtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRhYmxlTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsIEFzeW5jUGlwZSwgRnVuY3Rpb25QaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByb3RlY3RlZCBzdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuICBwcml2YXRlIHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yID0gaW5qZWN0KFRyYW5zZm9ybUNyZWF0b3IpO1xyXG5cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICB0aGlzLnN0YXRlLnNldFVzZXJEZWZpbmVkT3JkZXIoeyBuZXdPcmRlcjpldmVudC5jdXJyZW50SW5kZXgsIG9sZE9yZGVyOmV2ZW50LnByZXZpb3VzSW5kZXggfSlcclxuICB9XHJcbiAgX3RyYWNrQnk/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IHRyYWNrQnkodHJhY2tCeTogc3RyaW5nKXtcclxuICAgIGlmKHRyYWNrQnkpe1xyXG4gICAgICB0aGlzLl90cmFja0J5ID0gdHJhY2tCeTtcclxuICAgICAgdGhpcy50cmFja0J5RnVuY3Rpb24gPSAoaW5kZXg6bnVtYmVyLCBpdGVtOiBhbnkpID0+IGl0ZW1bdHJhY2tCeV07XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFVwU2VsZWN0aW9ucyh0cmFja0J5KTtcclxuICB9XHJcbiAgZ2V0IHRyYWNrQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX3RyYWNrQnkgfVxyXG4gIEBJbnB1dCgpIGRpc3BsYXlEYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICRkYXRhID0gaW5wdXQucmVxdWlyZWQ8YW55W10+KHsgYWxpYXM6ICdkYXRhJyB9KVxyXG4gIGRhdGEkID0gdG9PYnNlcnZhYmxlKHRoaXMuJGRhdGEpO1xyXG4gIEBJbnB1dCgpIHJvd3MhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPGFueT4+O1xyXG4gIEBJbnB1dCgpIGNvbHVtbkJ1aWxkZXJzITogQ29sdW1uQnVpbGRlckNvbXBvbmVudFtdO1xyXG4gIEBJbnB1dCgpIGNvbHVtbkluZm9zITogT2JzZXJ2YWJsZTxDb2x1bW5JbmZvW10+O1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZSE6IE1hdFRhYmxlPGFueT47XHJcbiAgQFZpZXdDaGlsZChDZGtEcm9wTGlzdCwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcExpc3QhOiBDZGtEcm9wTGlzdDtcclxuXHJcbiAgY3VycmVudENvbHVtbnMhOiBzdHJpbmdbXTtcclxuICBrZXlzOiBzdHJpbmcgW10gPSBbXTtcclxuICBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG4gIGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICB7cHJvdmlkZTogTWF0VGFibGUsIHVzZUZhY3Rvcnk6ICgpPT4gdGhpcy50YWJsZSB9LFxyXG4gICAgICB7cHJvdmlkZTogQ2RrRHJvcExpc3QsIHVzZUZhY3Rvcnk6ICgpPT4gdGhpcy5kcm9wTGlzdCB9LFxyXG4gICAgXSxcclxuICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcclxuICB9KTtcclxuICByb3dEZWZBcnIgOk1hdFJvd0RlZjxhbnk+W10gPSBbXTtcclxuICBjb2x1bW5zOnN0cmluZyBbXSA9IFtdO1xyXG4gIG15Q29sdW1uczogRGljdGlvbmFyeTxDb2x1bW5CdWlsZGVyQ29tcG9uZW50PiA9IHt9O1xyXG4gIHNob3dIZWFkZXIkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBvZmZzZXQkID0gdGhpcy5zdGF0ZS5zZWxlY3QoIHMgPT4gcy52aXJ0dWFsU2Nyb2xsT2Zmc2V0ICk7XHJcbiAgb2Zmc2V0SW5kZXggPSAwO1xyXG4gIGRhdGFWaWV3ITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5zZXRVcFNlbGVjdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIGRlZmF1bHRUcmFja0J5ID0gKGluZGV4Om51bWJlciwgaXRlbTogYW55KSA9PiBpdGVtW2luaXRJbmRleFN5bWJvbF07XHJcbiAgdHJhY2tCeUZ1bmN0aW9uID0gdGhpcy5kZWZhdWx0VHJhY2tCeTtcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5yb3dzICYmIHRoaXMucm93cyAmJiB0aGlzLm15Q29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplUm93RGVmcyhbLi4udGhpcy5yb3dzXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnN0YXRlLnByb3BzKCkuc2VsZWN0aW9uQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuY29sdW1ucy5wdXNoKCdzZWxlY3QnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zdGF0ZS5wcm9wcygpLmluZGV4Q29sdW1uKSB7XHJcbiAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ2luZGV4Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLmNvbHVtbkluZm9zLCBjb2x1bW5zID0+IHtcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKGNpID0+IHRoaXMuYWRkTWV0YURhdGEoY2kpKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUm93RGVmcyhbLi4udGhpcy5yb3dzXSk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnN0YXRlLmRpc3BsYXllZENvbHVtbnMkLCBrZXlzID0+IHtcclxuICAgICAgdGhpcy5rZXlzID0gWy4uLnRoaXMuY29sdW1ucywgLi4ua2V5c107XHJcbiAgICAgIHRoaXMucm93RGVmQXJyPy5mb3JFYWNoKHJvdyA9PiByb3cuY29sdW1ucyA9IHRoaXMua2V5cylcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3RhdGUub24odGhpcy5zZWxlY3RhYmxlRGF0YSQsIChkYXRhKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCl7XHJcbiAgICAgICAgY29uc3QgdHJhY2tCeUZ1bmN0aW9uID0gdGhpcy50cmFja0J5ID8gKHMpID0+IGRhdGEuZXZlcnkoZCA9PiAgZFt0aGlzLnRyYWNrQnkhXSAhPT0gc1t0aGlzLnRyYWNrQnkhXSkgOiBzID0+ICFkYXRhLmluY2x1ZGVzKHMpO1xyXG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIodHJhY2tCeUZ1bmN0aW9uKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdCguLi5yZW1vdmVkKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnNob3dIZWFkZXIkID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzJC5waXBlKG1hcChzZXR0aW5ncyA9PiAhKHNldHRpbmdzLmhpZGVDb2x1bW5IZWFkZXIpKSk7XHJcblxyXG4gICAgdGhpcy5zaG93Rm9vdGVyUm93JCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLmRpc3BsYXlEYXRhJC5waXBlKG1hcChkID0+ICEhZC5sZW5ndGgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgICAgdGhpcy5zdGF0ZS5tZXRhRGF0YUFycmF5JC5waXBlKG1hcChtZXRhRGF0YSA9PiBtZXRhRGF0YS5zb21lKG1kID0+ICEhbWQuYWRkaXRpb25hbD8uZm9vdGVyKSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgICB0aGlzLmNvbHVtbkluZm9zLnBpcGUobWFwKGNvbHVtbkluZm9zID0+IGNvbHVtbkluZm9zLnNvbWUoY2kgPT4gISFjaS5jdXN0b21DZWxsPy5jb2x1bW5EZWY/LmZvb3RlckNlbGwpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICBdKS5waXBlKG1hcCgoW2hhc0RhdGEsIGhhc0Zvb3RlckRlZiwgaGFzQ3VzdG9tRm9vdGVyXSkgPT4ge1xyXG4gICAgICBjb25zdCBoYXNTZWxlY3Rpb25Db2x1bW4gPSB0aGlzLnN0YXRlLnByb3BzKCkuc2VsZWN0aW9uQ29sdW1uO1xyXG4gICAgICByZXR1cm4gaGFzQ3VzdG9tRm9vdGVyIHx8IChoYXNEYXRhICYmIChoYXNGb290ZXJEZWYgfHwgaGFzU2VsZWN0aW9uQ29sdW1uKSkgPyAncmVndWxhci1mb290ZXInIDogaGFzRGF0YSA/ICduby1mb290ZXInIDogJ3NtYWxsLWZvb3Rlcic7XHJcbiAgICB9KSk7XHJcblxyXG4gICAgaWYodGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlUGFnaW5hdG9yIHx8IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwpIHtcclxuICAgICAgdGhpcy5zdGF0ZS5vbih0aGlzLnN0YXRlLnN0YXRlJCwgKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vZmZzZXRJbmRleCA9IHN0YXRlLnZpcnR1YWxFbmRzLnN0YXJ0O1xyXG4gICAgICAgIGlmKHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVBhZ2luYXRvcikge1xyXG4gICAgICAgICAgdGhpcy5vZmZzZXRJbmRleCArPSAoc3RhdGUucGFnZVNpemUgKiBzdGF0ZS5jdXJyZW50UGFnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBpc0dyb3VwSGVhZGVyKF86IG51bWJlciwgcm93OiB7IGlzR3JvdXBIZWFkZXI6IGJvb2xlYW4gfSkge1xyXG4gICAgcmV0dXJuIHJvdy5pc0dyb3VwSGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWQoa2V5OiBzdHJpbmcsIGdyb3VwS2V5OiBzdHJpbmcsIGlzRXhwYW5kZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlRXhwYW5kZWRHcm91cHMoeyBrZXkgLCBpc0V4cGFuZGVkLCBncm91cEtleSB9KTtcclxuICB9XHJcblxyXG4gIGFkZE1ldGFEYXRhKGNvbHVtbjogQ29sdW1uSW5mbykge1xyXG4gICAgY29uc3QgY29sdW1uQnVpbGRlciA9IHRoaXMubXlDb2x1bW5zW2NvbHVtbi5tZXRhRGF0YS5rZXldO1xyXG4gICAgaWYoY29sdW1uQnVpbGRlcikge1xyXG4gICAgICBjb2x1bW5CdWlsZGVyLm1ldGFEYXRhID0gY29sdW1uLm1ldGFEYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChDb2x1bW5CdWlsZGVyQ29tcG9uZW50LCB7XHJcbiAgICAgICAgaW5kZXg6IDAsXHJcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5jdXN0b21DZWxsID0gY29sdW1uLmN1c3RvbUNlbGw7XHJcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5tZXRhRGF0YSA9IGNvbHVtbi5tZXRhRGF0YTtcclxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmRhdGEkID0gdGhpcy5kYXRhJDtcclxuICAgICAgdGhpcy5teUNvbHVtbnNbY29sdW1uLm1ldGFEYXRhLmtleV0gPSBjb21wb25lbnQuaW5zdGFuY2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUm93RGVmcyA9IChkZWZzOk1hdFJvd0RlZjxhbnk+W10pPT57XHJcbiAgICB0aGlzLnJvd0RlZkFyci5mb3JFYWNoKHI9PnRoaXMudGFibGUucmVtb3ZlUm93RGVmKHIpKTtcclxuICAgIHRoaXMucm93RGVmQXJyID0gZGVmcztcclxuICAgIGRlZnMuZm9yRWFjaChyID0+IHtcclxuICAgICAgci5jb2x1bW5zID0gdGhpcy5jb2x1bW5zLmNvbmNhdChPYmplY3QudmFsdWVzKHRoaXMubXlDb2x1bW5zKS5maWx0ZXIoYyA9PiBjLm1ldGFEYXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkhpZGRlbikubWFwKGMgPT4gYy5tZXRhRGF0YS5rZXkpKTtcclxuICAgICAgaWYgKHRoaXMudGFibGUpIHtcclxuICAgICAgICB0aGlzLnRhYmxlLmFkZFJvd0RlZihyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3Rpb24hIDogU2VsZWN0aW9uTW9kZWw8YW55PjtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uJCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlPGFueT4+KCk7XHJcbiAgbWFzdGVyVG9nZ2xlQ2hlY2tlZCQgPSB0aGlzLnNlbGVjdGlvbiQucGlwZShtYXAoKCk9PnRoaXMuc2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgdGhpcy5pc0FsbFNlbGVjdGVkKCkpKTtcclxuICBtYXN0ZXJUb2dnbGVJbmRldGVybWluYXRlJCA9IHRoaXMuc2VsZWN0aW9uJC5waXBlKG1hcCgoKT0+dGhpcy5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhdGhpcy5pc0FsbFNlbGVjdGVkKCkpKTtcclxuICBzZXRVcFNlbGVjdGlvbnModHJhY2tCeT86IHN0cmluZyl7XHJcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHRyYWNrQnkgPyBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlLCBbXSwgdHJ1ZSwgKGEsIGIpID0+IGFbdHJhY2tCeV0gPT09IGJbdHJhY2tCeV0pIDogbmV3IFNlbGVjdGlvbk1vZGVsPGFueT4odHJ1ZSwgW10pO1xyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnNlbGVjdGlvbi5jaGFuZ2VkLCBjID0+IHRoaXMuc2VsZWN0aW9uJC5lbWl0KGMpKTtcclxuICB9XHJcbiAgJHNlbGVjdGFibGVEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYodGhpcy5zdGF0ZS4kdmlld1R5cGUoKSA9PT0gJ3BhZ2luYXRvcicgfHwgdGhpcy5zdGF0ZS4kdmlld1R5cGUoKSA9PT0gJ3ZpcnR1YWwgcGFnaW5hdG9yJykge1xyXG4gICAgICBjb25zdCBwcmV2aW91c1BhZ2VSZWNvcmRzID0gdGhpcy5zdGF0ZS5zdGF0ZSgpLmN1cnJlbnRQYWdlICogdGhpcy5zdGF0ZS5zdGF0ZSgpLnBhZ2VTaXplO1xyXG4gICAgICByZXR1cm4gdGhpcy4kZGF0YSgpLnNsaWNlKHByZXZpb3VzUGFnZVJlY29yZHMsIHByZXZpb3VzUGFnZVJlY29yZHMgKyB0aGlzLnN0YXRlLnN0YXRlKCkucGFnZVNpemUpO1xyXG4gICAgfSBlbHNlIGlmKHRoaXMuc3RhdGUuJHZpZXdUeXBlKCkgPT09ICdhbGwnKXtcclxuICAgICAgcmV0dXJuIHRoaXMuJGRhdGEoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBbXTtcclxuICB9KTtcclxuICBzZWxlY3RhYmxlRGF0YSQgPSB0b09ic2VydmFibGUodGhpcy4kc2VsZWN0YWJsZURhdGEpO1xyXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLiRzZWxlY3RhYmxlRGF0YSgpPy5sZW5ndGggfHwgMDtcclxuICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcclxuICB9XHJcblxyXG4gIC8qKiBTZWxlY3RzIGFsbCByb3dzIGlmIHRoZXkgYXJlIG5vdCBhbGwgc2VsZWN0ZWQ7IG90aGVyd2lzZSBjbGVhciBzZWxlY3Rpb24uICovXHJcbiAgbWFzdGVyVG9nZ2xlKCkge1xyXG4gICAgaWYodGhpcy5pc0FsbFNlbGVjdGVkKCkpe1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoLi4udGhpcy4kc2VsZWN0YWJsZURhdGEoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0YWJsZVdpZHRoID0gdGhpcy5zdGF0ZS5nZXRVc2VyRGVmaW5lZFRhYmxlU2l6ZSQucGlwZShcclxuICAgIHByZXZpb3VzQW5kQ3VycmVudDxudW1iZXIgfCB1bmRlZmluZWQ+KDApLFxyXG4gICAgbWFwKChbcHJldmlvdXNVc2VyRGVmaW5lZFdpZHRoLCBjdXJyZW50VXNlckRlZmluZWRXaWR0aF0pID0+IHtcclxuICAgICAgaWYoIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoKXtcclxuICAgICAgICByZXR1cm4gKHt3aWR0aDpgJHtjdXJyZW50VXNlckRlZmluZWRXaWR0aH1weGB9KTtcclxuICAgICAgfSBpZiggd2FzUmVzZXQoKSApe1xyXG4gICAgICAgIHJldHVybiAoe3dpZHRoOidpbml0aWFsJ30pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoe30pO1xyXG5cclxuICAgICAgZnVuY3Rpb24gd2FzUmVzZXQoKXtcclxuICAgICAgICByZXR1cm4gKHByZXZpb3VzVXNlckRlZmluZWRXaWR0aCA/PyAwKSA+PTAgJiYgY3VycmVudFVzZXJEZWZpbmVkV2lkdGggPT0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICApO1xyXG5cclxuICBzaG93Rm9vdGVyUm93JCE6IE9ic2VydmFibGU8J3JlZ3VsYXItZm9vdGVyJyB8ICduby1mb290ZXInIHwgJ3NtYWxsLWZvb3Rlcic+O1xyXG4gIGdldFRyYW5zZm9ybSA9IChrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcpID0+IHtcclxuICAgIGlmKHZhbCA9PSB1bmRlZmluZWQgfHwgdmFsID09PSAnbnVsbCcpIHJldHVybiAnJztcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUNyZWF0b3IuY3JlYXRlVHJhbnNmb3JtZXIodGhpcy5teUNvbHVtbnNba2V5XS5tZXRhRGF0YSwgdHJ1ZSkoeyBba2V5XTogdmFsfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICByZXR1cm4gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJHJvd0hlaWdodCA9IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHMgPT4ge1xyXG4gICAgICBpZih0aGlzLnN0YXRlLiRpc1ZpcnR1YWwoKSAmJiAocy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnMpPy5lbmZvcmNlUm93SGVpZ2h0KXtcclxuICAgICAgICByZXR1cm4gKHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zKSEucm93SGVpZ2h0ICsgJ3B4JyA7XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZW9mIHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy5yb3dIZWlnaHQgPT09ICdudW1iZXInKXtcclxuICAgICAgICByZXR1cm4gcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnJvd0hlaWdodCArICdweCc7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy5yb3dIZWlnaHQ7XHJcbiAgICAgIFxyXG4gICAgfSk7XHJcblxyXG4gICRoZWFkZXJIZWlnaHQgPSB0aGlzLnN0YXRlLnNlbGVjdFNpZ25hbChzID0+IHtcclxuICAgIGlmKHRoaXMuc3RhdGUuJGlzVmlydHVhbCgpICYmIChzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyk/LmVuZm9yY2VIZWFkZXJIZWlnaHQpe1xyXG4gICAgICByZXR1cm4gKHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zKSEuaGVhZGVySGVpZ2h0ICsgJ3B4JztcclxuICAgIH1cclxuICAgIGlmKHR5cGVvZiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuaGVhZGVySGVpZ2h0ID09PSAnbnVtYmVyJyl7XHJcbiAgICAgIHJldHVybiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuaGVhZGVySGVpZ2h0ICsgJ3B4JztcclxuICAgIH1cclxuICAgIHJldHVybiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuaGVhZGVySGVpZ2h0O1xyXG4gIH0pO1xyXG5cclxuICAkc3RpY2t5Rm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZS5wcm9wcygpLnN0aWNreUZvb3RlciB8fCB0aGlzLnN0YXRlLiRpc1ZpcnR1YWwoKSk7XHJcbn1cclxuIiwiPG1hdC10YWJsZVxyXG4gIGNka0Ryb3BMaXN0XHJcbiAgY2RrRHJvcExpc3RMb2NrQXhpcz0neCdcclxuICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gIGNsYXNzPVwidGFibGUtZHJhZy1saXN0XCJcclxuICBbY2xhc3NdPVwiKHNob3dGb290ZXJSb3ckIHwgYXN5bmMpXCJcclxuICAjdGFibGVcclxuICBbZGF0YVNvdXJjZV09XCJzdGF0ZS5wcm9wcygpLmRhdGFTb3VyY2UhXCJcclxuICBbdHJhY2tCeV09XCJ0cmFja0J5RnVuY3Rpb25cIlxyXG4gIFtzdHlsZV09XCJ0YWJsZVdpZHRoIHwgYXN5bmMgXCJcclxuPlxyXG5cclxuICA8IS0tIHNlbGVjdCBjb2x1bW4gLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cclxuXHJcbiAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmICBjbGFzcz1cInNlbGVjdC1jb2x1bW5cIj5cclxuICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclRvZ2dsZSgpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiISEobWFzdGVyVG9nZ2xlQ2hlY2tlZCQgfCBhc3luYylcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIm1hc3RlclRvZ2dsZUluZGV0ZXJtaW5hdGUkIHwgYXN5bmNcIj5cclxuICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L21hdC1oZWFkZXItY2VsbD5cclxuXHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJzZWxlY3QtY29sdW1uXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi50b2dnbGUocm93KSA6IG51bGxcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKHJvdylcIi8+XHJcbiAgICA8L21hdC1jZWxsPlxyXG5cclxuICAgIDxtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWYgY2xhc3M9XCJzZWxlY3QtY29sdW1uXCI+XHJcbiAgICAgIHt7IHNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggfX1cclxuICAgIDwvbWF0LWZvb3Rlci1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgPCEtLSBpbmRleCBjb2x1bW4gLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImYtbWF0LWhlYWRlci1jZWxsXCIgY2xhc3M9XCJpbmRleC1jb2x1bW5cIj4jXHJcbiAgICA8L21hdC1oZWFkZXItY2VsbD5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpID0gaW5kZXg7XCIgY2xhc3M9XCJpbmRleC1jb2x1bW5cIj5cclxuICAgICAge3sgMSArIGkgKyBvZmZzZXRJbmRleCB9fVxyXG4gICAgPC9tYXQtY2VsbD5cclxuICAgIDxtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWYgY2xhc3M9XCJpbmRleC1jb2x1bW5cIj48L21hdC1mb290ZXItY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSBHcm91cGluZyAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImdyb3VwSGVhZGVyXCI+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XHJcbiAgICAgIEBsZXQgZXhwYW5kZWQgPSAoc3RhdGUuZ2V0SXNFeHBhbmRlZCB8IGZ1bmMgOiByb3cua2V5IDogcm93Lmdyb3VwTmFtZSApO1xyXG4gICAgICA8ZGl2IFtzdHlsZS5wYWRkaW5nTGVmdF09XCJyb3cucGFkZGluZyArICdweCAhaW1wb3J0YW50J1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzZXRFeHBhbmRlZChyb3cua2V5LCByb3cuZ3JvdXBOYW1lLCAhZXhwYW5kZWQoKSk7XCI+XHJcbiAgICAgICAgICBAaWYgKCFleHBhbmRlZCgpKSB7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIHt7IGdldFRyYW5zZm9ybSB8IGZ1bmMgOiByb3cua2V5IDogIHJvdy5ncm91cEhlYWRlckRpc3BsYXkgfX0gKHt7IHJvdy5sZW5ndGggfX0pXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXRlLnByb3BzKCkuZ3JvdXBIZWFkZXJUZW1wbGF0ZSE7IGNvbnRleHQ6IHsgZWxlbWVudDogcm93IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICBAaWYgKHNob3dIZWFkZXIkIHwgYXN5bmMpIHtcclxuICAgIDxtYXQtaGVhZGVyLXJvdyBbc3R5bGUuaGVpZ2h0XT1cIiRoZWFkZXJIZWlnaHQoKVwiIFtzdHlsZS5taW4taGVpZ2h0XT1cIiRoZWFkZXJIZWlnaHQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cImtleXM7IHN0aWNreTogc3RhdGUucHJvcHMoKS5pc1N0aWNreVwiIFtzdHlsZS50b3AucHhdPVwiKChvZmZzZXQkIHwgYXN5bmMpISAqIC0xKVwiLz5cclxuICB9XHJcbiAgPG1hdC1yb3cgW3N0eWxlLmhlaWdodF09XCIkcm93SGVpZ2h0KClcIiBbc3R5bGUubWluLWhlaWdodF09XCIkcm93SGVpZ2h0KClcIlxyXG4gICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBrZXlzOyBsZXQgaSA9IGluZGV4XCIvPlxyXG4gIDxtYXQtcm93IFtzdHlsZS5oZWlnaHRdPVwiJHJvd0hlaWdodCgpXCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwiJHJvd0hlaWdodCgpXCJcclxuICAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydncm91cEhlYWRlciddOyB3aGVuOiBpc0dyb3VwSGVhZGVyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcIi8+XHJcbiAgPG1hdC1mb290ZXItcm93IFtzdHlsZS5oZWlnaHRdPVwiJHJvd0hlaWdodCgpXCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwiJHJvd0hlaWdodCgpXCJcclxuICAgICAgICAgICAgICAgICAgKm1hdEZvb3RlclJvd0RlZj1cIihzaG93Rm9vdGVyUm93JCB8IGFzeW5jKSA9PT0gJ3JlZ3VsYXItZm9vdGVyJyA/IGtleXMgOiBbXTsgc3RpY2t5OiAkc3RpY2t5Rm9vdGVyKCkgXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmJvdHRvbS5weF09XCIkc3RpY2t5Rm9vdGVyKCkgPyAob2Zmc2V0JCB8IGFzeW5jKSA6IHVuZGVmaW5lZFwiLz5cclxuXHJcbjwvbWF0LXRhYmxlPlxyXG4iXX0=
@@ -68,26 +68,28 @@ export class TableContainerComponent {
68
68
  tableState = toSignal(this.state.state$.pipe(filter(stateIs(InitializationState.LoadedFromStore))));
69
69
  allFilterDirectivesEffect = effect(() => {
70
70
  const state = this.tableState();
71
- if (state) {
72
- this.allFilterDirectives().filter(f => !f.used).forEach(f => {
73
- f.used = true;
74
- if (f.savable) {
75
- var filter = state.filters[f.filterId];
76
- if (isFilterInfo(filter)) {
77
- const filterDirective = f;
78
- filterDirective.fieldType = filter.fieldType;
79
- filterDirective.filterType = filter.filterType;
80
- filterDirective.setFilterValue(filter.filterValue);
81
- filterDirective.key = filter.key;
82
- filterDirective.update();
71
+ untracked(() => {
72
+ if (state) {
73
+ this.allFilterDirectives().filter(f => !f.used).forEach(f => {
74
+ f.used = true;
75
+ if (f.savable) {
76
+ var filter = state.filters[f.filterId];
77
+ if (isFilterInfo(filter)) {
78
+ const filterDirective = f;
79
+ filterDirective.fieldType = filter.fieldType;
80
+ filterDirective.filterType = filter.filterType;
81
+ filterDirective.setFilterValue(filter.filterValue);
82
+ filterDirective.key = filter.key;
83
+ filterDirective.update();
84
+ }
85
+ if (isCustomFilter(filter)) {
86
+ f.active = filter.active ?? false;
87
+ }
88
+ this.state.addFilter(f.filter$);
83
89
  }
84
- if (isCustomFilter(filter)) {
85
- f.active = filter.active ?? false;
86
- }
87
- untracked(() => this.state.addFilter(f.filter$));
88
- }
89
- });
90
- }
90
+ });
91
+ }
92
+ });
91
93
  });
92
94
  paginatorComponent;
93
95
  genericTable;
@@ -297,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
297
299
  }], state$: [{
298
300
  type: Output
299
301
  }] } });
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFDTixlQUFlLEVBRWYsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxNQUFNLEVBRU4sWUFBWSxFQUNaLFVBQVUsRUFHVixRQUFRLEVBQ1IsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFtQixTQUFTLEVBQVksTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0s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SztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUtHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBRdWVyeUxpc3QsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgUHJlZGljYXRlLFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3QsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBJbmplY3RvcixcclxuICBjb250ZW50Q2hpbGRyZW4sXHJcbiAgY29tcHV0ZWQsXHJcbiAgZWZmZWN0LFxyXG4gIHVudHJhY2tlZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCwgd2l0aExhdGVzdEZyb20sIG1lcmdlQWxsLCBzY2FuLCBzd2l0Y2hBbGwsIHN0YXJ0V2l0aCwgdGltZXN0YW1wLCBtZXJnZU1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBNYXRSb3dEZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEN1c3RvbUNlbGxEaXJlY3RpdmUsIFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCBUYWJsZUZpbHRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBzdGF0ZUlzLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IG1hcEFycmF5LCBub3ROdWxsIH0gZnJvbSAnLi4vLi4vLi4vcnhqcy9yeGpzLW9wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEV4cG9ydFRvQ3N2U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V4cG9ydC10by1jc3Yuc2VydmljZSc7XHJcbmltcG9ydCB7IEFycmF5RGVmYXVsdHMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0RlZmF1bHRTZXR0aW5ncyc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcnO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblN0YXRlLCBUYWJsZVN0YXRlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UYWJsZVN0YXRlJztcclxuaW1wb3J0IHsgc29ydERhdGEgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvc29ydC1kYXRhLWZ1bmN0aW9uJztcclxuaW1wb3J0IHsgV3JhcHBlckZpbHRlclN0b3JlIH0gZnJvbSAnLi4vdGFibGUtY29udGFpbmVyLWZpbHRlci90YWJsZS13cmFwcGVyLWZpbHRlci1zdG9yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IENvbHVtbkluZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0NvbHVtbkluZm8nO1xyXG5pbXBvcnQgeyBkZWZhdWx0U2hhcmVSZXBsYXkgfSBmcm9tICcuLi8uLi8uLi9yeGpzJztcclxuaW1wb3J0IHsgY3JlYXRlRmlsdGVyRnVuYywgaXNDdXN0b21GaWx0ZXIsIGlzRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgVGFibGVXcmFwcGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90YWJsZS13cmFwcGVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUxpbmtDcmVhdG9yRGljdCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmstY3JlYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyU3RhdGVTdG9yZSB9IGZyb20gJy4uLy4uL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZSc7XHJcbmltcG9ydCB7IGNvbnRhaW5lckltcG9ydHMgfSBmcm9tICcuL3RhYmxlLWNvbnRhaW5lci1pbXBvcnRzJztcclxuaW1wb3J0IHsgdXBkYXRlRmlsdGVySW5mb1N0YXRlLCB1cGRhdGVGaWx0ZXJQcmVkaWNhdGVTdGF0ZSwgdXBkYXRlRmlsdGVyU3RhdGUgfSBmcm9tICcuL3RhYmxlLWNvbnRhaW5lci5oZWxwZXJzL2ZpbHRlci1zdGF0ZS5oZWxwZXJzJztcclxuaW1wb3J0IHsgaW5pdGlhbFNvcnRTdGF0ZSwgdXBkYXRlU29ydFN0YXRlIH0gZnJvbSAnLi90YWJsZS1jb250YWluZXIuaGVscGVycy9zb3J0LXN0YXRlLmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBnZXRBbGxHcm91cEhlYWRlck5hbWVzLCBpbml0aWFsR3JvdXBCeVN0YXRlLCB1cGRhdGVHcm91cEJ5U3RhdGUgfSBmcm9tICcuL3RhYmxlLWNvbnRhaW5lci5oZWxwZXJzL2dyb3VwQnkuaGVscGVycyc7XHJcbmltcG9ydCB7IHNvcnRBbmRGaWx0ZXJEYXRhIH0gZnJvbSAnLi90YWJsZS1jb250YWluZXIuaGVscGVycy9kYXRhLXN0YXRlLmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBUYWJsZVByb3BzLCBkZWZhdWx0UHJvcHMgfSBmcm9tICcuL3RhYmxlUHJvcHMnO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmljLXRhYmxlL3BhZ2luYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UYWJsZUJ1aWxkZXJEYXRhU291cmNlJztcclxuaW1wb3J0IHsgR2VuZXJpY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vZ2VuZXJpYy10YWJsZS9nZW5lcmljLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RiLXRhYmxlLWNvbnRhaW5lcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29udGFpbmVyLmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29udGFpbmVyLmNzcycsICcuLi8uLi9zdHlsZXMvY29sbGFwc2VyLnN0eWxlcy5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW1RhYmxlU3RvcmUsIEV4cG9ydFRvQ3N2U2VydmljZSwgV3JhcHBlckZpbHRlclN0b3JlXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBjb250YWluZXJJbXBvcnRzXHJcbn0pIGV4cG9ydCBjbGFzcyBUYWJsZUNvbnRhaW5lckNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcm9wczogVGFibGVQcm9wcyA9IHsgLi4uZGVmYXVsdFByb3BzIH07XHJcbiAgZGF0YVN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxPYnNlcnZhYmxlPFRbXT4+KDEpO1xyXG5cclxuICBwdWJsaWMgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHVibGljIGNvbmZpZyA9IGluamVjdChUYWJsZUJ1aWxkZXJDb25maWdUb2tlbik7XHJcbiAgcHVibGljIGV4cG9ydFRvQ3N2U2VydmljZSA9IGluamVjdChFeHBvcnRUb0NzdlNlcnZpY2U8VD4pO1xyXG4gIHB1YmxpYyB3cmFwcGVyID0gaW5qZWN0KFRhYmxlV3JhcHBlckRpcmVjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICBwdWJsaWMgc3RhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlQnVpbGRlclN0YXRlU3RvcmUpO1xyXG4gIHB1YmxpYyBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gIGZpbHRlckRpcmVjdGl2ZXMgPSBjb250ZW50Q2hpbGRyZW4oVGFibGVGaWx0ZXJEaXJlY3RpdmUsIHtkZXNjZW5kYW50czogdHJ1ZX0pO1xyXG4gIGN1c3RvbUZpbHRlckRpcmVjdGl2ZXMgPSBjb250ZW50Q2hpbGRyZW4oVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmUsIHtkZXNjZW5kYW50czogdHJ1ZX0pO1xyXG5cclxuICBhbGxGaWx0ZXJEaXJlY3RpdmVzID0gY29tcHV0ZWQoICgpID0+ICB7XHJcbiAgICAgIGlmKHRoaXMud3JhcHBlcikge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5maWx0ZXJEaXJlY3RpdmVzKCksIC4uLnRoaXMuY3VzdG9tRmlsdGVyRGlyZWN0aXZlcygpLCAuLi50aGlzLndyYXBwZXIuJHJlZ2lzdHJhdGlvbnMoKV07XHJcbiAgICAgIH0ge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5maWx0ZXJEaXJlY3RpdmVzKCksIC4uLnRoaXMuY3VzdG9tRmlsdGVyRGlyZWN0aXZlcygpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICk7XHJcblxyXG5cclxuICB0YWJsZVN0YXRlID0gdG9TaWduYWwodGhpcy5zdGF0ZS5zdGF0ZSQucGlwZShmaWx0ZXIoc3RhdGVJcyhJbml0aWFsaXphdGlvblN0YXRlLkxvYWRlZEZyb21TdG9yZSkpKSkgO1xyXG5cclxuICBhbGxGaWx0ZXJEaXJlY3RpdmVzRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy50YWJsZVN0YXRlKCk7XHJcbiAgICBpZihzdGF0ZSkge1xyXG4gICAgICB0aGlzLmFsbEZpbHRlckRpcmVjdGl2ZXMoKS5maWx0ZXIoIGYgPT4gIWYudXNlZCkuZm9yRWFjaCggZiA9PiB7XHJcbiAgICAgICAgZi51c2VkID0gdHJ1ZTtcclxuICAgICAgICBpZihmLnNhdmFibGUpIHtcclxuICAgICAgICAgIHZhciBmaWx0ZXIgPSBzdGF0ZS5maWx0ZXJzW2YuZmlsdGVySWRdO1xyXG4gICAgICAgICAgaWYoaXNGaWx0ZXJJbmZvKGZpbHRlcikpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyRGlyZWN0aXZlOiBUYWJsZUZpbHRlckRpcmVjdGl2ZSA9IGYgYXMgVGFibGVGaWx0ZXJEaXJlY3RpdmU7XHJcbiAgICAgICAgICAgIGZpbHRlckRpcmVjdGl2ZS5maWVsZFR5cGUgPSBmaWx0ZXIuZmllbGRUeXBlO1xyXG4gICAgICAgICAgICBmaWx0ZXJEaXJlY3RpdmUuZmlsdGVyVHlwZSA9IGZpbHRlci5maWx0ZXJUeXBlO1xyXG4gICAgICAgICAgICBmaWx0ZXJEaXJlY3RpdmUuc2V0RmlsdGVyVmFsdWUoZmlsdGVyLmZpbHRlclZhbHVlKTtcclxuICAgICAgICAgICAgZmlsdGVyRGlyZWN0aXZlLmtleSA9IGZpbHRlci5rZXk7XHJcbiAgICAgICAgICAgIGZpbHRlckRpcmVjdGl2ZS51cGRhdGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKGlzQ3VzdG9tRmlsdGVyKGZpbHRlcikpIHtcclxuICAgICAgICAgICAgZi5hY3RpdmUgPSBmaWx0ZXIuYWN0aXZlID8/IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMuc3RhdGUuYWRkRmlsdGVyKChmLmZpbHRlciQgYXMgYW55KSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoUGFnaW5hdG9yQ29tcG9uZW50KSAgcGFnaW5hdG9yQ29tcG9uZW50PzogUGFnaW5hdG9yQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoR2VuZXJpY1RhYmxlQ29tcG9uZW50KSAgZ2VuZXJpY1RhYmxlPzogR2VuZXJpY1RhYmxlQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Um93RGVmKSBjdXN0b21Sb3dzITogUXVlcnlMaXN0PE1hdFJvd0RlZjxhbnk+PjtcclxuICBAQ29udGVudENoaWxkcmVuKEN1c3RvbUNlbGxEaXJlY3RpdmUpIGN1c3RvbUNlbGxzITogUXVlcnlMaXN0PEN1c3RvbUNlbGxEaXJlY3RpdmU+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RhYmxlJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSB0YWJsZUVsUmVmITogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGFibGVCdWlsZGVyITogVGFibGVCdWlsZGVyO1xyXG4gIEBJbnB1dCgpIHRhYmxlSWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IGluZGV4Q29sdW1uKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcm9wcy5pbmRleENvbHVtbiA9IHZhbDtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHNlbGVjdGlvbkNvbHVtbih2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucHJvcHMuc2VsZWN0aW9uQ29sdW1uID0gdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgaXNTdGlja3kodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByb3BzLmlzU3RpY2t5ID0gdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgc3RpY2t5Rm9vdGVyKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcm9wcy5zdGlja3lGb290ZXIgPSB2YWw7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBwYWdlU2l6ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXRlLnNldFBhZ2VTaXplKHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IGdyb3VwSGVhZGVyVGVtcGxhdGUoIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLnByb3BzLmdyb3VwSGVhZGVyVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICB9XHJcbiAgQElucHV0KCkgdHJhY2tCeSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnB1dEZpbHRlcnM/OiBPYnNlcnZhYmxlPEFycmF5PFByZWRpY2F0ZTxUPj4+O1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uJCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGF0YSA9IHRoaXMuZGF0YVN1YmplY3QucGlwZShcclxuICAgIHN3aXRjaEFsbCgpLFxyXG4gICAgc3RhcnRXaXRoKFtdIGFzIFRbXSksXHJcbiAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKSxcclxuICApO1xyXG4gIEBPdXRwdXQoKSBvblN0YXRlUmVzZXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2F2ZVN0YXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzdGF0ZSQgPSB0aGlzLnN0YXRlLmdldFNhdmFibGVTdGF0ZSgpLnBpcGUoXHJcbiAgICBtYXAoc3RhdGUgPT4gY2xvbmVEZWVwKHN0YXRlKSksXHJcbiAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKSxcclxuICApO1xyXG5cclxuICBjbGVhclNlbGVjdGlvbnMoKXtcclxuICAgIHRoaXMuZ2VuZXJpY1RhYmxlPy5zZWxlY3Rpb24uY2xlYXIodHJ1ZSk7XHJcbiAgfVxyXG4gIGRpc3BsYXlEYXRhU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PE9ic2VydmFibGU8VFtdPj4oMSk7XHJcbiAgZGlzcGxheURhdGEgPSB0aGlzLmRpc3BsYXlEYXRhU3ViamVjdC5waXBlKFxyXG4gICAgc3dpdGNoQWxsKCksXHJcbiAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKSxcclxuICApO1xyXG4gICRkaXNwbGF5RGF0YSA9IHRvU2lnbmFsKHRoaXMuZGlzcGxheURhdGEsIHsgaW5pdGlhbFZhbHVlOiBbXSB9KTtcclxuXHJcblxyXG5cclxuICBjb2xsYXBzZUZvb3RlciQgPSB0aGlzLnN0YXRlLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzLmNvbGxhcHNlRm9vdGVyKSk7XHJcblxyXG4gIG15Q29sdW1ucyQhOiBPYnNlcnZhYmxlPENvbHVtbkluZm9bXT47XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpe1xyXG4gICAgaWYodGhpcy50YWJsZUlkKSB7XHJcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmVUYWJsZVN0YXRlVG9Mb2NhbCh7IHRhYmxlSWQ6dGhpcy50YWJsZUlkLCB0YWJsZVN0YXRlOiB0aGlzLnN0YXRlLmdldFNhdmFibGVTdGF0ZVNpZ25hbCgpIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlyc3RQYWdlKCk6IHZvaWQge1xyXG4gICB0aGlzLnBhZ2luYXRvckNvbXBvbmVudD8ucGFnaW5hdG9yPy5maXJzdFBhZ2UoKTtcclxuICB9XHJcblxyXG4gIGxhc3RQYWdlKCk6IHZvaWQge1xyXG4gICB0aGlzLnBhZ2luYXRvckNvbXBvbmVudD8ucGFnaW5hdG9yPy5sYXN0UGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRTdGF0ZSgpIHtcclxuICAgIHRoaXMuY3VzdG9tRmlsdGVyRGlyZWN0aXZlcygpLmZvckVhY2goIGNmID0+IGNmLnJlc2V0KCkpO1xyXG4gICAgdGhpcy5maWx0ZXJEaXJlY3RpdmVzKCkuZm9yRWFjaCggY2YgPT4gY2YucmVzZXQoKSApO1xyXG4gICAgdGhpcy5zdGF0ZS5yZXNldFN0YXRlKCk7XHJcbiAgICB0aGlzLm9uU3RhdGVSZXNldC5uZXh0KG51bGwpXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplU3RhdGUoKSB7XHJcbiAgICB0aGlzLnN0YXRlLnNldFRhYmxlU2V0dGluZ3ModGhpcy50YWJsZUJ1aWxkZXIuc2V0dGluZ3MpO1xyXG4gICAgdGhpcy5zdGF0ZS5ydW5PbmNlV2hlbihcclxuICAgICAgc3RhdGVJcyhJbml0aWFsaXphdGlvblN0YXRlLk1ldGFEYXRhTG9hZGVkKSxcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIGlmKHRoaXMudGFibGVJZCkge1xyXG4gICAgICAgICAgY29uc3QgcGVyc2lzdGVkU3RhdGUkID0gdG9PYnNlcnZhYmxlKHRoaXMuc3RhdGVTZXJ2aWNlLiRzZWxlY3RMb2NhbFRhYmxlU3RhdGVGb3JWaWV3KHRoaXMudGFibGVJZCksIHtpbmplY3RvcjogdGhpcy5pbmplY3Rvcn0pLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCggcGVyc2lzdGVkU3RhdGUgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKCFwZXJzaXN0ZWRTdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5zZXRJbml0aWFsaXphdGlvblN0YXRlKEluaXRpYWxpemF0aW9uU3RhdGUuTG9hZGVkRnJvbVN0b3JlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBub3ROdWxsKCksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZUZyb21QZXJzaXN0ZWRTdGF0ZShwZXJzaXN0ZWRTdGF0ZSQucGlwZShub3ROdWxsKCkpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5zZXRJbml0aWFsaXphdGlvblN0YXRlKEluaXRpYWxpemF0aW9uU3RhdGUuTG9hZGVkRnJvbVN0b3JlKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY3VzdG9tRmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFByZWRpY2F0ZTxUPltdPihbXSk7XHJcbiAgaW5pdGlhbGl6ZURhdGEoKSB7XHJcblxyXG4gICAgY29uc3QgcHJlZGljYXRlRmlsdGVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlucHV0RmlsdGVycz8ucGlwZShzdGFydFdpdGgoW10pKSA/PyBvZihbXSBhcyBQcmVkaWNhdGU8VD5bXSksIHRoaXMuY3VzdG9tRmlsdGVycyRdKVxyXG4gICAgICAucGlwZShtYXAoKFthLCBiXSkgPT4gWy4uLmEsIC4uLmJdKSk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVycyQgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy5zdGF0ZS5maWx0ZXJzJC5waXBlKHNjYW4odXBkYXRlRmlsdGVySW5mb1N0YXRlLCB7IGFsbEZpbHRlcnM6IHt9IH0pLCB0aW1lc3RhbXAoKSksXHJcbiAgICAgIHByZWRpY2F0ZUZpbHRlcnMkLnBpcGUoc2Nhbih1cGRhdGVGaWx0ZXJQcmVkaWNhdGVTdGF0ZSwge2FsbEZpbHRlcnM6IFtdIGFzIFByZWRpY2F0ZTxUPltdfSksIHRpbWVzdGFtcCgpKVxyXG4gICAgXSlcclxuICAgIC5waXBlKFxyXG4gICAgICBtYXAoKFtmaWx0ZXJJbmZvLCBwcmVkXSkgPT4gdXBkYXRlRmlsdGVyU3RhdGUoZmlsdGVySW5mbywgcHJlZCkpXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHNvcnRzU3RhdGUkID0gdGhpcy5zdGF0ZS5zb3J0JC5waXBlKHNjYW4odXBkYXRlU29ydFN0YXRlLCBpbml0aWFsU29ydFN0YXRlKSk7XHJcblxyXG4gICAgY29uc3Qgc29ydGVkQW5kRmlsdGVyZWREYXRhJCA9IHNvcnRBbmRGaWx0ZXJEYXRhKHRoaXMudGFibGVCdWlsZGVyLmdldERhdGEkKCksIHNvcnRzU3RhdGUkLCBmaWx0ZXJzJCk7XHJcblxyXG4gICAgY29uc3QgZmxhdEdyb3VwZWQkID0gY29tYmluZUxhdGVzdChbc29ydGVkQW5kRmlsdGVyZWREYXRhJC5waXBlKHRpbWVzdGFtcCgpKSwgdGhpcy5zdGF0ZS5ncm91cEJ5S2V5cyQucGlwZSh0aW1lc3RhbXAoKSksIHRoaXMuc3RhdGUuZXhwYW5kZWRHcm91cHMkLnBpcGUodGltZXN0YW1wKCkpXSkucGlwZShcclxuICAgICAgc2Nhbih1cGRhdGVHcm91cEJ5U3RhdGUsIGluaXRpYWxHcm91cEJ5U3RhdGUpLFxyXG4gICAgICBtYXAoKHtkaXNwbGF5RGF0YX0pID0+IGRpc3BsYXlEYXRhKSxcclxuICAgICAgZGVmYXVsdFNoYXJlUmVwbGF5KCksXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZGlzcGxheURhdGFTdWJqZWN0Lm5leHQoZmxhdEdyb3VwZWQkKTtcclxuICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChzb3J0ZWRBbmRGaWx0ZXJlZERhdGEkKTtcclxuXHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuZGlzcGxheURhdGEsIChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlU3RhdGUoe2RhdGFMZW46IGRhdGEubGVuZ3RofSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGRzID0gbmV3IFRhYmxlQnVpbGRlckRhdGFTb3VyY2U8VD4oXHJcbiAgICAgIHRoaXMuZGlzcGxheURhdGEsXHJcbiAgICAgIHRoaXMuc3RhdGUsXHJcbiAgICApO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7cHJvcHM6IHtcclxuICAgICAgZGF0YVNvdXJjZTogZHMsXHJcbiAgICAgIC4uLnRoaXMucHJvcHNcclxuICAgIH19KVxyXG4gICAgdGhpcy5pbml0aWFsaXplU3RhdGUoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvQ3N2KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc29ydGVkID0gdGhpcy5kYXRhLnBpcGUoXHJcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RhdGUuc29ydCQpLFxyXG4gICAgICBtYXAoKFtkYXRhLCBzb3J0ZWRdKSA9PiBzb3J0RGF0YShkYXRhLCBzb3J0ZWQpKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZXhwb3J0VG9Dc3ZTZXJ2aWNlLmV4cG9ydFRvQ3N2KHNvcnRlZCk7XHJcbiAgfVxyXG5cclxuICBleHBhbmRBbGxHcm91cHMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBncm91cEhlYWRlcnMgPSBnZXRBbGxHcm91cEhlYWRlck5hbWVzKHRoaXMuJGRpc3BsYXlEYXRhKCkpO1xyXG4gICAgdGhpcy5zdGF0ZS5leHBhbmRBbGxPZkdyb3VwKHsgZ3JvdXBIZWFkZXJzQnlLZXk6IGdyb3VwSGVhZGVycyB9KTtcclxuICB9XHJcblxyXG4gIGNvbGxhcHNlQWxsR3JvdXBzID0gKCkgPT4gdGhpcy5zdGF0ZS5jb2xsYXBzZUFsbCgpO1xyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb2x1bW5zKCk7XHJcbiAgICB0aGlzLnN0YXRlLnJ1bk9uY2VXaGVuKFxyXG4gICAgICBzdGF0ZUlzKEluaXRpYWxpemF0aW9uU3RhdGUuTG9hZGVkRnJvbVN0b3JlKSxcclxuICAgICAgc3RhdGUgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRkRmlsdGVyRGlyZWN0aXZlcyhzdGF0ZSk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7IGluaXRpYWxpemF0aW9uU3RhdGU6IEluaXRpYWxpemF0aW9uU3RhdGUuUmVhZHkgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUNvbHVtbnMoKSB7XHJcbiAgICBjb25zdCBjdXN0b21DZWxsTWFwID0gbmV3IE1hcCh0aGlzLmN1c3RvbUNlbGxzLm1hcChjYyA9PiBbY2MuY3VzdG9tQ2VsbCxjY10pKTtcclxuICAgIHRoaXMuc3RhdGUuc2V0TWV0YURhdGEodGhpcy50YWJsZUJ1aWxkZXIubWV0YURhdGEkIS5waXBlKFxyXG4gICAgICBtYXAoKG1kcykgPT4ge1xyXG4gICAgICAgIG1kcyA9IG1kcy5tYXAodGhpcy5tYXBNZXRhRGF0YXMpO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAuLi5tZHMsXHJcbiAgICAgICAgICAuLi50aGlzLmN1c3RvbUNlbGxzLm1hcCggY2MgPT4gY2MuZ2V0TWV0YURhdGEobWRzLmZpbmQoIGl0ZW0gPT4gaXRlbS5rZXkgPT09IGNjLmN1c3RvbUNlbGwgKSkgKVxyXG4gICAgICAgIF1cclxuICAgICAgfSlcclxuICAgICkpO1xyXG4gICAgdGhpcy5zdGF0ZS5zZXRMaW5rTWFwcyh0aGlzLnRhYmxlQnVpbGRlci5tZXRhRGF0YSQhLnBpcGUoXHJcbiAgICAgIG1hcChjcmVhdGVMaW5rQ3JlYXRvckRpY3QpXHJcbiAgICApKVxyXG5cclxuICAgIHRoaXMubXlDb2x1bW5zJCA9IHRoaXMuc3RhdGUubWV0YURhdGFBcnJheSQucGlwZShcclxuICAgICAgbWFwQXJyYXkoIG1ldGFEYXRhID0+ICh7bWV0YURhdGEsIGN1c3RvbUNlbGw6IGN1c3RvbUNlbGxNYXAuZ2V0KG1ldGFEYXRhLmtleSkhfSkpLFxyXG4gICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG1hcE1ldGFEYXRhcyA9IChtZXRhIDogTWV0YURhdGE8VD4pID0+IHtcclxuICAgIGlmKG1ldGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQXJyYXkpe1xyXG4gICAgICBjb25zdCBhZGRpdGlvbmFsID0gey4uLm1ldGEuYWRkaXRpb25hbH0gYXMgQXJyYXlBZGRpdGlvbmFsO1xyXG4gICAgICBhZGRpdGlvbmFsLmFycmF5U3R5bGUgPSBhZGRpdGlvbmFsPy5hcnJheVN0eWxlID8/IEFycmF5RGVmYXVsdHMuYXJyYXlTdHlsZTtcclxuICAgICAgYWRkaXRpb25hbC5saW1pdCA9IGFkZGl0aW9uYWwubGltaXQgPz8gdGhpcy5jb25maWcuYXJyYXlJbmZvPy5saW1pdCA/PyBBcnJheURlZmF1bHRzLmxpbWl0O1xyXG4gICAgICByZXR1cm4gey4uLm1ldGEsYWRkaXRpb25hbH1cclxuICAgIH1cclxuICAgIHJldHVybiBtZXRhO1xyXG4gIH1cclxuXHJcbiAgY29sbGFwc2VIZWFkZXIkID0gdGhpcy5zdGF0ZS5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5ncy5jb2xsYXBzZUhlYWRlcikpO1xyXG5cclxuICBhZGRGaWx0ZXJEaXJlY3RpdmVzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB7XHJcbiAgICBjb25zdCBjdXN0b21GaWx0ZXJzJCA9ICB0b09ic2VydmFibGUodGhpcy5hbGxGaWx0ZXJEaXJlY3RpdmVzLCB7aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3J9KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCggY3VzdG9tZXJGaWx0ZXJzID0+IGN1c3RvbWVyRmlsdGVyc1xyXG4gICAgICAgIC5maWx0ZXIoIGZpbHRlciA9PiAhZmlsdGVyLnNhdmFibGUgKVxyXG4gICAgICAgIC5tYXAoZmlsdGVyID0+IGZpbHRlci5maWx0ZXIkIClcclxuICAgICAgKSxcclxuICAgICAgbWVyZ2VBbGwoKSxcclxuICAgICAgc2NhbiggKGEsYik9PiB7XHJcbiAgICAgICAgICBpZihiLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICBhW2IuZmlsdGVySWRdID0gaXNDdXN0b21GaWx0ZXIoYikgPyBiLnByZWRpY2F0ZSA6IGNyZWF0ZUZpbHRlckZ1bmMoYik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkZWxldGUgYVtiLmZpbHRlcklkXSA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIHJldHVybiBhO1xyXG4gICAgICB9LCB7fSBhcyBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxhbnk+PiksXHJcbiAgICAgIG1hcCggZiA9PiBPYmplY3QudmFsdWVzKGYpKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN0YXRlLm9uKGN1c3RvbUZpbHRlcnMkLCAoZikgPT4ge1xyXG4gICAgICB0aGlzLmN1c3RvbUZpbHRlcnMkLm5leHQoZik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICR1c2VWaXJ0dWFsID0gdGhpcy5zdGF0ZS4kaXNWaXJ0dWFsO1xyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIltiZWZvcmVdXCIgLz5cclxuXHJcbjxuZy1jb250YWluZXIgbXVsdGlTb3J0ICpuZ3J4TGV0PVwic3RhdGUudGFibGVTZXR0aW5ncyQgYXMgdGFibGVTZXR0aW5nc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgIEBpZiAoKCEoY29sbGFwc2VIZWFkZXIkIHwgYXN5bmMpKSB8fCB0YWJsZVNldHRpbmdzLnNob3dUaXRsZVdoZW5IZWFkZXJDb2xsYXBzZWQpIHtcclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIudGItaGVhZGVyLXRpdGxlXCIvPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZigoc3RhdGUuZ3JvdXBCeUtleXMkIHwgYXN5bmMpPy5sZW5ndGgpe1xyXG4gICAgICAgIDxncm91cC1ieS1saXN0IC8+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZseC1yb3ctZW5kXCI+XHJcbiAgICAgIDxsaWItZmlsdGVyLWxpc3QgLz5cclxuICAgICAgQGlmICghdGFibGVTZXR0aW5ncy5oaWRlSGVhZGVyKSB7XHJcbiAgICAgICAgQGlmICghKGNvbGxhcHNlSGVhZGVyJCB8IGFzeW5jKSkge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlck1lbnVcIi8+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj0ncHJpbWFyeScgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1haW5NZW51XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8bWF0LW1lbnUgI21haW5NZW51PSdtYXRNZW51Jz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlck1lbnVFeHRyYVwiLz5cclxuICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWFpbk1lbnVcIiBjbGFzcz1cImZsYXQtbWVudS1idXR0b24gcG9pbnRlclwiPm1vcmVfaG9yaXo8L21hdC1pY29uPlxyXG4gICAgICAgICAgPG1hdC1tZW51ICNtYWluTWVudT0nbWF0TWVudSc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJNZW51XCIvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlck1lbnVFeHRyYVwiLz5cclxuICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxtYXQtaWNvbiBbbWF0VG9vbHRpcF09XCIoY29sbGFwc2VIZWFkZXIkIHwgYXN5bmMpID8gJ2V4cGFuZCcgOiAnY29sbGFwc2UnXCIgY2xhc3M9XCJjb2xsYXBzZS1pY29uIGhlYWRlclwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic3RhdGUudG9nZ2xlQ29sbGFwc2VIZWFkZXIoKVwiPlxyXG4gICAgICAgICAge3soY29sbGFwc2VIZWFkZXIkIHwgYXN5bmMpID8gJ2V4cGFuZF9sZXNzJyA6ICdleHBhbmRfbW9yZSd9fVxyXG4gICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgIH1cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG4gICAgQGlmKCR1c2VWaXJ0dWFsKCkpXHJcbiAgICB7XHJcbiAgICAgIDx0Yi12aXJ0dWFsLXNjcm9sbC1jb250YWluZXI+XHJcbiAgICAgICAgPHRiLWdlbmVyaWMtdGFibGUgW3Jvd3NdPSdjdXN0b21Sb3dzJyBbZGF0YV09XCIoZGF0YSB8IGFzeW5jKSFcIiBbZGlzcGxheURhdGEkXT1cImRpc3BsYXlEYXRhXCJcclxuICAgICAgICAgIChzZWxlY3Rpb24kKT0nc2VsZWN0aW9uJC5lbWl0KCRldmVudCknIFtjb2x1bW5JbmZvc109J215Q29sdW1ucyQnIFt0cmFja0J5XT1cInRyYWNrQnlcIiAvPlxyXG4gICAgICA8L3RiLXZpcnR1YWwtc2Nyb2xsLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIEBlbHNlXHJcbiAgICB7XHJcbiAgICAgIDx0Yi1nZW5lcmljLXRhYmxlIFtyb3dzXT0nY3VzdG9tUm93cycgW2RhdGFdPVwiKGRhdGEgfCBhc3luYykhXCIgW2Rpc3BsYXlEYXRhJF09XCJkaXNwbGF5RGF0YVwiXHJcbiAgICAgICAgKHNlbGVjdGlvbiQpPSdzZWxlY3Rpb24kLmVtaXQoJGV2ZW50KScgW2NvbHVtbkluZm9zXT0nbXlDb2x1bW5zJCcgW3RyYWNrQnldPVwidHJhY2tCeVwiIC8+XHJcbiAgICB9XHJcblxyXG4gIDwvZGl2PlxyXG4gIEBpZih0YWJsZVNldHRpbmdzLnVzZVBhZ2luYXRvcilcclxuICB7XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdG9yXCI+XHJcbiAgICAgIDx0Yi1wYWdpbmF0b3IgI3RiUGFnaW5hdG9yIFtkYXRhJF09XCJkYXRhXCIgW3RhYmxlRWxSZWZdPVwidGFibGVFbFJlZlwiIC8+XHJcblxyXG4gICAgICA8bWF0LWljb24gW21hdFRvb2x0aXBdPVwiKGNvbGxhcHNlRm9vdGVyJCB8IGFzeW5jKSA/ICdleHBhbmQnIDogJ2NvbGxhcHNlJ1wiIGNsYXNzPVwiY29sbGFwc2UtaWNvbiBmb290ZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJzdGF0ZS50b2dnbGVDb2xsYXBzZUZvb3RlcigpXCI+XHJcbiAgICAgICAge3soY29sbGFwc2VGb290ZXIkIHwgYXN5bmMpID8gJ2V4cGFuZF9tb3JlJyA6ICdleHBhbmRfbGVzcyd9fVxyXG4gICAgICA8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICA8bmctdGVtcGxhdGUgI2hlYWRlck1lbnU+XHJcbiAgICBAaWYgKCF0YWJsZVNldHRpbmdzLmhpZGVGaWx0ZXIpIHs8dGItZmlsdGVyLWRpc3BsYXllci8+fVxyXG4gICAgQGlmICghdGFibGVTZXR0aW5ncy5oaWRlQ29sdW1uU2V0dGluZ3MpIHs8dGItY29sLWRpc3BsYXllci8+fVxyXG4gICAgQGlmICghdGFibGVTZXR0aW5ncy5oaWRlU29ydCkgezx0Yi1zb3J0LW1lbnUvPn1cclxuICAgIEBpZiAoISF0YWJsZUlkKSB7PHRiLXByb2ZpbGVzLW1lbnUgWyR0YWJsZUlkXT1cInRhYmxlSWRcIiAob25TYXZlU3RhdGUpPVwib25TYXZlU3RhdGUuZW1pdCgkZXZlbnQpXCIvPn1cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2hlYWRlck1lbnVFeHRyYT5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwicmVzZXRTdGF0ZSgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5hdXRvcmVuZXc8L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj5SZXNldCB0YWJsZTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgQGlmICghdGFibGVTZXR0aW5ncy5oaWRlRXhwb3J0KSB7XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZXhwb3J0VG9Dc3YoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICA8c3Bhbj5FeHBvcnQgVGFibGU8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgQGlmICh0YWJsZUlkKSB7XHJcbiAgICAgIDxidXR0b24gc3RvcC1wcm9wYWdhdGlvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwbS50cmlnZ2VyKCk/LnRvZ2dsZU1lbnUoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5wZW9wbGU8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuPlByb2ZpbGVzPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPHRiLXByb2ZpbGVzLW1lbnUgY2xhc3M9XCJwcm9maWxlcy1tZW51XCIgI3BtIFskdGFibGVJZF09XCJ0YWJsZUlkXCIgKG9uU2F2ZVN0YXRlKT1cIm9uU2F2ZVN0YXRlLmVtaXQoJGV2ZW50KVwiLz5cclxuICAgIH1cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFDTixlQUFlLEVBRWYsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxNQUFNLEVBRU4sWUFBWSxFQUNaLFVBQVUsRUFHVixRQUFRLEVBQ1IsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFtQixTQUFTLEVBQVksTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0s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R0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBS0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBQcmVkaWNhdGUsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGluamVjdCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEluamVjdG9yLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBjb21wdXRlZCxcclxuICBlZmZlY3QsXHJcbiAgdW50cmFja2VkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFycmF5QWRkaXRpb25hbCwgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IG1hcCwgdGFwLCB3aXRoTGF0ZXN0RnJvbSwgbWVyZ2VBbGwsIHNjYW4sIHN3aXRjaEFsbCwgc3RhcnRXaXRoLCB0aW1lc3RhbXAsIG1lcmdlTWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtYnVpbGRlcic7XHJcbmltcG9ydCB7IE1hdFJvd0RlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSwgVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmUsIFRhYmxlRmlsdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IHN0YXRlSXMsIFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgbWFwQXJyYXksIG5vdE51bGwgfSBmcm9tICcuLi8uLi8uLi9yeGpzL3J4anMtb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXhwb3J0VG9Dc3ZTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXJyYXlEZWZhdWx0cyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvRGVmYXVsdFNldHRpbmdzJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU3RhdGUsIFRhYmxlU3RhdGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlU3RhdGUnO1xyXG5pbXBvcnQgeyBzb3J0RGF0YSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9zb3J0LWRhdGEtZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBXcmFwcGVyRmlsdGVyU3RvcmUgfSBmcm9tICcuLi90YWJsZS1jb250YWluZXItZmlsdGVyL3RhYmxlLXdyYXBwZXItZmlsdGVyLXN0b3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQ29sdW1uSW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQ29sdW1uSW5mbyc7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uLy4uLy4uL3J4anMnO1xyXG5pbXBvcnQgeyBjcmVhdGVGaWx0ZXJGdW5jLCBpc0N1c3RvbUZpbHRlciwgaXNGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBUYWJsZVdyYXBwZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RhYmxlLXdyYXBwZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgY3JlYXRlTGlua0NyZWF0b3JEaWN0IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGluay1jcmVhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJTdGF0ZVN0b3JlIH0gZnJvbSAnLi4vLi4vbmdyeC90YWJsZUJ1aWxkZXJTdGF0ZVN0b3JlJztcclxuaW1wb3J0IHsgY29udGFpbmVySW1wb3J0cyB9IGZyb20gJy4vdGFibGUtY29udGFpbmVyLWltcG9ydHMnO1xyXG5pbXBvcnQgeyB1cGRhdGVGaWx0ZXJJbmZvU3RhdGUsIHVwZGF0ZUZpbHRlclByZWRpY2F0ZVN0YXRlLCB1cGRhdGVGaWx0ZXJTdGF0ZSB9IGZyb20gJy4vdGFibGUtY29udGFpbmVyLmhlbHBlcnMvZmlsdGVyLXN0YXRlLmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBpbml0aWFsU29ydFN0YXRlLCB1cGRhdGVTb3J0U3RhdGUgfSBmcm9tICcuL3RhYmxlLWNvbnRhaW5lci5oZWxwZXJzL3NvcnQtc3RhdGUuaGVscGVycyc7XHJcbmltcG9ydCB7IGdldEFsbEdyb3VwSGVhZGVyTmFtZXMsIGluaXRpYWxHcm91cEJ5U3RhdGUsIHVwZGF0ZUdyb3VwQnlTdGF0ZSB9IGZyb20gJy4vdGFibGUtY29udGFpbmVyLmhlbHBlcnMvZ3JvdXBCeS5oZWxwZXJzJztcclxuaW1wb3J0IHsgc29ydEFuZEZpbHRlckRhdGEgfSBmcm9tICcuL3RhYmxlLWNvbnRhaW5lci5oZWxwZXJzL2RhdGEtc3RhdGUuaGVscGVycyc7XHJcbmltcG9ydCB7IFRhYmxlUHJvcHMsIGRlZmF1bHRQcm9wcyB9IGZyb20gJy4vdGFibGVQcm9wcyc7XHJcbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2dlbmVyaWMtdGFibGUvcGFnaW5hdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlQnVpbGRlckRhdGFTb3VyY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmljLXRhYmxlL2dlbmVyaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItdGFibGUtY29udGFpbmVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb250YWluZXIuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb250YWluZXIuY3NzJywgJy4uLy4uL3N0eWxlcy9jb2xsYXBzZXIuc3R5bGVzLnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbVGFibGVTdG9yZSwgRXhwb3J0VG9Dc3ZTZXJ2aWNlLCBXcmFwcGVyRmlsdGVyU3RvcmVdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IGNvbnRhaW5lckltcG9ydHNcclxufSkgZXhwb3J0IGNsYXNzIFRhYmxlQ29udGFpbmVyQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByb3BzOiBUYWJsZVByb3BzID0geyAuLi5kZWZhdWx0UHJvcHMgfTtcclxuICBkYXRhU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PE9ic2VydmFibGU8VFtdPj4oMSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuICBwdWJsaWMgY29uZmlnID0gaW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKTtcclxuICBwdWJsaWMgZXhwb3J0VG9Dc3ZTZXJ2aWNlID0gaW5qZWN0KEV4cG9ydFRvQ3N2U2VydmljZTxUPik7XHJcbiAgcHVibGljIHdyYXBwZXIgPSBpbmplY3QoVGFibGVXcmFwcGVyRGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gIHB1YmxpYyBzdGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVCdWlsZGVyU3RhdGVTdG9yZSk7XHJcbiAgcHVibGljIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgZmlsdGVyRGlyZWN0aXZlcyA9IGNvbnRlbnRDaGlsZHJlbihUYWJsZUZpbHRlckRpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSk7XHJcbiAgY3VzdG9tRmlsdGVyRGlyZWN0aXZlcyA9IGNvbnRlbnRDaGlsZHJlbihUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSwge2Rlc2NlbmRhbnRzOiB0cnVlfSk7XHJcblxyXG4gIGFsbEZpbHRlckRpcmVjdGl2ZXMgPSBjb21wdXRlZCggKCkgPT4gIHtcclxuICAgICAgaWYodGhpcy53cmFwcGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLmZpbHRlckRpcmVjdGl2ZXMoKSwgLi4udGhpcy5jdXN0b21GaWx0ZXJEaXJlY3RpdmVzKCksIC4uLnRoaXMud3JhcHBlci4kcmVnaXN0cmF0aW9ucygpXTtcclxuICAgICAgfSB7XHJcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLmZpbHRlckRpcmVjdGl2ZXMoKSwgLi4udGhpcy5jdXN0b21GaWx0ZXJEaXJlY3RpdmVzKCldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcblxyXG4gIHRhYmxlU3RhdGUgPSB0b1NpZ25hbCh0aGlzLnN0YXRlLnN0YXRlJC5waXBlKGZpbHRlcihzdGF0ZUlzKEluaXRpYWxpemF0aW9uU3RhdGUuTG9hZGVkRnJvbVN0b3JlKSkpKSA7XHJcblxyXG4gIGFsbEZpbHRlckRpcmVjdGl2ZXNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnRhYmxlU3RhdGUoKTtcclxuICAgIHVudHJhY2tlZCgoKSA9PiB7XHJcbiAgICAgIGlmKHN0YXRlKSB7XHJcbiAgICAgICAgdGhpcy5hbGxGaWx0ZXJEaXJlY3RpdmVzKCkuZmlsdGVyKCBmID0+ICFmLnVzZWQpLmZvckVhY2goIGYgPT4ge1xyXG4gICAgICAgICAgZi51c2VkID0gdHJ1ZTtcclxuICAgICAgICAgIGlmKGYuc2F2YWJsZSkge1xyXG4gICAgICAgICAgICB2YXIgZmlsdGVyID0gc3RhdGUuZmlsdGVyc1tmLmZpbHRlcklkXTtcclxuICAgICAgICAgICAgaWYoaXNGaWx0ZXJJbmZvKGZpbHRlcikpIHtcclxuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJEaXJlY3RpdmU6IFRhYmxlRmlsdGVyRGlyZWN0aXZlID0gZiBhcyBUYWJsZUZpbHRlckRpcmVjdGl2ZTtcclxuICAgICAgICAgICAgICBmaWx0ZXJEaXJlY3RpdmUuZmllbGRUeXBlID0gZmlsdGVyLmZpZWxkVHlwZTtcclxuICAgICAgICAgICAgICBmaWx0ZXJEaXJlY3RpdmUuZmlsdGVyVHlwZSA9IGZpbHRlci5maWx0ZXJUeXBlO1xyXG4gICAgICAgICAgICAgIGZpbHRlckRpcmVjdGl2ZS5zZXRGaWx0ZXJWYWx1ZShmaWx0ZXIuZmlsdGVyVmFsdWUpO1xyXG4gICAgICAgICAgICAgIGZpbHRlckRpcmVjdGl2ZS5rZXkgPSBmaWx0ZXIua2V5O1xyXG4gICAgICAgICAgICAgIGZpbHRlckRpcmVjdGl2ZS51cGRhdGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihpc0N1c3RvbUZpbHRlcihmaWx0ZXIpKSB7XHJcbiAgICAgICAgICAgICAgZi5hY3RpdmUgPSBmaWx0ZXIuYWN0aXZlID8/IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuYWRkRmlsdGVyKChmLmZpbHRlciQgYXMgYW55KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9KTtcclxuXHJcbiAgQFZpZXdDaGlsZChQYWdpbmF0b3JDb21wb25lbnQpICBwYWdpbmF0b3JDb21wb25lbnQ/OiBQYWdpbmF0b3JDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChHZW5lcmljVGFibGVDb21wb25lbnQpICBnZW5lcmljVGFibGU/OiBHZW5lcmljVGFibGVDb21wb25lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpIGN1c3RvbVJvd3MhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPGFueT4+O1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oQ3VzdG9tQ2VsbERpcmVjdGl2ZSkgY3VzdG9tQ2VsbHMhOiBRdWVyeUxpc3Q8Q3VzdG9tQ2VsbERpcmVjdGl2ZT47XHJcbiAgQENvbnRlbnRDaGlsZCgndGFibGUnLCB7cmVhZDogRWxlbWVudFJlZn0pIHRhYmxlRWxSZWYhOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0YWJsZUJ1aWxkZXIhOiBUYWJsZUJ1aWxkZXI7XHJcbiAgQElucHV0KCkgdGFibGVJZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgaW5kZXhDb2x1bW4odmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByb3BzLmluZGV4Q29sdW1uID0gdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgc2VsZWN0aW9uQ29sdW1uKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wcm9wcy5zZWxlY3Rpb25Db2x1bW4gPSB2YWw7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBpc1N0aWNreSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucHJvcHMuaXNTdGlja3kgPSB2YWw7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBzdGlja3lGb290ZXIodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnByb3BzLnN0aWNreUZvb3RlciA9IHZhbDtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RhdGUuc2V0UGFnZVNpemUodmFsdWUpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgZ3JvdXBIZWFkZXJUZW1wbGF0ZSggdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuICAgIHRoaXMucHJvcHMuZ3JvdXBIZWFkZXJUZW1wbGF0ZSA9IHRlbXBsYXRlO1xyXG4gIH1cclxuICBASW5wdXQoKSB0cmFja0J5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlucHV0RmlsdGVycz86IE9ic2VydmFibGU8QXJyYXk8UHJlZGljYXRlPFQ+Pj47XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb24kID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkYXRhID0gdGhpcy5kYXRhU3ViamVjdC5waXBlKFxyXG4gICAgc3dpdGNoQWxsKCksXHJcbiAgICBzdGFydFdpdGgoW10gYXMgVFtdKSxcclxuICAgIGRlZmF1bHRTaGFyZVJlcGxheSgpLFxyXG4gICk7XHJcbiAgQE91dHB1dCgpIG9uU3RhdGVSZXNldCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TYXZlU3RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHN0YXRlJCA9IHRoaXMuc3RhdGUuZ2V0U2F2YWJsZVN0YXRlKCkucGlwZShcclxuICAgIG1hcChzdGF0ZSA9PiBjbG9uZURlZXAoc3RhdGUpKSxcclxuICAgIGRlZmF1bHRTaGFyZVJlcGxheSgpLFxyXG4gICk7XHJcblxyXG4gIGNsZWFyU2VsZWN0aW9ucygpe1xyXG4gICAgdGhpcy5nZW5lcmljVGFibGU/LnNlbGVjdGlvbi5jbGVhcih0cnVlKTtcclxuICB9XHJcbiAgZGlzcGxheURhdGFTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8T2JzZXJ2YWJsZTxUW10+PigxKTtcclxuICBkaXNwbGF5RGF0YSA9IHRoaXMuZGlzcGxheURhdGFTdWJqZWN0LnBpcGUoXHJcbiAgICBzd2l0Y2hBbGwoKSxcclxuICAgIGRlZmF1bHRTaGFyZVJlcGxheSgpLFxyXG4gICk7XHJcbiAgJGRpc3BsYXlEYXRhID0gdG9TaWduYWwodGhpcy5kaXNwbGF5RGF0YSwgeyBpbml0aWFsVmFsdWU6IFtdIH0pO1xyXG5cclxuXHJcblxyXG4gIGNvbGxhcHNlRm9vdGVyJCA9IHRoaXMuc3RhdGUuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIpKTtcclxuXHJcbiAgbXlDb2x1bW5zJCE6IE9ic2VydmFibGU8Q29sdW1uSW5mb1tdPjtcclxuXHJcblxyXG4gIG5nT25EZXN0cm95KCl7XHJcbiAgICBpZih0aGlzLnRhYmxlSWQpIHtcclxuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2F2ZVRhYmxlU3RhdGVUb0xvY2FsKHsgdGFibGVJZDp0aGlzLnRhYmxlSWQsIHRhYmxlU3RhdGU6IHRoaXMuc3RhdGUuZ2V0U2F2YWJsZVN0YXRlU2lnbmFsKCkgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaXJzdFBhZ2UoKTogdm9pZCB7XHJcbiAgIHRoaXMucGFnaW5hdG9yQ29tcG9uZW50Py5wYWdpbmF0b3I/LmZpcnN0UGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgbGFzdFBhZ2UoKTogdm9pZCB7XHJcbiAgIHRoaXMucGFnaW5hdG9yQ29tcG9uZW50Py5wYWdpbmF0b3I/Lmxhc3RQYWdlKCk7XHJcbiAgfVxyXG5cclxuICByZXNldFN0YXRlKCkge1xyXG4gICAgdGhpcy5jdXN0b21GaWx0ZXJEaXJlY3RpdmVzKCkuZm9yRWFjaCggY2YgPT4gY2YucmVzZXQoKSk7XHJcbiAgICB0aGlzLmZpbHRlckRpcmVjdGl2ZXMoKS5mb3JFYWNoKCBjZiA9PiBjZi5yZXNldCgpICk7XHJcbiAgICB0aGlzLnN0YXRlLnJlc2V0U3RhdGUoKTtcclxuICAgIHRoaXMub25TdGF0ZVJlc2V0Lm5leHQobnVsbClcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcclxuICAgIHRoaXMuc3RhdGUuc2V0VGFibGVTZXR0aW5ncyh0aGlzLnRhYmxlQnVpbGRlci5zZXR0aW5ncyk7XHJcbiAgICB0aGlzLnN0YXRlLnJ1bk9uY2VXaGVuKFxyXG4gICAgICBzdGF0ZUlzKEluaXRpYWxpemF0aW9uU3RhdGUuTWV0YURhdGFMb2FkZWQpLFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYodGhpcy50YWJsZUlkKSB7XHJcbiAgICAgICAgICBjb25zdCBwZXJzaXN0ZWRTdGF0ZSQgPSB0b09ic2VydmFibGUodGhpcy5zdGF0ZVNlcnZpY2UuJHNlbGVjdExvY2FsVGFibGVTdGF0ZUZvclZpZXcodGhpcy50YWJsZUlkKSwge2luamVjdG9yOiB0aGlzLmluamVjdG9yfSkucGlwZShcclxuICAgICAgICAgICAgdGFwKCBwZXJzaXN0ZWRTdGF0ZSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYoIXBlcnNpc3RlZFN0YXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNldEluaXRpYWxpemF0aW9uU3RhdGUoSW5pdGlhbGl6YXRpb25TdGF0ZS5Mb2FkZWRGcm9tU3RvcmUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5vdE51bGwoKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZVN0YXRlRnJvbVBlcnNpc3RlZFN0YXRlKHBlcnNpc3RlZFN0YXRlJC5waXBlKG5vdE51bGwoKSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlLnNldEluaXRpYWxpemF0aW9uU3RhdGUoSW5pdGlhbGl6YXRpb25TdGF0ZS5Mb2FkZWRGcm9tU3RvcmUpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBjdXN0b21GaWx0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJlZGljYXRlPFQ+W10+KFtdKTtcclxuICBpbml0aWFsaXplRGF0YSgpIHtcclxuXHJcbiAgICBjb25zdCBwcmVkaWNhdGVGaWx0ZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaW5wdXRGaWx0ZXJzPy5waXBlKHN0YXJ0V2l0aChbXSkpID8/IG9mKFtdIGFzIFByZWRpY2F0ZTxUPltdKSwgdGhpcy5jdXN0b21GaWx0ZXJzJF0pXHJcbiAgICAgIC5waXBlKG1hcCgoW2EsIGJdKSA9PiBbLi4uYSwgLi4uYl0pKTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJzJCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLnN0YXRlLmZpbHRlcnMkLnBpcGUoc2Nhbih1cGRhdGVGaWx0ZXJJbmZvU3RhdGUsIHsgYWxsRmlsdGVyczoge30gfSksIHRpbWVzdGFtcCgpKSxcclxuICAgICAgcHJlZGljYXRlRmlsdGVycyQucGlwZShzY2FuKHVwZGF0ZUZpbHRlclByZWRpY2F0ZVN0YXRlLCB7YWxsRmlsdGVyczogW10gYXMgUHJlZGljYXRlPFQ+W119KSwgdGltZXN0YW1wKCkpXHJcbiAgICBdKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIG1hcCgoW2ZpbHRlckluZm8sIHByZWRdKSA9PiB1cGRhdGVGaWx0ZXJTdGF0ZShmaWx0ZXJJbmZvLCBwcmVkKSlcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgc29ydHNTdGF0ZSQgPSB0aGlzLnN0YXRlLnNvcnQkLnBpcGUoc2Nhbih1cGRhdGVTb3J0U3RhdGUsIGluaXRpYWxTb3J0U3RhdGUpKTtcclxuXHJcbiAgICBjb25zdCBzb3J0ZWRBbmRGaWx0ZXJlZERhdGEkID0gc29ydEFuZEZpbHRlckRhdGEodGhpcy50YWJsZUJ1aWxkZXIuZ2V0RGF0YSQoKSwgc29ydHNTdGF0ZSQsIGZpbHRlcnMkKTtcclxuXHJcbiAgICBjb25zdCBmbGF0R3JvdXBlZCQgPSBjb21iaW5lTGF0ZXN0KFtzb3J0ZWRBbmRGaWx0ZXJlZERhdGEkLnBpcGUodGltZXN0YW1wKCkpLCB0aGlzLnN0YXRlLmdyb3VwQnlLZXlzJC5waXBlKHRpbWVzdGFtcCgpKSwgdGhpcy5zdGF0ZS5leHBhbmRlZEdyb3VwcyQucGlwZSh0aW1lc3RhbXAoKSldKS5waXBlKFxyXG4gICAgICBzY2FuKHVwZGF0ZUdyb3VwQnlTdGF0ZSwgaW5pdGlhbEdyb3VwQnlTdGF0ZSksXHJcbiAgICAgIG1hcCgoe2Rpc3BsYXlEYXRhfSkgPT4gZGlzcGxheURhdGEpLFxyXG4gICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKSxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5RGF0YVN1YmplY3QubmV4dChmbGF0R3JvdXBlZCQpO1xyXG4gICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KHNvcnRlZEFuZEZpbHRlcmVkRGF0YSQpO1xyXG5cclxuICAgIHRoaXMuc3RhdGUub24odGhpcy5kaXNwbGF5RGF0YSwgKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7ZGF0YUxlbjogZGF0YS5sZW5ndGh9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgZHMgPSBuZXcgVGFibGVCdWlsZGVyRGF0YVNvdXJjZTxUPihcclxuICAgICAgdGhpcy5kaXNwbGF5RGF0YSxcclxuICAgICAgdGhpcy5zdGF0ZSxcclxuICAgICk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZVN0YXRlKHtwcm9wczoge1xyXG4gICAgICBkYXRhU291cmNlOiBkcyxcclxuICAgICAgLi4udGhpcy5wcm9wc1xyXG4gICAgfX0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVTdGF0ZSgpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9Dc3YoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzb3J0ZWQgPSB0aGlzLmRhdGEucGlwZShcclxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdGF0ZS5zb3J0JCksXHJcbiAgICAgIG1hcCgoW2RhdGEsIHNvcnRlZF0pID0+IHNvcnREYXRhKGRhdGEsIHNvcnRlZCkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5leHBvcnRUb0NzdlNlcnZpY2UuZXhwb3J0VG9Dc3Yoc29ydGVkKTtcclxuICB9XHJcblxyXG4gIGV4cGFuZEFsbEdyb3VwcyA9ICgpID0+IHtcclxuICAgIGNvbnN0IGdyb3VwSGVhZGVycyA9IGdldEFsbEdyb3VwSGVhZGVyTmFtZXModGhpcy4kZGlzcGxheURhdGEoKSk7XHJcbiAgICB0aGlzLnN0YXRlLmV4cGFuZEFsbE9mR3JvdXAoeyBncm91cEhlYWRlcnNCeUtleTogZ3JvdXBIZWFkZXJzIH0pO1xyXG4gIH1cclxuXHJcbiAgY29sbGFwc2VBbGxHcm91cHMgPSAoKSA9PiB0aGlzLnN0YXRlLmNvbGxhcHNlQWxsKCk7XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtbnMoKTtcclxuICAgIHRoaXMuc3RhdGUucnVuT25jZVdoZW4oXHJcbiAgICAgIHN0YXRlSXMoSW5pdGlhbGl6YXRpb25TdGF0ZS5Mb2FkZWRGcm9tU3RvcmUpLFxyXG4gICAgICBzdGF0ZSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXJEaXJlY3RpdmVzKHN0YXRlKTtcclxuICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZVN0YXRlKHsgaW5pdGlhbGl6YXRpb25TdGF0ZTogSW5pdGlhbGl6YXRpb25TdGF0ZS5SZWFkeSB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQ29sdW1ucygpIHtcclxuICAgIGNvbnN0IGN1c3RvbUNlbGxNYXAgPSBuZXcgTWFwKHRoaXMuY3VzdG9tQ2VsbHMubWFwKGNjID0+IFtjYy5jdXN0b21DZWxsLGNjXSkpO1xyXG4gICAgdGhpcy5zdGF0ZS5zZXRNZXRhRGF0YSh0aGlzLnRhYmxlQnVpbGRlci5tZXRhRGF0YSQhLnBpcGUoXHJcbiAgICAgIG1hcCgobWRzKSA9PiB7XHJcbiAgICAgICAgbWRzID0gbWRzLm1hcCh0aGlzLm1hcE1ldGFEYXRhcyk7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIC4uLm1kcyxcclxuICAgICAgICAgIC4uLnRoaXMuY3VzdG9tQ2VsbHMubWFwKCBjYyA9PiBjYy5nZXRNZXRhRGF0YShtZHMuZmluZCggaXRlbSA9PiBpdGVtLmtleSA9PT0gY2MuY3VzdG9tQ2VsbCApKSApXHJcbiAgICAgICAgXVxyXG4gICAgICB9KVxyXG4gICAgKSk7XHJcbiAgICB0aGlzLnN0YXRlLnNldExpbmtNYXBzKHRoaXMudGFibGVCdWlsZGVyLm1ldGFEYXRhJCEucGlwZShcclxuICAgICAgbWFwKGNyZWF0ZUxpbmtDcmVhdG9yRGljdClcclxuICAgICkpXHJcblxyXG4gICAgdGhpcy5teUNvbHVtbnMkID0gdGhpcy5zdGF0ZS5tZXRhRGF0YUFycmF5JC5waXBlKFxyXG4gICAgICBtYXBBcnJheSggbWV0YURhdGEgPT4gKHttZXRhRGF0YSwgY3VzdG9tQ2VsbDogY3VzdG9tQ2VsbE1hcC5nZXQobWV0YURhdGEua2V5KSF9KSksXHJcbiAgICAgIGRlZmF1bHRTaGFyZVJlcGxheSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbWFwTWV0YURhdGFzID0gKG1ldGEgOiBNZXRhRGF0YTxUPikgPT4ge1xyXG4gICAgaWYobWV0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5BcnJheSl7XHJcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWwgPSB7Li4ubWV0YS5hZGRpdGlvbmFsfSBhcyBBcnJheUFkZGl0aW9uYWw7XHJcbiAgICAgIGFkZGl0aW9uYWwuYXJyYXlTdHlsZSA9IGFkZGl0aW9uYWw/LmFycmF5U3R5bGUgPz8gQXJyYXlEZWZhdWx0cy5hcnJheVN0eWxlO1xyXG4gICAgICBhZGRpdGlvbmFsLmxpbWl0ID0gYWRkaXRpb25hbC5saW1pdCA/PyB0aGlzLmNvbmZpZy5hcnJheUluZm8/LmxpbWl0ID8/IEFycmF5RGVmYXVsdHMubGltaXQ7XHJcbiAgICAgIHJldHVybiB7Li4ubWV0YSxhZGRpdGlvbmFsfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1ldGE7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZUhlYWRlciQgPSB0aGlzLnN0YXRlLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyKSk7XHJcblxyXG4gIGFkZEZpbHRlckRpcmVjdGl2ZXMgPSAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHtcclxuICAgIGNvbnN0IGN1c3RvbUZpbHRlcnMkID0gIHRvT2JzZXJ2YWJsZSh0aGlzLmFsbEZpbHRlckRpcmVjdGl2ZXMsIHtpbmplY3RvcjogdGhpcy5pbmplY3Rvcn0pLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKCBjdXN0b21lckZpbHRlcnMgPT4gY3VzdG9tZXJGaWx0ZXJzXHJcbiAgICAgICAgLmZpbHRlciggZmlsdGVyID0+ICFmaWx0ZXIuc2F2YWJsZSApXHJcbiAgICAgICAgLm1hcChmaWx0ZXIgPT4gZmlsdGVyLmZpbHRlciQgKVxyXG4gICAgICApLFxyXG4gICAgICBtZXJnZUFsbCgpLFxyXG4gICAgICBzY2FuKCAoYSxiKT0+IHtcclxuICAgICAgICAgIGlmKGIuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIGFbYi5maWx0ZXJJZF0gPSBpc0N1c3RvbUZpbHRlcihiKSA/IGIucHJlZGljYXRlIDogY3JlYXRlRmlsdGVyRnVuYyhiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBhW2IuZmlsdGVySWRdIDtcclxuICAgICAgICAgIH1cclxuICAgICAgcmV0dXJuIGE7XHJcbiAgICAgIH0sIHt9IGFzIERpY3Rpb25hcnk8UHJlZGljYXRlPGFueT4+KSxcclxuICAgICAgbWFwKCBmID0+IE9iamVjdC52YWx1ZXMoZikpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc3RhdGUub24oY3VzdG9tRmlsdGVycyQsIChmKSA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tRmlsdGVycyQubmV4dChmKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgJHVzZVZpcnR1YWwgPSB0aGlzLnN0YXRlLiRpc1ZpcnR1YWw7XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JlZm9yZV1cIiAvPlxyXG5cclxuPG5nLWNvbnRhaW5lciBtdWx0aVNvcnQgKm5ncnhMZXQ9XCJzdGF0ZS50YWJsZVNldHRpbmdzJCBhcyB0YWJsZVNldHRpbmdzXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgQGlmICgoIShjb2xsYXBzZUhlYWRlciQgfCBhc3luYykpIHx8IHRhYmxlU2V0dGluZ3Muc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZCkge1xyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi50Yi1oZWFkZXItdGl0bGVcIi8+XHJcbiAgICAgIH1cclxuICAgICAgQGlmKChzdGF0ZS5ncm91cEJ5S2V5cyQgfCBhc3luYyk/Lmxlbmd0aCl7XHJcbiAgICAgICAgPGdyb3VwLWJ5LWxpc3QgLz5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmx4LXJvdy1lbmRcIj5cclxuICAgICAgPGxpYi1maWx0ZXItbGlzdCAvPlxyXG4gICAgICBAaWYgKCF0YWJsZVNldHRpbmdzLmhpZGVIZWFkZXIpIHtcclxuICAgICAgICBAaWYgKCEoY29sbGFwc2VIZWFkZXIkIHwgYXN5bmMpKSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyTWVudVwiLz5cclxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPSdwcmltYXJ5JyBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWFpbk1lbnVcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxtYXQtbWVudSAjbWFpbk1lbnU9J21hdE1lbnUnPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyTWVudUV4dHJhXCIvPlxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtYWluTWVudVwiIGNsYXNzPVwiZmxhdC1tZW51LWJ1dHRvbiBwb2ludGVyXCI+bW9yZV9ob3JpejwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LW1lbnUgI21haW5NZW51PSdtYXRNZW51Jz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlck1lbnVcIi8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyTWVudUV4dHJhXCIvPlxyXG4gICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPG1hdC1pY29uIFttYXRUb29sdGlwXT1cIihjb2xsYXBzZUhlYWRlciQgfCBhc3luYykgPyAnZXhwYW5kJyA6ICdjb2xsYXBzZSdcIiBjbGFzcz1cImNvbGxhcHNlLWljb24gaGVhZGVyXCJcclxuICAgICAgICAgIChjbGljayk9XCJzdGF0ZS50b2dnbGVDb2xsYXBzZUhlYWRlcigpXCI+XHJcbiAgICAgICAgICB7eyhjb2xsYXBzZUhlYWRlciQgfCBhc3luYykgPyAnZXhwYW5kX2xlc3MnIDogJ2V4cGFuZF9tb3JlJ319XHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgfVxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICBAaWYoJHVzZVZpcnR1YWwoKSlcclxuICAgIHtcclxuICAgICAgPHRiLXZpcnR1YWwtc2Nyb2xsLWNvbnRhaW5lcj5cclxuICAgICAgICA8dGItZ2VuZXJpYy10YWJsZSBbcm93c109J2N1c3RvbVJvd3MnIFtkYXRhXT1cIihkYXRhIHwgYXN5bmMpIVwiIFtkaXNwbGF5RGF0YSRdPVwiZGlzcGxheURhdGFcIlxyXG4gICAgICAgICAgKHNlbGVjdGlvbiQpPSdzZWxlY3Rpb24kLmVtaXQoJGV2ZW50KScgW2NvbHVtbkluZm9zXT0nbXlDb2x1bW5zJCcgW3RyYWNrQnldPVwidHJhY2tCeVwiIC8+XHJcbiAgICAgIDwvdGItdmlydHVhbC1zY3JvbGwtY29udGFpbmVyPlxyXG4gICAgfVxyXG4gICAgQGVsc2VcclxuICAgIHtcclxuICAgICAgPHRiLWdlbmVyaWMtdGFibGUgW3Jvd3NdPSdjdXN0b21Sb3dzJyBbZGF0YV09XCIoZGF0YSB8IGFzeW5jKSFcIiBbZGlzcGxheURhdGEkXT1cImRpc3BsYXlEYXRhXCJcclxuICAgICAgICAoc2VsZWN0aW9uJCk9J3NlbGVjdGlvbiQuZW1pdCgkZXZlbnQpJyBbY29sdW1uSW5mb3NdPSdteUNvbHVtbnMkJyBbdHJhY2tCeV09XCJ0cmFja0J5XCIgLz5cclxuICAgIH1cclxuXHJcbiAgPC9kaXY+XHJcbiAgQGlmKHRhYmxlU2V0dGluZ3MudXNlUGFnaW5hdG9yKVxyXG4gIHtcclxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0b3JcIj5cclxuICAgICAgPHRiLXBhZ2luYXRvciAjdGJQYWdpbmF0b3IgW2RhdGEkXT1cImRhdGFcIiBbdGFibGVFbFJlZl09XCJ0YWJsZUVsUmVmXCIgLz5cclxuXHJcbiAgICAgIDxtYXQtaWNvbiBbbWF0VG9vbHRpcF09XCIoY29sbGFwc2VGb290ZXIkIHwgYXN5bmMpID8gJ2V4cGFuZCcgOiAnY29sbGFwc2UnXCIgY2xhc3M9XCJjb2xsYXBzZS1pY29uIGZvb3RlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cInN0YXRlLnRvZ2dsZUNvbGxhcHNlRm9vdGVyKClcIj5cclxuICAgICAgICB7eyhjb2xsYXBzZUZvb3RlciQgfCBhc3luYykgPyAnZXhwYW5kX21vcmUnIDogJ2V4cGFuZF9sZXNzJ319XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjaGVhZGVyTWVudT5cclxuICAgIEBpZiAoIXRhYmxlU2V0dGluZ3MuaGlkZUZpbHRlcikgezx0Yi1maWx0ZXItZGlzcGxheWVyLz59XHJcbiAgICBAaWYgKCF0YWJsZVNldHRpbmdzLmhpZGVDb2x1bW5TZXR0aW5ncykgezx0Yi1jb2wtZGlzcGxheWVyLz59XHJcbiAgICBAaWYgKCF0YWJsZVNldHRpbmdzLmhpZGVTb3J0KSB7PHRiLXNvcnQtbWVudS8+fVxyXG4gICAgQGlmICghIXRhYmxlSWQpIHs8dGItcHJvZmlsZXMtbWVudSBbJHRhYmxlSWRdPVwidGFibGVJZFwiIChvblNhdmVTdGF0ZSk9XCJvblNhdmVTdGF0ZS5lbWl0KCRldmVudClcIi8+fVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjaGVhZGVyTWVudUV4dHJhPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJyZXNldFN0YXRlKClcIj5cclxuICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmF1dG9yZW5ldzwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPlJlc2V0IHRhYmxlPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICBAaWYgKCF0YWJsZVNldHRpbmdzLmhpZGVFeHBvcnQpIHtcclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJleHBvcnRUb0NzdigpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuPkV4cG9ydCBUYWJsZTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKHRhYmxlSWQpIHtcclxuICAgICAgPGJ1dHRvbiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInBtLnRyaWdnZXIoKT8udG9nZ2xlTWVudSgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPnBlb3BsZTwvbWF0LWljb24+XHJcbiAgICAgICAgPHNwYW4+UHJvZmlsZXM8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8dGItcHJvZmlsZXMtbWVudSBjbGFzcz1cInByb2ZpbGVzLW1lbnVcIiAjcG0gWyR0YWJsZUlkXT1cInRhYmxlSWRcIiAob25TYXZlU3RhdGUpPVwib25TYXZlU3RhdGUuZW1pdCgkZXZlbnQpXCIvPlxyXG4gICAgfVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -3755,10 +3755,7 @@ class GenericTableComponent {
3755
3755
  this.state.on(this.selection.changed, c => this.selection$.emit(c));
3756
3756
  }
3757
3757
  $selectableData = computed(() => {
3758
- if (this.state.$viewType() === 'paginator') {
3759
- return this.state.props().dataSource.data;
3760
- }
3761
- else if (this.state.$viewType() === 'virtual paginator') {
3758
+ if (this.state.$viewType() === 'paginator' || this.state.$viewType() === 'virtual paginator') {
3762
3759
  const previousPageRecords = this.state.state().currentPage * this.state.state().pageSize;
3763
3760
  return this.$data().slice(previousPageRecords, previousPageRecords + this.state.state().pageSize);
3764
3761
  }
@@ -4940,26 +4937,28 @@ class TableContainerComponent {
4940
4937
  tableState = toSignal(this.state.state$.pipe(filter(stateIs(InitializationState.LoadedFromStore))));
4941
4938
  allFilterDirectivesEffect = effect(() => {
4942
4939
  const state = this.tableState();
4943
- if (state) {
4944
- this.allFilterDirectives().filter(f => !f.used).forEach(f => {
4945
- f.used = true;
4946
- if (f.savable) {
4947
- var filter = state.filters[f.filterId];
4948
- if (isFilterInfo(filter)) {
4949
- const filterDirective = f;
4950
- filterDirective.fieldType = filter.fieldType;
4951
- filterDirective.filterType = filter.filterType;
4952
- filterDirective.setFilterValue(filter.filterValue);
4953
- filterDirective.key = filter.key;
4954
- filterDirective.update();
4955
- }
4956
- if (isCustomFilter(filter)) {
4957
- f.active = filter.active ?? false;
4940
+ untracked(() => {
4941
+ if (state) {
4942
+ this.allFilterDirectives().filter(f => !f.used).forEach(f => {
4943
+ f.used = true;
4944
+ if (f.savable) {
4945
+ var filter = state.filters[f.filterId];
4946
+ if (isFilterInfo(filter)) {
4947
+ const filterDirective = f;
4948
+ filterDirective.fieldType = filter.fieldType;
4949
+ filterDirective.filterType = filter.filterType;
4950
+ filterDirective.setFilterValue(filter.filterValue);
4951
+ filterDirective.key = filter.key;
4952
+ filterDirective.update();
4953
+ }
4954
+ if (isCustomFilter(filter)) {
4955
+ f.active = filter.active ?? false;
4956
+ }
4957
+ this.state.addFilter(f.filter$);
4958
4958
  }
4959
- untracked(() => this.state.addFilter(f.filter$));
4960
- }
4961
- });
4962
- }
4959
+ });
4960
+ }
4961
+ });
4963
4962
  });
4964
4963
  paginatorComponent;
4965
4964
  genericTable;
@@ -5545,5 +5544,5 @@ function provideActionableSelector() {
5545
5544
  * Generated bundle index. Do not edit.
5546
5545
  */
5547
5546
 
5548
- export { ActionStateSpinnerComponent, ActionStateUiModule, ActionStatus, AppStatusState, ArrayStyle, AutoFocusDirective, CancellationToken, ClickEmitterDirective, ClickSubjectDirective, ConditionalClassesDirective, CreateTableBuilder, CustomCellDirective, DateFilterComponent, DialogDirective, DialogService, DialogWrapper, FieldType, FilterChipsComponent, FilterComponent, FunctionPipe, GenColDisplayerComponent, GenFilterDisplayerComponent, GeneralTableSettings, GenericTableComponent, GroupByListComponent, HttpErrorStateDirective, HttpInProgressStateDirective, HttpNotStartedStateDirective, HttpRequestModule, HttpRequestStateDirective, HttpRequestStateFactory, HttpRequestStateStore, HttpRequestStatus, HttpRequestStrategy, HttpSuccessStateDirective, MatButtonToggleFilterDirective, MatCheckboxTbFilterDirective, MatOptionTbFilterDirective, MatRadioButtonTbFilterDirective, MatSlideToggleGroupDirective, MatSlideToggleTbFilterDirective, MatTableObservableDataSource, MultiSortDirective, NgrxExtModule, NotPersistedTableSettings, PaginatorComponent, PersistedTableSettings, PhoneNumberPipe, PreventEnterDirective, ResizeColumnDirective, SortDirection, SpaceCasePipe, StopPropagationDirective, StylerDirective, Subjectifier, Subscriber, TableBuilder, TableBuilderConfigToken, TableBuilderModule, TableColumnHeaderSettings, TableContainerComponent, TableCustomFilterDirective, TableCustomFilterDirectiveBase, TableFilterDirective, TableFilterStringContainsDirective, TableSettings, TableWrapperDirective, TableWrapperFooterSettings, TableWrapperHeaderSettings, Target, TbSelectedFilterDirective, TrimWhitespaceDirective, UtilitiesModule, VirtualScrollOptions, actionStatusReducer, chainRequest, clearActionableSelectorRequestCache, combineArrays, createActionableSelector, createFailure, createRequestor, createSuccess, defaultFilter, defaultShareReplay, delayOn, filterArray, getRequestorBody, getRequestorStatus, getStatusState, httpRequest, httpRequestor, inProgress, initialState, isDifferent, isErrorState, isSuccessOrErrorState, isSuccessState, mapArray, mapError, metaDataArrToDict, notNull, notStarted, onWait, onceWhen, previousAndCurrent, provideActionableSelector, provideTableBuilder, selectAll, selectEntities, selectEntity, selectIds, selectTotal, serverStatusTypes, setUpStoreFactory, skipOneWhen, spaceCase, startWithIfEmpty, statusAdapter, statusIsSuccessOrInProgress, subscriber, switchOff, tapError, tapSuccess, wrapInArr };
5547
+ export { ActionStateSpinnerComponent, ActionStateUiModule, ActionStatus, AppStatusState, ArrayStyle, AutoFocusDirective, CancellationToken, ClickEmitterDirective, ClickSubjectDirective, ConditionalClassesDirective, CreateTableBuilder, CustomCellDirective, DateFilterComponent, DialogDirective, DialogService, DialogWrapper, FieldType, FilterChipsComponent, FilterComponent, FilterTypes, FunctionPipe, GenColDisplayerComponent, GenFilterDisplayerComponent, GeneralTableSettings, GenericTableComponent, GroupByListComponent, HttpErrorStateDirective, HttpInProgressStateDirective, HttpNotStartedStateDirective, HttpRequestModule, HttpRequestStateDirective, HttpRequestStateFactory, HttpRequestStateStore, HttpRequestStatus, HttpRequestStrategy, HttpSuccessStateDirective, MatButtonToggleFilterDirective, MatCheckboxTbFilterDirective, MatOptionTbFilterDirective, MatRadioButtonTbFilterDirective, MatSlideToggleGroupDirective, MatSlideToggleTbFilterDirective, MatTableObservableDataSource, MultiSortDirective, NgrxExtModule, NotPersistedTableSettings, PaginatorComponent, PersistedTableSettings, PhoneNumberPipe, PreventEnterDirective, ResizeColumnDirective, SortDirection, SpaceCasePipe, StopPropagationDirective, StylerDirective, Subjectifier, Subscriber, TableBuilder, TableBuilderConfigToken, TableBuilderModule, TableColumnHeaderSettings, TableContainerComponent, TableCustomFilterDirective, TableCustomFilterDirectiveBase, TableFilterDirective, TableFilterStringContainsDirective, TableSettings, TableWrapperDirective, TableWrapperFooterSettings, TableWrapperHeaderSettings, Target, TbSelectedFilterDirective, TrimWhitespaceDirective, UtilitiesModule, VirtualScrollOptions, actionStatusReducer, chainRequest, clearActionableSelectorRequestCache, combineArrays, createActionableSelector, createFailure, createRequestor, createSuccess, defaultFilter, defaultShareReplay, delayOn, filterArray, getRequestorBody, getRequestorStatus, getStatusState, httpRequest, httpRequestor, inProgress, initialState, isDifferent, isErrorState, isSuccessOrErrorState, isSuccessState, mapArray, mapError, metaDataArrToDict, notNull, notStarted, onWait, onceWhen, previousAndCurrent, provideActionableSelector, provideTableBuilder, selectAll, selectEntities, selectEntity, selectIds, selectTotal, serverStatusTypes, setUpStoreFactory, skipOneWhen, spaceCase, startWithIfEmpty, statusAdapter, statusIsSuccessOrInProgress, subscriber, switchOff, tapError, tapSuccess, wrapInArr };
5549
5548
  //# sourceMappingURL=one-paragon-angular-utilities.mjs.map