@eqproject/eqp-dynamic-module 2.8.5 → 2.8.6

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.
Files changed (35) hide show
  1. package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +3 -2
  2. package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +6 -4
  3. package/esm2020/lib/components/private/field-templates/label-field-template/label-field-template.component.mjs +6 -14
  4. package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +12 -49
  5. package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +12 -49
  6. package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +40 -12
  7. package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +13 -45
  8. package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +13 -45
  9. package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +13 -45
  10. package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +13 -45
  11. package/esm2020/lib/directives/speech-to-text/speech-to-text.directive.mjs +186 -0
  12. package/esm2020/lib/eqp-dynamic-module.module.mjs +6 -3
  13. package/esm2020/lib/models/fields/dateField.model.mjs +5 -1
  14. package/esm2020/lib/services/global.service.mjs +4 -1
  15. package/esm2020/public-api.mjs +2 -1
  16. package/fesm2015/eqproject-eqp-dynamic-module.mjs +313 -374
  17. package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
  18. package/fesm2020/eqproject-eqp-dynamic-module.mjs +313 -374
  19. package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
  20. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +1 -1
  21. package/lib/components/private/field-templates/label-field-template/label-field-template.component.d.ts +1 -3
  22. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +1 -6
  23. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +1 -6
  24. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +4 -1
  25. package/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.d.ts +1 -6
  26. package/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.d.ts +1 -6
  27. package/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.d.ts +1 -6
  28. package/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.d.ts +1 -6
  29. package/lib/directives/speech-to-text/speech-to-text.directive.d.ts +31 -0
  30. package/lib/eqp-dynamic-module.module.d.ts +15 -14
  31. package/lib/services/global.service.d.ts +3 -0
  32. package/package.json +1 -1
  33. package/public-api.d.ts +1 -0
  34. package/esm2020/lib/services/voice-recognition.service.mjs +0 -75
  35. package/lib/services/voice-recognition.service.d.ts +0 -18
@@ -5,16 +5,15 @@ import { interval } from 'rxjs';
5
5
  import { LogicOperatorText } from '../../../../../models/logicOperator.model';
6
6
  import { Condition, BooleanLogicOperatorType } from '../../../../../models/trigger.model';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../../../../services/voice-recognition.service";
9
- import * as i2 from "@angular/material/input";
10
- import * as i3 from "@angular/material/form-field";
11
- import * as i4 from "@angular/material/icon";
12
- import * as i5 from "@angular/forms";
13
- import * as i6 from "@angular/common";
14
- import * as i7 from "@eqproject/eqp-select";
8
+ import * as i1 from "@angular/material/input";
9
+ import * as i2 from "@angular/material/form-field";
10
+ import * as i3 from "@angular/material/icon";
11
+ import * as i4 from "@angular/forms";
12
+ import * as i5 from "@angular/common";
13
+ import * as i6 from "@eqproject/eqp-select";
14
+ import * as i7 from "../../../../../directives/speech-to-text/speech-to-text.directive";
15
15
  export class TextareaTriggerTemplateComponent {
16
- constructor(voiceservice) {
17
- this.voiceservice = voiceservice;
16
+ constructor() {
18
17
  this.recordChange = new EventEmitter();
19
18
  this.triggerChange = new EventEmitter();
20
19
  //Variabili per l'input vocale
@@ -27,7 +26,6 @@ export class TextareaTriggerTemplateComponent {
27
26
  this.activeCondition = false;
28
27
  this.booleanLogicOperatorType = BooleanLogicOperatorType;
29
28
  this.selectedBooleanLogicOperator = BooleanLogicOperatorType.AND;
30
- this.voiceservice.init();
31
29
  }
32
30
  ngOnInit() {
33
31
  this.field = this.condition.Field;
@@ -42,28 +40,6 @@ export class TextareaTriggerTemplateComponent {
42
40
  if (this.field.LabelstyleCSS != null || this.field.LabelstyleCSS != undefined)
43
41
  this.LabelstyleObj = UtilityHelperService.initStyles(this.field.LabelstyleCSS);
44
42
  }
45
- ttsClick() {
46
- //Gestione del bottone icona del microfono con riempimennto del campo in real time
47
- if (!this.isStillRecoginze) {
48
- this.newtext = '';
49
- this.isStillRecoginze = this.voiceservice.start() === true ? true : false;
50
- this.subscription = this.source.subscribe(val => {
51
- if (this.condition.record[this.field.Name] == null || this.condition.record[this.field.Name] == undefined) {
52
- this.condition.record[this.field.Name] = this.voiceservice.transcript_arr[this.voiceservice.transcript_arr.length - 1];
53
- }
54
- else {
55
- this.newtext = this.voiceservice.transcript_arr[this.voiceservice.transcript_arr.length - 1];
56
- if (this.newtext != undefined)
57
- this.updateRTVoiceField();
58
- }
59
- });
60
- }
61
- else {
62
- this.isStillRecoginze = this.voiceservice.stop() === false ? false : true;
63
- this.subscription.unsubscribe();
64
- this.updateVoiceField();
65
- }
66
- }
67
43
  getInputType() {
68
44
  switch (this.field.TextMask) {
69
45
  case TextMaskEnum.Email:
@@ -78,14 +54,6 @@ export class TextareaTriggerTemplateComponent {
78
54
  return 'text';
79
55
  }
80
56
  }
81
- updateRTVoiceField() {
82
- this.condition.record[this.field.Name] = this.voiceservice.text + this.newtext;
83
- this.newtext = '';
84
- }
85
- updateVoiceField() {
86
- this.newtext = '';
87
- this.condition.record[this.field.Name] = this.voiceservice.text;
88
- }
89
57
  /**
90
58
  * Metodo per emettere l'evento che il valore del record è cambiato.
91
59
  */
@@ -101,16 +69,16 @@ export class TextareaTriggerTemplateComponent {
101
69
  this.triggerChange.emit(output);
102
70
  }
103
71
  }
104
- TextareaTriggerTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaTriggerTemplateComponent, deps: [{ token: i1.VoiceRecognitionService }], target: i0.ɵɵFactoryTarget.Component });
105
- TextareaTriggerTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextareaTriggerTemplateComponent, selector: "textarea-trigger-template", inputs: { condition: "condition" }, outputs: { recordChange: "recordChange", triggerChange: "triggerChange" }, ngImport: i0, template: "<div class=\"row textareaFilterTemplate\">\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorText\" [(ngModelInput)]=\"selectedLogicOperator\" (ngModelInputChange)=\"onTriggerChange()\"></eqp-select>\r\n </div> \r\n <div class=\"col-md-6 valueCol\">\r\n <mat-form-field >\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <textarea [ngStyle]=\"FieldstyleObj\" matInput [type]=\"getInputType()\" [readonly]=\"false\"\r\n [required]=\"false\" [(ngModel)]=\"this.condition.record[field.Name]\" (ngModelChange)=\"onTriggerChange()\"></textarea>\r\n <mat-icon [hidden]=\"!field.Microphone\" (click)=\"ttsClick()\" matSuffix style=\"cursor: pointer;\" [color]=\"!isStillRecoginze ? '' : 'warn'\">keyboard_voice</mat-icon> \r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select [enumData]=\"booleanLogicOperatorType\" [(ngModelInput)]=\"selectedBooleanLogicOperator\" (ngModelInputChange)=\"onTriggerChange()\"></eqp-select>\r\n </div> \r\n</div>", styles: [".valueCol{padding-right:0}.operatorCol{padding-left:0}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:80px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select .mat-form-field-appearance-fill.ng-touched label.mdc-floating-label.mat-mdc-floating-label{background-color:transparent!important}\n"], dependencies: [{ kind: "directive", type: i2.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"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i7.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }] });
72
+ TextareaTriggerTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaTriggerTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
+ TextareaTriggerTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextareaTriggerTemplateComponent, selector: "textarea-trigger-template", inputs: { condition: "condition" }, outputs: { recordChange: "recordChange", triggerChange: "triggerChange" }, ngImport: i0, template: "<div class=\"row textareaFilterTemplate\">\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModelInput)]=\"selectedLogicOperator\"\r\n (ngModelInputChange)=\"onTriggerChange()\"\r\n ></eqp-select>\r\n </div>\r\n <div class=\"col-md-6 valueCol\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <textarea\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"this.condition.record[field.Name]\"\r\n (ngModelChange)=\"onTriggerChange()\"\r\n ></textarea>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"this.condition.record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select\r\n [enumData]=\"booleanLogicOperatorType\"\r\n [(ngModelInput)]=\"selectedBooleanLogicOperator\"\r\n (ngModelInputChange)=\"onTriggerChange()\"\r\n ></eqp-select>\r\n </div>\r\n</div>\r\n", styles: [".valueCol{padding-right:0}.operatorCol{padding-left:0}.keyboard_speaking{color:red}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:80px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select .mat-form-field-appearance-fill.ng-touched label.mdc-floating-label.mat-mdc-floating-label{background-color:transparent!important}\n"], dependencies: [{ kind: "directive", type: i1.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"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", 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]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: i7.SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"] }] });
106
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaTriggerTemplateComponent, decorators: [{
107
75
  type: Component,
108
- args: [{ selector: 'textarea-trigger-template', template: "<div class=\"row textareaFilterTemplate\">\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorText\" [(ngModelInput)]=\"selectedLogicOperator\" (ngModelInputChange)=\"onTriggerChange()\"></eqp-select>\r\n </div> \r\n <div class=\"col-md-6 valueCol\">\r\n <mat-form-field >\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <textarea [ngStyle]=\"FieldstyleObj\" matInput [type]=\"getInputType()\" [readonly]=\"false\"\r\n [required]=\"false\" [(ngModel)]=\"this.condition.record[field.Name]\" (ngModelChange)=\"onTriggerChange()\"></textarea>\r\n <mat-icon [hidden]=\"!field.Microphone\" (click)=\"ttsClick()\" matSuffix style=\"cursor: pointer;\" [color]=\"!isStillRecoginze ? '' : 'warn'\">keyboard_voice</mat-icon> \r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select [enumData]=\"booleanLogicOperatorType\" [(ngModelInput)]=\"selectedBooleanLogicOperator\" (ngModelInputChange)=\"onTriggerChange()\"></eqp-select>\r\n </div> \r\n</div>", styles: [".valueCol{padding-right:0}.operatorCol{padding-left:0}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:80px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select .mat-form-field-appearance-fill.ng-touched label.mdc-floating-label.mat-mdc-floating-label{background-color:transparent!important}\n"] }]
109
- }], ctorParameters: function () { return [{ type: i1.VoiceRecognitionService }]; }, propDecorators: { condition: [{
76
+ args: [{ selector: 'textarea-trigger-template', template: "<div class=\"row textareaFilterTemplate\">\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModelInput)]=\"selectedLogicOperator\"\r\n (ngModelInputChange)=\"onTriggerChange()\"\r\n ></eqp-select>\r\n </div>\r\n <div class=\"col-md-6 valueCol\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <textarea\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"this.condition.record[field.Name]\"\r\n (ngModelChange)=\"onTriggerChange()\"\r\n ></textarea>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"this.condition.record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-md-3 operatorCol\">\r\n <eqp-select\r\n [enumData]=\"booleanLogicOperatorType\"\r\n [(ngModelInput)]=\"selectedBooleanLogicOperator\"\r\n (ngModelInputChange)=\"onTriggerChange()\"\r\n ></eqp-select>\r\n </div>\r\n</div>\r\n", styles: [".valueCol{padding-right:0}.operatorCol{padding-left:0}.keyboard_speaking{color:red}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:80px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select .mat-form-field-appearance-fill.ng-touched label.mdc-floating-label.mat-mdc-floating-label{background-color:transparent!important}\n"] }]
77
+ }], ctorParameters: function () { return []; }, propDecorators: { condition: [{
110
78
  type: Input
111
79
  }], recordChange: [{
112
80
  type: Output
113
81
  }], triggerChange: [{
114
82
  type: Output
115
83
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUV0RixPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQW9CLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7QUFPNUcsTUFBTSxPQUFPLGdDQUFnQztJQStCM0MsWUFBbUIsWUFBcUM7UUFBckMsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBMUI1QyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FB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LEVBQUUsQ0FBQztRQUN2QyxNQUFNLEdBQUc7WUFDUCxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM3QyxhQUFhLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtZQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQy9CLG9CQUFvQixFQUFFLElBQUksQ0FBQyw0QkFBNEI7U0FDeEQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OzhIQWpIWSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyxnTENkN0MsZ3BDQWVNOzRGRERPLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSwyQkFBMkI7OEdBTzFCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IFRleHRNYXNrRW51bSwgVGV4dEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy90ZXh0RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBWb2ljZVJlY29nbml0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3ZvaWNlLXJlY29nbml0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2ljT3BlcmF0b3JUZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2xvZ2ljT3BlcmF0b3IubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmlnZ2VyQ29uZGl0aW9uLCBDb25kaXRpb24sIEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQge1xyXG5cclxuICAgIC8vdmFyaWFiaWxpIGVzdGVybmUgcGVyIGwnaW5wdXQgZGVpIGNhbXBpXHJcbiAgICBASW5wdXQoKSBjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb247XHJcblxyXG4gICAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICAgIEBPdXRwdXQoKSB0cmlnZ2VyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGZpZWxkOiBUZXh0RmllbGQ7XHJcblxyXG4gIC8vVmFyaWFiaWxpIHBlciBsJ2lucHV0IHZvY2FsZVxyXG4gIGlzU3RpbGxSZWNvZ2luemUgPSBmYWxzZTtcclxuICBzb3VyY2UgPSBpbnRlcnZhbCgyMDApO1xyXG4gIG5ld3RleHQ6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgU1RUOmJvb2xlYW4gPXRydWU7XHJcbiAgLy92YXJpYWJpbGkgcGVyIGdlc3RpcmUgaWwgY3NzIGRlbGxhIGxhYmVsIGUgZGVsIGZpZWxkXHJcbiAgRmllbGRzdHlsZU9iajogYW55O1xyXG4gIExhYmVsc3R5bGVPYmo6IGFueTtcclxuXHJcbiAgXHJcbiAgSW5wdXRNYXNrRW51bSA9IFRleHRNYXNrRW51bTtcclxuXHJcbiAgbG9naWNPcGVyYXRvclRleHQgPSBMb2dpY09wZXJhdG9yVGV4dDtcclxuICBzZWxlY3RlZExvZ2ljT3BlcmF0b3I6IExvZ2ljT3BlcmF0b3JUZXh0ID0gTG9naWNPcGVyYXRvclRleHRbJz0nXTtcclxuICBhY3RpdmVDb25kaXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgYm9vbGVhbkxvZ2ljT3BlcmF0b3JUeXBlID0gQm9vbGVhbkxvZ2ljT3BlcmF0b3JUeXBlO1xyXG4gIHNlbGVjdGVkQm9vbGVhbkxvZ2ljT3BlcmF0b3I6IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZSA9IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZS5BTkQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2b2ljZXNlcnZpY2U6IFZvaWNlUmVjb2duaXRpb25TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnZvaWNlc2VydmljZS5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGQgPSB0aGlzLmNvbmRpdGlvbi5GaWVsZCBhcyBUZXh0RmllbGQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkQm9vbGVhbkxvZ2ljT3BlcmF0b3IgPSB0aGlzLmNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvcjtcclxuICAgIHRoaXMuc2VsZWN0ZWRMb2dpY09wZXJhdG9yID0gdGhpcy5jb25kaXRpb24ubG9naWNvcGVyYXRvciBhcyBMb2dpY09wZXJhdG9yVGV4dDtcclxuICAgIHRoaXMuaW5pdFN0eWxlcygpO1xyXG4gIH1cclxuICBpbml0U3R5bGVzKCkge1xyXG4gICAgICAvL0Z1bnppb25lIHBlciBwYXJzYXJlIGlsIGNhbXBvIHN0eWxlY3NzIGRlbGwnb2dnZXR0byBmaWVsZCBlZCBhcHBsaWNhcmxvIGFsbCdodG1sXHJcbiAgICBpZih0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MgIT0gbnVsbCB8fCB0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MgIT0gdW5kZWZpbmVkKSAgIFxyXG4gICAgICB0aGlzLkZpZWxkc3R5bGVPYmo9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLmluaXRTdHlsZXModGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTKTtcclxuICAgIGlmKHRoaXMuZmllbGQuTGFiZWxzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuTGFiZWxzdHlsZUNTUyAhPSB1bmRlZmluZWQpICAgXHJcbiAgICAgIHRoaXMuTGFiZWxzdHlsZU9iaiA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLmluaXRTdHlsZXModGhpcy5maWVsZC5MYWJlbHN0eWxlQ1NTKTtcclxuIH1cclxuXHJcbiAgdHRzQ2xpY2soKSB7XHJcbiAgICAvL0dlc3Rpb25lIGRlbCBib3R0b25lIGljb25hIGRlbCBtaWNyb2Zvbm8gY29uIHJpZW1waW1lbm50byBkZWwgY2FtcG8gaW4gcmVhbCB0aW1lXHJcbiAgICBpZiAoIXRoaXMuaXNTdGlsbFJlY29naW56ZSkge1xyXG4gICAgICB0aGlzLm5ld3RleHQgPSAnJztcclxuICAgICAgdGhpcy5pc1N0aWxsUmVjb2dpbnplID0gdGhpcy52b2ljZXNlcnZpY2Uuc3RhcnQoKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnNvdXJjZS5zdWJzY3JpYmUodmFsID0+IHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID09IG51bGwgfHwgdGhpcy5jb25kaXRpb24ucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmRpdGlvbi5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IHRoaXMudm9pY2VzZXJ2aWNlLnRyYW5zY3JpcHRfYXJyW3RoaXMudm9pY2VzZXJ2aWNlLnRyYW5zY3JpcHRfYXJyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubmV3dGV4dCA9IHRoaXMudm9pY2VzZXJ2aWNlLnRyYW5zY3JpcHRfYXJyW3RoaXMudm9pY2VzZXJ2aWNlLnRyYW5zY3JpcHRfYXJyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgaWYgKHRoaXMubmV3dGV4dCAhPSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUlRWb2ljZUZpZWxkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmlzU3RpbGxSZWNvZ2luemUgPSB0aGlzLnZvaWNlc2VydmljZS5zdG9wKCkgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVZvaWNlRmllbGQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldElucHV0VHlwZSgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5maWVsZC5UZXh0TWFzaykge1xyXG4gICAgICBjYXNlIFRleHRNYXNrRW51bS5FbWFpbDpcclxuICAgICAgICByZXR1cm4gJ2VtYWlsJztcclxuICAgICAgY2FzZSBUZXh0TWFza0VudW0uUGFzc3dvcmQ6XHJcbiAgICAgICAgcmV0dXJuICdwYXNzd29yZCc7XHJcbiAgICAgIGNhc2UgVGV4dE1hc2tFbnVtLlRlbGVmb25vOlxyXG4gICAgICAgIHJldHVybiAndGVsJztcclxuICAgICAgY2FzZSBUZXh0TWFza0VudW0uVXJsOlxyXG4gICAgICAgIHJldHVybiAndXJsJ1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSVFZvaWNlRmllbGQoKSB7XHJcbiAgICB0aGlzLmNvbmRpdGlvbi5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IHRoaXMudm9pY2VzZXJ2aWNlLnRleHQgKyB0aGlzLm5ld3RleHQ7XHJcbiAgICB0aGlzLm5ld3RleHQgPSAnJztcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZvaWNlRmllbGQoKSB7XHJcbiAgICB0aGlzLm5ld3RleHQgPSAnJztcclxuICAgIHRoaXMuY29uZGl0aW9uLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gdGhpcy52b2ljZXNlcnZpY2UudGV4dDtcclxuICB9XHJcblxyXG4vKipcclxuKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuKi9cclxub25UcmlnZ2VyQ2hhbmdlKCkge1xyXG5cclxuICBsZXQgb3V0cHV0OkNvbmRpdGlvbiA9IG5ldyBDb25kaXRpb24oKTtcclxuICBvdXRwdXQgPSB7XHJcbiAgICBrZXk6IHRoaXMuZmllbGQuTmFtZSxcclxuICAgIHZhbHVlOiB0aGlzLmNvbmRpdGlvbi5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSxcclxuICAgIGxvZ2ljb3BlcmF0b3I6IHRoaXMuc2VsZWN0ZWRMb2dpY09wZXJhdG9yLFxyXG4gICAgZmllbGRUeXBlOiB0aGlzLmZpZWxkLkZpZWxkVHlwZSxcclxuICAgIGJvb2xlYW5sb2dpY29wZXJhdG9yOiB0aGlzLnNlbGVjdGVkQm9vbGVhbkxvZ2ljT3BlcmF0b3JcclxuICB9O1xyXG5cclxuICB0aGlzLnRyaWdnZXJDaGFuZ2UuZW1pdChvdXRwdXQpO1xyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgdGV4dGFyZWFGaWx0ZXJUZW1wbGF0ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG9wZXJhdG9yQ29sXCI+XHJcbiAgICAgICAgPGVxcC1zZWxlY3QgW2VudW1EYXRhXT1cImxvZ2ljT3BlcmF0b3JUZXh0XCIgWyhuZ01vZGVsSW5wdXQpXT1cInNlbGVjdGVkTG9naWNPcGVyYXRvclwiIChuZ01vZGVsSW5wdXRDaGFuZ2UpPVwib25UcmlnZ2VyQ2hhbmdlKClcIj48L2VxcC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdmFsdWVDb2xcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsICBjbGFzcz1cInB0LTFcIiBbbmdTdHlsZV09XCJMYWJlbHN0eWxlT2JqXCI+IHt7ZmllbGQuRGVzY3JpcHRpb259fSA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPHRleHRhcmVhIFtuZ1N0eWxlXT1cIkZpZWxkc3R5bGVPYmpcIiBtYXRJbnB1dCBbdHlwZV09XCJnZXRJbnB1dFR5cGUoKVwiIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInRoaXMuY29uZGl0aW9uLnJlY29yZFtmaWVsZC5OYW1lXVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJpZ2dlckNoYW5nZSgpXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbaGlkZGVuXT1cIiFmaWVsZC5NaWNyb3Bob25lXCIgKGNsaWNrKT1cInR0c0NsaWNrKClcIiBtYXRTdWZmaXggc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgW2NvbG9yXT1cIiFpc1N0aWxsUmVjb2dpbnplID8gJycgOiAnd2FybidcIj5rZXlib2FyZF92b2ljZTwvbWF0LWljb24+IFxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBvcGVyYXRvckNvbFwiPlxyXG4gICAgICAgIDxlcXAtc2VsZWN0IFtlbnVtRGF0YV09XCJib29sZWFuTG9naWNPcGVyYXRvclR5cGVcIiBbKG5nTW9kZWxJbnB1dCldPVwic2VsZWN0ZWRCb29sZWFuTG9naWNPcGVyYXRvclwiIChuZ01vZGVsSW5wdXRDaGFuZ2UpPVwib25UcmlnZ2VyQ2hhbmdlKClcIj48L2VxcC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj4gICAgICAgICBcclxuPC9kaXY+Il19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQW9CLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7QUFPNUcsTUFBTSxPQUFPLGdDQUFnQztJQStCM0M7UUExQlksaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRSxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBSXZFLDhCQUE4QjtRQUM5QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUl2QixRQUFHLEdBQVUsSUFBSSxDQUFDO1FBTWxCLGtCQUFhLEdBQUcsWUFBWSxDQUFDO1FBRTdCLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQ3RDLDBCQUFxQixHQUFzQixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztRQUNwRCxpQ0FBNEIsR0FBNkIsd0JBQXdCLENBQUMsR0FBRyxDQUFDO0lBR3RGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQWtCLENBQUM7UUFDL0MsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7UUFDeEUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBa0MsQ0FBQztRQUMvRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFVBQVU7UUFDTixrRkFBa0Y7UUFDcEYsSUFBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUztZQUMxRSxJQUFJLENBQUMsYUFBYSxHQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hGLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLFNBQVM7WUFDMUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUEsWUFBWTtRQUNWLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDM0IsS0FBSyxZQUFZLENBQUMsS0FBSztnQkFDckIsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxVQUFVLENBQUM7WUFDcEIsS0FBSyxZQUFZLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNuQixPQUFPLEtBQUssQ0FBQTtZQUNkO2dCQUNFLE9BQU8sTUFBTSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVIOztNQUVFO0lBQ0YsZUFBZTtRQUViLElBQUksTUFBTSxHQUFhLElBQUksU0FBUyxFQUFFLENBQUM7UUFDdkMsTUFBTSxHQUFHO1lBQ1AsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDN0MsYUFBYSxFQUFFLElBQUksQ0FBQyxxQkFBcUI7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUMvQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsNEJBQTRCO1NBQ3hELENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs4SEE5RVksZ0NBQWdDO2tIQUFoQyxnQ0FBZ0MsZ0xDYjdDLDZ6Q0F3Q0E7NEZEM0JhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSwyQkFBMkI7MEVBTzFCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IFRleHRNYXNrRW51bSwgVGV4dEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy90ZXh0RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2ljT3BlcmF0b3JUZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2xvZ2ljT3BlcmF0b3IubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmlnZ2VyQ29uZGl0aW9uLCBDb25kaXRpb24sIEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQge1xyXG5cclxuICAgIC8vdmFyaWFiaWxpIGVzdGVybmUgcGVyIGwnaW5wdXQgZGVpIGNhbXBpXHJcbiAgICBASW5wdXQoKSBjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb247XHJcblxyXG4gICAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICAgIEBPdXRwdXQoKSB0cmlnZ2VyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGZpZWxkOiBUZXh0RmllbGQ7XHJcblxyXG4gIC8vVmFyaWFiaWxpIHBlciBsJ2lucHV0IHZvY2FsZVxyXG4gIGlzU3RpbGxSZWNvZ2luemUgPSBmYWxzZTtcclxuICBzb3VyY2UgPSBpbnRlcnZhbCgyMDApO1xyXG4gIG5ld3RleHQ6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgU1RUOmJvb2xlYW4gPXRydWU7XHJcbiAgLy92YXJpYWJpbGkgcGVyIGdlc3RpcmUgaWwgY3NzIGRlbGxhIGxhYmVsIGUgZGVsIGZpZWxkXHJcbiAgRmllbGRzdHlsZU9iajogYW55O1xyXG4gIExhYmVsc3R5bGVPYmo6IGFueTtcclxuXHJcbiAgXHJcbiAgSW5wdXRNYXNrRW51bSA9IFRleHRNYXNrRW51bTtcclxuXHJcbiAgbG9naWNPcGVyYXRvclRleHQgPSBMb2dpY09wZXJhdG9yVGV4dDtcclxuICBzZWxlY3RlZExvZ2ljT3BlcmF0b3I6IExvZ2ljT3BlcmF0b3JUZXh0ID0gTG9naWNPcGVyYXRvclRleHRbJz0nXTtcclxuICBhY3RpdmVDb25kaXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgYm9vbGVhbkxvZ2ljT3BlcmF0b3JUeXBlID0gQm9vbGVhbkxvZ2ljT3BlcmF0b3JUeXBlO1xyXG4gIHNlbGVjdGVkQm9vbGVhbkxvZ2ljT3BlcmF0b3I6IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZSA9IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZS5BTkQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpZWxkID0gdGhpcy5jb25kaXRpb24uRmllbGQgYXMgVGV4dEZpZWxkO1xyXG4gICAgdGhpcy5zZWxlY3RlZEJvb2xlYW5Mb2dpY09wZXJhdG9yID0gdGhpcy5jb25kaXRpb24uYm9vbGVhbmxvZ2ljb3BlcmF0b3I7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9naWNPcGVyYXRvciA9IHRoaXMuY29uZGl0aW9uLmxvZ2ljb3BlcmF0b3IgYXMgTG9naWNPcGVyYXRvclRleHQ7XHJcbiAgICB0aGlzLmluaXRTdHlsZXMoKTtcclxuICB9XHJcbiAgaW5pdFN0eWxlcygpIHtcclxuICAgICAgLy9GdW56aW9uZSBwZXIgcGFyc2FyZSBpbCBjYW1wbyBzdHlsZWNzcyBkZWxsJ29nZ2V0dG8gZmllbGQgZWQgYXBwbGljYXJsbyBhbGwnaHRtbFxyXG4gICAgaWYodGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IG51bGwgfHwgdGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IHVuZGVmaW5lZCkgICBcclxuICAgICAgdGhpcy5GaWVsZHN0eWxlT2JqPSBVdGlsaXR5SGVscGVyU2VydmljZS5pbml0U3R5bGVzKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyk7XHJcbiAgICBpZih0aGlzLmZpZWxkLkxhYmVsc3R5bGVDU1MgIT0gbnVsbCB8fCB0aGlzLmZpZWxkLkxhYmVsc3R5bGVDU1MgIT0gdW5kZWZpbmVkKSAgIFxyXG4gICAgICB0aGlzLkxhYmVsc3R5bGVPYmogPSBVdGlsaXR5SGVscGVyU2VydmljZS5pbml0U3R5bGVzKHRoaXMuZmllbGQuTGFiZWxzdHlsZUNTUyk7XHJcbiB9XHJcblxyXG4gIGdldElucHV0VHlwZSgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5maWVsZC5UZXh0TWFzaykge1xyXG4gICAgICBjYXNlIFRleHRNYXNrRW51bS5FbWFpbDpcclxuICAgICAgICByZXR1cm4gJ2VtYWlsJztcclxuICAgICAgY2FzZSBUZXh0TWFza0VudW0uUGFzc3dvcmQ6XHJcbiAgICAgICAgcmV0dXJuICdwYXNzd29yZCc7XHJcbiAgICAgIGNhc2UgVGV4dE1hc2tFbnVtLlRlbGVmb25vOlxyXG4gICAgICAgIHJldHVybiAndGVsJztcclxuICAgICAgY2FzZSBUZXh0TWFza0VudW0uVXJsOlxyXG4gICAgICAgIHJldHVybiAndXJsJ1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLyoqXHJcbiogTWV0b2RvIHBlciBlbWV0dGVyZSBsJ2V2ZW50byBjaGUgaWwgdmFsb3JlIGRlbCByZWNvcmQgw6ggY2FtYmlhdG8uXHJcbiovXHJcbm9uVHJpZ2dlckNoYW5nZSgpIHtcclxuXHJcbiAgbGV0IG91dHB1dDpDb25kaXRpb24gPSBuZXcgQ29uZGl0aW9uKCk7XHJcbiAgb3V0cHV0ID0ge1xyXG4gICAga2V5OiB0aGlzLmZpZWxkLk5hbWUsXHJcbiAgICB2YWx1ZTogdGhpcy5jb25kaXRpb24ucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0sXHJcbiAgICBsb2dpY29wZXJhdG9yOiB0aGlzLnNlbGVjdGVkTG9naWNPcGVyYXRvcixcclxuICAgIGZpZWxkVHlwZTogdGhpcy5maWVsZC5GaWVsZFR5cGUsXHJcbiAgICBib29sZWFubG9naWNvcGVyYXRvcjogdGhpcy5zZWxlY3RlZEJvb2xlYW5Mb2dpY09wZXJhdG9yXHJcbiAgfTtcclxuXHJcbiAgdGhpcy50cmlnZ2VyQ2hhbmdlLmVtaXQob3V0cHV0KTtcclxufVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93IHRleHRhcmVhRmlsdGVyVGVtcGxhdGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgb3BlcmF0b3JDb2xcIj5cclxuICAgIDxlcXAtc2VsZWN0XHJcbiAgICAgIFtlbnVtRGF0YV09XCJsb2dpY09wZXJhdG9yVGV4dFwiXHJcbiAgICAgIFsobmdNb2RlbElucHV0KV09XCJzZWxlY3RlZExvZ2ljT3BlcmF0b3JcIlxyXG4gICAgICAobmdNb2RlbElucHV0Q2hhbmdlKT1cIm9uVHJpZ2dlckNoYW5nZSgpXCJcclxuICAgID48L2VxcC1zZWxlY3Q+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHZhbHVlQ29sXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJwdC0xXCIgW25nU3R5bGVdPVwiTGFiZWxzdHlsZU9ialwiPlxyXG4gICAgICAgIHt7IGZpZWxkLkRlc2NyaXB0aW9uIH19XHJcbiAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICA8dGV4dGFyZWFcclxuICAgICAgICBbbmdTdHlsZV09XCJGaWVsZHN0eWxlT2JqXCJcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIFt0eXBlXT1cImdldElucHV0VHlwZSgpXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ0aGlzLmNvbmRpdGlvbi5yZWNvcmRbZmllbGQuTmFtZV1cIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJpZ2dlckNoYW5nZSgpXCJcclxuICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIFtoaWRkZW5dPVwiIWZpZWxkLk1pY3JvcGhvbmVcIlxyXG4gICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgIFNwZWVjaFRvVGV4dFxyXG4gICAgICAgIFsoYmluZGVkVGV4dCldPVwidGhpcy5jb25kaXRpb24ucmVjb3JkW2ZpZWxkLk5hbWVdXCJcclxuICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXHJcbiAgICAgICAgPmtleWJvYXJkX3ZvaWNlPC9tYXQtaWNvblxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBvcGVyYXRvckNvbFwiPlxyXG4gICAgPGVxcC1zZWxlY3RcclxuICAgICAgW2VudW1EYXRhXT1cImJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZVwiXHJcbiAgICAgIFsobmdNb2RlbElucHV0KV09XCJzZWxlY3RlZEJvb2xlYW5Mb2dpY09wZXJhdG9yXCJcclxuICAgICAgKG5nTW9kZWxJbnB1dENoYW5nZSk9XCJvblRyaWdnZXJDaGFuZ2UoKVwiXHJcbiAgICA+PC9lcXAtc2VsZWN0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,186 @@
1
+ import { Directive, EventEmitter, HostListener, Input, Output, } from "@angular/core";
2
+ import { interval } from "rxjs";
3
+ import { GlobalService } from "../../services/global.service";
4
+ import * as i0 from "@angular/core";
5
+ /* ESEMPIO D'USO
6
+
7
+ <textarea
8
+ [(ngModel)]="text"
9
+ ></textarea>
10
+
11
+ <mat-icon
12
+ *ngIf="true" <!-- Senza NGIF non funziona -->
13
+ style="cursor: pointer; border-radius: 80px; padding: 5px;"
14
+ [SpeechToText]
15
+ [(bindedText)]="text"
16
+ >
17
+ keyboard_voice
18
+ </mat-icon>
19
+
20
+ */
21
+ export class SpeechToTextDirective {
22
+ SpeechToggle() {
23
+ this.SpeechToTextToggler();
24
+ }
25
+ constructor(elementRef) {
26
+ this.elementRef = elementRef;
27
+ this.debug = false;
28
+ this.bindedText = "";
29
+ this.bindedTextChange = new EventEmitter();
30
+ this.beginSentence = "";
31
+ this.pausedClass = "keyboard_paused";
32
+ this.speakingClass = "keyboard_speaking";
33
+ this.transcript_arr = [];
34
+ this.confidence_arr = [];
35
+ // isStarted = false; //<< this Flag to check if the user stop the service
36
+ this.isStoppedSpeechRecog = false;
37
+ this.isStoppedAutomatically = true; //<< this Flag to check if the service stopped automaticically.
38
+ this.timeInterval = interval(50);
39
+ this.domElement = this.elementRef.nativeElement;
40
+ this.printDebug(window.navigator.userAgent);
41
+ try {
42
+ // questa operazione fallisce se non c'è webkit
43
+ this.recognition = new webkitSpeechRecognition();
44
+ this.printDebug(this.recognition);
45
+ this.recognition.continuous = true;
46
+ this.recognition.interimResults = true;
47
+ this.recognition.lang = "it-IT";
48
+ this.recognition.addEventListener("result", (e) => {
49
+ const transcript = Array.from(e.results)
50
+ .map((result) => result[0])
51
+ .map((result) => result.transcript)
52
+ .join("");
53
+ this.printDebug("construcor transcript: " + transcript);
54
+ this.transcript_arr.push(transcript);
55
+ this.tempWords = transcript;
56
+ const confidence = Array.from(e.results)
57
+ .map((result) => result[0])
58
+ .map((result) => result.confidence)
59
+ .join("");
60
+ this.confidence_arr.push(confidence);
61
+ });
62
+ this.recognition.addEventListener("end", (condition) => {
63
+ //this.wordConcat();
64
+ if (this.isStoppedAutomatically) {
65
+ this.recognition.stop();
66
+ this.recognition.start();
67
+ this.isStoppedAutomatically = true;
68
+ }
69
+ });
70
+ }
71
+ catch (error) {
72
+ this.printDebug(error);
73
+ this.domElement.style.display = "none";
74
+ }
75
+ }
76
+ ngOnDestroy() {
77
+ this.printDebug("speech onDestroy");
78
+ if (this.recognition) {
79
+ this.recognition.abort();
80
+ }
81
+ }
82
+ SpeechToTextToggler() {
83
+ if (!GlobalService.isSpeechToTextStarted) {
84
+ this.printDebug("start");
85
+ this.beginSentence = this.bindedText;
86
+ if (this.bindedText == null ||
87
+ this.bindedText == undefined ||
88
+ this.bindedText == "") {
89
+ this.beginSentence = "";
90
+ this.bindedText = "";
91
+ }
92
+ this.transcript_arr = [];
93
+ this.confidence_arr = [];
94
+ let newtext = "";
95
+ this.start();
96
+ //this.isStillRecoginze = this.start() === true ? true : false;
97
+ this.subscription = this.timeInterval.subscribe((val) => {
98
+ if (this.bindedText == null || this.bindedText == undefined) {
99
+ this.bindedText =
100
+ this.beginSentence +
101
+ this.transcript_arr[this.transcript_arr.length - 1];
102
+ this.bindedTextChange.emit(this.bindedText);
103
+ }
104
+ else {
105
+ newtext = this.transcript_arr[this.transcript_arr.length - 1];
106
+ if (newtext != undefined) {
107
+ this.bindedTextChange.emit(this.beginSentence + newtext);
108
+ this.transcript_arr[this.transcript_arr.length - 1];
109
+ }
110
+ else {
111
+ this.bindedTextChange.emit(this.bindedText);
112
+ }
113
+ }
114
+ });
115
+ }
116
+ else {
117
+ if (GlobalService.speechDirective === this) {
118
+ this.printDebug("stop");
119
+ this.printDebug("binded: " + this.bindedText);
120
+ this.transcript_arr = [];
121
+ this.stop();
122
+ this.subscription.unsubscribe();
123
+ }
124
+ else {
125
+ this.printDebug("stop other");
126
+ GlobalService.speechDirective.SpeechToTextToggler();
127
+ let interval = setInterval(() => {
128
+ if (GlobalService.speechDirective == null) {
129
+ this.SpeechToTextToggler();
130
+ clearInterval(interval);
131
+ }
132
+ }, 100);
133
+ }
134
+ }
135
+ }
136
+ start() {
137
+ if (!GlobalService.isSpeechToTextStarted) {
138
+ this.elementRef.nativeElement.classList.remove(this.pausedClass);
139
+ this.elementRef.nativeElement.classList.add(this.speakingClass);
140
+ this.recognition.start();
141
+ GlobalService.isSpeechToTextStarted = true;
142
+ GlobalService.speechDirective = this;
143
+ }
144
+ return true;
145
+ }
146
+ stop() {
147
+ if (GlobalService.isSpeechToTextStarted) {
148
+ this.elementRef.nativeElement.classList.remove(this.speakingClass);
149
+ this.elementRef.nativeElement.classList.add(this.pausedClass);
150
+ this.isStoppedAutomatically = false;
151
+ this.wordConcat();
152
+ this.recognition.stop();
153
+ GlobalService.isSpeechToTextStarted = false;
154
+ GlobalService.speechDirective = null;
155
+ this.transcript_arr = [];
156
+ }
157
+ return false;
158
+ }
159
+ wordConcat() {
160
+ this.bindedText = this.bindedText + ". ";
161
+ // this.bindedText = this.bindedText + " " + this.tempWords + ".";
162
+ // this.tempWords = "";
163
+ }
164
+ printDebug(message) {
165
+ if (this.debug) {
166
+ console.log(message);
167
+ }
168
+ }
169
+ }
170
+ SpeechToTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpeechToTextDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
171
+ SpeechToTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: { bindedText: "bindedText" }, outputs: { bindedTextChange: "bindedTextChange" }, host: { listeners: { "click": "SpeechToggle()" } }, ngImport: i0 });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SpeechToTextDirective, decorators: [{
173
+ type: Directive,
174
+ args: [{
175
+ selector: "[SpeechToText]",
176
+ }]
177
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { bindedText: [{
178
+ type: Input,
179
+ args: ["bindedText"]
180
+ }], bindedTextChange: [{
181
+ type: Output
182
+ }], SpeechToggle: [{
183
+ type: HostListener,
184
+ args: ["click"]
185
+ }] } });
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNoLXRvLXRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvZGlyZWN0aXZlcy9zcGVlY2gtdG8tdGV4dC9zcGVlY2gtdG8tdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUk5RDs7Ozs7Ozs7Ozs7Ozs7O0VBZUU7QUFLRixNQUFNLE9BQU8scUJBQXFCO0lBeUJULFlBQVk7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTVCaEMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVPLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDbkMscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUUsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFJM0IsZ0JBQVcsR0FBVyxpQkFBaUIsQ0FBQztRQUN4QyxrQkFBYSxHQUFXLG1CQUFtQixDQUFDO1FBSTVDLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLDBFQUEwRTtRQUMxRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLENBQUMsK0RBQStEO1FBRTlGLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBVzFCLElBQUksQ0FBQyxVQUFVLEdBQUcs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QkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNULGdCQUFnQjtzQkFBekIsTUFBTTtnQkFvQmdCLFlBQVk7c0JBQWxDLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPdXRwdXQsXHJcbiAgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG4gIGltcG9ydCB7IGludGVydmFsLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG4gIGltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZ2xvYmFsLnNlcnZpY2VcIjtcclxuICBcclxuICBkZWNsYXJlIHZhciB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjogYW55O1xyXG4gIFxyXG4gIC8qIEVTRU1QSU8gRCdVU09cclxuICBcclxuICAgIDx0ZXh0YXJlYVxyXG4gICAgICBbKG5nTW9kZWwpXT1cInRleHRcIlxyXG4gICAgPjwvdGV4dGFyZWE+XHJcbiAgXHJcbiAgICA8bWF0LWljb25cclxuICAgICAgKm5nSWY9XCJ0cnVlXCIgPCEtLSBTZW56YSBOR0lGIG5vbiBmdW56aW9uYSAtLT5cclxuICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1yYWRpdXM6IDgwcHg7IHBhZGRpbmc6IDVweDtcIlxyXG4gICAgICBbU3BlZWNoVG9UZXh0XVxyXG4gICAgICBbKGJpbmRlZFRleHQpXT1cInRleHRcIlxyXG4gICAgPlxyXG4gICAgICBrZXlib2FyZF92b2ljZVxyXG4gICAgPC9tYXQtaWNvbj5cclxuICBcclxuICAqL1xyXG4gIFxyXG4gIEBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW1NwZWVjaFRvVGV4dF1cIixcclxuICB9KVxyXG4gIGV4cG9ydCBjbGFzcyBTcGVlY2hUb1RleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3l7XHJcbiAgXHJcbiAgICBkZWJ1ZyA9IGZhbHNlO1xyXG4gIFxyXG4gICAgQElucHV0KFwiYmluZGVkVGV4dFwiKSBiaW5kZWRUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQE91dHB1dCgpIGJpbmRlZFRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBiZWdpblNlbnRlbmNlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgLy8gYmluZGVkVGV4dCA9IFwiXCI7XHJcbiAgICBwcml2YXRlIGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIFxyXG4gICAgcGF1c2VkQ2xhc3M6IHN0cmluZyA9IFwia2V5Ym9hcmRfcGF1c2VkXCI7XHJcbiAgICBzcGVha2luZ0NsYXNzOiBzdHJpbmcgPSBcImtleWJvYXJkX3NwZWFraW5nXCI7XHJcbiAgXHJcbiAgICByZWNvZ25pdGlvbjtcclxuICAgIHRlbXBXb3JkczogYW55O1xyXG4gICAgdHJhbnNjcmlwdF9hcnIgPSBbXTtcclxuICAgIGNvbmZpZGVuY2VfYXJyID0gW107XHJcbiAgXHJcbiAgICAvLyBpc1N0YXJ0ZWQgPSBmYWxzZTsgLy88PCB0aGlzIEZsYWcgdG8gY2hlY2sgaWYgdGhlIHVzZXIgc3RvcCB0aGUgc2VydmljZVxyXG4gICAgaXNTdG9wcGVkU3BlZWNoUmVjb2cgPSBmYWxzZTtcclxuICAgIGlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSB0cnVlOyAvLzw8IHRoaXMgRmxhZyB0byBjaGVjayBpZiB0aGUgc2VydmljZSBzdG9wcGVkIGF1dG9tYXRpY2ljYWxseS5cclxuICBcclxuICAgIHRpbWVJbnRlcnZhbCA9IGludGVydmFsKDUwKTtcclxuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIFxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpIFNwZWVjaFRvZ2dsZSgpIHtcclxuICAgICAgdGhpcy5TcGVlY2hUb1RleHRUb2dnbGVyKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgICAgICkge1xyXG4gIFxyXG4gICAgICB0aGlzLmRvbUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIFxyXG4gICAgICB0aGlzLnByaW50RGVidWcod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gIFxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIC8vIHF1ZXN0YSBvcGVyYXppb25lIGZhbGxpc2NlIHNlIG5vbiBjJ8OoIHdlYmtpdFxyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24gPSBuZXcgd2Via2l0U3BlZWNoUmVjb2duaXRpb24oKTtcclxuICBcclxuICAgICAgICB0aGlzLnByaW50RGVidWcodGhpcy5yZWNvZ25pdGlvbik7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5jb250aW51b3VzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLmludGVyaW1SZXN1bHRzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLmxhbmcgPSBcIml0LUlUXCI7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5hZGRFdmVudExpc3RlbmVyKFwicmVzdWx0XCIsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHRyYW5zY3JpcHQgPSBBcnJheS5mcm9tKGUucmVzdWx0cylcclxuICAgICAgICAgICAgLm1hcCgocmVzdWx0OiBhbnkpID0+IHJlc3VsdFswXSlcclxuICAgICAgICAgICAgLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudHJhbnNjcmlwdClcclxuICAgICAgICAgICAgLmpvaW4oXCJcIik7XHJcbiAgXHJcbiAgICAgICAgICB0aGlzLnByaW50RGVidWcoXCJjb25zdHJ1Y29yIHRyYW5zY3JpcHQ6IFwiICsgdHJhbnNjcmlwdCk7XHJcbiAgXHJcbiAgXHJcbiAgICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyLnB1c2godHJhbnNjcmlwdCk7XHJcbiAgICAgICAgICB0aGlzLnRlbXBXb3JkcyA9IHRyYW5zY3JpcHQ7XHJcbiAgXHJcbiAgICAgICAgICBjb25zdCBjb25maWRlbmNlID0gQXJyYXkuZnJvbShlLnJlc3VsdHMpXHJcbiAgICAgICAgICAgIC5tYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHRbMF0pXHJcbiAgICAgICAgICAgIC5tYXAoKHJlc3VsdCkgPT4gcmVzdWx0LmNvbmZpZGVuY2UpXHJcbiAgICAgICAgICAgIC5qb2luKFwiXCIpO1xyXG4gICAgICAgICAgdGhpcy5jb25maWRlbmNlX2Fyci5wdXNoKGNvbmZpZGVuY2UpO1xyXG4gICAgICAgIH0pO1xyXG4gIFxyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcImVuZFwiLCAoY29uZGl0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vdGhpcy53b3JkQ29uY2F0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWRBdXRvbWF0aWNhbGx5KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVjb2duaXRpb24uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkQXV0b21hdGljYWxseSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgXHJcbiAgICAgICAgdGhpcy5wcmludERlYnVnKGVycm9yKTtcclxuICBcclxuICAgICAgICB0aGlzLmRvbUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICB9XHJcbiAgXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5wcmludERlYnVnKFwic3BlZWNoIG9uRGVzdHJveVwiKTtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMucmVjb2duaXRpb24pe1xyXG4gICAgICAgIHRoaXMucmVjb2duaXRpb24uYWJvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIFxyXG4gICAgU3BlZWNoVG9UZXh0VG9nZ2xlcigpIHtcclxuICAgICAgaWYgKCFHbG9iYWxTZXJ2aWNlLmlzU3BlZWNoVG9UZXh0U3RhcnRlZCkge1xyXG4gIFxyXG4gICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcInN0YXJ0XCIpO1xyXG4gIFxyXG4gICAgICAgIHRoaXMuYmVnaW5TZW50ZW5jZSA9IHRoaXMuYmluZGVkVGV4dDtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmJpbmRlZFRleHQgPT0gbnVsbCB8fFxyXG4gICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID09IFwiXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuYmVnaW5TZW50ZW5jZSA9IFwiXCI7XHJcbiAgICAgICAgICB0aGlzLmJpbmRlZFRleHQgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgICAgdGhpcy5jb25maWRlbmNlX2FyciA9IFtdO1xyXG4gIFxyXG4gICAgICAgIGxldCBuZXd0ZXh0ID0gXCJcIjtcclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcbiAgICAgICAgLy90aGlzLmlzU3RpbGxSZWNvZ2luemUgPSB0aGlzLnN0YXJ0KCkgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVJbnRlcnZhbC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYmluZGVkVGV4dCA9PSBudWxsIHx8IHRoaXMuYmluZGVkVGV4dCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kZWRUZXh0ID1cclxuICAgICAgICAgICAgICB0aGlzLmJlZ2luU2VudGVuY2UgK1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnJbdGhpcy50cmFuc2NyaXB0X2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgdGhpcy5iaW5kZWRUZXh0Q2hhbmdlLmVtaXQodGhpcy5iaW5kZWRUZXh0KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG5ld3RleHQgPSB0aGlzLnRyYW5zY3JpcHRfYXJyW3RoaXMudHJhbnNjcmlwdF9hcnIubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGlmIChuZXd0ZXh0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYmluZGVkVGV4dENoYW5nZS5lbWl0KHRoaXMuYmVnaW5TZW50ZW5jZSArIG5ld3RleHQpO1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNjcmlwdF9hcnJbdGhpcy50cmFuc2NyaXB0X2Fyci5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJpbmRlZFRleHRDaGFuZ2UuZW1pdCh0aGlzLmJpbmRlZFRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYoR2xvYmFsU2VydmljZS5zcGVlY2hEaXJlY3RpdmUgPT09IHRoaXMpe1xyXG4gICAgICAgICAgdGhpcy5wcmludERlYnVnKFwic3RvcFwiKTtcclxuICAgICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcImJpbmRlZDogXCIgKyB0aGlzLmJpbmRlZFRleHQpO1xyXG4gICAgXHJcbiAgICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgICAgICB0aGlzLnN0b3AoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJpbnREZWJ1ZyhcInN0b3Agb3RoZXJcIik7XHJcbiAgICAgICAgICBHbG9iYWxTZXJ2aWNlLnNwZWVjaERpcmVjdGl2ZS5TcGVlY2hUb1RleHRUb2dnbGVyKCk7XHJcbiAgICAgICAgICBsZXQgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmKEdsb2JhbFNlcnZpY2Uuc3BlZWNoRGlyZWN0aXZlID09IG51bGwpe1xyXG4gICAgICAgICAgICAgIHRoaXMuU3BlZWNoVG9UZXh0VG9nZ2xlcigpO1xyXG4gICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICBwcml2YXRlIHN0YXJ0KCkge1xyXG4gICAgICBpZiAoIUdsb2JhbFNlcnZpY2UuaXNTcGVlY2hUb1RleHRTdGFydGVkKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnBhdXNlZENsYXNzKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuc3BlYWtpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5yZWNvZ25pdGlvbi5zdGFydCgpO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2UuaXNTcGVlY2hUb1RleHRTdGFydGVkID0gdHJ1ZTtcclxuICAgICAgICBHbG9iYWxTZXJ2aWNlLnNwZWVjaERpcmVjdGl2ZSA9IHRoaXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHN0b3AoKSB7ICAgIFxyXG4gICAgICBpZiAoR2xvYmFsU2VydmljZS5pc1NwZWVjaFRvVGV4dFN0YXJ0ZWQpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuc3BlYWtpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLnBhdXNlZENsYXNzKTtcclxuICAgICAgICB0aGlzLmlzU3RvcHBlZEF1dG9tYXRpY2FsbHkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmRDb25jYXQoKTtcclxuICAgICAgICB0aGlzLnJlY29nbml0aW9uLnN0b3AoKTtcclxuICAgICAgICBHbG9iYWxTZXJ2aWNlLmlzU3BlZWNoVG9UZXh0U3RhcnRlZCA9IGZhbHNlO1xyXG4gICAgICAgIEdsb2JhbFNlcnZpY2Uuc3BlZWNoRGlyZWN0aXZlID0gbnVsbDtcclxuICAgICAgICB0aGlzLnRyYW5zY3JpcHRfYXJyID0gW107XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcHJpdmF0ZSB3b3JkQ29uY2F0KCkge1xyXG4gICAgICB0aGlzLmJpbmRlZFRleHQgPSB0aGlzLmJpbmRlZFRleHQgKyBcIi4gXCI7XHJcbiAgICAgIC8vIHRoaXMuYmluZGVkVGV4dCA9IHRoaXMuYmluZGVkVGV4dCArIFwiIFwiICsgdGhpcy50ZW1wV29yZHMgKyBcIi5cIjtcclxuICAgICAgLy8gdGhpcy50ZW1wV29yZHMgPSBcIlwiO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcHJpdmF0ZSBwcmludERlYnVnKG1lc3NhZ2Upe1xyXG4gICAgICBpZih0aGlzLmRlYnVnKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAiXX0=
@@ -63,6 +63,7 @@ import { DateTriggerTemplateComponent } from './components/private/trigger-creat
63
63
  import { ListValueTriggerTemplateComponent } from './components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component';
64
64
  import { TextareaTriggerTemplateComponent } from './components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component';
65
65
  import { ListFormRecordTriggerTemplateComponent } from './components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component';
66
+ import { SpeechToTextDirective } from './directives/speech-to-text/speech-to-text.directive';
66
67
  import * as i0 from "@angular/core";
67
68
  import * as i1 from "@eqproject/eqp-numeric";
68
69
  export const customNumericMaskConfig = {
@@ -133,7 +134,8 @@ EqpDynamicModuleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
133
134
  DateTriggerTemplateComponent,
134
135
  ListValueTriggerTemplateComponent,
135
136
  TextareaTriggerTemplateComponent,
136
- ListFormRecordTriggerTemplateComponent], imports: [MaterialModule,
137
+ ListFormRecordTriggerTemplateComponent,
138
+ SpeechToTextDirective], imports: [MaterialModule,
137
139
  FormsModule,
138
140
  CommonModule,
139
141
  ReactiveFormsModule,
@@ -221,7 +223,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
221
223
  DateTriggerTemplateComponent,
222
224
  ListValueTriggerTemplateComponent,
223
225
  TextareaTriggerTemplateComponent,
224
- ListFormRecordTriggerTemplateComponent
226
+ ListFormRecordTriggerTemplateComponent,
227
+ SpeechToTextDirective
225
228
  ],
226
229
  imports: [
227
230
  MaterialModule,
@@ -250,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
250
253
  ]
251
254
  }]
252
255
  }] });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2VxcC1keW5hbWljLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlHQUFpRyxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzdJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdG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T0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7d0JBQ2pELGdDQUFnQzt3QkFDaEMsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHlCQUF5Qjt3QkFDekIscUNBQXFDO3dCQUNyQyxjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXhwb3J0ZWQvZXFwLWR5bmFtaWMtbW9kdWxlL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFcXBUYWJsZU1vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLXRhYmxlJztcclxuaW1wb3J0IHsgRXFwQXR0YWNobWVudHNNb2R1bGUgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1hdHRhY2htZW50cyc7XHJcbmltcG9ydCB7IEVxcFNlbGVjdE1vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLXNlbGVjdCc7XHJcbmltcG9ydCB7IEVxcERhdGV0aW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZGF0ZXRpbWVwaWNrZXInO1xyXG5pbXBvcnQgeyBFcXBGaWx0ZXJzTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZmlsdGVycyc7XHJcbmltcG9ydCB7IEVxcE51bWVyaWNJbnB1dE1vZGUsIEVxcE51bWVyaWNNb2R1bGUgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1udW1lcmljJztcclxuaW1wb3J0IHsgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9leHBvcnRlZC9lcXAtZHluYW1pYy1tb2R1bGUtY29uZmlndXJhdG9yL2VxcC1keW5hbWljLW1vZHVsZS1jb25maWd1cmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvYWRkLWZvcm0tZmllbGQvYWRkLWZvcm0tZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dEZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvdGV4dC1maWVsZC10ZW1wbGF0ZS90ZXh0LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9kYXRlLWZpZWxkLXRlbXBsYXRlL2RhdGUtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlL3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL251bWVyaWMtZmllbGQtdGVtcGxhdGUvbnVtZXJpYy1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0VmFsdWVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2xpc3QtdmFsdWUtZmllbGQtdGVtcGxhdGUvbGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2xpc3QtZm9ybS1yZWNvcmQvbGlzdC1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2FkZC1mb3JtLXJlY29yZC9hZGQtZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZHluYW1pYy1tb2R1bGUtZmllbGQvZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRm9ybXVsYUNvbXBvbmVudCxEaWFsb2dEYXRhRXhhbXBsZURpYWxvZyB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2FkZC1mb3JtdWxhLWZpZWxkL2FkZC1mb3JtdWxhLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcGFpckZvcm1GaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvcmVwYWlyLWZvcm0tZmllbGRzL3JlcGFpci1mb3JtLWZpZWxkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Vmlld0Zvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvbGlzdC12aWV3LWZvcm0tcmVjb3JkL2xpc3Qtdmlldy1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3Rm9ybVJlY29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tcmVjb3Jkcy92aWV3LWZvcm0tcmVjb3JkL3ZpZXctZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2luZ2xlUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2xpc3Qtdmlldy1mb3JtLXJlY29yZC9zaW5nbGUtcmVjb3JkL3NpbmdsZS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsdGVyRm9ybVN0YXRpc3RpY0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItZm9ybS1zdGF0aXN0aWMvZmlsdGVyLWZvcm0tc3RhdGlzdGljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWx0ZXJGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXN0YXRpc3RpY3MvZHluYW1pYy1tb2R1bGUtZmlsdGVyLWZpeC9keW5hbWljLW1vZHVsZS1maWx0ZXItZml4LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL3RleHQtZmlsdGVyLXRlbXBsYXRlL3RleHQtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL251bWVyaWMtZmlsdGVyLXRlbXBsYXRlL251bWVyaWMtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2Jvb2xlYW4tZmlsdGVyLXRlbXBsYXRlL2Jvb2xlYW4tZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2RhdGUtZmlsdGVyLXRlbXBsYXRlL2RhdGUtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvbGlzdC12YWx1ZS1maWx0ZXItdGVtcGxhdGUvbGlzdC12YWx1ZS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL3RleHRhcmVhLWZpbHRlci10ZW1wbGF0ZS90ZXh0YXJlYS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudEZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvYXR0YWNobWVudC1maWx0ZXItdGVtcGxhdGUvYXR0YWNobWVudC1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2ltYWdlLWZpbHRlci10ZW1wbGF0ZS9pbWFnZS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2xpc3QtZm9ybS1yZWNvcmQtZmlsdGVyLXRlbXBsYXRlL2xpc3QtZm9ybS1yZWNvcmQtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyYXBoc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JhcGhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9ncmFwaHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FudmFzSlNBbmd1bGFyU3RvY2tDaGFydHNNb2R1bGUsIENhbnZhc0pTQ2hhcnQsIENhbnZhc0pTU3RvY2tDaGFydCB9IGZyb20gJ0BjYW52YXNqcy9hbmd1bGFyLXN0b2NrY2hhcnRzJztcclxuaW1wb3J0IHsgSW1hZ2VGaWVsZFNlbGVjdG9yVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUvaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGFiZWxGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2xhYmVsLWZpZWxkLXRlbXBsYXRlL2xhYmVsLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlU2VsZWN0b3JGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2ltYWdlLXNlbGVjdG9yLWZpbHRlci10ZW1wbGF0ZS9pbWFnZS1zZWxlY3Rvci1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXFwSW1nRHJhd2luZ01vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWltZy1kcmF3aW5nJztcclxuaW1wb3J0IHsgVG13SW1hZ2VEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90bXctaW1hZ2UtZHJhd2VyL3Rtdy1pbWFnZS1kcmF3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VXaXRoTWFya2Vyc0ZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvaW1hZ2Utd2l0aC1tYXJrZXJzLWZpZWxkLXRlbXBsYXRlL2ltYWdlLXdpdGgtbWFya2Vycy1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbXdJbWFnZU1hcmtlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3Rtdy1pbWFnZS1tYXJrZXIvdG13LWltYWdlLW1hcmtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBEeW5hbWljTG9hZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2R5bmFtaWMtbG9hZGVyL2R5bmFtaWMtbG9hZGVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERiZ2V0dGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZGJnZXR0ZXIvZGJnZXR0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtUbXdQaWNrZXJNb2R1bGV9IGZyb20gXCJ0bXctcGlja2VyXCI7XHJcbmltcG9ydCB7IFRyaWdnZXJDcmVhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItY3JlYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlVHJpZ2dlckZpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0VHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHQtdHJpZ2dlci10ZW1wbGF0ZS90ZXh0LXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVtZXJpY1RyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9udW1lcmljLXRyaWdnZXItdGVtcGxhdGUvbnVtZXJpYy10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5UcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci10ZW1wbGF0ZXMvYm9vbGVhbi10cmlnZ2VyLXRlbXBsYXRlL2Jvb2xlYW4tdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2RhdGUtdHJpZ2dlci10ZW1wbGF0ZS9kYXRlLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdFZhbHVlVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2xpc3QtdmFsdWUtdHJpZ2dlci10ZW1wbGF0ZS9saXN0LXZhbHVlLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci10ZW1wbGF0ZXMvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS90ZXh0YXJlYS10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RGb3JtUmVjb3JkVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2xpc3QtZm9ybS1yZWNvcmQtdHJpZ2dlci10ZW1wbGF0ZS9saXN0LWZvcm0tcmVjb3JkLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBjdXN0b21OdW1lcmljTWFza0NvbmZpZyA9IHtcclxuICBhbGlnbjogXCJyaWdodFwiLFxyXG4gIGFsbG93TmVnYXRpdmU6IHRydWUsXHJcbiAgYWxsb3daZXJvOiB0cnVlLFxyXG4gIGRlY2ltYWw6IFwiXCIsXHJcbiAgcHJlY2lzaW9uOiAwLFxyXG4gIHByZWZpeDogXCJcIixcclxuICBzdWZmaXg6IFwiXCIsXHJcbiAgdGhvdXNhbmRzOiBcIlwiLFxyXG4gIG51bGxhYmxlOiB0cnVlLFxyXG4gIG1pbjogbnVsbCxcclxuICBtYXg6IG51bGwsXHJcbiAgaW5wdXRNb2RlOiBFcXBOdW1lcmljSW5wdXRNb2RlLkZJTkFOQ0lBTCxcclxufTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29tcG9uZW50LFxyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCxcclxuICAgIEFkZEZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIFRleHRGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhbkZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEYXRlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRleHRhcmVhRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIE51bWVyaWNGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdFZhbHVlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEF0dGFjaG1lbnRGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBMaXN0Vmlld0Zvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBBZGRGb3JtUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgVmlld0Zvcm1SZWNvcmRDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlRmllbGRDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgQWRkRm9ybXVsYUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0RhdGFFeGFtcGxlRGlhbG9nLFxyXG4gICAgUmVwYWlyRm9ybUZpZWxkc0NvbXBvbmVudCxcclxuICAgIFNpbmdsZVJlY29yZENvbXBvbmVudCxcclxuICAgIEZpbHRlckZvcm1TdGF0aXN0aWNDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTW9kdWxlRmlsdGVyRml4Q29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZVRyaWdnZXJGaXhDb21wb25lbnQsXHJcbiAgICBUZXh0RmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBOdW1lcmljRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBCb29sZWFuRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEYXRlRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0VmFsdWVGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRleHRhcmVhRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBBdHRhY2htZW50RmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBJbWFnZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdEZvcm1SZWNvcmRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEdyYXBoc0NvbXBvbmVudCxcclxuICAgIEdyYXBoQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VGaWVsZFNlbGVjdG9yVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMYWJlbEZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBJbWFnZVNlbGVjdG9yRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUbXdJbWFnZURyYXdlckNvbXBvbmVudCxcclxuICAgIEltYWdlV2l0aE1hcmtlcnNGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgVG13SW1hZ2VNYXJrZXJDb21wb25lbnQsXHJcbiAgICBEeW5hbWljTG9hZGVyRGlyZWN0aXZlLFxyXG4gICAgRGJnZXR0ZXJDb21wb25lbnQsXHJcbiAgICBUcmlnZ2VyQ3JlYXRvckNvbXBvbmVudCxcclxuICAgIFRleHRUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBOdW1lcmljVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhblRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIERhdGVUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0VmFsdWVUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYVRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RGb3JtUmVjb3JkVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50XHJcblxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBFcXBUYWJsZU1vZHVsZSxcclxuICAgIEVxcEF0dGFjaG1lbnRzTW9kdWxlLFxyXG4gICAgRXFwU2VsZWN0TW9kdWxlLFxyXG4gICAgRXFwRGF0ZXRpbWVwaWNrZXJNb2R1bGUsXHJcbiAgICBFcXBGaWx0ZXJzTW9kdWxlLFxyXG4gICAgRXFwSW1nRHJhd2luZ01vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgRXFwTnVtZXJpY01vZHVsZS5mb3JSb290KGN1c3RvbU51bWVyaWNNYXNrQ29uZmlnKSxcclxuICAgIENhbnZhc0pTQW5ndWxhclN0b2NrQ2hhcnRzTW9kdWxlLFxyXG4gICAgVG13UGlja2VyTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBFcXBEeW5hbWljTW9kdWxlQ29tcG9uZW50LFxyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgQ2FudmFzSlNDaGFydCxcclxuICAgIENhbnZhc0pTU3RvY2tDaGFydCxcclxuICAgIER5bmFtaWNMb2FkZXJEaXJlY3RpdmUsXHJcbiAgICBUbXdQaWNrZXJNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFcXBEeW5hbWljTW9kdWxlTW9kdWxlIHsgfVxyXG4iXX0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXFwLWR5bmFtaWMtbW9kdWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2VxcC1keW5hbWljLW1vZHVsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlHQUFpRyxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQ3BJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQzdJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdG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NEI7d0JBQzVCLGlDQUFpQzt3QkFDakMsZ0NBQWdDO3dCQUNoQyxzQ0FBc0M7d0JBQ3RDLHFCQUFxQjtxQkFFdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUM7d0JBQ2pELGdDQUFnQzt3QkFDaEMsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHlCQUF5Qjt3QkFDekIscUNBQXFDO3dCQUNyQyxjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVxcER5bmFtaWNNb2R1bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXhwb3J0ZWQvZXFwLWR5bmFtaWMtbW9kdWxlL2VxcC1keW5hbWljLW1vZHVsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFcXBUYWJsZU1vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLXRhYmxlJztcclxuaW1wb3J0IHsgRXFwQXR0YWNobWVudHNNb2R1bGUgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1hdHRhY2htZW50cyc7XHJcbmltcG9ydCB7IEVxcFNlbGVjdE1vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLXNlbGVjdCc7XHJcbmltcG9ydCB7IEVxcERhdGV0aW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZGF0ZXRpbWVwaWNrZXInO1xyXG5pbXBvcnQgeyBFcXBGaWx0ZXJzTW9kdWxlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZmlsdGVycyc7XHJcbmltcG9ydCB7IEVxcE51bWVyaWNJbnB1dE1vZGUsIEVxcE51bWVyaWNNb2R1bGUgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1udW1lcmljJztcclxuaW1wb3J0IHsgRXFwRHluYW1pY01vZHVsZUNvbmZpZ3VyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9leHBvcnRlZC9lcXAtZHluYW1pYy1tb2R1bGUtY29uZmlndXJhdG9yL2VxcC1keW5hbWljLW1vZHVsZS1jb25maWd1cmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvYWRkLWZvcm0tZmllbGQvYWRkLWZvcm0tZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dEZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvdGV4dC1maWVsZC10ZW1wbGF0ZS90ZXh0LWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2Jvb2xlYW4tZmllbGQtdGVtcGxhdGUvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9kYXRlLWZpZWxkLXRlbXBsYXRlL2RhdGUtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlL3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL251bWVyaWMtZmllbGQtdGVtcGxhdGUvbnVtZXJpYy1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0VmFsdWVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2xpc3QtdmFsdWUtZmllbGQtdGVtcGxhdGUvbGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmllbGRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9hdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2xpc3QtZm9ybS1yZWNvcmQvbGlzdC1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGb3JtUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2FkZC1mb3JtLXJlY29yZC9hZGQtZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZHluYW1pYy1tb2R1bGUtZmllbGQvZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9keW5hbWljLW1vZHVsZS1maWVsZC1maXgvZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRm9ybXVsYUNvbXBvbmVudCxEaWFsb2dEYXRhRXhhbXBsZURpYWxvZyB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2FkZC1mb3JtdWxhLWZpZWxkL2FkZC1mb3JtdWxhLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlcGFpckZvcm1GaWVsZHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvcmVwYWlyLWZvcm0tZmllbGRzL3JlcGFpci1mb3JtLWZpZWxkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMaXN0Vmlld0Zvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXJlY29yZHMvbGlzdC12aWV3LWZvcm0tcmVjb3JkL2xpc3Qtdmlldy1mb3JtLXJlY29yZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3Rm9ybVJlY29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tcmVjb3Jkcy92aWV3LWZvcm0tcmVjb3JkL3ZpZXctZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2luZ2xlUmVjb3JkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1yZWNvcmRzL2xpc3Qtdmlldy1mb3JtLXJlY29yZC9zaW5nbGUtcmVjb3JkL3NpbmdsZS1yZWNvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsdGVyRm9ybVN0YXRpc3RpY0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItZm9ybS1zdGF0aXN0aWMvZmlsdGVyLWZvcm0tc3RhdGlzdGljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWx0ZXJGaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9mb3JtLXN0YXRpc3RpY3MvZHluYW1pYy1tb2R1bGUtZmlsdGVyLWZpeC9keW5hbWljLW1vZHVsZS1maWx0ZXItZml4LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL3RleHQtZmlsdGVyLXRlbXBsYXRlL3RleHQtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWVyaWNGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL251bWVyaWMtZmlsdGVyLXRlbXBsYXRlL251bWVyaWMtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5GaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2Jvb2xlYW4tZmlsdGVyLXRlbXBsYXRlL2Jvb2xlYW4tZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2RhdGUtZmlsdGVyLXRlbXBsYXRlL2RhdGUtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RWYWx1ZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvbGlzdC12YWx1ZS1maWx0ZXItdGVtcGxhdGUvbGlzdC12YWx1ZS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL3RleHRhcmVhLWZpbHRlci10ZW1wbGF0ZS90ZXh0YXJlYS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudEZpbHRlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZm9ybS1zdGF0aXN0aWNzL2ZpbHRlci10ZW1wbGF0ZXMvYXR0YWNobWVudC1maWx0ZXItdGVtcGxhdGUvYXR0YWNobWVudC1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2ltYWdlLWZpbHRlci10ZW1wbGF0ZS9pbWFnZS1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2xpc3QtZm9ybS1yZWNvcmQtZmlsdGVyLXRlbXBsYXRlL2xpc3QtZm9ybS1yZWNvcmQtZmlsdGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyYXBoc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2dyYXBocy9ncmFwaHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JhcGhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9ncmFwaHMvZ3JhcGgvZ3JhcGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FudmFzSlNBbmd1bGFyU3RvY2tDaGFydHNNb2R1bGUsIENhbnZhc0pTQ2hhcnQsIENhbnZhc0pTU3RvY2tDaGFydCB9IGZyb20gJ0BjYW52YXNqcy9hbmd1bGFyLXN0b2NrY2hhcnRzJztcclxuaW1wb3J0IHsgSW1hZ2VGaWVsZFNlbGVjdG9yVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUvaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGFiZWxGaWVsZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2xhYmVsLWZpZWxkLXRlbXBsYXRlL2xhYmVsLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlU2VsZWN0b3JGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL2Zvcm0tc3RhdGlzdGljcy9maWx0ZXItdGVtcGxhdGVzL2ltYWdlLXNlbGVjdG9yLWZpbHRlci10ZW1wbGF0ZS9pbWFnZS1zZWxlY3Rvci1maWx0ZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXFwSW1nRHJhd2luZ01vZHVsZSB9IGZyb20gJ0BlcXByb2plY3QvZXFwLWltZy1kcmF3aW5nJztcclxuaW1wb3J0IHsgVG13SW1hZ2VEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90bXctaW1hZ2UtZHJhd2VyL3Rtdy1pbWFnZS1kcmF3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW1hZ2VXaXRoTWFya2Vyc0ZpZWxkVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS9maWVsZC10ZW1wbGF0ZXMvaW1hZ2Utd2l0aC1tYXJrZXJzLWZpZWxkLXRlbXBsYXRlL2ltYWdlLXdpdGgtbWFya2Vycy1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUbXdJbWFnZU1hcmtlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3Rtdy1pbWFnZS1tYXJrZXIvdG13LWltYWdlLW1hcmtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBEeW5hbWljTG9hZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2R5bmFtaWMtbG9hZGVyL2R5bmFtaWMtbG9hZGVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERiZ2V0dGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvZGJnZXR0ZXIvZGJnZXR0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtUbXdQaWNrZXJNb2R1bGV9IGZyb20gXCJ0bXctcGlja2VyXCI7XHJcbmltcG9ydCB7IFRyaWdnZXJDcmVhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItY3JlYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlVHJpZ2dlckZpeENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0VHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL3RleHQtdHJpZ2dlci10ZW1wbGF0ZS90ZXh0LXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTnVtZXJpY1RyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci90cmlnZ2VyLXRlbXBsYXRlcy9udW1lcmljLXRyaWdnZXItdGVtcGxhdGUvbnVtZXJpYy10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2xlYW5UcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci10ZW1wbGF0ZXMvYm9vbGVhbi10cmlnZ2VyLXRlbXBsYXRlL2Jvb2xlYW4tdHJpZ2dlci10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2RhdGUtdHJpZ2dlci10ZW1wbGF0ZS9kYXRlLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlzdFZhbHVlVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2xpc3QtdmFsdWUtdHJpZ2dlci10ZW1wbGF0ZS9saXN0LXZhbHVlLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGFyZWFUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci10ZW1wbGF0ZXMvdGV4dGFyZWEtdHJpZ2dlci10ZW1wbGF0ZS90ZXh0YXJlYS10cmlnZ2VyLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpc3RGb3JtUmVjb3JkVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL3RyaWdnZXItdGVtcGxhdGVzL2xpc3QtZm9ybS1yZWNvcmQtdHJpZ2dlci10ZW1wbGF0ZS9saXN0LWZvcm0tcmVjb3JkLXRyaWdnZXItdGVtcGxhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BlZWNoVG9UZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NwZWVjaC10by10ZXh0L3NwZWVjaC10by10ZXh0LmRpcmVjdGl2ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgY3VzdG9tTnVtZXJpY01hc2tDb25maWcgPSB7XHJcbiAgYWxpZ246IFwicmlnaHRcIixcclxuICBhbGxvd05lZ2F0aXZlOiB0cnVlLFxyXG4gIGFsbG93WmVybzogdHJ1ZSxcclxuICBkZWNpbWFsOiBcIlwiLFxyXG4gIHByZWNpc2lvbjogMCxcclxuICBwcmVmaXg6IFwiXCIsXHJcbiAgc3VmZml4OiBcIlwiLFxyXG4gIHRob3VzYW5kczogXCJcIixcclxuICBudWxsYWJsZTogdHJ1ZSxcclxuICBtaW46IG51bGwsXHJcbiAgbWF4OiBudWxsLFxyXG4gIGlucHV0TW9kZTogRXFwTnVtZXJpY0lucHV0TW9kZS5GSU5BTkNJQUwsXHJcbn07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbXBvbmVudCxcclxuICAgIEVxcER5bmFtaWNNb2R1bGVDb25maWd1cmF0b3JDb21wb25lbnQsXHJcbiAgICBBZGRGb3JtRmllbGRDb21wb25lbnQsXHJcbiAgICBUZXh0RmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEJvb2xlYW5GaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgRGF0ZUZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBOdW1lcmljRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RWYWx1ZUZpZWxkVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBBdHRhY2htZW50RmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEltYWdlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RGb3JtUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgTGlzdFZpZXdGb3JtUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgQWRkRm9ybVJlY29yZENvbXBvbmVudCxcclxuICAgIFZpZXdGb3JtUmVjb3JkQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZUZpZWxkQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZUZpZWxkRml4Q29tcG9uZW50LFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIEFkZEZvcm11bGFDb21wb25lbnQsXHJcbiAgICBEaWFsb2dEYXRhRXhhbXBsZURpYWxvZyxcclxuICAgIFJlcGFpckZvcm1GaWVsZHNDb21wb25lbnQsXHJcbiAgICBTaW5nbGVSZWNvcmRDb21wb25lbnQsXHJcbiAgICBGaWx0ZXJGb3JtU3RhdGlzdGljQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY01vZHVsZUZpbHRlckZpeENvbXBvbmVudCxcclxuICAgIER5bmFtaWNNb2R1bGVUcmlnZ2VyRml4Q29tcG9uZW50LFxyXG4gICAgVGV4dEZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTnVtZXJpY0ZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQm9vbGVhbkZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgRGF0ZUZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdFZhbHVlRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgQXR0YWNobWVudEZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VGaWx0ZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIExpc3RGb3JtUmVjb3JkRmlsdGVyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBHcmFwaHNDb21wb25lbnQsXHJcbiAgICBHcmFwaENvbXBvbmVudCxcclxuICAgIEltYWdlRmllbGRTZWxlY3RvclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGFiZWxGaWVsZFRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VTZWxlY3RvckZpbHRlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgVG13SW1hZ2VEcmF3ZXJDb21wb25lbnQsXHJcbiAgICBJbWFnZVdpdGhNYXJrZXJzRmllbGRUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFRtd0ltYWdlTWFya2VyQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0xvYWRlckRpcmVjdGl2ZSxcclxuICAgIERiZ2V0dGVyQ29tcG9uZW50LFxyXG4gICAgVHJpZ2dlckNyZWF0b3JDb21wb25lbnQsXHJcbiAgICBUZXh0VHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTnVtZXJpY1RyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIEJvb2xlYW5UcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBEYXRlVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgTGlzdFZhbHVlVHJpZ2dlclRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgVGV4dGFyZWFUcmlnZ2VyVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICBMaXN0Rm9ybVJlY29yZFRyaWdnZXJUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgIFNwZWVjaFRvVGV4dERpcmVjdGl2ZVxyXG5cclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRXFwVGFibGVNb2R1bGUsXHJcbiAgICBFcXBBdHRhY2htZW50c01vZHVsZSxcclxuICAgIEVxcFNlbGVjdE1vZHVsZSxcclxuICAgIEVxcERhdGV0aW1lcGlja2VyTW9kdWxlLFxyXG4gICAgRXFwRmlsdGVyc01vZHVsZSxcclxuICAgIEVxcEltZ0RyYXdpbmdNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIEVxcE51bWVyaWNNb2R1bGUuZm9yUm9vdChjdXN0b21OdW1lcmljTWFza0NvbmZpZyksXHJcbiAgICBDYW52YXNKU0FuZ3VsYXJTdG9ja0NoYXJ0c01vZHVsZSxcclxuICAgIFRtd1BpY2tlck1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRXFwRHluYW1pY01vZHVsZUNvbXBvbmVudCxcclxuICAgIEVxcER5bmFtaWNNb2R1bGVDb25maWd1cmF0b3JDb21wb25lbnQsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIENhbnZhc0pTQ2hhcnQsXHJcbiAgICBDYW52YXNKU1N0b2NrQ2hhcnQsXHJcbiAgICBEeW5hbWljTG9hZGVyRGlyZWN0aXZlLFxyXG4gICAgVG13UGlja2VyTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXFwRHluYW1pY01vZHVsZU1vZHVsZSB7IH1cclxuIl19
@@ -1,6 +1,10 @@
1
1
  import { BaseField } from "../baseField.model";
2
2
  /**Rappresenta la configurazione di un campo Data o Data e ora, o solo ora */
3
3
  export class DateField extends BaseField {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.DateFormat = "dd/MM/YYYY";
7
+ }
4
8
  }
5
9
  export var DateTimeTypeEnum;
6
10
  (function (DateTimeTypeEnum) {
@@ -8,4 +12,4 @@ export var DateTimeTypeEnum;
8
12
  DateTimeTypeEnum[DateTimeTypeEnum["Solo orario"] = 2] = "Solo orario";
9
13
  DateTimeTypeEnum[DateTimeTypeEnum["Data e ora"] = 3] = "Data e ora";
10
14
  })(DateTimeTypeEnum || (DateTimeTypeEnum = {}));
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUZpZWxkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvbW9kZWxzL2ZpZWxkcy9kYXRlRmllbGQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLDZFQUE2RTtBQUM3RSxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQVM7Q0FLdkM7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLGlFQUFlLENBQUE7SUFDZixxRUFBaUIsQ0FBQTtJQUNqQixtRUFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VGaWVsZCB9IGZyb20gXCIuLi9iYXNlRmllbGQubW9kZWxcIjtcclxuXHJcbi8qKlJhcHByZXNlbnRhIGxhIGNvbmZpZ3VyYXppb25lIGRpIHVuIGNhbXBvIERhdGEgbyBEYXRhIGUgb3JhLCBvIHNvbG8gb3JhICovXHJcbmV4cG9ydCBjbGFzcyBEYXRlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xyXG4gICAgSXNPbmx5RGF0ZTogRGF0ZVRpbWVUeXBlRW51bTtcclxuICAgIE1pbkRhdGU6IERhdGU7XHJcbiAgICBNYXhEYXRlOiBEYXRlO1xyXG4gICAgRGF0ZUZvcm1hdDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRlVGltZVR5cGVFbnVtIHtcclxuICAgIFwiU29sbyBkYXRhXCIgPSAxLFxyXG4gICAgXCJTb2xvIG9yYXJpb1wiID0gMixcclxuICAgIFwiRGF0YSBlIG9yYVwiID0gM1xyXG59Il19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUZpZWxkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvbW9kZWxzL2ZpZWxkcy9kYXRlRmllbGQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLDZFQUE2RTtBQUM3RSxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQVM7SUFBeEM7O1FBSUksZUFBVSxHQUFVLFlBQVksQ0FBQztJQUNyQyxDQUFDO0NBQUE7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLGlFQUFlLENBQUE7SUFDZixxRUFBaUIsQ0FBQTtJQUNqQixtRUFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VGaWVsZCB9IGZyb20gXCIuLi9iYXNlRmllbGQubW9kZWxcIjtcclxuXHJcbi8qKlJhcHByZXNlbnRhIGxhIGNvbmZpZ3VyYXppb25lIGRpIHVuIGNhbXBvIERhdGEgbyBEYXRhIGUgb3JhLCBvIHNvbG8gb3JhICovXHJcbmV4cG9ydCBjbGFzcyBEYXRlRmllbGQgZXh0ZW5kcyBCYXNlRmllbGQge1xyXG4gICAgSXNPbmx5RGF0ZTogRGF0ZVRpbWVUeXBlRW51bTtcclxuICAgIE1pbkRhdGU6IERhdGU7XHJcbiAgICBNYXhEYXRlOiBEYXRlO1xyXG4gICAgRGF0ZUZvcm1hdDogc3RyaW5nID1cImRkL01NL1lZWVlcIjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGF0ZVRpbWVUeXBlRW51bSB7XHJcbiAgICBcIlNvbG8gZGF0YVwiID0gMSxcclxuICAgIFwiU29sbyBvcmFyaW9cIiA9IDIsXHJcbiAgICBcIkRhdGEgZSBvcmFcIiA9IDNcclxufSJdfQ==
@@ -2,6 +2,7 @@ import { Injectable } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common/http";
4
4
  export class GlobalService {
5
+ //#endregion variabili microfono
5
6
  constructor(http) {
6
7
  this.http = http;
7
8
  }
@@ -27,6 +28,8 @@ export class GlobalService {
27
28
  }
28
29
  }
29
30
  GlobalService.debugMode = false;
31
+ //#region variabili microfono
32
+ GlobalService.isSpeechToTextStarted = false;
30
33
  GlobalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GlobalService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
31
34
  GlobalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GlobalService, providedIn: 'root' });
32
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GlobalService, decorators: [{
@@ -35,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
35
38
  providedIn: 'root'
36
39
  }]
37
40
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFlLEVBQUUsT0FBYTtRQUM1QyxJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUM7WUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLE1BQU0sQ0FBRSxrQkFBa0IsQ0FBQyxXQUFtQjtRQUM1QyxNQUFNLFVBQVUsR0FBOEIsRUFBRSxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBRyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztnQkFDbkIsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMvQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO2dCQUMxQixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQy9DO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOztBQXhCYSx1QkFBUyxHQUFHLEtBQUssQ0FBQzsyR0FGckIsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkZWJ1Z01vZGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGVidWdMb2cobWVzc2FnZTogc3RyaW5nLCBlbGVtZW50PzogYW55KXtcclxuICAgIGlmKHRoaXMuZGVidWdNb2RlKXtcclxuICAgICAgY29uc29sZS5sb2cobWVzc2FnZSwgZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL2tleTF8dmFsdWUxIDsga2V5MiB8IHZhbHVlMlxyXG4gIHN0YXRpYyAgc3RyaW5nVG9WYWx1ZVBhaXJzKHZhbHVlU3RyaW5nOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcclxuICAgIGNvbnN0IHZhbHVlUGFpcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgIGNvbnN0IGtleXZhbHMgPSB2YWx1ZVN0cmluZy5zcGxpdChcIjtcIik7XHJcbiAgICBrZXl2YWxzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgY29uc3QgcGFydHMgPSB4LnNwbGl0KFwifFwiKTtcclxuICAgICAgaWYocGFydHMubGVuZ3RoID09IDEpe1xyXG4gICAgICAgIHZhbHVlUGFpcnNbcGFydHNbMF0udHJpbSgpXSA9IHBhcnRzWzBdLnRyaW0oKTtcclxuICAgICAgfSBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPiAxKXtcclxuICAgICAgICB2YWx1ZVBhaXJzW3BhcnRzWzBdLnRyaW0oKV0gPSBwYXJ0c1sxXS50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gdmFsdWVQYWlycztcclxuICB9XHJcbn1cclxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGFBQWE7SUFPeEIsZ0NBQWdDO0lBRWhDLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZSxFQUFFLE9BQWE7UUFDNUMsSUFBRyxJQUFJLENBQUMsU0FBUyxFQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixNQUFNLENBQUUsa0JBQWtCLENBQUMsV0FBbUI7UUFDNUMsTUFBTSxVQUFVLEdBQThCLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUM7Z0JBQ25CLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDL0M7aUJBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDMUIsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMvQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7QUE3QmEsdUJBQVMsR0FBRyxLQUFLLENBQUM7QUFFaEMsNkJBQTZCO0FBQ3RCLG1DQUFxQixHQUFHLEtBQUssQ0FBQTsyR0FMekIsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNwZWVjaFRvVGV4dERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9saWIvZGlyZWN0aXZlcy9zcGVlY2gtdG8tdGV4dC9zcGVlY2gtdG8tdGV4dC5kaXJlY3RpdmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbFNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGRlYnVnTW9kZSA9IGZhbHNlO1xyXG4gIFxyXG4gIC8vI3JlZ2lvbiB2YXJpYWJpbGkgbWljcm9mb25vXHJcbiAgc3RhdGljIGlzU3BlZWNoVG9UZXh0U3RhcnRlZCA9IGZhbHNlXHJcbiAgc3RhdGljIHNwZWVjaERpcmVjdGl2ZSA6IFNwZWVjaFRvVGV4dERpcmVjdGl2ZVxyXG4gIC8vI2VuZHJlZ2lvbiB2YXJpYWJpbGkgbWljcm9mb25vXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRlYnVnTG9nKG1lc3NhZ2U6IHN0cmluZywgZWxlbWVudD86IGFueSl7XHJcbiAgICBpZih0aGlzLmRlYnVnTW9kZSl7XHJcbiAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9rZXkxfHZhbHVlMSA7IGtleTIgfCB2YWx1ZTJcclxuICBzdGF0aWMgIHN0cmluZ1RvVmFsdWVQYWlycyh2YWx1ZVN0cmluZzogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XHJcbiAgICBjb25zdCB2YWx1ZVBhaXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICBjb25zdCBrZXl2YWxzID0gdmFsdWVTdHJpbmcuc3BsaXQoXCI7XCIpO1xyXG4gICAga2V5dmFscy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0geC5zcGxpdChcInxcIik7XHJcbiAgICAgIGlmKHBhcnRzLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICB2YWx1ZVBhaXJzW3BhcnRzWzBdLnRyaW0oKV0gPSBwYXJ0c1swXS50cmltKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgdmFsdWVQYWlyc1twYXJ0c1swXS50cmltKCldID0gcGFydHNbMV0udHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHZhbHVlUGFpcnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==