@tft/crispr-forms 13.0.4 → 13.0.7

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.
@@ -1,6 +1,6 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
- import { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';
3
+ import { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
4
4
  import { crisprControlMixin } from './crispr-control.mixin';
5
5
  import { CrisprFieldComponent } from './crispr-field.abstract';
6
6
  import { observablifyOptions } from '../form.helpers';
@@ -19,7 +19,7 @@ export class AbstractAutocompleteComponent extends AbstractAutocompleteFieldMixi
19
19
  // filter options by the search string using either the default filter function or one passed in through config
20
20
  this.options$ = this.autocompleteInputControl.valueChanges.pipe(
21
21
  // this is needed to have the options panel to open on focus
22
- startWith(''), debounceTime(this.config.typeDebounceTime), distinctUntilChanged(), map(searchText => searchText || ''), switchMap((searchText) => observablifyOptions(this.config.options, this.group, searchText)));
22
+ startWith(''), debounceTime(this.config.typeDebounceTime), map((searchText) => searchText?.trim()), distinctUntilChanged(), switchMap((searchText) => observablifyOptions(this.config.options, this.group, searchText)), shareReplay(1));
23
23
  }
24
24
  }
25
25
  AbstractAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AbstractAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -27,4 +27,4 @@ AbstractAutocompleteComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "1
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AbstractAutocompleteComponent, decorators: [{
28
28
  type: Directive
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFJdEQsTUFBTSw4QkFBOEIsR0FBRyxrQkFBa0IsQ0FBMEIsb0JBQW9CLENBQUMsQ0FBQztBQUd6RyxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLDZCQUNYLFNBQVEsOEJBQThCO0lBSHhDOztRQUlFLG9HQUFvRztRQUNwRyw2QkFBd0IsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQWlCaEQ7SUFkQyxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRSwrR0FBK0c7UUFDL0csSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLElBQUk7UUFDN0QsNERBQTREO1FBQzVELFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFDYixZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUMxQyxvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQ25DLFNBQVMsQ0FBQyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDcEcsQ0FBQztJQUNKLENBQUM7OzBIQW5CVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUZ6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3Jpc3ByQ29udHJvbE1peGluIH0gZnJvbSAnLi9jcmlzcHItY29udHJvbC5taXhpbic7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnLCBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ3Jpc3ByRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2NyaXNwci1maWVsZC5hYnN0cmFjdCc7XG5pbXBvcnQgeyBvYnNlcnZhYmxpZnlPcHRpb25zIH0gZnJvbSAnLi4vZm9ybS5oZWxwZXJzJztcblxudHlwZSBBdXRvY29tcGxldGVDb25maWdUeXBlcyA9IEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnIHwgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZztcblxuY29uc3QgQWJzdHJhY3RBdXRvY29tcGxldGVGaWVsZE1peGluID0gY3Jpc3ByQ29udHJvbE1peGluPEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzPihDcmlzcHJGaWVsZENvbXBvbmVudCk7XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8Qz5cbiAgZXh0ZW5kcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyB3ZSBuZWVkIGEgc2VwYXJhdGUgY29udHJvbCBmb3IgdGhlIFVJIGJlY2F1c2Ugb2YgdGhlIHdheSB0aGUgbWF0ZXJpYWwgYXV0b2NvbXBsZXRlIGNoaXBsaXN0IHdvcmtzXG4gIGF1dG9jb21wbGV0ZUlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPlxuICBjb25maWc6IEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzICYgQztcbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIC8vIGZpbHRlciBvcHRpb25zIGJ5IHRoZSBzZWFyY2ggc3RyaW5nIHVzaW5nIGVpdGhlciB0aGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gb3Igb25lIHBhc3NlZCBpbiB0aHJvdWdoIGNvbmZpZ1xuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLmF1dG9jb21wbGV0ZUlucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIHRvIGhhdmUgdGhlIG9wdGlvbnMgcGFuZWwgdG8gb3BlbiBvbiBmb2N1c1xuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmNvbmZpZy50eXBlRGVib3VuY2VUaW1lKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBtYXAoc2VhcmNoVGV4dCA9PiBzZWFyY2hUZXh0IHx8ICcnKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBvYnNlcnZhYmxpZnlPcHRpb25zKHRoaXMuY29uZmlnLm9wdGlvbnMsIHRoaXMuZ3JvdXAsIHNlYXJjaFRleHQpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9hYnN0cmFjdHMvYXV0b2NvbXBsZXRlLWZpZWxkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSXRELE1BQU0sOEJBQThCLEdBQUcsa0JBQWtCLENBQTBCLG9CQUFvQixDQUFDLENBQUM7QUFHekcsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyw2QkFDWCxTQUFRLDhCQUE4QjtJQUh4Qzs7UUFJRSxvR0FBb0c7UUFDcEcsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7S0FrQmhEO0lBZkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEUsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxJQUFJO1FBQzdELDREQUE0RDtRQUM1RCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFDMUMsR0FBRyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQy9DLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFDbkcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDOzswSEFwQlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFGekMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4gfSBmcm9tICcuL2NyaXNwci1jb250cm9sLm1peGluJztcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlRmllbGRDb25maWcsIEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWcsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDcmlzcHJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY3Jpc3ByLWZpZWxkLmFic3RyYWN0JztcbmltcG9ydCB7IG9ic2VydmFibGlmeU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtLmhlbHBlcnMnO1xuXG50eXBlIEF1dG9jb21wbGV0ZUNvbmZpZ1R5cGVzID0gQXV0b2NvbXBsZXRlRmllbGRDb25maWcgfCBBdXRvY29tcGxldGVDaGlwbGlzdEZpZWxkQ29uZmlnO1xuXG5jb25zdCBBYnN0cmFjdEF1dG9jb21wbGV0ZUZpZWxkTWl4aW4gPSBjcmlzcHJDb250cm9sTWl4aW48QXV0b2NvbXBsZXRlQ29uZmlnVHlwZXM+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudDxDPlxuICBleHRlbmRzIEFic3RyYWN0QXV0b2NvbXBsZXRlRmllbGRNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIHdlIG5lZWQgYSBzZXBhcmF0ZSBjb250cm9sIGZvciB0aGUgVUkgYmVjYXVzZSBvZiB0aGUgd2F5IHRoZSBtYXRlcmlhbCBhdXRvY29tcGxldGUgY2hpcGxpc3Qgd29ya3NcbiAgYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8U2VsZWN0T3B0aW9uW10+XG4gIGNvbmZpZzogQXV0b2NvbXBsZXRlQ29uZmlnVHlwZXMgJiBDO1xuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMuY29uZmlnLmNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgLy8gZmlsdGVyIG9wdGlvbnMgYnkgdGhlIHNlYXJjaCBzdHJpbmcgdXNpbmcgZWl0aGVyIHRoZSBkZWZhdWx0IGZpbHRlciBmdW5jdGlvbiBvciBvbmUgcGFzc2VkIGluIHRocm91Z2ggY29uZmlnXG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgLy8gdGhpcyBpcyBuZWVkZWQgdG8gaGF2ZSB0aGUgb3B0aW9ucyBwYW5lbCB0byBvcGVuIG9uIGZvY3VzXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuY29uZmlnLnR5cGVEZWJvdW5jZVRpbWUpLFxuICAgICAgbWFwKChzZWFyY2hUZXh0OiBzdHJpbmcpID0+IHNlYXJjaFRleHQ/LnRyaW0oKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXh0OiBzdHJpbmcpID0+IG9ic2VydmFibGlmeU9wdGlvbnModGhpcy5jb25maWcub3B0aW9ucywgdGhpcy5ncm91cCwgc2VhcmNoVGV4dCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -47,10 +47,10 @@ export class FieldContainerComponent {
47
47
  }
48
48
  }
49
49
  FieldContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FieldContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- FieldContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FieldContainerComponent, selector: "crispr-field-container", inputs: { config: "config", group: "group", inlineField: "inlineField" }, ngImport: i0, template: "<div\n *ngIf=\"(disabled$ | async) ? !config.hideDisabled : true\"\n [ngClass]=\"config.classes\"\n [class.inline-field]=\"inlineField\"\n class=\"field-container\">\n\n <crispr-heading\n *ngIf=\"config.heading\"\n [config]=\"config.heading\">\n </crispr-heading>\n\n <ng-content>\n </ng-content>\n\n</div>\n", styles: ["::ng-deep mat-form-field.mat-form-field{display:block}.inline-field{display:inline-block}\n"], components: [{ type: i1.HeadingComponent, selector: "crispr-heading", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
50
+ FieldContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: FieldContainerComponent, selector: "crispr-field-container", inputs: { config: "config", group: "group", inlineField: "inlineField" }, ngImport: i0, template: "<div\n *ngIf=\"(disabled$ | async) ? !config.hideDisabled : true\"\n [ngClass]=\"config.classes\"\n [class.inline-field]=\"inlineField\"\n class=\"field-container\">\n\n <crispr-heading\n *ngIf=\"config.heading\"\n [config]=\"config.heading\">\n </crispr-heading>\n\n <ng-content>\n </ng-content>\n\n</div>\n", styles: ["::ng-deep mat-form-field.mat-form-field{display:block;padding:.25em 0}.inline-field{display:inline-block}\n"], components: [{ type: i1.HeadingComponent, selector: "crispr-heading", inputs: ["config"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: FieldContainerComponent, decorators: [{
52
52
  type: Component,
53
- args: [{ selector: 'crispr-field-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"(disabled$ | async) ? !config.hideDisabled : true\"\n [ngClass]=\"config.classes\"\n [class.inline-field]=\"inlineField\"\n class=\"field-container\">\n\n <crispr-heading\n *ngIf=\"config.heading\"\n [config]=\"config.heading\">\n </crispr-heading>\n\n <ng-content>\n </ng-content>\n\n</div>\n", styles: ["::ng-deep mat-form-field.mat-form-field{display:block}.inline-field{display:inline-block}\n"] }]
53
+ args: [{ selector: 'crispr-field-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"(disabled$ | async) ? !config.hideDisabled : true\"\n [ngClass]=\"config.classes\"\n [class.inline-field]=\"inlineField\"\n class=\"field-container\">\n\n <crispr-heading\n *ngIf=\"config.heading\"\n [config]=\"config.heading\">\n </crispr-heading>\n\n <ng-content>\n </ng-content>\n\n</div>\n", styles: ["::ng-deep mat-form-field.mat-form-field{display:block;padding:.25em 0}.inline-field{display:inline-block}\n"] }]
54
54
  }], propDecorators: { config: [{
55
55
  type: Input
56
56
  }], group: [{
@@ -117,7 +117,7 @@ export function callOptionsIfFunction(options, parentGroup, searchString) {
117
117
  export function observablifyOptions(options, parentGroup, searchString) {
118
118
  const calledOptions = callOptionsIfFunction(options, parentGroup, searchString);
119
119
  // if options are a promise
120
- return calledOptions instanceof Promise
120
+ const observableOptions = calledOptions instanceof Promise
121
121
  // convert to observable
122
122
  ? from(calledOptions)
123
123
  // if array that isn't empty
@@ -130,6 +130,7 @@ export function observablifyOptions(options, parentGroup, searchString) {
130
130
  ? calledOptions
131
131
  // else an empty array
132
132
  : of([]);
133
+ return observableOptions;
133
134
  }
134
135
  /**
135
136
  * Determines if the field config is for a form control (not a divider, heading or other non-control field)
@@ -182,4 +183,4 @@ export function filterOptionsByLabel(options, searchString) {
182
183
  return option.label && option.label.toLowerCase().includes(searchString.toLowerCase());
183
184
  });
184
185
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9mb3JtLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUNMLFdBQVcsR0FDWixNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFDTCxJQUFJLEVBRUosRUFBRSxFQUNGLFlBQVksRUFDWixhQUFhLEVBRWQsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXNCaEQ7Ozs7O0VBS0U7QUFDRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxNQUEwQjtJQUNoRixrREFBa0Q7SUFDbEQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUk7UUFDcEQsb0ZBQW9GO1FBQ3BGLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLGVBQXdCLEVBQUUsRUFBRTtZQUMvQix3R0FBd0c7WUFDeEcscUhBQXFIO1lBQ3JILElBQUssTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxZQUFZLFFBQVEsRUFBRztnQkFDNUQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUFFLE9BQU8sZUFBZSxDQUFDO2FBQUU7UUFD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Q0FBQyxDQUFDO0lBQ3pGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU2VsZWN0T3B0aW9uLFxuICBBbnlGaWVsZENvbmZpZyxcbiAgRm9ybUNvbmZpZyxcbiAgRm9ybUdyb3VwTGlzdENvbmZpZyxcbiAgQ3Jpc3ByQ29udHJvbENvbmZpZyxcbiAgT3B0aW9uc1R5cGUsXG4gIEF1dG9jb21wbGV0ZU9wdGlvbnNDYWxsYmFjayxcbiAgQ3Jpc3ByRmllbGRDb25maWcsXG4gIENvbnRyb2xWYWx1ZVxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge1xuICBDb250cm9sVHlwZSxcbn0gZnJvbSAnLi9tb2RlbHMvY3Jpc3ByLWZpZWxkLmNvbmZpZydcbmltcG9ydCB7XG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBpc09ic2VydmFibGUsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIE9wZXJhdG9yRnVuY3Rpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB2YWx1ZUluIH0gZnJvbSAnLi9mb3JtLm9wZXJhdG9ycyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBEWU5BTUlDIEZPUk0gVVRJTFM6IGEgY29sbGVjdGlvbiBvZiBwdXJlL21vc3RseSBwdXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VmdWwgYm90aCBpbnRlcm5hbGx5IGFuZCBmb3JcbiAqIGRldmVsb3BpbmcgdGhlIGNvbnN1bWluZyBhcHAuXG4gKlxuICogVGhleSBhcmUgc29ydGVkIGJ5IHVzZSBjYXNlOiBidWlsZGluZyBvdXQgdGhlIGZvcm0gb2JqZWN0OyBoZWxwZXIgZnVuY3Rpb25zIHRvIHVzZSB3aXRoIHRoZSBkaXNhYmxlZCQgZnVuY3Rpb247XG4gKiBoZWxwZXIgZnVuY3Rpb25zIHRvIHVzZSB3aXRoIHRoZSBjb21wdXRlIGZpZWxkIGZ1bmN0aW9uOyBhbmQgb3RoZXIgbG9naWMgc2hhcmVkIGJldHdlZW4gY29tcG9uZW50c1xuICovXG5cbi8qKlxuICogUmVxdWlyZWQgY29uZmlndXJhdGlvbiB0byB1c2Ugd2l0aCBjaGVja0NvbnRyb2xGb3JWYWx1ZXMgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0NvbnRyb2xDb25maWcge1xuICAvLyB0aGUgY29udHJvbCBuYW1lIHRvIHdhdGNoXG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIC8vIHRoZSB2YWx1ZXMgdG8gd2F0Y2ggZm9yXG4gIHZhbHVlczogc3RyaW5nW107XG4gIC8vIHRoZSBmdW5jdGlvbiB0byBydW4gb24gdGhlIGJvb2xlYW4gcmV0dXJuZWQgYnkgdGhlIHdhdGNoZXJcbiAgZXZhbHVhdGU/OiAoaXNWYWx1ZUluVmFsdWVzOiBib29sZWFuKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiogV2F0Y2hlcyBhIHNpbmdsZSBjb250cm9sIGZvciBhIGxpc3Qgb2YgdmFsdWVzLCByZXR1cm5zIHRydWUgd2hlbiBmaWVsZCB2YWx1ZSBtYXRjaGVzIGFueSB2YWx1ZSBpbiBsaXN0XG4qIHVubGVzcyBhbiBldmFsdWF0ZSBtZXRob2QgaXMgZm91bmQgb24gY29uZmlnLCBpbiB3aGljaCBjYXNlIHRoYXQgbWV0aG9kIGlzIHJ1biBvbiB0aGUgcmV0dXJuZWQgYm9vbGVhbiB2YWx1ZVxuKiBAcGFyYW0gZ3JvdXAgdGhlIGRpcmVjdCBwYXJlbnQgb2YgdGhlIGZpZWxkIHdlIHdhbnQgdG8gd2F0Y2hcbiogQHBhcmFtIGNvbmZpZ1xuKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbnRyb2xGb3JWYWx1ZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29uZmlnOiBDaGVja0NvbnRyb2xDb25maWcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgLy8gY2hlY2sgdGhhdCBhbGwgdGhlIHBpZWNlcyB3ZSBuZWVkIGFyZSBhdmFpbGFibGVcbiAgaWYgKGNvbmZpZyAmJiBjb25maWcuY29udHJvbE5hbWUgJiYgQXJyYXkuaXNBcnJheShjb25maWcudmFsdWVzKSkge1xuICAgIHJldHVybiBnZXRWYWx1ZUNoYW5nZXMoZ3JvdXAsIGNvbmZpZy5jb250cm9sTmFtZSkucGlwZShcbiAgICAgIC8vIHJldHVybiBhIGJvb2xlYW4sIHRydWUgaWYgdmFsdWUgaXMgaW4gdGhlIHZhbHVlcyBiZWluZyB3YXRjaCBmb3IsIG90aGVyd2lzZSBmYWxzZVxuICAgICAgdmFsdWVJbihjb25maWcudmFsdWVzKSxcbiAgICAgIG1hcCgoaXNWYWx1ZUluVmFsdWVzOiBib29sZWFuKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIHdlIGNhbiBvbmx5IGNoZWNrIGlmIHRoZSB2YWx1ZSBpcyBpbiB0aGUgbGlzdCBvZiB3YXRjaGVkIHZhbHVlcywgdGhlIGV2YWx1YXRlIGZ1bmN0aW9uIGdpdmVzIHVzXG4gICAgICAgIC8vIGEgY2hhbmNlIHRvIG1ha2Ugb3RoZXIgZGVjaXNpb25zIGJhc2VkIG9uIGlmIHRoZSBib29sZWFuIHJldHVybmVkLCBlLmcuIHJldHVybiB0cnVlIGlmIHZhbHVlIG5vdCBpbiB3YXRjaGVkIHZhbHVlc1xuICAgICAgICBpZiAoIGNvbmZpZy5ldmFsdWF0ZSAmJiBjb25maWcuZXZhbHVhdGUgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLmV2YWx1YXRlKGlzVmFsdWVJblZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSB7IHJldHVybiBpc1ZhbHVlSW5WYWx1ZXM7IH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvL1xuICAgIHJldHVybiBvZih0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIGZvciBydW5uaW5nIHRoZSBjaGVja0NvbnRyb2xzRm9yVmFsdWVzIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrQ29udHJvbHNDb25maWcge1xuICAvLyBhbiBhcnJheSBvZiBjb250cm9scyB0byB3YXRjaCBhbmQgdGhlIHZhbHVlcyB0byBjaGVjayBmb3JcbiAgd2F0Y2hDb25maWdzOiBDaGVja0NvbnRyb2xDb25maWdbXTtcbiAgLy8gdGhlIGZ1bmN0aW9uIHRvIHJ1biBhZ2FpbnN0IHRoZSBhcnJheSBvZiBjdXJyZW50IGZpZWxkIHZhbHVlSW4gcmVzcG9uc2VzXG4gIGV2YWx1YXRlPzogKCBib29sczogYm9vbGVhbltdICkgPT4gYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIGEgbGlzdCBvZiBmaWVsZHMgZm9yIGluZGl2aWR1YWwgbGlzdHMgb2YgdmFsdWVzIHJldHVybmluZyB0cnVlIHdoZW4gYW55IGZpZWxkIGNvbnRhaW5zIG9uZVxuICogb2YgdGhlIHZhbHVlcyBiZWluZyB3YXRjaGVkIGZvciwgb3Igb3B0aW9uYWxseSBydW5uaW5nIGEgZnVuY3Rpb24gb24gdGhlIGFycmF5IG9mIHJlc29sdmVkIGJvb2xlYW5zXG4gKiBmcm9tIHRoZSBsaXN0ZWQgZmllbGRzIGFuZCByZXR1cm5pbmcgYSBib29sZWFuXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgdGhhdCBoYXMgdGhlIGZpZWxkcyB0byB3YXRjaCBhcyBkaXJlY3QgZGVzY2VuZGFudHNcbiAqIEBwYXJhbSBjb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gdG8gdXNlIHdoZW4gY2FsbGluZyB0aGUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ29udHJvbHNGb3JWYWx1ZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29uZmlnOiBDaGVja0NvbnRyb2xzQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgLy8gaWYgbm8gY29uZmlnIGlzIHBhc3NlZCB3ZSBqdXN0IHdhbnQgdG8gc2hvdyB0aGUgZmllbGQsIHNvIHdlIHJldHVybiBhbiBvYnNlcnZhYmxlIG9mIHRydWVcbiAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy53YXRjaENvbmZpZ3MpIHsgcmV0dXJuIG9mKHRydWUpOyB9XG4gIC8vIHdlIHJ1biBjaGVja0NvbnRyb2xGb3JWYWx1ZXMgb24gZXZlcnkgY29udHJvbCBpbiB0aGUgbGlzdCBvZiBXYXRjaENvbmZpZ3MgY3JlYXRpbmdcbiAgLy8gYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZSB3YXRjaGluZyBmaWVsZHMgZm9yIHZhbHVlc1xuICBjb25zdCBmaWVsZFRyaWdnZXJzID0gY29uZmlnLndhdGNoQ29uZmlncy5tYXAod2F0Y2hDb25maWcgPT4ge1xuICAgIC8vIHJlc29sdmVzIGEgYm9vbGVhbiwgdHJ1ZSB3aGVuIGZpZWxkIHZhbHVlIG1hdGNoZXMgYSB3YXRjaGVkIHZhbHVlLCBvdGhlcndpc2UgZmFsc2VcbiAgICByZXR1cm4gY2hlY2tDb250cm9sRm9yVmFsdWVzKGdyb3VwLCB3YXRjaENvbmZpZyk7XG4gIH0pO1xuXG4gIHJldHVybiBjb21iaW5lTGF0ZXN0KFxuICAgIGZpZWxkVHJpZ2dlcnNcbiAgKS5waXBlKFxuICAgIHN0YXJ0V2l0aChbdHJ1ZV0pLFxuICAgIG1hcCgoYm9vbGVhbnM6IGJvb2xlYW5bXSkgPT4ge1xuICAgICAgLy8gaWYgdGhlIHVzZXIgcGFzc2VkIGFuIGV2YWx1YXRlIGZ1bmN0aW9uIHVzZSBpdFxuICAgICAgaWYgKGNvbmZpZy5ldmFsdWF0ZSAmJiBjb25maWcuZXZhbHVhdGUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICByZXR1cm4gY29uZmlnLmV2YWx1YXRlKGJvb2xlYW5zKTtcbiAgICAgIH0gZWxzZSB7IC8vIG90aGVyd2lzZSB3ZSByZXR1cm4gdHJ1ZSBpZiBhbnkgb2YgdGhlIHdhdGNoZWQgZmllbGRzIHJlc29sdmUgdG8gdHJ1ZVxuICAgICAgICByZXR1cm4gYm9vbGVhbnMuc29tZShib29sID0+IGJvb2wpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG59XG5cbi8qKlxuICogVGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIHRoZSBjb21wdXRlVmFsdWUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRlRmllbGRDb25maWc8VCA9IGFueSwgUlQgPSBhbnk+IHtcbiAgLy8gYXJyYXkgb2YgY29udHJvbCBuYW1lcyB3aG8ncyB2YWx1ZXMgd2Ugd2FudCB0byB3YXRjaFxuICBjb250cm9sTmFtZXNUb1dhdGNoOiBzdHJpbmdbXTtcbiAgLy8gdGhlIGZ1bmN0aW9uIHdlIHdhbnQgdG8gY2FsbCBvbiB0aGUgYXJyYXkgb2Ygd2F0Y2hlZCB2YWx1ZXMgdG8gY29tcHV0ZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgd2VcbiAgY29tcHV0ZUNhbGxiYWNrOiAoXG4gICAgdmFsdWVzOiAoVClbXVxuICApID0+IFJUO1xufVxuXG4vKipcbiAqIFdhdGNoZXMgdmFsdWVzIG9uIGFuIGFycmF5IG9mIGZpZWxkcywgY29tcHV0aW5nIHRoZWlyIHZhbHVlcyBhcyB0aGV5IGNoYW5nZVxuICogQHBhcmFtIGdyb3VwIHRoZSBncm91cCB0byBnZXQgdGhlIGZpZWxkcyBmcm9tLCBmb3Igbm93IGl0IGNhbiBvbmx5IGJlIHRoZSBwYXJlbnQgb2YgdGhlIGNvbXB1dGVkIGZpZWxkXG4gKiBAcGFyYW0gY29tcHV0ZUZpZWxkc0NvbmZpZyB0aGUgY29uZmlndXJhdGlvbiB0aGF0IGRyaXZlcyB0aGUgY29tcHV0YXRpb24sIGhvbGRzIHRoZSBuYW1lcyB0byB3YXRjaCBhbmQgdGhlXG4gKiBjb21wdXRhdGlvbiBmdW5jdGlvbiB0aGF0IGdldCBjYWxsZWQgYWdhaW5zdCB0aGUgYXJyYXkgb2YgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlVmFsdWVGcm9tRmllbGRzKGdyb3VwOiBGb3JtR3JvdXAsIGNvbXB1dGVGaWVsZHNDb25maWc6IENvbXB1dGVGaWVsZENvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vIFRPRE86IGJldHRlciBjaGVja2luZ1xuICBjb25zdCB7IGNvbnRyb2xOYW1lc1RvV2F0Y2ggfSA9IGNvbXB1dGVGaWVsZHNDb25maWc7XG4gIC8vY3JlYXRlcyBhbiBvYnNlcnZhYmxlIGxpc3RlbmVyIGZvciBlYWNoIGNvbnRyb2wgaW4gdGhlIGNvbnRyb2xOYW1lc1RvV2F0Y2ggYXJyYXlcbiAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgY29udHJvbE5hbWVzVG9XYXRjaC5tYXAoY29udHJvbE5hbWVUb1dhdGNoID0+IGdldFZhbHVlQ2hhbmdlcyhncm91cCwgY29udHJvbE5hbWVUb1dhdGNoKSlcbiAgKS5waXBlKFxuICAgIC8vIGVhY2ggdGltZSBhIHdhdGNoZWQgZmllbGQgdmFsdWVzIGNoYW5nZXMgYSBuZXcgYXJyYXkgb2YgdGhlIGxhdGVzdCBmaWVsZCB2YWx1ZXMgaXMgcGlwZSB0aHJvdWdoIHRvIHRoZVxuICAgIC8vIGNvbXB1dGUgY2FsbGJhY2suIFdoaWNoIHJ1bnMgdGhlIHVzZXJzIGxvZ2ljIG9uIHRoZSB2YWx1ZXMgdG8gY29tcHV0ZSB0aGlzIGZpZWxkcyB2YWx1ZVxuICAgIG1hcCh2YWx1ZXNBcnJheSA9PiBjb21wdXRlRmllbGRzQ29uZmlnLmNvbXB1dGVDYWxsYmFjayh2YWx1ZXNBcnJheSkpLFxuICApO1xufVxuXG4vKipcbiAqIEEgc2ltcGxlIHdyYXBwZXIgZm9yIGRvaW5nIGVycm9yIGNoZWNraW5nIGFyb3VuZCBnZXR0aW5nIHRoZSB2YWx1ZUNoYW5nZXMgb2JzZXJ2YWJsZSBmcm9tIGEgY29udHJvbCBvbiBhIGZvcm0gZ3JvdXBcbiAqIEBwYXJhbSBncm91cCB0aGUgZm9ybSBncm91cCB3ZSB3YW50IHRvIHB1bGwgdGhlIG9ic2VydmFibGUgZnJvbVxuICogQHBhcmFtIGNvbnRyb2xOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb250cm9sIHdobydzIHZhbHVlIHdlIHdhbnQgdG8gc3Vic2NyaWJlIHRvXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlQ2hhbmdlcyhncm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnRyb2wgPSBncm91cC5nZXQoY29udHJvbE5hbWUpO1xuICBpZiAoIWNvbnRyb2wpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNvbnRyb2wgd2l0aCBjb250cm9sTmFtZSAke2NvbnRyb2xOYW1lfWAsICk7XG4gIH1cbiAgcmV0dXJuIGNvbnRyb2wudmFsdWVDaGFuZ2VzO1xufVxuLyoqXG4gKiAgVE9ETzogbW92ZSB0byB1dGlscyBsaWJyYXJ5IGFmdGVyIGxpYnJhcnkgaXMgYnVpbHRcbiAqICBBbGxvd3MgZGV2ZWxvcGVyIHRvIHBhc3MgYW4gYXJyYXkgb2Ygb3BlcmF0b3JzIGludG8gdGhlIHBpcGUgb2YgYW4gT2JzZXJ2YWJsZS5cbiAqICBVc2VmdWwgZm9yIGNyZWF0aW5nIGZ1bmN0aW9uIHdpdGggYSB2YXJpYWJsZSBhbW91bnQgb2Ygb3BlcmF0b3JzIHRvIGJlIHJ1blxuICogQHBhcmFtIG9ic2VydmFibGUgdGhlIG9ic2VydmFibGUgdG8gcGFzcyB0aGUgb3BlcmF0b3JzIHRvXG4gKiBAcGFyYW0gb3BlcmF0b3JzIGFycmF5IG9mIG9wZXJhdG9ycyB0byBwaXBlXG4gKi9cbmZ1bmN0aW9uIHBpcGVPcGVyYXRvcnNJbnRvT2JzZXJ2YWJsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4sIG9wZXJhdG9yczogT3BlcmF0b3JGdW5jdGlvbjxhbnksIGFueT5bXSkge1xuICB0cnkge1xuICAgIHJldHVybiBvcGVyYXRvcnMucmVkdWNlKChvYnM6IE9ic2VydmFibGU8e30+LCBvcDogT3BlcmF0b3JGdW5jdGlvbjx7fSwge30+KSA9PiB7XG4gICAgICByZXR1cm4gb2JzLnBpcGUob3ApO1xuICAgIH0sIG9ic2VydmFibGUpO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gcGlwZSBvcGVyYXRvcnMgaW50byBvYnNlcnZhYmxlJyk7XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxPcHRpb25zSWZGdW5jdGlvbihcbiAgb3B0aW9uczogT3B0aW9uc1R5cGUgfCBBdXRvY29tcGxldGVPcHRpb25zQ2FsbGJhY2ssXG4gIHBhcmVudEdyb3VwPzogRm9ybUdyb3VwLFxuICBzZWFyY2hTdHJpbmc/OiBzdHJpbmdcbik6IE9wdGlvbnNUeXBlIHtcbiAgcmV0dXJuIG9wdGlvbnMgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IG9wdGlvbnMocGFyZW50R3JvdXAsIHNlYXJjaFN0cmluZykgOiBvcHRpb25zO1xufVxuLyoqXG4gKiBUaGUgdXNlciBjYW4gZ2l2ZSB1cyBzZWxlY3Qgb3B0aW9ucyBhcyBhbiBhcnJheSwgYSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRvIGEgcHJvbWlzZSxcbiAqIG9yIGFuIG9ic2VydmFibGUuIFRoaXMgZnVuY3Rpb25zIGNvbnN1bWVzIGFueSBvZiB0aG9zZSBhbmQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXRcbiAqIHJlc29sdmVzIGFuIGFycmF5IG9mIG9wdGlvbnNcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gZnJvbSB0aGUgY29uZmlnXG4gKiBAcGFyYW0gZW1wdHlNZXNzYWdlT3B0aW9uIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgYXJyYXkgaXMgZW1wdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmFibGlmeU9wdGlvbnMoXG4gIG9wdGlvbnM6IE9wdGlvbnNUeXBlLFxuICBwYXJlbnRHcm91cDogRm9ybUdyb3VwLFxuICBzZWFyY2hTdHJpbmc/OiBzdHJpbmcsXG4pOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPiB7XG4gIGNvbnN0IGNhbGxlZE9wdGlvbnMgPSBjYWxsT3B0aW9uc0lmRnVuY3Rpb24ob3B0aW9ucywgcGFyZW50R3JvdXAsIHNlYXJjaFN0cmluZyk7XG4gIC8vIGlmIG9wdGlvbnMgYXJlIGEgcHJvbWlzZVxuICByZXR1cm4gY2FsbGVkT3B0aW9ucyBpbnN0YW5jZW9mIFByb21pc2VcbiAgLy8gY29udmVydCB0byBvYnNlcnZhYmxlXG4gID8gZnJvbShjYWxsZWRPcHRpb25zKVxuICAvLyBpZiBhcnJheSB0aGF0IGlzbid0IGVtcHR5XG4gIDogQXJyYXkuaXNBcnJheShjYWxsZWRPcHRpb25zKSAmJiBjYWxsZWRPcHRpb25zLmxlbmd0aFxuICAvLyBjb252ZXJ0IHRvIG9ic2VydmFibGVcbiAgPyBvZihjYWxsZWRPcHRpb25zKVxuICAvLyBpZiBvYnNlcnZhYmxlXG4gIDogaXNPYnNlcnZhYmxlKGNhbGxlZE9wdGlvbnMpXG4gIC8vIHJldHVybiBpdFxuICA/IGNhbGxlZE9wdGlvbnNcbiAgLy8gZWxzZSBhbiBlbXB0eSBhcnJheVxuICA6IG9mKFtdKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBmaWVsZCBjb25maWcgaXMgZm9yIGEgZm9ybSBjb250cm9sIChub3QgYSBkaXZpZGVyLCBoZWFkaW5nIG9yIG90aGVyIG5vbi1jb250cm9sIGZpZWxkKVxuICogICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29uZmlnKGZpZWxkQ29uZmlnOiBDcmlzcHJGaWVsZENvbmZpZyk6IGZpZWxkQ29uZmlnIGlzIENyaXNwckNvbnRyb2xDb25maWcge1xuICByZXR1cm4gJ2NvbnRyb2xOYW1lJyBpbiBmaWVsZENvbmZpZztcbn1cbi8qKlxuICogYnVpbGRzIG91dCBmb3JtIGdyb3VwIGJhc2VkIG9uIGNvbmZpZ1xuICogQHBhcmFtIGNvbmZpZyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBncm91cFxuICogQHBhcmFtIHZhbHVlIGFuIG9iamVjdCBvZiBpbml0aWFsIHZhbHVlcyB0byBwYXNzIGluXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgdG8gbW9kaWZ5IGFuZCBidWlsZCBvdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyhjb25maWc6IEZvcm1Db25maWcsIHZhbHVlID0gbnVsbCwgZ3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pICkge1xuICBjb25maWcuZmllbGRzLmZvckVhY2goIChjb250cm9sQ29uZmlnOiBBbnlGaWVsZENvbmZpZykgPT4ge1xuICAgIGlmIChpc0NvbnRyb2xDb25maWcoY29udHJvbENvbmZpZykpIHtcbiAgICAgIC8vIHRoZW4gYWRkIGEgY29udHJvbCB0byB0aGUgZ3JvdXAgdXNpbmcgdGhlIGNvbnRyb2xOYW1lIGZyb20gY29uZmlndXJhdGlvblxuICAgICAgY29uc3Qge2NvbnRyb2xOYW1lfSA9IGNvbnRyb2xDb25maWc7XG4gICAgICAvLyBpZiB0aGVyZSdzIGEgdmFsdWUgb2JqZWN0IGFuZCBpdCBoYXMgYSBub24tbnVsbC91bmRlZmluZWQgdmFsdWUgZm9yIHRoaXMgZmllbGQgdXNlIGl0LlxuICAgICAgLy8gT3RoZXJ3aXNlLCBkZWZhdWx0IHRvIG51bGxcbiAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9ICh2YWx1ZSAmJiB2YWx1ZVtjb250cm9sTmFtZV0pID8/IG51bGw7XG4gICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2xOYW1lLCBjcmVhdGVDb250cm9sRm9yVHlwZShjb250cm9sQ29uZmlnLCBjb250cm9sVmFsdWUpKTtcbiAgICB9XG4gIH0pO1xuICBncm91cC5zZXRWYWxpZGF0b3JzKGNvbmZpZy52YWxpZGF0b3JzKTtcbiAgcmV0dXJuIGdyb3VwO1xufVxuXG4vKipcbiAqIEFuYWx5emUgdGhlIGNvbmZpZyBhbmQgYnVpbGQgYSBmb3JtIGNvbnRyb2wgdG8gc3BlYy4gTm90aWNlIHdlIGRvbid0IHVzZSBGb3JtQnVpbGRlciBoZXJlXG4gKiBhcyB3ZSB3YW50IHRvIGtlZXAgdGhpcyBmdW5jdGlvbiBwdXJlLlxuICogQHBhcmFtIGNvbnRyb2xDb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgY29udHJvbCB0byBidWlsZFxuICogQHBhcmFtIHZhbHVlIGFuIGluaXRpYWwgdmFsdWUgdG8gdXNlIGlmIHBhc3NlZCBpblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbEZvclR5cGUoY29udHJvbENvbmZpZzogQW55RmllbGRDb25maWcsIHZhbHVlOiBDb250cm9sVmFsdWUgPSBudWxsKSAge1xuICAvLyBidWlsZCBmb3JtIGNvbnRyb2wgb3V0IGJhc2VkIG9uIHRoZSBjb250cm9sIHR5cGVcbiAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xDb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLlNVQl9HUk9VUFxuICAgID8gYnVpbGRGb3JtR3JvdXBGcm9tQ29uZmlnKGNvbnRyb2xDb25maWcgYXMgRm9ybUNvbmZpZywgdmFsdWUpXG4gICAgOiBjb250cm9sQ29uZmlnLmNvbnRyb2xUeXBlID09PSBDb250cm9sVHlwZS5HUk9VUF9MSVNUXG4gICAgPyBuZXcgRm9ybUFycmF5KFtdLCAoY29udHJvbENvbmZpZyBhcyBGb3JtR3JvdXBMaXN0Q29uZmlnKS52YWxpZGF0b3JzKVxuICAgIDogbmV3IEZvcm1Db250cm9sKFxuICAgICAgdmFsdWUgfHwgbnVsbCxcbiAgICAgIChjb250cm9sQ29uZmlnIGFzIENyaXNwckNvbnRyb2xDb25maWcpLnZhbGlkYXRvcnNcbiAgICApO1xuXG4gIHJldHVybiBjb250cm9sO1xufVxuXG4vKipcbiAqIEEgYmFzaWMgZmlsdGVyIGZ1bmN0aW9uIHRoYXQgZmlsdGVycyB0aGUgc2VhcmNoIHN0cmluZyBhZ2FpbnN0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9ucyBvYmplY3RcbiAqIEBwYXJhbSBvcHRpb25zIHRoZSBhcnJheSBvZiBvcHRpb25zIHRvIGZpbHRlclxuICogQHBhcmFtIHNlYXJjaFN0cmluZyB0aGUgc3RyaW5nIGZyb20gdGhlIGlucHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPcHRpb25zQnlMYWJlbChvcHRpb25zOiBTZWxlY3RPcHRpb25bXSwgc2VhcmNoU3RyaW5nOiBzdHJpbmcpICB7XG4gIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4ge1xuICAgIHJldHVybiBvcHRpb24ubGFiZWwgJiYgb3B0aW9uLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuICB9KTtcbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmlzcHItZm9ybXMvc3JjL2xpYi9mb3JtLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUNMLFdBQVcsR0FDWixNQUFNLDhCQUE4QixDQUFBO0FBQ3JDLE9BQU8sRUFDTCxJQUFJLEVBRUosRUFBRSxFQUNGLFlBQVksRUFDWixhQUFhLEVBRWQsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXNCN0Q7Ozs7O0VBS0U7QUFDRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxNQUEwQjtJQUNoRixrREFBa0Q7SUFDbEQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUk7UUFDcEQsb0ZBQW9GO1FBQ3BGLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLGVBQXdCLEVBQUUsRUFBRTtZQUMvQix3R0FBd0c7WUFDeEcscUhBQXFIO1lBQ3JILElBQUssTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxZQUFZLFFBQVEsRUFBRztnQkFDNUQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUFFLE9BQU8sZUFBZSxDQUFDO2FBQUU7UUFD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Q0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBTZWxlY3RPcHRpb24sXG4gIEFueUZpZWxkQ29uZmlnLFxuICBGb3JtQ29uZmlnLFxuICBGb3JtR3JvdXBMaXN0Q29uZmlnLFxuICBDcmlzcHJDb250cm9sQ29uZmlnLFxuICBPcHRpb25zVHlwZSxcbiAgQXV0b2NvbXBsZXRlT3B0aW9uc0NhbGxiYWNrLFxuICBDcmlzcHJGaWVsZENvbmZpZyxcbiAgQ29udHJvbFZhbHVlXG59IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7XG4gIENvbnRyb2xUeXBlLFxufSBmcm9tICcuL21vZGVscy9jcmlzcHItZmllbGQuY29uZmlnJ1xuaW1wb3J0IHtcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIGlzT2JzZXJ2YWJsZSxcbiAgY29tYmluZUxhdGVzdCxcbiAgT3BlcmF0b3JGdW5jdGlvblxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHZhbHVlSW4gfSBmcm9tICcuL2Zvcm0ub3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBEWU5BTUlDIEZPUk0gVVRJTFM6IGEgY29sbGVjdGlvbiBvZiBwdXJlL21vc3RseSBwdXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VmdWwgYm90aCBpbnRlcm5hbGx5IGFuZCBmb3JcbiAqIGRldmVsb3BpbmcgdGhlIGNvbnN1bWluZyBhcHAuXG4gKlxuICogVGhleSBhcmUgc29ydGVkIGJ5IHVzZSBjYXNlOiBidWlsZGluZyBvdXQgdGhlIGZvcm0gb2JqZWN0OyBoZWxwZXIgZnVuY3Rpb25zIHRvIHVzZSB3aXRoIHRoZSBkaXNhYmxlZCQgZnVuY3Rpb247XG4gKiBoZWxwZXIgZnVuY3Rpb25zIHRvIHVzZSB3aXRoIHRoZSBjb21wdXRlIGZpZWxkIGZ1bmN0aW9uOyBhbmQgb3RoZXIgbG9naWMgc2hhcmVkIGJldHdlZW4gY29tcG9uZW50c1xuICovXG5cbi8qKlxuICogUmVxdWlyZWQgY29uZmlndXJhdGlvbiB0byB1c2Ugd2l0aCBjaGVja0NvbnRyb2xGb3JWYWx1ZXMgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0NvbnRyb2xDb25maWcge1xuICAvLyB0aGUgY29udHJvbCBuYW1lIHRvIHdhdGNoXG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIC8vIHRoZSB2YWx1ZXMgdG8gd2F0Y2ggZm9yXG4gIHZhbHVlczogc3RyaW5nW107XG4gIC8vIHRoZSBmdW5jdGlvbiB0byBydW4gb24gdGhlIGJvb2xlYW4gcmV0dXJuZWQgYnkgdGhlIHdhdGNoZXJcbiAgZXZhbHVhdGU/OiAoaXNWYWx1ZUluVmFsdWVzOiBib29sZWFuKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiogV2F0Y2hlcyBhIHNpbmdsZSBjb250cm9sIGZvciBhIGxpc3Qgb2YgdmFsdWVzLCByZXR1cm5zIHRydWUgd2hlbiBmaWVsZCB2YWx1ZSBtYXRjaGVzIGFueSB2YWx1ZSBpbiBsaXN0XG4qIHVubGVzcyBhbiBldmFsdWF0ZSBtZXRob2QgaXMgZm91bmQgb24gY29uZmlnLCBpbiB3aGljaCBjYXNlIHRoYXQgbWV0aG9kIGlzIHJ1biBvbiB0aGUgcmV0dXJuZWQgYm9vbGVhbiB2YWx1ZVxuKiBAcGFyYW0gZ3JvdXAgdGhlIGRpcmVjdCBwYXJlbnQgb2YgdGhlIGZpZWxkIHdlIHdhbnQgdG8gd2F0Y2hcbiogQHBhcmFtIGNvbmZpZ1xuKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0NvbnRyb2xGb3JWYWx1ZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29uZmlnOiBDaGVja0NvbnRyb2xDb25maWcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgLy8gY2hlY2sgdGhhdCBhbGwgdGhlIHBpZWNlcyB3ZSBuZWVkIGFyZSBhdmFpbGFibGVcbiAgaWYgKGNvbmZpZyAmJiBjb25maWcuY29udHJvbE5hbWUgJiYgQXJyYXkuaXNBcnJheShjb25maWcudmFsdWVzKSkge1xuICAgIHJldHVybiBnZXRWYWx1ZUNoYW5nZXMoZ3JvdXAsIGNvbmZpZy5jb250cm9sTmFtZSkucGlwZShcbiAgICAgIC8vIHJldHVybiBhIGJvb2xlYW4sIHRydWUgaWYgdmFsdWUgaXMgaW4gdGhlIHZhbHVlcyBiZWluZyB3YXRjaCBmb3IsIG90aGVyd2lzZSBmYWxzZVxuICAgICAgdmFsdWVJbihjb25maWcudmFsdWVzKSxcbiAgICAgIG1hcCgoaXNWYWx1ZUluVmFsdWVzOiBib29sZWFuKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIHdlIGNhbiBvbmx5IGNoZWNrIGlmIHRoZSB2YWx1ZSBpcyBpbiB0aGUgbGlzdCBvZiB3YXRjaGVkIHZhbHVlcywgdGhlIGV2YWx1YXRlIGZ1bmN0aW9uIGdpdmVzIHVzXG4gICAgICAgIC8vIGEgY2hhbmNlIHRvIG1ha2Ugb3RoZXIgZGVjaXNpb25zIGJhc2VkIG9uIGlmIHRoZSBib29sZWFuIHJldHVybmVkLCBlLmcuIHJldHVybiB0cnVlIGlmIHZhbHVlIG5vdCBpbiB3YXRjaGVkIHZhbHVlc1xuICAgICAgICBpZiAoIGNvbmZpZy5ldmFsdWF0ZSAmJiBjb25maWcuZXZhbHVhdGUgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHtcbiAgICAgICAgICByZXR1cm4gY29uZmlnLmV2YWx1YXRlKGlzVmFsdWVJblZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSB7IHJldHVybiBpc1ZhbHVlSW5WYWx1ZXM7IH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvL1xuICAgIHJldHVybiBvZih0cnVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIGZvciBydW5uaW5nIHRoZSBjaGVja0NvbnRyb2xzRm9yVmFsdWVzIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrQ29udHJvbHNDb25maWcge1xuICAvLyBhbiBhcnJheSBvZiBjb250cm9scyB0byB3YXRjaCBhbmQgdGhlIHZhbHVlcyB0byBjaGVjayBmb3JcbiAgd2F0Y2hDb25maWdzOiBDaGVja0NvbnRyb2xDb25maWdbXTtcbiAgLy8gdGhlIGZ1bmN0aW9uIHRvIHJ1biBhZ2FpbnN0IHRoZSBhcnJheSBvZiBjdXJyZW50IGZpZWxkIHZhbHVlSW4gcmVzcG9uc2VzXG4gIGV2YWx1YXRlPzogKCBib29sczogYm9vbGVhbltdICkgPT4gYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXYXRjaGVzIGEgbGlzdCBvZiBmaWVsZHMgZm9yIGluZGl2aWR1YWwgbGlzdHMgb2YgdmFsdWVzIHJldHVybmluZyB0cnVlIHdoZW4gYW55IGZpZWxkIGNvbnRhaW5zIG9uZVxuICogb2YgdGhlIHZhbHVlcyBiZWluZyB3YXRjaGVkIGZvciwgb3Igb3B0aW9uYWxseSBydW5uaW5nIGEgZnVuY3Rpb24gb24gdGhlIGFycmF5IG9mIHJlc29sdmVkIGJvb2xlYW5zXG4gKiBmcm9tIHRoZSBsaXN0ZWQgZmllbGRzIGFuZCByZXR1cm5pbmcgYSBib29sZWFuXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgdGhhdCBoYXMgdGhlIGZpZWxkcyB0byB3YXRjaCBhcyBkaXJlY3QgZGVzY2VuZGFudHNcbiAqIEBwYXJhbSBjb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gdG8gdXNlIHdoZW4gY2FsbGluZyB0aGUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ29udHJvbHNGb3JWYWx1ZXMoZ3JvdXA6IEZvcm1Hcm91cCwgY29uZmlnOiBDaGVja0NvbnRyb2xzQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgLy8gaWYgbm8gY29uZmlnIGlzIHBhc3NlZCB3ZSBqdXN0IHdhbnQgdG8gc2hvdyB0aGUgZmllbGQsIHNvIHdlIHJldHVybiBhbiBvYnNlcnZhYmxlIG9mIHRydWVcbiAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy53YXRjaENvbmZpZ3MpIHsgcmV0dXJuIG9mKHRydWUpOyB9XG4gIC8vIHdlIHJ1biBjaGVja0NvbnRyb2xGb3JWYWx1ZXMgb24gZXZlcnkgY29udHJvbCBpbiB0aGUgbGlzdCBvZiBXYXRjaENvbmZpZ3MgY3JlYXRpbmdcbiAgLy8gYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZSB3YXRjaGluZyBmaWVsZHMgZm9yIHZhbHVlc1xuICBjb25zdCBmaWVsZFRyaWdnZXJzID0gY29uZmlnLndhdGNoQ29uZmlncy5tYXAod2F0Y2hDb25maWcgPT4ge1xuICAgIC8vIHJlc29sdmVzIGEgYm9vbGVhbiwgdHJ1ZSB3aGVuIGZpZWxkIHZhbHVlIG1hdGNoZXMgYSB3YXRjaGVkIHZhbHVlLCBvdGhlcndpc2UgZmFsc2VcbiAgICByZXR1cm4gY2hlY2tDb250cm9sRm9yVmFsdWVzKGdyb3VwLCB3YXRjaENvbmZpZyk7XG4gIH0pO1xuXG4gIHJldHVybiBjb21iaW5lTGF0ZXN0KFxuICAgIGZpZWxkVHJpZ2dlcnNcbiAgKS5waXBlKFxuICAgIHN0YXJ0V2l0aChbdHJ1ZV0pLFxuICAgIG1hcCgoYm9vbGVhbnM6IGJvb2xlYW5bXSkgPT4ge1xuICAgICAgLy8gaWYgdGhlIHVzZXIgcGFzc2VkIGFuIGV2YWx1YXRlIGZ1bmN0aW9uIHVzZSBpdFxuICAgICAgaWYgKGNvbmZpZy5ldmFsdWF0ZSAmJiBjb25maWcuZXZhbHVhdGUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICByZXR1cm4gY29uZmlnLmV2YWx1YXRlKGJvb2xlYW5zKTtcbiAgICAgIH0gZWxzZSB7IC8vIG90aGVyd2lzZSB3ZSByZXR1cm4gdHJ1ZSBpZiBhbnkgb2YgdGhlIHdhdGNoZWQgZmllbGRzIHJlc29sdmUgdG8gdHJ1ZVxuICAgICAgICByZXR1cm4gYm9vbGVhbnMuc29tZShib29sID0+IGJvb2wpO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG59XG5cbi8qKlxuICogVGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIHRoZSBjb21wdXRlVmFsdWUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRlRmllbGRDb25maWc8VCA9IGFueSwgUlQgPSBhbnk+IHtcbiAgLy8gYXJyYXkgb2YgY29udHJvbCBuYW1lcyB3aG8ncyB2YWx1ZXMgd2Ugd2FudCB0byB3YXRjaFxuICBjb250cm9sTmFtZXNUb1dhdGNoOiBzdHJpbmdbXTtcbiAgLy8gdGhlIGZ1bmN0aW9uIHdlIHdhbnQgdG8gY2FsbCBvbiB0aGUgYXJyYXkgb2Ygd2F0Y2hlZCB2YWx1ZXMgdG8gY29tcHV0ZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgd2VcbiAgY29tcHV0ZUNhbGxiYWNrOiAoXG4gICAgdmFsdWVzOiAoVClbXVxuICApID0+IFJUO1xufVxuXG4vKipcbiAqIFdhdGNoZXMgdmFsdWVzIG9uIGFuIGFycmF5IG9mIGZpZWxkcywgY29tcHV0aW5nIHRoZWlyIHZhbHVlcyBhcyB0aGV5IGNoYW5nZVxuICogQHBhcmFtIGdyb3VwIHRoZSBncm91cCB0byBnZXQgdGhlIGZpZWxkcyBmcm9tLCBmb3Igbm93IGl0IGNhbiBvbmx5IGJlIHRoZSBwYXJlbnQgb2YgdGhlIGNvbXB1dGVkIGZpZWxkXG4gKiBAcGFyYW0gY29tcHV0ZUZpZWxkc0NvbmZpZyB0aGUgY29uZmlndXJhdGlvbiB0aGF0IGRyaXZlcyB0aGUgY29tcHV0YXRpb24sIGhvbGRzIHRoZSBuYW1lcyB0byB3YXRjaCBhbmQgdGhlXG4gKiBjb21wdXRhdGlvbiBmdW5jdGlvbiB0aGF0IGdldCBjYWxsZWQgYWdhaW5zdCB0aGUgYXJyYXkgb2YgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlVmFsdWVGcm9tRmllbGRzKGdyb3VwOiBGb3JtR3JvdXAsIGNvbXB1dGVGaWVsZHNDb25maWc6IENvbXB1dGVGaWVsZENvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vIFRPRE86IGJldHRlciBjaGVja2luZ1xuICBjb25zdCB7IGNvbnRyb2xOYW1lc1RvV2F0Y2ggfSA9IGNvbXB1dGVGaWVsZHNDb25maWc7XG4gIC8vY3JlYXRlcyBhbiBvYnNlcnZhYmxlIGxpc3RlbmVyIGZvciBlYWNoIGNvbnRyb2wgaW4gdGhlIGNvbnRyb2xOYW1lc1RvV2F0Y2ggYXJyYXlcbiAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgY29udHJvbE5hbWVzVG9XYXRjaC5tYXAoY29udHJvbE5hbWVUb1dhdGNoID0+IGdldFZhbHVlQ2hhbmdlcyhncm91cCwgY29udHJvbE5hbWVUb1dhdGNoKSlcbiAgKS5waXBlKFxuICAgIC8vIGVhY2ggdGltZSBhIHdhdGNoZWQgZmllbGQgdmFsdWVzIGNoYW5nZXMgYSBuZXcgYXJyYXkgb2YgdGhlIGxhdGVzdCBmaWVsZCB2YWx1ZXMgaXMgcGlwZSB0aHJvdWdoIHRvIHRoZVxuICAgIC8vIGNvbXB1dGUgY2FsbGJhY2suIFdoaWNoIHJ1bnMgdGhlIHVzZXJzIGxvZ2ljIG9uIHRoZSB2YWx1ZXMgdG8gY29tcHV0ZSB0aGlzIGZpZWxkcyB2YWx1ZVxuICAgIG1hcCh2YWx1ZXNBcnJheSA9PiBjb21wdXRlRmllbGRzQ29uZmlnLmNvbXB1dGVDYWxsYmFjayh2YWx1ZXNBcnJheSkpLFxuICApO1xufVxuXG4vKipcbiAqIEEgc2ltcGxlIHdyYXBwZXIgZm9yIGRvaW5nIGVycm9yIGNoZWNraW5nIGFyb3VuZCBnZXR0aW5nIHRoZSB2YWx1ZUNoYW5nZXMgb2JzZXJ2YWJsZSBmcm9tIGEgY29udHJvbCBvbiBhIGZvcm0gZ3JvdXBcbiAqIEBwYXJhbSBncm91cCB0aGUgZm9ybSBncm91cCB3ZSB3YW50IHRvIHB1bGwgdGhlIG9ic2VydmFibGUgZnJvbVxuICogQHBhcmFtIGNvbnRyb2xOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb250cm9sIHdobydzIHZhbHVlIHdlIHdhbnQgdG8gc3Vic2NyaWJlIHRvXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlQ2hhbmdlcyhncm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnRyb2wgPSBncm91cC5nZXQoY29udHJvbE5hbWUpO1xuICBpZiAoIWNvbnRyb2wpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGNvbnRyb2wgd2l0aCBjb250cm9sTmFtZSAke2NvbnRyb2xOYW1lfWAsICk7XG4gIH1cbiAgcmV0dXJuIGNvbnRyb2wudmFsdWVDaGFuZ2VzO1xufVxuLyoqXG4gKiAgVE9ETzogbW92ZSB0byB1dGlscyBsaWJyYXJ5IGFmdGVyIGxpYnJhcnkgaXMgYnVpbHRcbiAqICBBbGxvd3MgZGV2ZWxvcGVyIHRvIHBhc3MgYW4gYXJyYXkgb2Ygb3BlcmF0b3JzIGludG8gdGhlIHBpcGUgb2YgYW4gT2JzZXJ2YWJsZS5cbiAqICBVc2VmdWwgZm9yIGNyZWF0aW5nIGZ1bmN0aW9uIHdpdGggYSB2YXJpYWJsZSBhbW91bnQgb2Ygb3BlcmF0b3JzIHRvIGJlIHJ1blxuICogQHBhcmFtIG9ic2VydmFibGUgdGhlIG9ic2VydmFibGUgdG8gcGFzcyB0aGUgb3BlcmF0b3JzIHRvXG4gKiBAcGFyYW0gb3BlcmF0b3JzIGFycmF5IG9mIG9wZXJhdG9ycyB0byBwaXBlXG4gKi9cbmZ1bmN0aW9uIHBpcGVPcGVyYXRvcnNJbnRvT2JzZXJ2YWJsZShvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4sIG9wZXJhdG9yczogT3BlcmF0b3JGdW5jdGlvbjxhbnksIGFueT5bXSkge1xuICB0cnkge1xuICAgIHJldHVybiBvcGVyYXRvcnMucmVkdWNlKChvYnM6IE9ic2VydmFibGU8e30+LCBvcDogT3BlcmF0b3JGdW5jdGlvbjx7fSwge30+KSA9PiB7XG4gICAgICByZXR1cm4gb2JzLnBpcGUob3ApO1xuICAgIH0sIG9ic2VydmFibGUpO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gcGlwZSBvcGVyYXRvcnMgaW50byBvYnNlcnZhYmxlJyk7XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxPcHRpb25zSWZGdW5jdGlvbihcbiAgb3B0aW9uczogT3B0aW9uc1R5cGUgfCBBdXRvY29tcGxldGVPcHRpb25zQ2FsbGJhY2ssXG4gIHBhcmVudEdyb3VwPzogRm9ybUdyb3VwLFxuICBzZWFyY2hTdHJpbmc/OiBzdHJpbmdcbik6IE9wdGlvbnNUeXBlIHtcbiAgcmV0dXJuIG9wdGlvbnMgaW5zdGFuY2VvZiBGdW5jdGlvbiA/IG9wdGlvbnMocGFyZW50R3JvdXAsIHNlYXJjaFN0cmluZykgOiBvcHRpb25zO1xufVxuLyoqXG4gKiBUaGUgdXNlciBjYW4gZ2l2ZSB1cyBzZWxlY3Qgb3B0aW9ucyBhcyBhbiBhcnJheSwgYSBmdW5jdGlvbiB0aGF0IHJlc29sdmVzIHRvIGEgcHJvbWlzZSxcbiAqIG9yIGFuIG9ic2VydmFibGUuIFRoaXMgZnVuY3Rpb25zIGNvbnN1bWVzIGFueSBvZiB0aG9zZSBhbmQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXRcbiAqIHJlc29sdmVzIGFuIGFycmF5IG9mIG9wdGlvbnNcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gZnJvbSB0aGUgY29uZmlnXG4gKiBAcGFyYW0gZW1wdHlNZXNzYWdlT3B0aW9uIHRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgYXJyYXkgaXMgZW1wdHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmFibGlmeU9wdGlvbnMoXG4gIG9wdGlvbnM6IE9wdGlvbnNUeXBlLFxuICBwYXJlbnRHcm91cDogRm9ybUdyb3VwLFxuICBzZWFyY2hTdHJpbmc/OiBzdHJpbmcsXG4pOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPiB7XG4gIGNvbnN0IGNhbGxlZE9wdGlvbnMgPSBjYWxsT3B0aW9uc0lmRnVuY3Rpb24ob3B0aW9ucywgcGFyZW50R3JvdXAsIHNlYXJjaFN0cmluZyk7XG4gIC8vIGlmIG9wdGlvbnMgYXJlIGEgcHJvbWlzZVxuICBjb25zdCBvYnNlcnZhYmxlT3B0aW9ucyA9IGNhbGxlZE9wdGlvbnMgaW5zdGFuY2VvZiBQcm9taXNlXG4gIC8vIGNvbnZlcnQgdG8gb2JzZXJ2YWJsZVxuICA/IGZyb20oY2FsbGVkT3B0aW9ucylcbiAgLy8gaWYgYXJyYXkgdGhhdCBpc24ndCBlbXB0eVxuICA6IEFycmF5LmlzQXJyYXkoY2FsbGVkT3B0aW9ucykgJiYgY2FsbGVkT3B0aW9ucy5sZW5ndGhcbiAgLy8gY29udmVydCB0byBvYnNlcnZhYmxlXG4gID8gb2YoY2FsbGVkT3B0aW9ucylcbiAgLy8gaWYgb2JzZXJ2YWJsZVxuICA6IGlzT2JzZXJ2YWJsZShjYWxsZWRPcHRpb25zKVxuICAvLyByZXR1cm4gaXRcbiAgPyBjYWxsZWRPcHRpb25zXG4gIC8vIGVsc2UgYW4gZW1wdHkgYXJyYXlcbiAgOiBvZihbXSk7XG4gIHJldHVybiBvYnNlcnZhYmxlT3B0aW9ucztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBmaWVsZCBjb25maWcgaXMgZm9yIGEgZm9ybSBjb250cm9sIChub3QgYSBkaXZpZGVyLCBoZWFkaW5nIG9yIG90aGVyIG5vbi1jb250cm9sIGZpZWxkKVxuICogICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sQ29uZmlnKGZpZWxkQ29uZmlnOiBDcmlzcHJGaWVsZENvbmZpZyk6IGZpZWxkQ29uZmlnIGlzIENyaXNwckNvbnRyb2xDb25maWcge1xuICByZXR1cm4gJ2NvbnRyb2xOYW1lJyBpbiBmaWVsZENvbmZpZztcbn1cbi8qKlxuICogYnVpbGRzIG91dCBmb3JtIGdyb3VwIGJhc2VkIG9uIGNvbmZpZ1xuICogQHBhcmFtIGNvbmZpZyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBncm91cFxuICogQHBhcmFtIHZhbHVlIGFuIG9iamVjdCBvZiBpbml0aWFsIHZhbHVlcyB0byBwYXNzIGluXG4gKiBAcGFyYW0gZ3JvdXAgdGhlIGZvcm0gZ3JvdXAgdG8gbW9kaWZ5IGFuZCBidWlsZCBvdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUdyb3VwRnJvbUNvbmZpZyhjb25maWc6IEZvcm1Db25maWcsIHZhbHVlID0gbnVsbCwgZ3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pICkge1xuICBjb25maWcuZmllbGRzLmZvckVhY2goIChjb250cm9sQ29uZmlnOiBBbnlGaWVsZENvbmZpZykgPT4ge1xuICAgIGlmIChpc0NvbnRyb2xDb25maWcoY29udHJvbENvbmZpZykpIHtcbiAgICAgIC8vIHRoZW4gYWRkIGEgY29udHJvbCB0byB0aGUgZ3JvdXAgdXNpbmcgdGhlIGNvbnRyb2xOYW1lIGZyb20gY29uZmlndXJhdGlvblxuICAgICAgY29uc3Qge2NvbnRyb2xOYW1lfSA9IGNvbnRyb2xDb25maWc7XG4gICAgICAvLyBpZiB0aGVyZSdzIGEgdmFsdWUgb2JqZWN0IGFuZCBpdCBoYXMgYSBub24tbnVsbC91bmRlZmluZWQgdmFsdWUgZm9yIHRoaXMgZmllbGQgdXNlIGl0LlxuICAgICAgLy8gT3RoZXJ3aXNlLCBkZWZhdWx0IHRvIG51bGxcbiAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9ICh2YWx1ZSAmJiB2YWx1ZVtjb250cm9sTmFtZV0pID8/IG51bGw7XG4gICAgICBncm91cC5hZGRDb250cm9sKGNvbnRyb2xOYW1lLCBjcmVhdGVDb250cm9sRm9yVHlwZShjb250cm9sQ29uZmlnLCBjb250cm9sVmFsdWUpKTtcbiAgICB9XG4gIH0pO1xuICBncm91cC5zZXRWYWxpZGF0b3JzKGNvbmZpZy52YWxpZGF0b3JzKTtcbiAgcmV0dXJuIGdyb3VwO1xufVxuXG4vKipcbiAqIEFuYWx5emUgdGhlIGNvbmZpZyBhbmQgYnVpbGQgYSBmb3JtIGNvbnRyb2wgdG8gc3BlYy4gTm90aWNlIHdlIGRvbid0IHVzZSBGb3JtQnVpbGRlciBoZXJlXG4gKiBhcyB3ZSB3YW50IHRvIGtlZXAgdGhpcyBmdW5jdGlvbiBwdXJlLlxuICogQHBhcmFtIGNvbnRyb2xDb25maWcgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgY29udHJvbCB0byBidWlsZFxuICogQHBhcmFtIHZhbHVlIGFuIGluaXRpYWwgdmFsdWUgdG8gdXNlIGlmIHBhc3NlZCBpblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbEZvclR5cGUoY29udHJvbENvbmZpZzogQW55RmllbGRDb25maWcsIHZhbHVlOiBDb250cm9sVmFsdWUgPSBudWxsKSAge1xuICAvLyBidWlsZCBmb3JtIGNvbnRyb2wgb3V0IGJhc2VkIG9uIHRoZSBjb250cm9sIHR5cGVcbiAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xDb25maWcuY29udHJvbFR5cGUgPT09IENvbnRyb2xUeXBlLlNVQl9HUk9VUFxuICAgID8gYnVpbGRGb3JtR3JvdXBGcm9tQ29uZmlnKGNvbnRyb2xDb25maWcgYXMgRm9ybUNvbmZpZywgdmFsdWUpXG4gICAgOiBjb250cm9sQ29uZmlnLmNvbnRyb2xUeXBlID09PSBDb250cm9sVHlwZS5HUk9VUF9MSVNUXG4gICAgPyBuZXcgRm9ybUFycmF5KFtdLCAoY29udHJvbENvbmZpZyBhcyBGb3JtR3JvdXBMaXN0Q29uZmlnKS52YWxpZGF0b3JzKVxuICAgIDogbmV3IEZvcm1Db250cm9sKFxuICAgICAgdmFsdWUgfHwgbnVsbCxcbiAgICAgIChjb250cm9sQ29uZmlnIGFzIENyaXNwckNvbnRyb2xDb25maWcpLnZhbGlkYXRvcnNcbiAgICApO1xuXG4gIHJldHVybiBjb250cm9sO1xufVxuXG4vKipcbiAqIEEgYmFzaWMgZmlsdGVyIGZ1bmN0aW9uIHRoYXQgZmlsdGVycyB0aGUgc2VhcmNoIHN0cmluZyBhZ2FpbnN0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9ucyBvYmplY3RcbiAqIEBwYXJhbSBvcHRpb25zIHRoZSBhcnJheSBvZiBvcHRpb25zIHRvIGZpbHRlclxuICogQHBhcmFtIHNlYXJjaFN0cmluZyB0aGUgc3RyaW5nIGZyb20gdGhlIGlucHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPcHRpb25zQnlMYWJlbChvcHRpb25zOiBTZWxlY3RPcHRpb25bXSwgc2VhcmNoU3RyaW5nOiBzdHJpbmcpICB7XG4gIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4ge1xuICAgIHJldHVybiBvcHRpb24ubGFiZWwgJiYgb3B0aW9uLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpO1xuICB9KTtcbn1cbiJdfQ==
@@ -14,10 +14,10 @@ import * as i5 from "../info/info.component";
14
14
  import * as i6 from "@angular/material/autocomplete";
15
15
  import * as i7 from "@angular/material/core";
16
16
  import * as i8 from "../option/option.component";
17
- import * as i9 from "@angular/common";
18
- import * as i10 from "@angular/material/input";
19
- import * as i11 from "@angular/forms";
20
- import * as i12 from "@tft/form-validation-handler";
17
+ import * as i9 from "@angular/forms";
18
+ import * as i10 from "@tft/form-validation-handler";
19
+ import * as i11 from "@angular/common";
20
+ import * as i12 from "@angular/material/input";
21
21
  const defaultConfig = {
22
22
  chipsSelectable: true,
23
23
  areChipsRemovable: true,
@@ -97,10 +97,10 @@ export class AutocompleteChiplistFieldComponent extends AbstractAutocompleteComp
97
97
  }
98
98
  }
99
99
  AutocompleteChiplistFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
100
- AutocompleteChiplistFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AutocompleteChiplistFieldComponent, selector: "crispr-autocomplete-chiplist-field", viewQueries: [{ propertyName: "chipInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "chipInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.InfoComponent, selector: "crispr-info", inputs: ["info"] }, { type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.OptionComponent, selector: "crispr-option", inputs: ["option"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i12.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i2.MatSuffix, selector: "[matSuffix]" }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
100
+ AutocompleteChiplistFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AutocompleteChiplistFieldComponent, selector: "crispr-autocomplete-chiplist-field", viewQueries: [{ propertyName: "chipInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "chipInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.InfoComponent, selector: "crispr-info", inputs: ["info"] }, { type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.OptionComponent, selector: "crispr-option", inputs: ["option"] }], directives: [{ type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i11.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AutocompleteChiplistFieldComponent, decorators: [{
102
102
  type: Component,
103
- args: [{ selector: 'crispr-autocomplete-chiplist-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}\n"] }]
103
+ args: [{ selector: 'crispr-autocomplete-chiplist-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;object-fit:cover}.hidden-error-directive-anchor{display:none}\n"] }]
104
104
  }], propDecorators: { chipInput: [{
105
105
  type: ViewChild,
106
106
  args: ['autoInput', { read: MatAutocompleteTrigger }]
@@ -108,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
108
108
  type: ViewChild,
109
109
  args: ['autoInput']
110
110
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RHLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxPQUFPLEVBQW1DLDZCQUE2QixFQUFnQixNQUFNLGNBQWMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFHaEUsTUFBTSxhQUFhLEdBQTZDO0lBQzlELGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFDakIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixhQUFhLEVBQUUsT0FBTztJQUN0QixnQkFBZ0IsRUFBRSxHQUFHO0lBQ3JCLGVB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QUNILGNBQWMsQ0FBQyxLQUF3QjtRQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQW9CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUF5QjtRQUNsQyxNQUFNLGNBQWMsR0FBbUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OytIQW5GVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyw2SkFnQmIsc0JBQXNCLGdKQzdDeEQsbytFQThFQTsyRkRqRGEsa0NBQWtDO2tCQU45QyxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTTs4QkFrQlcsU0FBUztzQkFBbEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWcsIERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdHMnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZz4gPSB7XG4gIGNoaXBzU2VsZWN0YWJsZTogdHJ1ZSxcbiAgYXJlQ2hpcHNSZW1vdmFibGU6IHRydWUsXG4gIHRhYlRvU2VsZWN0OiB0cnVlLFxuICBhdXRvQWN0aXZlRmlyc3RPcHRpb246IHRydWUsXG4gIGltYWdlVXJsUGFyYW06ICdpbWFnZScsXG4gIHR5cGVEZWJvdW5jZVRpbWU6IDUwMCxcbiAgYWxsb3dEdXBsaWNhdGVzOiBmYWxzZSxcbiAgZHVwbGljYXRlQ29tcGFyZUZ1bmN0aW9uOiAoY2hpcCwgb3B0aW9uKSA9PiBjaGlwLnZhbHVlID09PSBvcHRpb24udmFsdWUsXG4gIHNlcGFyYXRvcktleUNvZGVzOiBbRU5URVJdLFxuICBlbXB0eU9wdGlvbnNNZXNzYWdlOiBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWF1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudFxuICBleHRlbmRzIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50PEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gIGNoaXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VsZWN0T3B0aW9uW10+KFtdKTtcbiAgcmVtYWluaW5nT3B0aW9ucyQ6IE9ic2VydmFibGU8U2VsZWN0T3B0aW9uW10+O1xuXG4gIGNvbnRyb2xWYWx1ZSQgPSB0aGlzLmNoaXBzJC5waXBlKFxuICAgIHRhcChjaGlwcyA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoY2hpcHMubWFwKGNoaXAgPT4gY2hpcC52YWx1ZSkpXG4gICAgfSlcbiAgKTtcblxuXG4gIC8vIFdlIG5lZWQgdXNlIFZpZXdDaGlsZCB0d2ljZSBvbiB0aGUgc2FtZSB0ZW1wbGF0ZSByZWYgdG8gYWNjZXNzIGFzIGRpZmZlcmVudCB0eXBlc1xuICAvLyAtIHRoZSBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIGlzIHVzZWQgdG8gZm9yIHNlbGVjdGluZyB2YWx1ZSBvbiB0YWJcbiAgLy8gLSB0aGUgRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpcyB1c2VkIHRvIGNsZWFyIHRoZSB2YWx1ZSBmcm9tIGlucHV0IGVsZW1lbnQgb24gc2VsZWN0aW9uXG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBjaGlwSW5wdXQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcpIGNoaXBJbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5yZW1haW5pbmdPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwcyQsXG4gICAgICB0aGlzLm9wdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXBzLCBvcHRpb25zXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuYWxsb3dEdXBsaWNhdGVzXG4gICAgICAgICAgPyBvcHRpb25zXG4gICAgICAgICAgOiBvcHRpb25zPy5maWx0ZXIob3B0aW9uID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhY2hpcHMuc29tZShjaGlwID0+IHRoaXMuY29uZmlnLmR1cGxpY2F0ZUNvbXBhcmVGdW5jdGlvbihjaGlwLCBvcHRpb24pKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBTZWxlY3RPcHRpb25bXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jaGlwcyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlcyBtYXQgc2VsZWN0aW5nXG4gIGhhbmRsZVNlbGVjdChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb24gPSBldmVudC5vcHRpb24udmFsdWUgYXMgU2VsZWN0T3B0aW9uO1xuICAgIHRoaXMuY2hpcHMkLm5leHQoWy4uLnRoaXMuY2hpcHMkLnZhbHVlLCAgc2VsZWN0ZWRPcHRpb25dKTtcbiAgICB0aGlzLmNoaXBJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIC8vIHNldFRpbWVvdXQgbmVlZGVkIGJlY2F1c2UgdGhlIHBhbmVsIHRoaW5rcyBpdCdzIHN0aWxsIG9wZW4gYXQgdGhpcyBwb2ludFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGlwSW5wdXQub3BlblBhbmVsKCkpXG4gIH1cblxuICAvKipcbiAgICogVG8gZm9sbG93IEFSSUEgc3RhbmRhcmRzIHdlIHdhbnQgdG8gc2VsZWN0IHRoZSBhY3RpdmUgb3B0aW9uIG9uIGJsdXIuXG4gICAqIG1hdENoaXBJbnB1dEFkZE9uQmx1ciBzaG91bGQgZG8gdGhpcyBidXQgaXQgY2F1c2VzIGJ1Z2d5IGJlaGF2aW91clxuICAgKiBAcGFyYW0gZXZlbnQgYmx1ciBldmVudCB0aGF0IHRyaWdnZXJzIHRoZSBoYW5kbGUgYmx1clxuICAgKi9cbiAgaGFuZGxlVGFiKF9ldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmICh0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24gJiYgKHRoaXMuY29uZmlnLnRhYlRvU2VsZWN0IHx8IHRoaXMuY29uZmlnLmFkZENoaXBPbkJsdXIpKSB7XG4gICAgICBjb25zdCBjaGlwID0gdGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy5jaGlwcyQubmV4dChbLi4udGhpcy5jaGlwcyQudmFsdWUsICBjaGlwXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgc2VsZWN0aW9uIHZpYSBrZXkgdG9rZW5zIHBhc3NlZCB0aHJvdWdoIHNlcGFyYXRvcktleUNvZGVzIHByb3BlcnRcbiAgICogTk9URTogSWYgVEFCIGlzIHVzZWQgZm9jdXMgZG9lcyBub3QgbW92ZSBvbiB0byBuZXh0IGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIGhhbmRsZVRva2VuRW5kKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgIGlmICh0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24pIHtcbiAgICAgIHRoaXMuY2hpcElucHV0LmFjdGl2ZU9wdGlvbi5zZWxlY3QoKTtcbiAgICB9XG4gICAgZXZlbnQuY2hpcElucHV0Py5jbGVhcigpO1xuICB9XG5cbiAgbWFwVG9MYWJlbChvcHRpb246IFNlbGVjdE9wdGlvbikge1xuICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubGFiZWwgOiAnJztcbiAgfVxuXG4gIHJlbW92ZUNoaXAocmVtb3ZlZENoaXA6IFNlbGVjdE9wdGlvbikge1xuICAgIGNvbnN0IHJlbWFpbmluZ0NoaXBzOiBTZWxlY3RPcHRpb25bXSA9IHRoaXMuY2hpcHMkLnZhbHVlLmZpbHRlcihjaGlwID0+IGNoaXAgIT09IHJlbW92ZWRDaGlwKTtcbiAgICB0aGlzLmNoaXBzJC5uZXh0KHJlbWFpbmluZ0NoaXBzKTtcbiAgfVxufVxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cblxuICAgIDxtYXQtY2hpcC1saXN0XG4gICAgICAjY2hpcExpc3Q+XG4gICAgICA8bWF0LWNoaXBcbiAgICAgICAgY2xhc3M9XCJyZWZpbmVtZW50LWNoaXBcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjb250cm9sVmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJjb25maWcuY2hpcHNTZWxlY3RhYmxlXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwKGNoaXApXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5pbWFnZVVybCBhcyBpbWFnZVVybFwiIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCIgYWx0PVwiaW1hZ2Ugb2Yge3tjaGlwLmxhYmVsfX1cIj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7e2NoaXAubGFiZWx9fVxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGFuZGxlVGFiKCRldmVudClcIlxuICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwiY29uZmlnLnNlcGFyYXRvcktleUNvZGVzXCJcbiAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImhhbmRsZVRva2VuRW5kKCRldmVudClcIlxuICAgICAgICByb2xlPVwic2VhcmNoYm94XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgI2F1dG9JbnB1dC8+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgICAgPGNyaXNwci1pbmZvXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgW2luZm9dPVwiY29uZmlnLmluZm8gXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRoaXMuY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cIm1hcFRvTGFiZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jIGFzIHJlbWFpbmluZ09wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbWFpbmluZ09wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlLWNoaXBsaXN0LWZpZWxkL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2F1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZC9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RHLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5QyxPQUFPLEVBQW1DLDZCQUE2QixFQUFnQixNQUFNLGNBQWMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFHaEUsTUFBTSxhQUFhLEdBQTZDO0lBQzlELGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFDakIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQixhQUFhLEVBQUUsT0FBTztJQUN0QixnQkFBZ0IsRUFBRSxHQUFHO0lBQ3JCLGVB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QUNILGNBQWMsQ0FBQyxLQUF3QjtRQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RDO1FBQ0QsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQW9CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUF5QjtRQUNsQyxNQUFNLGNBQWMsR0FBbUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7OytIQW5GVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyw2SkFnQmIsc0JBQXNCLGdKQzdDeEQscXRGQWlGQTsyRkRwRGEsa0NBQWtDO2tCQU45QyxTQUFTOytCQUNFLG9DQUFvQyxtQkFHN0IsdUJBQXVCLENBQUMsTUFBTTs4QkFrQlcsU0FBUztzQkFBbEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWcsIERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hYnN0cmFjdHMnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbmZpZz4gPSB7XG4gIGNoaXBzU2VsZWN0YWJsZTogdHJ1ZSxcbiAgYXJlQ2hpcHNSZW1vdmFibGU6IHRydWUsXG4gIHRhYlRvU2VsZWN0OiB0cnVlLFxuICBhdXRvQWN0aXZlRmlyc3RPcHRpb246IHRydWUsXG4gIGltYWdlVXJsUGFyYW06ICdpbWFnZScsXG4gIHR5cGVEZWJvdW5jZVRpbWU6IDUwMCxcbiAgYWxsb3dEdXBsaWNhdGVzOiBmYWxzZSxcbiAgZHVwbGljYXRlQ29tcGFyZUZ1bmN0aW9uOiAoY2hpcCwgb3B0aW9uKSA9PiBjaGlwLnZhbHVlID09PSBvcHRpb24udmFsdWUsXG4gIHNlcGFyYXRvcktleUNvZGVzOiBbRU5URVJdLFxuICBlbXB0eU9wdGlvbnNNZXNzYWdlOiBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWF1dG9jb21wbGV0ZS1jaGlwbGlzdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUtY2hpcGxpc3QtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ2hpcGxpc3RGaWVsZENvbXBvbmVudFxuICBleHRlbmRzIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50PEF1dG9jb21wbGV0ZUNoaXBsaXN0RmllbGRDb25maWc+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGVmYXVsdENvbmZpZyA9IGRlZmF1bHRDb25maWc7XG4gIGNoaXBzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VsZWN0T3B0aW9uW10+KFtdKTtcbiAgcmVtYWluaW5nT3B0aW9ucyQ6IE9ic2VydmFibGU8U2VsZWN0T3B0aW9uW10+O1xuXG4gIGNvbnRyb2xWYWx1ZSQgPSB0aGlzLmNoaXBzJC5waXBlKFxuICAgIHRhcChjaGlwcyA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoY2hpcHMubWFwKGNoaXAgPT4gY2hpcC52YWx1ZSkpXG4gICAgfSlcbiAgKTtcblxuXG4gIC8vIFdlIG5lZWQgdXNlIFZpZXdDaGlsZCB0d2ljZSBvbiB0aGUgc2FtZSB0ZW1wbGF0ZSByZWYgdG8gYWNjZXNzIGFzIGRpZmZlcmVudCB0eXBlc1xuICAvLyAtIHRoZSBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIGlzIHVzZWQgdG8gZm9yIHNlbGVjdGluZyB2YWx1ZSBvbiB0YWJcbiAgLy8gLSB0aGUgRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpcyB1c2VkIHRvIGNsZWFyIHRoZSB2YWx1ZSBmcm9tIGlucHV0IGVsZW1lbnQgb24gc2VsZWN0aW9uXG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcsIHsgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9KSBjaGlwSW5wdXQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9JbnB1dCcpIGNoaXBJbnB1dFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5yZW1haW5pbmdPcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwcyQsXG4gICAgICB0aGlzLm9wdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXBzLCBvcHRpb25zXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuYWxsb3dEdXBsaWNhdGVzXG4gICAgICAgICAgPyBvcHRpb25zXG4gICAgICAgICAgOiBvcHRpb25zPy5maWx0ZXIob3B0aW9uID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhY2hpcHMuc29tZShjaGlwID0+IHRoaXMuY29uZmlnLmR1cGxpY2F0ZUNvbXBhcmVGdW5jdGlvbihjaGlwLCBvcHRpb24pKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBTZWxlY3RPcHRpb25bXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jaGlwcyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlcyBtYXQgc2VsZWN0aW5nXG4gIGhhbmRsZVNlbGVjdChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb24gPSBldmVudC5vcHRpb24udmFsdWUgYXMgU2VsZWN0T3B0aW9uO1xuICAgIHRoaXMuY2hpcHMkLm5leHQoWy4uLnRoaXMuY2hpcHMkLnZhbHVlLCAgc2VsZWN0ZWRPcHRpb25dKTtcbiAgICB0aGlzLmNoaXBJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIC8vIHNldFRpbWVvdXQgbmVlZGVkIGJlY2F1c2UgdGhlIHBhbmVsIHRoaW5rcyBpdCdzIHN0aWxsIG9wZW4gYXQgdGhpcyBwb2ludFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGlwSW5wdXQub3BlblBhbmVsKCkpXG4gIH1cblxuICAvKipcbiAgICogVG8gZm9sbG93IEFSSUEgc3RhbmRhcmRzIHdlIHdhbnQgdG8gc2VsZWN0IHRoZSBhY3RpdmUgb3B0aW9uIG9uIGJsdXIuXG4gICAqIG1hdENoaXBJbnB1dEFkZE9uQmx1ciBzaG91bGQgZG8gdGhpcyBidXQgaXQgY2F1c2VzIGJ1Z2d5IGJlaGF2aW91clxuICAgKiBAcGFyYW0gZXZlbnQgYmx1ciBldmVudCB0aGF0IHRyaWdnZXJzIHRoZSBoYW5kbGUgYmx1clxuICAgKi9cbiAgaGFuZGxlVGFiKF9ldmVudDogRm9jdXNFdmVudCkge1xuICAgIGlmICh0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24gJiYgKHRoaXMuY29uZmlnLnRhYlRvU2VsZWN0IHx8IHRoaXMuY29uZmlnLmFkZENoaXBPbkJsdXIpKSB7XG4gICAgICBjb25zdCBjaGlwID0gdGhpcy5jaGlwSW5wdXQuYWN0aXZlT3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy5jaGlwcyQubmV4dChbLi4udGhpcy5jaGlwcyQudmFsdWUsICBjaGlwXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgc2VsZWN0aW9uIHZpYSBrZXkgdG9rZW5zIHBhc3NlZCB0aHJvdWdoIHNlcGFyYXRvcktleUNvZGVzIHByb3BlcnRcbiAgICogTk9URTogSWYgVEFCIGlzIHVzZWQgZm9jdXMgZG9lcyBub3QgbW92ZSBvbiB0byBuZXh0IGNvbXBvbmVudFxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIGhhbmRsZVRva2VuRW5kKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xuICAgIGlmICh0aGlzLmNoaXBJbnB1dC5hY3RpdmVPcHRpb24pIHtcbiAgICAgIHRoaXMuY2hpcElucHV0LmFjdGl2ZU9wdGlvbi5zZWxlY3QoKTtcbiAgICB9XG4gICAgZXZlbnQuY2hpcElucHV0Py5jbGVhcigpO1xuICB9XG5cbiAgbWFwVG9MYWJlbChvcHRpb246IFNlbGVjdE9wdGlvbikge1xuICAgIHJldHVybiBvcHRpb24gPyBvcHRpb24ubGFiZWwgOiAnJztcbiAgfVxuXG4gIHJlbW92ZUNoaXAocmVtb3ZlZENoaXA6IFNlbGVjdE9wdGlvbikge1xuICAgIGNvbnN0IHJlbWFpbmluZ0NoaXBzOiBTZWxlY3RPcHRpb25bXSA9IHRoaXMuY2hpcHMkLnZhbHVlLmZpbHRlcihjaGlwID0+IGNoaXAgIT09IHJlbW92ZWRDaGlwKTtcbiAgICB0aGlzLmNoaXBzJC5uZXh0KHJlbWFpbmluZ0NoaXBzKTtcbiAgfVxufVxuIiwiPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiXG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cblxuICAgIDxtYXQtY2hpcC1saXN0XG4gICAgICAjY2hpcExpc3Q+XG4gICAgICA8bWF0LWNoaXBcbiAgICAgICAgY2xhc3M9XCJyZWZpbmVtZW50LWNoaXBcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2hpcCBvZiBjb250cm9sVmFsdWUkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJjb25maWcuY2hpcHNTZWxlY3RhYmxlXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIlxuICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwKGNoaXApXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY2hpcC5pbWFnZVVybCBhcyBpbWFnZVVybFwiIGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlVXJsXCIgYWx0PVwiaW1hZ2Ugb2Yge3tjaGlwLmxhYmVsfX1cIj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7e2NoaXAubGFiZWx9fVxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuYXJlQ2hpcHNSZW1vdmFibGVcIj5cbiAgICAgICAgICBjYW5jZWxcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJoaWRkZW4tZXJyb3ItZGlyZWN0aXZlLWFuY2hvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIi8+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGFuZGxlVGFiKCRldmVudClcIlxuICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwiY29uZmlnLnNlcGFyYXRvcktleUNvZGVzXCJcbiAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImhhbmRsZVRva2VuRW5kKCRldmVudClcIlxuICAgICAgICByb2xlPVwic2VhcmNoYm94XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgI2F1dG9JbnB1dC8+XG4gICAgICA8c3BhbiAqbmdJZj1cImNvbmZpZy5maWVsZFN1ZmZpeFwiIG1hdFN1ZmZpeD57e2NvbmZpZy5maWVsZFN1ZmZpeH19PC9zcGFuPlxuICAgICAgPGNyaXNwci1pbmZvXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgW2luZm9dPVwiY29uZmlnLmluZm8gXCI+XG4gICAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRoaXMuY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cIm1hcFRvTGFiZWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jIGFzIHJlbWFpbmluZ09wdGlvbnM7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbWFpbmluZ09wdGlvbnMubGVuZ3RoID4gMDsgZWxzZSBlbXB0eU9wdGlvblwiPlxuICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZW1haW5pbmdPcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
@@ -9,10 +9,10 @@ import * as i3 from "../info/info.component";
9
9
  import * as i4 from "@angular/material/autocomplete";
10
10
  import * as i5 from "@angular/material/core";
11
11
  import * as i6 from "../option/option.component";
12
- import * as i7 from "@angular/common";
13
- import * as i8 from "@angular/material/input";
14
- import * as i9 from "@angular/forms";
15
- import * as i10 from "@tft/form-validation-handler";
12
+ import * as i7 from "@angular/forms";
13
+ import * as i8 from "@tft/form-validation-handler";
14
+ import * as i9 from "@angular/common";
15
+ import * as i10 from "@angular/material/input";
16
16
  const defaultConfig = {
17
17
  autoActiveFirstOption: true,
18
18
  typeDebounceTime: 500,
@@ -25,6 +25,14 @@ export class AutocompleteFieldComponent extends AbstractAutocompleteComponent {
25
25
  }
26
26
  ngOnInit() {
27
27
  super.ngOnInit();
28
+ this.clearFieldSubscription = this.autocompleteInputControl.valueChanges.subscribe((text) => {
29
+ if (text.trim() === '') {
30
+ this.control.setValue(null);
31
+ }
32
+ });
33
+ }
34
+ ngOnDestroy() {
35
+ this.clearFieldSubscription.unsubscribe();
28
36
  }
29
37
  setControlValue(value) {
30
38
  if (this.control && value) {
@@ -56,10 +64,10 @@ export class AutocompleteFieldComponent extends AbstractAutocompleteComponent {
56
64
  }
57
65
  }
58
66
  AutocompleteFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AutocompleteFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
59
- AutocompleteFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AutocompleteFieldComponent, selector: "crispr-autocomplete-field", viewQueries: [{ propertyName: "autoInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "autoInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matAutocomplete]=\"auto\"\n role=\"textbox\"\n type=\"textbox\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"displayLabel(options$ | async)\">\n\n <ng-container *ngIf=\"options$ | async as options; else emptyOption\">\n <ng-container *ngIf=\"options.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n\n </mat-autocomplete>\n </mat-form-field>\n</crispr-field-container>\n", styles: [""], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.InfoComponent, selector: "crispr-info", inputs: ["info"] }, { type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i6.OptionComponent, selector: "crispr-option", inputs: ["option"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
67
+ AutocompleteFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AutocompleteFieldComponent, selector: "crispr-autocomplete-field", viewQueries: [{ propertyName: "autoInput", first: true, predicate: ["autoInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "autoInputRef", first: true, predicate: ["autoInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matAutocomplete]=\"auto\"\n role=\"textbox\"\n type=\"textbox\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"displayLabel(options$ | async)\">\n\n <ng-container *ngIf=\"options$ | async as options; else emptyOption\">\n <ng-container *ngIf=\"options.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of options\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".hidden-error-directive-anchor{display:none}\n"], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.InfoComponent, selector: "crispr-info", inputs: ["info"] }, { type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i6.OptionComponent, selector: "crispr-option", inputs: ["option"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i9.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
60
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AutocompleteFieldComponent, decorators: [{
61
69
  type: Component,
62
- args: [{ selector: 'crispr-autocomplete-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matAutocomplete]=\"auto\"\n role=\"textbox\"\n type=\"textbox\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"displayLabel(options$ | async)\">\n\n <ng-container *ngIf=\"options$ | async as options; else emptyOption\">\n <ng-container *ngIf=\"options.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of options$ | async\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n\n </mat-autocomplete>\n </mat-form-field>\n</crispr-field-container>\n", styles: [""] }]
70
+ args: [{ selector: 'crispr-autocomplete-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <input class=\"hidden-error-directive-anchor\" [formControlName]=\"config.controlName\" type=\"text\"/>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matAutocomplete]=\"auto\"\n role=\"textbox\"\n type=\"textbox\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput>\n\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"displayLabel(options$ | async)\">\n\n <ng-container *ngIf=\"options$ | async as options; else emptyOption\">\n <ng-container *ngIf=\"options.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of options\"\n [value]=\"option.value\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n", styles: [".hidden-error-directive-anchor{display:none}\n"] }]
63
71
  }], propDecorators: { autoInput: [{
64
72
  type: ViewChild,
65
73
  args: ['autoInput', { read: MatAutocompleteTrigger }]
@@ -67,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
67
75
  type: ViewChild,
68
76
  args: ['autoInput']
69
77
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlLWZpZWxkL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxzQkFBc0IsRUFBZ0MsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RyxPQUFPLEVBQXlDLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFFaEUsTUFBTSxhQUFhLEdBQXFDO0lBQ3RELHFCQUFxQixFQUFFLElBQUk7SUFDM0IsZ0JBQWdCLEVBQUUsR0FBRztJQUNyQixtQkFBbUIsRUFBRSw2QkFBNkI7Q0FDbkQsQ0FBQztBQVFGLE1BQU0sT0FBTywwQkFDWCxTQUFRLDZCQUFzRDtJQVBoRTs7UUFVRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQXNDL0I7SUFsQ0MsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQW1CO1FBQ2pDLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDeEIseURBQXlEO1lBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBQyxPQUF1QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxLQUFLLEdBQVcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDekQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNqRyxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBbUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzt1SEF6Q1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsb0pBS0wsc0JBQXNCLGdKQ3ZCeEQsMGxEQXVEQTsyRkRyQ2EsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFPVyxTQUFTO3NCQUFsRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTtnQkFDaEMsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24sIEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnLCBERUZBVUxUX0VNUFRZX09QVElPTlNfTUVTU0FHRSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cyc7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IFBhcnRpYWw8QXV0b2NvbXBsZXRlRmllbGRDb25maWc+ID0ge1xuICBhdXRvQWN0aXZlRmlyc3RPcHRpb246IHRydWUsXG4gIHR5cGVEZWJvdW5jZVRpbWU6IDUwMCxcbiAgZW1wdHlPcHRpb25zTWVzc2FnZTogREVGQVVMVF9FTVBUWV9PUFRJT05TX01FU1NBR0Vcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NyaXNwci1hdXRvY29tcGxldGUtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUZpZWxkQ29tcG9uZW50XG4gIGV4dGVuZHMgQWJzdHJhY3RBdXRvY29tcGxldGVDb21wb25lbnQ8QXV0b2NvbXBsZXRlRmllbGRDb25maWc+XG4gIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcbiAgQFZpZXdDaGlsZCgnYXV0b0lucHV0JywgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIGF1dG9JbnB1dDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgnYXV0b0lucHV0JykgYXV0b0lucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBzZXRDb250cm9sVmFsdWUodmFsdWU6IFNlbGVjdE9wdGlvbikge1xuICAgIGlmKHRoaXMuY29udHJvbCAmJiB2YWx1ZSkge1xuICAgICAgLy8gc2V0cyB0aGUgaW5pdGlhbCB2YWx1ZSBvbiB0aGUgY29udHJvbCBpZiBvbmUgaXMgcGFzc2VkXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUudmFsdWUgfHwgJycpO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dENvbnRyb2wuc2V0VmFsdWUodmFsdWUubGFiZWwgfHwgJycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWF0ZXJpYWwgYXV0b2NvbXBsZXRlIGRlZmF1bHRzIHRvIGRpc3BsYXlpbmcgdGhlIG9wdGlvbnMgdmFsdWUgaW5zdGVhZCBvZiBpdHMgbGFiZWwuXG4gICAqIFdlIG9ubHkgaGF2ZSB0aGUgdmFsdWUgZnJvbSB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHdvcmsgd2l0aCwgc28gd2UgaGF2ZSB0byBwYXNzIHRoZSBvcHRpb25zXG4gICAqIHRocm91Z2ggYSBmdW5jdGlvbiBjYWxsZWQgaW4gdGhlIHRlbXBsYXRlIGFuZCByZXR1cm4gdGhlIGZ1bmN0aW9uIHRoYXQgdGhlIG1hdGVyaWFsIGRpc3BsYXlXaXRoXG4gICAqIGlucHV0IGlzIGV4cGVjdGluZy5cbiAgICogQHBhcmFtIG9wdGlvbnMgdGhlIGFycmF5IG9mIG9wdGlvbnMgdG8gc2VhcmNoIGZvciBvcHRpb24gd2l0aCBjb3JyZXNwb25kaW5nIHZhbHVlXG4gICAqL1xuICBkaXNwbGF5TGFiZWwob3B0aW9uczogU2VsZWN0T3B0aW9uW10pIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGlzcGxheVdpdGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5kaXNwbGF5V2l0aChvcHRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBjb25zdCBsYWJlbDogc3RyaW5nID0gISFvcHRpb25zICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucylcbiAgICAgID8gb3B0aW9ucy5maW5kKChvcHRpb24pID0+IEpTT04uc3RyaW5naWZ5KG9wdGlvbi52YWx1ZSkgPT09IEpTT04uc3RyaW5naWZ5KHZhbHVlKSk/LmxhYmVsOiB2YWx1ZTtcbiAgICAgIHJldHVybiBsYWJlbFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVTZWxlY3QoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZXZlbnQub3B0aW9uLnZhbHVlKVxuICAgIHRoaXMuYXV0b0lucHV0UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG59XG5cbiIsIlxuPGNyaXNwci1maWVsZC1jb250YWluZXJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxuICBbZ3JvdXBdPVwiZ3JvdXBcIj5cblxuICA8bWF0LWZvcm0tZmllbGRcbiAgICBbY29sb3JdPVwiY29uZmlnLmNvbG9yXCJcbiAgICBbYXBwZWFyYW5jZV09XCJjb25maWcuYXBwZWFyYW5jZVwiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJjb25maWcubGFiZWxcIj5cbiAgICAgIHt7Y29uZmlnLmxhYmVsfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgIHR5cGU9XCJ0ZXh0Ym94XCJcbiAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAjYXV0b0lucHV0PlxuXG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWcuZmllbGRTdWZmaXhcIiBtYXRTdWZmaXg+e3tjb25maWcuZmllbGRTdWZmaXh9fTwvc3Bhbj5cbiAgICA8Y3Jpc3ByLWluZm9cbiAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbaW5mb109XCJjb25maWcuaW5mbyBcIj5cbiAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIFthdXRvQWN0aXZlRmlyc3RPcHRpb25dPVwiY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlMYWJlbChvcHRpb25zJCB8IGFzeW5jKVwiPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zOyBlbHNlIGVtcHR5T3B0aW9uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3Jpc3ByLWZvcm1zL3NyYy9saWIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlLWZpZWxkL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2F1dG9jb21wbGV0ZS1maWVsZC9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxzQkFBc0IsRUFBZ0MsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RyxPQUFPLEVBQXlDLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFHaEUsTUFBTSxhQUFhLEdBQXFDO0lBQ3RELHFCQUFxQixFQUFFLElBQUk7SUFDM0IsZ0JBQWdCLEVBQUUsR0FBRztJQUNyQixtQkFBbUIsRUFBRSw2QkFBNkI7Q0FDbkQsQ0FBQztBQVFGLE1BQU0sT0FBTywwQkFDWCxTQUFRLDZCQUFzRDtJQVBoRTs7UUFVRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQWlEL0I7SUEzQ0MsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUNsRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQW1CO1FBQ2pDLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDeEIseURBQXlEO1lBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFlBQVksQ0FBQyxPQUF1QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxLQUFLLEdBQVcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDekQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNqRyxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBbUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzt1SEFwRFUsMEJBQTBCOzJHQUExQiwwQkFBMEIsb0pBS0wsc0JBQXNCLGdKQ3hCeEQsdzBEQThEQTsyRkQzQ2EsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFPVyxTQUFTO3NCQUFsRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTtnQkFDaEMsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5cbmltcG9ydCB7IFNlbGVjdE9wdGlvbiwgQXV0b2NvbXBsZXRlRmllbGRDb25maWcsIERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPiA9IHtcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uOiB0cnVlLFxuICB0eXBlRGVib3VuY2VUaW1lOiA1MDAsXG4gIGVtcHR5T3B0aW9uc01lc3NhZ2U6IERFRkFVTFRfRU1QVFlfT1BUSU9OU19NRVNTQUdFXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcmlzcHItYXV0b2NvbXBsZXRlLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudFxuICBleHRlbmRzIEFic3RyYWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50PEF1dG9jb21wbGV0ZUZpZWxkQ29uZmlnPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBkZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcbiAgQFZpZXdDaGlsZCgnYXV0b0lucHV0JywgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIGF1dG9JbnB1dDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcbiAgQFZpZXdDaGlsZCgnYXV0b0lucHV0JykgYXV0b0lucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIGNsZWFyRmllbGRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuY2xlYXJGaWVsZFN1YnNjcmlwdGlvbiA9IHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRleHQudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2xlYXJGaWVsZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2V0Q29udHJvbFZhbHVlKHZhbHVlOiBTZWxlY3RPcHRpb24pIHtcbiAgICBpZih0aGlzLmNvbnRyb2wgJiYgdmFsdWUpIHtcbiAgICAgIC8vIHNldHMgdGhlIGluaXRpYWwgdmFsdWUgb24gdGhlIGNvbnRyb2wgaWYgb25lIGlzIHBhc3NlZFxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlLnZhbHVlIHx8ICcnKTtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sLnNldFZhbHVlKHZhbHVlLmxhYmVsIHx8ICcnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1hdGVyaWFsIGF1dG9jb21wbGV0ZSBkZWZhdWx0cyB0byBkaXNwbGF5aW5nIHRoZSBvcHRpb25zIHZhbHVlIGluc3RlYWQgb2YgaXRzIGxhYmVsLlxuICAgKiBXZSBvbmx5IGhhdmUgdGhlIHZhbHVlIGZyb20gdGhlIHNlbGVjdGVkIG9wdGlvbiB0byB3b3JrIHdpdGgsIHNvIHdlIGhhdmUgdG8gcGFzcyB0aGUgb3B0aW9uc1xuICAgKiB0aHJvdWdoIGEgZnVuY3Rpb24gY2FsbGVkIGluIHRoZSB0ZW1wbGF0ZSBhbmQgcmV0dXJuIHRoZSBmdW5jdGlvbiB0aGF0IHRoZSBtYXRlcmlhbCBkaXNwbGF5V2l0aFxuICAgKiBpbnB1dCBpcyBleHBlY3RpbmcuXG4gICAqIEBwYXJhbSBvcHRpb25zIHRoZSBhcnJheSBvZiBvcHRpb25zIHRvIHNlYXJjaCBmb3Igb3B0aW9uIHdpdGggY29ycmVzcG9uZGluZyB2YWx1ZVxuICAgKi9cbiAgZGlzcGxheUxhYmVsKG9wdGlvbnM6IFNlbGVjdE9wdGlvbltdKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRpc3BsYXlXaXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuZGlzcGxheVdpdGgob3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgbGFiZWw6IHN0cmluZyA9ICEhb3B0aW9ucyAmJiBBcnJheS5pc0FycmF5KG9wdGlvbnMpXG4gICAgICA/IG9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBKU09OLnN0cmluZ2lmeShvcHRpb24udmFsdWUpID09PSBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpPy5sYWJlbDogdmFsdWU7XG4gICAgICByZXR1cm4gbGFiZWxcbiAgICB9O1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0KGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGV2ZW50Lm9wdGlvbi52YWx1ZSlcbiAgICB0aGlzLmF1dG9JbnB1dFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgfVxufVxuXG4iLCJcbjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgW2NvbG9yXT1cImNvbmZpZy5jb2xvclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiY29uZmlnLmFwcGVhcmFuY2VcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwiY29uZmlnLmxhYmVsXCI+XG4gICAgICB7e2NvbmZpZy5sYWJlbH19XG4gICAgPC9tYXQtbGFiZWw+XG5cbiAgICA8aW5wdXQgY2xhc3M9XCJoaWRkZW4tZXJyb3ItZGlyZWN0aXZlLWFuY2hvclwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIi8+XG5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlSW5wdXRDb250cm9sXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJcIlxuICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgIHR5cGU9XCJ0ZXh0Ym94XCJcbiAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAjYXV0b0lucHV0PlxuXG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWcuZmllbGRTdWZmaXhcIiBtYXRTdWZmaXg+e3tjb25maWcuZmllbGRTdWZmaXh9fTwvc3Bhbj5cbiAgICA8Y3Jpc3ByLWluZm9cbiAgICAgICpuZ0lmPVwiY29uZmlnLmluZm9cIlxuICAgICAgbWF0U3VmZml4XG4gICAgICBbaW5mb109XCJjb25maWcuaW5mbyBcIj5cbiAgICA8L2NyaXNwci1pbmZvPlxuXG4gICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIFthdXRvQWN0aXZlRmlyc3RPcHRpb25dPVwiY29uZmlnLmF1dG9BY3RpdmVGaXJzdE9wdGlvblwiXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlMYWJlbChvcHRpb25zJCB8IGFzeW5jKVwiPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zOyBlbHNlIGVtcHR5T3B0aW9uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlPcHRpb25cIj5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgIDxjcmlzcHItb3B0aW9uIFtvcHRpb25dPVwib3B0aW9uXCI+PC9jcmlzcHItb3B0aW9uPlxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eU9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAge3tjb25maWcuZW1wdHlPcHRpb25zTWVzc2FnZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJjb25maWcuaGludCAmJiAoY29udHJvbC52YWxpZCB8fCAhY29udHJvbC50b3VjaGVkKVwiPnt7Y29uZmlnLmhpbnR9fTwvbWF0LWhpbnQ+XG5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvY3Jpc3ByLWZpZWxkLWNvbnRhaW5lcj5cbiJdfQ==
@@ -37,9 +37,9 @@ export class DatepickerFieldComponent extends DatepickerFieldMixin {
37
37
  }
38
38
  }
39
39
  DatepickerFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: DatepickerFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
40
- DatepickerFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: DatepickerFieldComponent, selector: "crispr-datepicker-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\n\n </mat-form-field>\n</crispr-field-container>\n\n", styles: [""], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i8.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
40
+ DatepickerFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: DatepickerFieldComponent, selector: "crispr-datepicker-field", usesInheritance: true, ngImport: i0, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n\n", styles: [""], components: [{ type: i1.FieldContainerComponent, selector: "crispr-field-container", inputs: ["config", "group", "inlineField"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.ControlErrorContainerDirective, selector: "[controlErrorContainer], [formGroup]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.ControlErrorsDirective, selector: "[formControl], [formControlName]" }, { type: i2.MatSuffix, selector: "[matSuffix]" }, { type: i8.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, preserveWhitespaces: true });
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: DatepickerFieldComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ selector: 'crispr-datepicker-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\n\n </mat-form-field>\n</crispr-field-container>\n\n", styles: [""] }]
43
+ args: [{ selector: 'crispr-datepicker-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\"\n [formGroup]=\"group\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n <input\n matInput\n [formControlName]=\"config.controlName\"\n [min]=\"config.min\"\n [max]=\"config.max\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"config.datepickerFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker\n [touchUi]=\"config.touchUi\"\n [startView]=\"config.startView\"\n [startAt]=\"startAt$ | async\"\n [dateClass]=\"dateClass || (dateClass$ | async)\"\n #picker>\n <mat-datepicker-actions *ngIf=\"calendarFooterPortal\">\n <ng-template [cdkPortalOutlet]=\"calendarFooterPortal\"></ng-template>\n </mat-datepicker-actions>\n </mat-datepicker>\n\n <mat-hint *ngIf=\"config.hint && (control.valid || !control.touched)\">{{config.hint}}</mat-hint>\n\n </mat-form-field>\n</crispr-field-container>\n\n", styles: [""] }]
44
44
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUczRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQUU5RCxNQUFNLGFBQWEsR0FBbUM7SUFDcEQsU0FBUyxFQUFFLE9BQU87Q0FDbkIsQ0FBQTtBQUNELE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQXdCLG9CQUFvQixDQUFDLENBQUM7QUFRN0YsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQU5sRTs7UUFRRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQWdDL0I7SUF2QkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxZQUFZLElBQUk7WUFDakQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLFlBQVksUUFBUTtnQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFBO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDaEY7SUFDSCxDQUFDOztxSEExQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isc0ZDbkJyQyw4aUNBZ0NBOzJGRGJhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVwaWNrZXJGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxEYXRlcGlja2VyRmllbGRDb25maWc+ID0ge1xuICBzdGFydFZpZXc6ICdtb250aCcsXG59XG5jb25zdCBEYXRlcGlja2VyRmllbGRNaXhpbiA9IGNyaXNwckNvbnRyb2xNaXhpbjxEYXRlcGlja2VyRmllbGRDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWRhdGVwaWNrZXItZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50IGV4dGVuZHMgRGF0ZXBpY2tlckZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuXG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuXG4gIGRhdGVDbGFzczogTWF0Q2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvbjxNb21lbnQ+O1xuICBkYXRlQ2xhc3MkOiBPYnNlcnZhYmxlPE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248TW9tZW50Pj47XG4gIHN0YXJ0QXQkOiBPYnNlcnZhYmxlPERhdGU+O1xuXG4gIC8qKiBBIHBvcnRhbCBjb250YWluaW5nIHRoZSBmb290ZXIgY29tcG9uZW50IHR5cGUgZm9yIHRoaXMgY2FsZW5kYXIuICovXG4gIGNhbGVuZGFyRm9vdGVyUG9ydGFsOiBQb3J0YWw8YW55PjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc3RhcnRBdCQgPSB0aGlzLmNvbmZpZy5zdGFydEF0IGluc3RhbmNlb2YgRGF0ZVxuICAgICAgPyBvZih0aGlzLmNvbmZpZy5zdGFydEF0KVxuICAgICAgOiB0aGlzLmNvbmZpZy5zdGFydEF0IGluc3RhbmNlb2YgRnVuY3Rpb25cbiAgICAgID8gdGhpcy5jb25maWcuc3RhcnRBdCh0aGlzLmdyb3VwKVxuICAgICAgOiBvZihudWxsKTtcbiAgICB0aGlzLmRhdGVDbGFzcyA9IHRoaXMuY29uZmlnPy5jZWxsQ2xhc3NGdW5jdGlvbiB8fCBudWxsXG4gICAgdGhpcy5kYXRlQ2xhc3MkID0gdGhpcy5jb25maWcuZGF0ZUNsYXNzID8gdGhpcy5jb25maWc/LmRhdGVDbGFzcyh0aGlzLmdyb3VwKSA6IG9mKCgpID0+ICcnKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0ZXBpY2tlckFjdGlvbnMpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJGb290ZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29uZmlnLmRhdGVwaWNrZXJBY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGVTZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyOiBNYXREYXRlcGlja2VyPHVua25vd24+KSB7XG4gIC8vICAgY29uc29sZS5sb2coe2V2ZW50LCBwaWNrZXJ9KVxuICAvLyAgIGlmKHRoaXMuY29uZmlnLnNlbGVjdGVkQ2hhbmdlKSB7XG4gIC8vICAgICB0aGlzLmNvbmZpZy5zZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyKTtcbiAgLy8gICB9XG4gIC8vIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbmZpZy5sYWJlbFwiPlxuICAgICAge3tjb25maWcubGFiZWx9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgW21pbl09XCJjb25maWcubWluXCJcbiAgICAgICAgW21heF09XCJjb25maWcubWF4XCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiY29uZmlnLmRhdGVwaWNrZXJGaWx0ZXJcIj5cbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgW3RvdWNoVWldPVwiY29uZmlnLnRvdWNoVWlcIlxuICAgICAgICBbc3RhcnRWaWV3XT1cImNvbmZpZy5zdGFydFZpZXdcIlxuICAgICAgICBbc3RhcnRBdF09XCJzdGFydEF0JCB8IGFzeW5jXCJcbiAgICAgICAgW2RhdGVDbGFzc109XCJkYXRlQ2xhc3MgfHwgKGRhdGVDbGFzcyQgfCBhc3luYylcIlxuICAgICAgICAjcGlja2VyPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyAqbmdJZj1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiY2FsZW5kYXJGb290ZXJQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1kYXRlcGlja2VyLWFjdGlvbnM+XG4gICAgICA8L21hdC1kYXRlcGlja2VyPlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyaXNwci1mb3Jtcy9zcmMvbGliL21hdGVyaWFsL2RhdGVwaWNrZXItZmllbGQvZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUczRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQUU5RCxNQUFNLGFBQWEsR0FBbUM7SUFDcEQsU0FBUyxFQUFFLE9BQU87Q0FDbkIsQ0FBQTtBQUNELE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQXdCLG9CQUFvQixDQUFDLENBQUM7QUFRN0YsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQU5sRTs7UUFRRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztLQWdDL0I7SUF2QkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxZQUFZLElBQUk7WUFDakQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLFlBQVksUUFBUTtnQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLElBQUksSUFBSSxDQUFBO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDaEY7SUFDSCxDQUFDOztxSEExQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isc0ZDbkJyQyxtbkNBa0NBOzJGRGZhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVwaWNrZXJGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBjcmlzcHJDb250cm9sTWl4aW4sIENyaXNwckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RzJztcbmltcG9ydCB7IE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxEYXRlcGlja2VyRmllbGRDb25maWc+ID0ge1xuICBzdGFydFZpZXc6ICdtb250aCcsXG59XG5jb25zdCBEYXRlcGlja2VyRmllbGRNaXhpbiA9IGNyaXNwckNvbnRyb2xNaXhpbjxEYXRlcGlja2VyRmllbGRDb25maWc+KENyaXNwckZpZWxkQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3Jpc3ByLWRhdGVwaWNrZXItZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckZpZWxkQ29tcG9uZW50IGV4dGVuZHMgRGF0ZXBpY2tlckZpZWxkTWl4aW4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuXG4gIGRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuXG4gIGRhdGVDbGFzczogTWF0Q2FsZW5kYXJDZWxsQ2xhc3NGdW5jdGlvbjxNb21lbnQ+O1xuICBkYXRlQ2xhc3MkOiBPYnNlcnZhYmxlPE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248TW9tZW50Pj47XG4gIHN0YXJ0QXQkOiBPYnNlcnZhYmxlPERhdGU+O1xuXG4gIC8qKiBBIHBvcnRhbCBjb250YWluaW5nIHRoZSBmb290ZXIgY29tcG9uZW50IHR5cGUgZm9yIHRoaXMgY2FsZW5kYXIuICovXG4gIGNhbGVuZGFyRm9vdGVyUG9ydGFsOiBQb3J0YWw8YW55PjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc3RhcnRBdCQgPSB0aGlzLmNvbmZpZy5zdGFydEF0IGluc3RhbmNlb2YgRGF0ZVxuICAgICAgPyBvZih0aGlzLmNvbmZpZy5zdGFydEF0KVxuICAgICAgOiB0aGlzLmNvbmZpZy5zdGFydEF0IGluc3RhbmNlb2YgRnVuY3Rpb25cbiAgICAgID8gdGhpcy5jb25maWcuc3RhcnRBdCh0aGlzLmdyb3VwKVxuICAgICAgOiBvZihudWxsKTtcbiAgICB0aGlzLmRhdGVDbGFzcyA9IHRoaXMuY29uZmlnPy5jZWxsQ2xhc3NGdW5jdGlvbiB8fCBudWxsXG4gICAgdGhpcy5kYXRlQ2xhc3MkID0gdGhpcy5jb25maWcuZGF0ZUNsYXNzID8gdGhpcy5jb25maWc/LmRhdGVDbGFzcyh0aGlzLmdyb3VwKSA6IG9mKCgpID0+ICcnKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0ZXBpY2tlckFjdGlvbnMpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJGb290ZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29uZmlnLmRhdGVwaWNrZXJBY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICAvLyBoYW5kbGVTZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyOiBNYXREYXRlcGlja2VyPHVua25vd24+KSB7XG4gIC8vICAgY29uc29sZS5sb2coe2V2ZW50LCBwaWNrZXJ9KVxuICAvLyAgIGlmKHRoaXMuY29uZmlnLnNlbGVjdGVkQ2hhbmdlKSB7XG4gIC8vICAgICB0aGlzLmNvbmZpZy5zZWxlY3RlZENoYW5nZShldmVudCwgcGlja2VyKTtcbiAgLy8gICB9XG4gIC8vIH1cbn1cbiIsIjxjcmlzcHItZmllbGQtY29udGFpbmVyXG4gIFtjb25maWddPVwiY29uZmlnXCJcbiAgW2dyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgIFtjb2xvcl09XCJjb25maWcuY29sb3JcIlxuICAgIFthcHBlYXJhbmNlXT1cImNvbmZpZy5hcHBlYXJhbmNlXCJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImNvbmZpZy5sYWJlbFwiPlxuICAgICAge3tjb25maWcubGFiZWx9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcbiAgICAgIFttaW5dPVwiY29uZmlnLm1pblwiXG4gICAgICBbbWF4XT1cImNvbmZpZy5tYXhcIlxuICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImNvbmZpZy5kYXRlcGlja2VyRmlsdGVyXCI+XG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgIFt0b3VjaFVpXT1cImNvbmZpZy50b3VjaFVpXCJcbiAgICAgIFtzdGFydFZpZXddPVwiY29uZmlnLnN0YXJ0Vmlld1wiXG4gICAgICBbc3RhcnRBdF09XCJzdGFydEF0JCB8IGFzeW5jXCJcbiAgICAgIFtkYXRlQ2xhc3NdPVwiZGF0ZUNsYXNzIHx8IChkYXRlQ2xhc3MkIHwgYXN5bmMpXCJcbiAgICAgICNwaWNrZXI+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyAqbmdJZj1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImNhbGVuZGFyRm9vdGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICA8L21hdC1kYXRlcGlja2VyPlxuXG4gICAgPG1hdC1oaW50ICpuZ0lmPVwiY29uZmlnLmhpbnQgJiYgKGNvbnRyb2wudmFsaWQgfHwgIWNvbnRyb2wudG91Y2hlZClcIj57e2NvbmZpZy5oaW50fX08L21hdC1oaW50PlxuXG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2NyaXNwci1maWVsZC1jb250YWluZXI+XG5cbiJdfQ==