@piserve-tech/form-submission 1.3.272 → 1.3.274

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 (24) hide show
  1. package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +66 -47
  2. package/esm2022/form-fields/hidden-field/hidden-field.component.mjs +9 -4
  3. package/esm2022/form-fields/number-fields/number-fields.component.mjs +6 -1
  4. package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +21 -8
  5. package/esm2022/form-fields/text-fields/text-fields.component.mjs +8 -3
  6. package/esm2022/form-submission/submit-form/submit-form.component.mjs +12 -3
  7. package/esm2022/models/answer.model.mjs +1 -1
  8. package/esm2022/models/whenClause.model.mjs +1 -1
  9. package/esm2022/question/card-subform/card-subform.component.mjs +23 -2
  10. package/esm2022/question/inline-multiple-subform/inline-multiple-subform.component.mjs +14 -2
  11. package/esm2022/services/form.service.mjs +1 -2
  12. package/esm2022/services/mapper.service.mjs +17 -4
  13. package/esm2022/services/whenClause.service.mjs +157 -35
  14. package/fesm2022/piserve-tech-form-submission.mjs +337 -117
  15. package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
  16. package/form-fields/file-picker-fields/file-picker-fields.component.d.ts +9 -7
  17. package/form-fields/hidden-field/hidden-field.component.d.ts +3 -1
  18. package/form-fields/text-area-fields/text-area-fields.component.d.ts +3 -1
  19. package/models/answer.model.d.ts +1 -0
  20. package/models/whenClause.model.d.ts +1 -0
  21. package/package.json +1 -1
  22. package/question/card-subform/card-subform.component.d.ts +1 -0
  23. package/question/inline-multiple-subform/inline-multiple-subform.component.d.ts +1 -0
  24. package/services/mapper.service.d.ts +1 -0
@@ -3,13 +3,15 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../services/validation.service";
4
4
  import * as i2 from "../../services/element-tracker.service";
5
5
  import * as i3 from "../../services/data.service";
6
- import * as i4 from "@angular/common";
7
- import * as i5 from "@piserve-tech/file-upload";
6
+ import * as i4 from "../../services/whenClause.service";
7
+ import * as i5 from "@angular/common";
8
+ import * as i6 from "@piserve-tech/file-upload";
8
9
  export class FilePickerFieldsComponent {
9
- constructor(validationService, tracker, dataService) {
10
+ constructor(validationService, tracker, dataService, whenClauseService) {
10
11
  this.validationService = validationService;
11
12
  this.tracker = tracker;
12
13
  this.dataService = dataService;
14
+ this.whenClauseService = whenClauseService;
13
15
  this.question = {};
14
16
  this.inLine = false;
15
17
  this.inCard = false;
@@ -38,45 +40,6 @@ export class FilePickerFieldsComponent {
38
40
  this.apiUrl = data + '/api/cdn/preview?url=';
39
41
  });
40
42
  }
41
- handleFileTypeNotAllowed(fileType) {
42
- this.validationFailed = true;
43
- this.validationMessage = 'File type not allowed';
44
- this.clearValidationMessageAfterTimeout();
45
- }
46
- handleFileSize(event) {
47
- this.validationFailed = true;
48
- if (event === 'File size exceeds the limit') {
49
- this.validationMessage = `${event} ${this.initialFileSize} ${this.fileSizeUnit}`;
50
- }
51
- else if (event === 'Total size exceeds the limit') {
52
- this.validationMessage = `${event} ${this.initialTotalSize} ${this.fileSizeUnit}`;
53
- }
54
- else {
55
- this.validationMessage = event;
56
- }
57
- this.clearValidationMessageAfterTimeout();
58
- }
59
- clearValidationMessageAfterTimeout() {
60
- if (this.timeoutId) {
61
- clearTimeout(this.timeoutId);
62
- }
63
- this.timeoutId = setTimeout(() => {
64
- this.validationMessage = '';
65
- this.validationFailed = false;
66
- this.timeoutId = null;
67
- }, 5000);
68
- }
69
- handleFinalArray(fileType) {
70
- const extractedData = fileType.map((item) => ({
71
- name: item._file.name,
72
- size: item._file.size,
73
- type: item._file.type,
74
- }));
75
- const jsonString = JSON.stringify(extractedData);
76
- this.question.answer = fileType;
77
- this.answerChange.emit({ answer: this.question.answer, maxPossibleScore: 0 });
78
- this.validationService.clearInvalid(this.buildElementId());
79
- }
80
43
  ngOnInit() {
81
44
  this.valueAssigned();
82
45
  }
@@ -100,6 +63,9 @@ export class FilePickerFieldsComponent {
100
63
  this.files = this.question.answer;
101
64
  }
102
65
  this.attachments = this.question?.attachments;
66
+ setTimeout(() => {
67
+ this.whenClauseService.setQuestionAnswer(this.question.id, this.attachments.length, true);
68
+ });
103
69
  this.convertUrl();
104
70
  }
105
71
  convertUrl() {
@@ -121,6 +87,34 @@ export class FilePickerFieldsComponent {
121
87
  };
122
88
  return size * (units[unit.toUpperCase()] || 1);
123
89
  }
90
+ handleFileTypeNotAllowed(fileType) {
91
+ this.validationFailed = true;
92
+ this.validationMessage = 'File type not allowed';
93
+ this.clearValidationMessageAfterTimeout();
94
+ }
95
+ handleFileSize(event) {
96
+ this.validationFailed = true;
97
+ if (event === 'File size exceeds the limit') {
98
+ this.validationMessage = `${event} ${this.initialFileSize} ${this.fileSizeUnit}`;
99
+ }
100
+ else if (event === 'Total size exceeds the limit') {
101
+ this.validationMessage = `${event} ${this.initialTotalSize} ${this.fileSizeUnit}`;
102
+ }
103
+ else {
104
+ this.validationMessage = event;
105
+ }
106
+ this.clearValidationMessageAfterTimeout();
107
+ }
108
+ clearValidationMessageAfterTimeout() {
109
+ if (this.timeoutId) {
110
+ clearTimeout(this.timeoutId);
111
+ }
112
+ this.timeoutId = setTimeout(() => {
113
+ this.validationMessage = '';
114
+ this.validationFailed = false;
115
+ this.timeoutId = null;
116
+ }, 5000);
117
+ }
124
118
  onFileChange(event) {
125
119
  const file = event.target.files[0];
126
120
  this.selectedFile = file;
@@ -128,11 +122,36 @@ export class FilePickerFieldsComponent {
128
122
  this.question.answer = this.selectedFiles;
129
123
  this.answerChange.emit({ answer: this.question.answer, maxPossibleScore: 0 });
130
124
  }
125
+ handleFinalArray(fileType) {
126
+ const extractedData = fileType.map((item) => ({
127
+ name: item._file.name,
128
+ size: item._file.size,
129
+ type: item._file.type,
130
+ }));
131
+ const jsonString = JSON.stringify(extractedData);
132
+ this.question.answer = fileType;
133
+ const fileLength = fileType.length;
134
+ setTimeout(() => {
135
+ this.whenClauseService.setQuestionAnswer(this.question.id, fileLength);
136
+ });
137
+ this.answerChange.emit({ answer: this.question.answer, maxPossibleScore: 0 });
138
+ this.validationService.clearInvalid(this.buildElementId());
139
+ }
131
140
  deleteFiles(event) {
132
141
  this.question.deleteFiles = event;
133
142
  this.question.attachments = this.question.attachments.filter((item) => {
134
143
  return !event.includes(item.fileId);
135
144
  });
145
+ setTimeout(() => {
146
+ // Check current file count after delay
147
+ const attachmentsLength = this.question?.attachments?.length || 0;
148
+ const currentFileCount = this.question?.answer?.length || 0;
149
+ // Only call when clause if no new files were added recently
150
+ // (assuming handleFinalArray would have updated this.question.answer)
151
+ if (attachmentsLength === currentFileCount) {
152
+ this.whenClauseService.setQuestionAnswer(this.question.id, attachmentsLength);
153
+ }
154
+ }, 50);
136
155
  this.inlineDeleteFiles.emit(this.question.deleteFiles);
137
156
  }
138
157
  handleValidation(isValid, message = 'This field is required') {
@@ -168,13 +187,13 @@ export class FilePickerFieldsComponent {
168
187
  this.tracker.unregisterElement(this.elementId);
169
188
  }
170
189
  }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerFieldsComponent, deps: [{ token: i1.ValidationService }, { token: i2.ElementTrackerService }, { token: i3.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: { question: "question", inLine: "inLine", inCard: "inCard", submissionIndex: "submissionIndex" }, outputs: { answerChange: "answerChange", inlineDeleteFiles: "inlineDeleteFiles" }, ngImport: i0, template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"(inLine || inCard) ? 'question-' + submissionIndex + '-' + question.id : 'question-' + question.id\"\n [attr.name]=\"question.testElementName\"\n>\n <div class=\"input-wrapper mb-2\" *ngIf=\"!inLine\">\n <div *ngIf=\"question.questionNumber\" [innerHTML]=\"question.questionNumber\"></div>\n <span *ngIf=\"question.questionNumber\" class=\"space\"></span> <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-docUpload\n [totalSize]=\"totalFileSize\"\n [fileAllowed]=\"fileTypes\"\n [multiple]=\"multiFileUploads\"\n [fileSize]=\"fileSize\"\n [files]=\"files\"\n [avatarPicker]=\"avatarPicker\"\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\n (fileSizeAllowed)=\"handleFileSize($event)\"\n (finalArray)=\"handleFinalArray($event)\"\n [attachments]=\"attachments\"\n (deleteFiles)=\"deleteFiles($event)\"\n ></lib-docUpload>\n\n <div *ngIf=\"isInvalid && (!inLine || (!question.answer||!attachments))\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger error-message\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.space{width:5px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.DocUploadComponent, selector: "lib-docUpload", inputs: ["totalSize", "fileAllowed", "multiple", "avatarPicker", "attachments", "files", "fileSize"], outputs: ["fileTypeNotAllowed", "fileSizeAllowed", "finalArray", "deleteFiles"] }] }); }
190
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerFieldsComponent, deps: [{ token: i1.ValidationService }, { token: i2.ElementTrackerService }, { token: i3.DataService }, { token: i4.WhenClauseService }], target: i0.ɵɵFactoryTarget.Component }); }
191
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: { question: "question", inLine: "inLine", inCard: "inCard", submissionIndex: "submissionIndex" }, outputs: { answerChange: "answerChange", inlineDeleteFiles: "inlineDeleteFiles" }, ngImport: i0, template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"(inLine || inCard) ? 'question-' + submissionIndex + '-' + question.id : 'question-' + question.id\"\n [attr.name]=\"question.testElementName\"\n>\n <div class=\"input-wrapper mb-2\" *ngIf=\"!inLine\">\n <div *ngIf=\"question.questionNumber\" [innerHTML]=\"question.questionNumber\"></div>\n <span *ngIf=\"question.questionNumber\" class=\"space\"></span> <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"question?.required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-docUpload\n [totalSize]=\"totalFileSize\"\n [fileAllowed]=\"fileTypes\"\n [multiple]=\"multiFileUploads\"\n [fileSize]=\"fileSize\"\n [files]=\"files\"\n [avatarPicker]=\"avatarPicker\"\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\n (fileSizeAllowed)=\"handleFileSize($event)\"\n (finalArray)=\"handleFinalArray($event)\"\n [attachments]=\"attachments\"\n (deleteFiles)=\"deleteFiles($event)\"\n ></lib-docUpload>\n\n <div *ngIf=\"isInvalid && (!inLine || (!question.answer||!attachments))\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger error-message\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.space{width:5px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DocUploadComponent, selector: "lib-docUpload", inputs: ["totalSize", "fileAllowed", "multiple", "avatarPicker", "attachments", "files", "fileSize"], outputs: ["fileTypeNotAllowed", "fileSizeAllowed", "finalArray", "deleteFiles"] }] }); }
173
192
  }
174
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilePickerFieldsComponent, decorators: [{
175
194
  type: Component,
176
- args: [{ selector: 'lib-file-picker-fields', template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"(inLine || inCard) ? 'question-' + submissionIndex + '-' + question.id : 'question-' + question.id\"\n [attr.name]=\"question.testElementName\"\n>\n <div class=\"input-wrapper mb-2\" *ngIf=\"!inLine\">\n <div *ngIf=\"question.questionNumber\" [innerHTML]=\"question.questionNumber\"></div>\n <span *ngIf=\"question.questionNumber\" class=\"space\"></span> <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-docUpload\n [totalSize]=\"totalFileSize\"\n [fileAllowed]=\"fileTypes\"\n [multiple]=\"multiFileUploads\"\n [fileSize]=\"fileSize\"\n [files]=\"files\"\n [avatarPicker]=\"avatarPicker\"\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\n (fileSizeAllowed)=\"handleFileSize($event)\"\n (finalArray)=\"handleFinalArray($event)\"\n [attachments]=\"attachments\"\n (deleteFiles)=\"deleteFiles($event)\"\n ></lib-docUpload>\n\n <div *ngIf=\"isInvalid && (!inLine || (!question.answer||!attachments))\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger error-message\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.space{width:5px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}\n"] }]
177
- }], ctorParameters: function () { return [{ type: i1.ValidationService }, { type: i2.ElementTrackerService }, { type: i3.DataService }]; }, propDecorators: { question: [{
195
+ args: [{ selector: 'lib-file-picker-fields', template: "<div\n [ngClass]=\"{ 'mb-4': !inLine }\"\n class=\"px-3\"\n [id]=\"(inLine || inCard) ? 'question-' + submissionIndex + '-' + question.id : 'question-' + question.id\"\n [attr.name]=\"question.testElementName\"\n>\n <div class=\"input-wrapper mb-2\" *ngIf=\"!inLine\">\n <div *ngIf=\"question.questionNumber\" [innerHTML]=\"question.questionNumber\"></div>\n <span *ngIf=\"question.questionNumber\" class=\"space\"></span> <label>{{ question.question }}</label\n >&nbsp;\n <span class=\"text-danger\" *ngIf=\"question?.required\">*</span>\n <div\n class=\"svg-wrapper mb-2 hintIcon\"\n [attr.data-title]=\"hint\"\n *ngIf=\"hint\"\n >\n <svg\n class=\"hintSvg\"\n viewBox=\"0 0 30 30\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15 26.25V26.25C8.78625 26.25 3.75 21.2138 3.75 15V15C3.75 8.78625 8.78625 3.75 15 3.75V3.75C21.2138 3.75 26.25 8.78625 26.25 15V15C26.25 21.2138 21.2138 26.25 15 26.25Z\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15 16.5623V16.2498C15 15.2285 15.6312 14.6748 16.2637 14.2498C16.8812 13.8335 17.5 13.291 17.5 12.291C17.5 10.9098 16.3813 9.79102 15 9.79102C13.6187 9.79102 12.5 10.9098 12.5 12.291\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.9988 20C14.8263 20 14.6863 20.14 14.6875 20.3125C14.6875 20.485 14.8275 20.625 15 20.625C15.1725 20.625 15.3125 20.485 15.3125 20.3125C15.3125 20.14 15.1725 20 14.9988 20\"\n stroke=\"#323232\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n <lib-docUpload\n [totalSize]=\"totalFileSize\"\n [fileAllowed]=\"fileTypes\"\n [multiple]=\"multiFileUploads\"\n [fileSize]=\"fileSize\"\n [files]=\"files\"\n [avatarPicker]=\"avatarPicker\"\n (fileTypeNotAllowed)=\"handleFileTypeNotAllowed($event)\"\n (fileSizeAllowed)=\"handleFileSize($event)\"\n (finalArray)=\"handleFinalArray($event)\"\n [attachments]=\"attachments\"\n (deleteFiles)=\"deleteFiles($event)\"\n ></lib-docUpload>\n\n <div *ngIf=\"isInvalid && (!inLine || (!question.answer||!attachments))\" class=\"error-message\">\n {{ errorMessage }}\n </div>\n <div *ngIf=\"validationFailed && !isInvalid\" class=\"text-danger error-message\">\n <svg\n class=\"validationSvg\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.001 16.75C12.139 16.75 12.251 16.638 12.25 16.5C12.25 16.362 12.138 16.25 12 16.25C11.862 16.25 11.75 16.362 11.75 16.5C11.75 16.638 11.862 16.75 12.001 16.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 21C7.029 21 3 16.971 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21Z\"\n fill=\"#FF0000\"\n stroke=\"#FF0000\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 12.75L12 7.75\"\n stroke=\"white\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"white\" />\n </svg>\n {{ validationMessage }}\n </div>\n</div>\n", styles: [".input-wrapper{display:flex;align-items:flex-start}.svg-wrapper{margin-inline-start:auto;z-index:999}.hintIcon{position:relative;cursor:pointer}.hintIcon:hover:before{content:attr(data-title);position:absolute;top:calc(100% + 2px);right:0;padding:4px 8px;border-radius:4px;background-color:#1d252d;color:#8e9aa0;font-size:14px;min-width:300px;word-wrap:break-word;word-break:break-word;text-align:center;white-space:normal}.hintIcon:hover:after{content:\"\";position:absolute;top:calc(100% - 26px);left:50%;border:solid transparent;border-width:18px;border-bottom-color:#1d252d;transform:translate(-50%)}.height{height:42px}.invalid{border-color:red}.hintSvg{width:30px;height:30px;fill:none}.validationSvg{width:24px;height:24px;fill:none}::ng-deep html lib-formSubmission{font-family:var(--library-font-family)!important;font-size:var(--library-font-size)!important}::ng-deep .timepicker-overlay{z-index:1000!important}::ng-deep .timepicker-backdrop-overlay{z-index:1000!important}.space{width:5px}.error-message{color:#f44336;font-size:.8em;margin-top:4px;padding:0 8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.fileInput{position:relative;height:44px;width:111px;background:#d3d3d3;border-radius:6px;padding:0 16px;display:flex;align-items:center;justify-content:center;cursor:pointer}.fileInput input{opacity:0;position:absolute;left:0;top:0;width:100%;height:inherit}.invalid-question{border:2px solid #f44336;border-radius:4px;padding:8px;margin-bottom:4px}\n"] }]
196
+ }], ctorParameters: function () { return [{ type: i1.ValidationService }, { type: i2.ElementTrackerService }, { type: i3.DataService }, { type: i4.WhenClauseService }]; }, propDecorators: { question: [{
178
197
  type: Input
179
198
  }], inLine: [{
180
199
  type: Input
@@ -187,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
187
206
  }], inlineDeleteFiles: [{
188
207
  type: Output
189
208
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvZmlsZS1waWNrZXItZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy9maWxlLXBpY2tlci1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQWdCdkUsTUFBTSxPQUFPLHlCQUF5QjtJQTZCcEMsWUFDWSxpQkFBb0MsRUFDcEMsT0FBOEIsRUFDOUIsV0FBd0I7UUFGeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQS9CM0IsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBOEMsQ0FBQztRQUM5RSxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXRELFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUNqQyxjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIs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SztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWxlbWVudFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC10cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnQge1xuICBmaWxlSWQ6IHN0cmluZztcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZmlsZVVybDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZmlsZS1waWNrZXItZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtcGlja2VyLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlUGlja2VyRmllbGRzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueSA9IHt9O1xuICBASW5wdXQoKSBpbkxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaW5DYXJkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb25JbmRleCE6IG51bWJlcjtcbiAgQE91dHB1dCgpIGFuc3dlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBhbnN3ZXI6IGFueTsgbWF4UG9zc2libGVTY29yZT86IG51bWJlciB9PigpO1xuICBAT3V0cHV0KCkgaW5saW5lRGVsZXRlRmlsZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIG11bHRpRmlsZVVwbG9hZHM6IGJvb2xlYW4gPSB0cnVlO1xuICBmaWxlVHlwZXM6IHN0cmluZ1tdID0gW107XG4gIGZpbGVTaXplOiBudW1iZXIgPSAwO1xuICBmaWxlU2l6ZVVuaXQ6IHN0cmluZyA9ICcnO1xuICB0b3RhbEZpbGVTaXplOiBudW1iZXIgPSAwO1xuICBpbml0aWFsRmlsZVNpemU6IG51bWJlciA9IDA7XG4gIGluaXRpYWxUb3RhbFNpemU6IG51bWJlciA9IDA7XG4gIGRyYWdBbmREcm9wOiBib29sZWFuID0gZmFsc2U7XG4gIHByZXZpZXdVcGxvYWRlZEZpbGVzOiBib29sZWFuID0gdHJ1ZTtcbiAgdmFsaWRhdGlvbkZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50W10gPSBbXTtcbiAgdGltZW91dElkOiBhbnk7XG5cbiAgYXZhdGFyUGlja2VyOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbGVzOiBhbnk7XG4gIHByaXZhdGUgZWxlbWVudElkOiBzdHJpbmc9Jyc7XG4gIGFwaVVybDpzdHJpbmcgPSAnJztcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSxcbiAgICAgIHByaXZhdGUgdHJhY2tlcjogRWxlbWVudFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VcbiAgICApIHtcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpVXJsJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5hcGlVcmwgPSBkYXRhKycvYXBpL2Nkbi9wcmV2aWV3P3VybD0nO1xuICAgICAgfSk7XG4gICAgfVxuXG4gIGhhbmRsZUZpbGVUeXBlTm90QWxsb3dlZChmaWxlVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gJ0ZpbGUgdHlwZSBub3QgYWxsb3dlZCc7XG4gICAgdGhpcy5jbGVhclZhbGlkYXRpb25NZXNzYWdlQWZ0ZXJUaW1lb3V0KCk7XG4gIH1cblxuICBoYW5kbGVGaWxlU2l6ZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICBpZiAoZXZlbnQgPT09ICdGaWxlIHNpemUgZXhjZWVkcyB0aGUgbGltaXQnKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYCR7ZXZlbnR9ICR7dGhpcy5pbml0aWFsRmlsZVNpemV9ICR7dGhpcy5maWxlU2l6ZVVuaXR9YDtcbiAgICB9IGVsc2UgaWYgKGV2ZW50ID09PSAnVG90YWwgc2l6ZSBleGNlZWRzIHRoZSBsaW1pdCcpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgJHtldmVudH0gJHt0aGlzLmluaXRpYWxUb3RhbFNpemV9ICR7dGhpcy5maWxlU2l6ZVVuaXR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGV2ZW50O1xuICAgIH1cbiAgICB0aGlzLmNsZWFyVmFsaWRhdGlvbk1lc3NhZ2VBZnRlclRpbWVvdXQoKTtcbiAgfVxuXG4gIGNsZWFyVmFsaWRhdGlvbk1lc3NhZ2VBZnRlclRpbWVvdXQoKTogdm9pZCB7XG4gIGlmICh0aGlzLnRpbWVvdXRJZCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7XG4gIH1cblxuICB0aGlzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnZhbGlkYXRpb25GYWlsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRpbWVvdXRJZCA9IG51bGw7XG4gIH0sIDUwMDApO1xufVxuXG4gIGhhbmRsZUZpbmFsQXJyYXkoZmlsZVR5cGU6IGFueVtdKTogdm9pZCB7XG5cbiAgICBjb25zdCBleHRyYWN0ZWREYXRhID0gZmlsZVR5cGUubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICBuYW1lOiBpdGVtLl9maWxlLm5hbWUsXG4gICAgICBzaXplOiBpdGVtLl9maWxlLnNpemUsXG4gICAgICB0eXBlOiBpdGVtLl9maWxlLnR5cGUsXG4gICAgfSkpO1xuXG5cbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXh0cmFjdGVkRGF0YSk7XG4gICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSBmaWxlVHlwZTtcbiAgICB0aGlzLmFuc3dlckNoYW5nZS5lbWl0KHthbnN3ZXI6dGhpcy5xdWVzdGlvbi5hbnN3ZXIsbWF4UG9zc2libGVTY29yZTowfSk7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5idWlsZEVsZW1lbnRJZCgpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWVBc3NpZ25lZCgpO1xuICB9XG5cbiAgdmFsdWVBc3NpZ25lZCgpIHtcbiAgICB0aGlzLmNvdW50ID0gdGhpcy5xdWVzdGlvbi5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZDtcbiAgICB0aGlzLmhpbnQgPSB0aGlzLnF1ZXN0aW9uLmhpbnQ7XG4gICAgdGhpcy5tdWx0aUZpbGVVcGxvYWRzID1cbiAgICAgIHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5tdWx0aUZpbGVVcGxvYWRzO1xuICAgIHRoaXMuZHJhZ0FuZERyb3AgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuZHJhZ0FuZERyb3A7XG4gICAgdGhpcy5wcmV2aWV3VXBsb2FkZWRGaWxlcyA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UucHJldmlld1VwbG9hZGVkRmlsZXM7XG4gICAgdGhpcy5maWxlVHlwZXMgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24uZmlsZVR5cGVzO1xuICAgIHRoaXMuZmlsZVNpemVVbml0ID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmZpbGVTaXplVW5pdDtcbiAgICB0aGlzLmF2YXRhclBpY2tlciA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5hdmF0YXJQaWNrZXI7XG4gICAgdGhpcy5pbml0aWFsRmlsZVNpemUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24/LmZpbGVTaXplO1xuICAgIHRoaXMuZmlsZVNpemUgPSB0aGlzLmNvbnZlcnRUb0J5dGVzKFxuICAgICAgdGhpcy5pbml0aWFsRmlsZVNpemUsXG4gICAgICB0aGlzLmZpbGVTaXplVW5pdFxuICAgICk7XG4gICAgdGhpcy5pbml0aWFsVG90YWxTaXplID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uPy50b3RhbEZpbGVTaXplO1xuICAgIHRoaXMudG90YWxGaWxlU2l6ZSA9IHRoaXMuY29udmVydFRvQnl0ZXMoXG4gICAgICB0aGlzLmluaXRpYWxUb3RhbFNpemUsXG4gICAgICB0aGlzLmZpbGVTaXplVW5pdFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbi5hbnN3ZXIpIHtcbiAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLnF1ZXN0aW9uLmFuc3dlcjtcbiAgICB9XG5cblxuICAgIHRoaXMuYXR0YWNobWVudHMgPSB0aGlzLnF1ZXN0aW9uPy5hdHRhY2htZW50cztcbiAgICB0aGlzLmNvbnZlcnRVcmwoKTtcbiAgfVxuXG4gIGNvbnZlcnRVcmwoKXtcbiAgICBpZih0aGlzLmF0dGFjaG1lbnRzKXtcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSB0aGlzLmF0dGFjaG1lbnRzLm1hcChhdHRhY2htZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5hdHRhY2htZW50LFxuICAgICAgICAgIGZpbGVVcmw6IHRoaXMuYXBpVXJsK2F0dGFjaG1lbnQuZmlsZVVybC5yZXBsYWNlKC9cXC8vZywgXCIlMkZcIilcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnZlcnRUb0J5dGVzKHNpemU6IG51bWJlciwgdW5pdDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB1bml0czogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHtcbiAgICAgIEI6IDEsXG4gICAgICBLQjogMTAyNCxcbiAgICAgIE1COiAxMDI0ICogMTAyNCxcbiAgICAgIEdCOiAxMDI0ICogMTAyNCAqIDEwMjQsXG4gICAgfTtcbiAgICByZXR1cm4gc2l6ZSAqICh1bml0c1t1bml0LnRvVXBwZXJDYXNlKCldIHx8IDEpO1xuICB9XG5cbiAgc2VsZWN0ZWRGaWxlITogRmlsZTtcbiAgc2VsZWN0ZWRGaWxlczogYW55ID0gW107XG5cbiAgb25GaWxlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZXMucHVzaCh0aGlzLnNlbGVjdGVkRmlsZSk7XG4gICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSB0aGlzLnNlbGVjdGVkRmlsZXM7XG4gICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh7YW5zd2VyOnRoaXMucXVlc3Rpb24uYW5zd2VyLG1heFBvc3NpYmxlU2NvcmU6MH0pO1xuICB9XG4gIGRlbGV0ZUZpbGVzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmRlbGV0ZUZpbGVzID0gZXZlbnQ7XG4gICAgdGhpcy5xdWVzdGlvbi5hdHRhY2htZW50cyA9IHRoaXMucXVlc3Rpb24uYXR0YWNobWVudHMuZmlsdGVyKFxuICAgICAgKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gIWV2ZW50LmluY2x1ZGVzKGl0ZW0uZmlsZUlkKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuaW5saW5lRGVsZXRlRmlsZXMuZW1pdCh0aGlzLnF1ZXN0aW9uLmRlbGV0ZUZpbGVzKTtcbiAgfVxuXG4gIGhhbmRsZVZhbGlkYXRpb24oaXNWYWxpZDogYm9vbGVhbiwgbWVzc2FnZTogc3RyaW5nID0gJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKSB7XG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoaXMudmFsaWRhdGlvblNlcnZpY2Uuc2V0SW52YWxpZCh0aGlzLnF1ZXN0aW9uLmlkLCBtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRWxlbWVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmluTGluZSB8fCB0aGlzLmluQ2FyZClcbiAgICAgID8gYCR7dGhpcy5zdWJtaXNzaW9uSW5kZXh9LSR7dGhpcy5xdWVzdGlvbi5pZH1gXG4gICAgICA6IGAke3RoaXMucXVlc3Rpb24uaWR9YDtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UodGhpcy5idWlsZEVsZW1lbnRJZCgpKTtcbiAgfVxuXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5MaW5lIHx8IHRoaXMuaW5DYXJkKSB7XG4gICAgICB0aGlzLmVsZW1lbnRJZCA9IGBxdWVzdGlvbi0ke3RoaXMuc3VibWlzc2lvbkluZGV4fS0ke3RoaXMucXVlc3Rpb24uaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgfVxuICBcbiAgICB0aGlzLnRyYWNrZXIucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnRJZCkge1xuICAgICAgdGhpcy50cmFja2VyLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwieyAnbWItNCc6ICFpbkxpbmUgfVwiXG4gIGNsYXNzPVwicHgtM1wiXG4gIFtpZF09XCIoaW5MaW5lIHx8IGluQ2FyZCkgPyAncXVlc3Rpb24tJyArIHN1Ym1pc3Npb25JbmRleCArICctJyArIHF1ZXN0aW9uLmlkIDogJ3F1ZXN0aW9uLScgKyBxdWVzdGlvbi5pZFwiXG4gIFthdHRyLm5hbWVdPVwicXVlc3Rpb24udGVzdEVsZW1lbnROYW1lXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIgbWItMlwiICpuZ0lmPVwiIWluTGluZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiIFtpbm5lckhUTUxdPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIj48L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCIgY2xhc3M9XCJzcGFjZVwiPjwvc3Bhbj4gPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbFxuICAgID4mbmJzcDtcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzdmctd3JhcHBlciBtYi0yIGhpbnRJY29uXCJcbiAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaGludFwiXG4gICAgICAqbmdJZj1cImhpbnRcIlxuICAgID5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJoaW50U3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAzMCAzMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMTUgMjYuMjVWMjYuMjVDOC43ODYyNSAyNi4yNSAzLjc1IDIxLjIxMzggMy43NSAxNVYxNUMzLjc1IDguNzg2MjUgOC43ODYyNSAzLjc1IDE1IDMuNzVWMy43NUMyMS4yMTM4IDMuNzUgMjYuMjUgOC43ODYyNSAyNi4yNSAxNVYxNUMyNi4yNSAyMS4yMTM4IDIxLjIxMzggMjYuMjUgMTUgMjYuMjVaXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE1IDE2LjU2MjNWMTYuMjQ5OEMxNSAxNS4yMjg1IDE1LjYzMTIgMTQuNjc0OCAxNi4yNjM3IDE0LjI0OThDMTYuODgxMiAxMy44MzM1IDE3LjUgMTMuMjkxIDE3LjUgMTIuMjkxQzE3LjUgMTAuOTA5OCAxNi4zODEzIDkuNzkxMDIgMTUgOS43OTEwMkMxMy42MTg3IDkuNzkxMDIgMTIuNSAxMC45MDk4IDEyLjUgMTIuMjkxXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE0Ljk5ODggMjBDMTQuODI2MyAyMCAxNC42ODYzIDIwLjE0IDE0LjY4NzUgMjAuMzEyNUMxNC42ODc1IDIwLjQ4NSAxNC44Mjc1IDIwLjYyNSAxNSAyMC42MjVDMTUuMTcyNSAyMC42MjUgMTUuMzEyNSAyMC40ODUgMTUuMzEyNSAyMC4zMTI1QzE1LjMxMjUgMjAuMTQgMTUuMTcyNSAyMCAxNC45OTg4IDIwXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGxpYi1kb2NVcGxvYWRcbiAgICBbdG90YWxTaXplXT1cInRvdGFsRmlsZVNpemVcIlxuICAgIFtmaWxlQWxsb3dlZF09XCJmaWxlVHlwZXNcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aUZpbGVVcGxvYWRzXCJcbiAgICBbZmlsZVNpemVdPVwiZmlsZVNpemVcIlxuICAgIFtmaWxlc109XCJmaWxlc1wiXG4gICAgW2F2YXRhclBpY2tlcl09XCJhdmF0YXJQaWNrZXJcIlxuICAgIChmaWxlVHlwZU5vdEFsbG93ZWQpPVwiaGFuZGxlRmlsZVR5cGVOb3RBbGxvd2VkKCRldmVudClcIlxuICAgIChmaWxlU2l6ZUFsbG93ZWQpPVwiaGFuZGxlRmlsZVNpemUoJGV2ZW50KVwiXG4gICAgKGZpbmFsQXJyYXkpPVwiaGFuZGxlRmluYWxBcnJheSgkZXZlbnQpXCJcbiAgICBbYXR0YWNobWVudHNdPVwiYXR0YWNobWVudHNcIlxuICAgIChkZWxldGVGaWxlcyk9XCJkZWxldGVGaWxlcygkZXZlbnQpXCJcbiAgPjwvbGliLWRvY1VwbG9hZD5cblxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkICYmICghaW5MaW5lIHx8ICghcXVlc3Rpb24uYW5zd2VyfHwhYXR0YWNobWVudHMpKVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbGlkYXRpb25GYWlsZWQgJiYgIWlzSW52YWxpZFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgZXJyb3ItbWVzc2FnZVwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IHZhbGlkYXRpb25NZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvZmlsZS1waWNrZXItZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL2ZpbGUtcGlja2VyLWZpZWxkcy9maWxlLXBpY2tlci1maWVsZHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFpQnZFLE1BQU0sT0FBTyx5QkFBeUI7SUErQnBDLFlBQ1ksaUJBQW9DLEVBQ3BDLE9BQThCLEVBQzlCLFdBQXdCLEVBQ3hCLGlCQUFtQztRQUhuQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFsQ3RDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXZCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQThDLENBQUM7UUFDOUUsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV0RCxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFDakMsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQUN6QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3Qix5QkFBb0IsR0FBWSxJQUFJLENBQUM7UUFDckMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUMvQixnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFHL0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdEIsY0FBUyxHQUFTLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVUsRUFBRSxDQUFDO1FBRW5CLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBT3BCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFDLHVCQUF1QixDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDcEUsSUFBSSxDQUFDLG9CQUFvQjtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUN0RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDdEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDakMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO1FBQzVFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FDdEMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsWUFBWSxDQUNsQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQ25DO1FBR0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztRQUM5QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBRyxJQUFJLENBQUMsV0FBVyxFQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ25ELE9BQU87b0JBQ0wsR0FBRyxVQUFVO29CQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7aUJBQzlELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUN2QyxNQUFNLEtBQUssR0FBOEI7WUFDdkMsQ0FBQyxFQUFFLENBQUM7WUFDSixFQUFFLEVBQUUsSUFBSTtZQUNSLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSTtZQUNmLEVBQUUsRUFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUk7U0FDdkIsQ0FBQztRQUNGLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFHSCx3QkFBd0IsQ0FBQyxRQUFnQjtRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztRQUNqRCxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLEtBQUssS0FBSyw2QkFBNkIsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDbEY7YUFBTSxJQUFJLEtBQUssS0FBSyw4QkFBOEIsRUFBRTtZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNuRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFQyxZQUFZLENBQUMsS0FBVTtRQUNyQixNQUFNLElBQUksR0FBUyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFlO1FBQzlCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakQsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7U0FDdEIsQ0FBQyxDQUFDLENBQUM7UUFHSixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBRW5DLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQzFELENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUNGLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsdUNBQXVDO1lBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNsRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFFNUQsNERBQTREO1lBQzVELHNFQUFzRTtZQUN0RSxJQUFJLGlCQUFpQixLQUFLLGdCQUFnQixFQUFFO2dCQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQzthQUMvRTtRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxVQUFrQix3QkFBd0I7UUFDM0UsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxnRUFBZ0U7U0FDakU7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUN6RTthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDakQ7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDOytHQXpOVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwyUENqQnRDLHNySEFtR0E7OzRGRGxGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO3NNQUt6QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50VHJhY2tlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbGVtZW50LXRyYWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBXaGVuQ2xhdXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3doZW5DbGF1c2Uuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudCB7XG4gIGZpbGVJZDogc3RyaW5nO1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBmaWxlVXJsOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWxlLXBpY2tlci1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1waWNrZXItZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVQaWNrZXJGaWVsZHNDb21wb25lbnQge1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55ID0ge307XG4gIEBJbnB1dCgpIGluTGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpbkNhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3VibWlzc2lvbkluZGV4ITogbnVtYmVyO1xuICBAT3V0cHV0KCkgYW5zd2VyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGFuc3dlcjogYW55OyBtYXhQb3NzaWJsZVNjb3JlPzogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBpbmxpbmVEZWxldGVGaWxlcyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBoaW50OiBzdHJpbmcgPSAnJztcbiAgbXVsdGlGaWxlVXBsb2FkczogYm9vbGVhbiA9IHRydWU7XG4gIGZpbGVUeXBlczogc3RyaW5nW10gPSBbXTtcbiAgZmlsZVNpemU6IG51bWJlciA9IDA7XG4gIGZpbGVTaXplVW5pdDogc3RyaW5nID0gJyc7XG4gIHRvdGFsRmlsZVNpemU6IG51bWJlciA9IDA7XG4gIGluaXRpYWxGaWxlU2l6ZTogbnVtYmVyID0gMDtcbiAgaW5pdGlhbFRvdGFsU2l6ZTogbnVtYmVyID0gMDtcbiAgZHJhZ0FuZERyb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmlld1VwbG9hZGVkRmlsZXM6IGJvb2xlYW4gPSB0cnVlO1xuICB2YWxpZGF0aW9uRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXSA9IFtdO1xuICB0aW1lb3V0SWQ6IGFueTtcblxuICBhdmF0YXJQaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsZXM6IGFueTtcbiAgcHJpdmF0ZSBlbGVtZW50SWQ6IHN0cmluZz0nJztcbiAgYXBpVXJsOnN0cmluZyA9ICcnO1xuICBzZWxlY3RlZEZpbGUhOiBGaWxlO1xuICBzZWxlY3RlZEZpbGVzOiBhbnkgPSBbXTtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSxcbiAgICAgIHByaXZhdGUgdHJhY2tlcjogRWxlbWVudFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgICBwcml2YXRlIHdoZW5DbGF1c2VTZXJ2aWNlOldoZW5DbGF1c2VTZXJ2aWNlXG4gICAgKSB7XG4gICAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwaVVybCQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuYXBpVXJsID0gZGF0YSsnL2FwaS9jZG4vcHJldmlldz91cmw9JztcbiAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgICB9XG4gIFxuICAgIHZhbHVlQXNzaWduZWQoKSB7XG4gICAgICB0aGlzLmNvdW50ID0gdGhpcy5xdWVzdGlvbi5jb3VudDtcbiAgICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkO1xuICAgICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgICAgdGhpcy5tdWx0aUZpbGVVcGxvYWRzID1cbiAgICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLm11bHRpRmlsZVVwbG9hZHM7XG4gICAgICB0aGlzLmRyYWdBbmREcm9wID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmRyYWdBbmREcm9wO1xuICAgICAgdGhpcy5wcmV2aWV3VXBsb2FkZWRGaWxlcyA9XG4gICAgICAgIHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQuYXBwZWFyYW5jZS5wcmV2aWV3VXBsb2FkZWRGaWxlcztcbiAgICAgIHRoaXMuZmlsZVR5cGVzID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmZpbGVUeXBlcztcbiAgICAgIHRoaXMuZmlsZVNpemVVbml0ID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLmZpbGVTaXplVW5pdDtcbiAgICAgIHRoaXMuYXZhdGFyUGlja2VyID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmF2YXRhclBpY2tlcjtcbiAgICAgIHRoaXMuaW5pdGlhbEZpbGVTaXplID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uPy5maWxlU2l6ZTtcbiAgICAgIHRoaXMuZmlsZVNpemUgPSB0aGlzLmNvbnZlcnRUb0J5dGVzKFxuICAgICAgICB0aGlzLmluaXRpYWxGaWxlU2l6ZSxcbiAgICAgICAgdGhpcy5maWxlU2l6ZVVuaXRcbiAgICAgICk7XG4gICAgICB0aGlzLmluaXRpYWxUb3RhbFNpemUgPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24/LnRvdGFsRmlsZVNpemU7XG4gICAgICB0aGlzLnRvdGFsRmlsZVNpemUgPSB0aGlzLmNvbnZlcnRUb0J5dGVzKFxuICAgICAgICB0aGlzLmluaXRpYWxUb3RhbFNpemUsXG4gICAgICAgIHRoaXMuZmlsZVNpemVVbml0XG4gICAgICApO1xuICBcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5xdWVzdGlvbi5hbnN3ZXI7XG4gICAgICB9XG4gIFxuICBcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSB0aGlzLnF1ZXN0aW9uPy5hdHRhY2htZW50cztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLndoZW5DbGF1c2VTZXJ2aWNlLnNldFF1ZXN0aW9uQW5zd2VyKHRoaXMucXVlc3Rpb24uaWQsdGhpcy5hdHRhY2htZW50cy5sZW5ndGgsdHJ1ZSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29udmVydFVybCgpO1xuICAgIH1cbiAgXG4gICAgY29udmVydFVybCgpe1xuICAgICAgaWYodGhpcy5hdHRhY2htZW50cyl7XG4gICAgICAgIHRoaXMuYXR0YWNobWVudHMgPSB0aGlzLmF0dGFjaG1lbnRzLm1hcChhdHRhY2htZW50ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYXR0YWNobWVudCxcbiAgICAgICAgICAgIGZpbGVVcmw6IHRoaXMuYXBpVXJsK2F0dGFjaG1lbnQuZmlsZVVybC5yZXBsYWNlKC9cXC8vZywgXCIlMkZcIilcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIGNvbnZlcnRUb0J5dGVzKHNpemU6IG51bWJlciwgdW5pdDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgIGNvbnN0IHVuaXRzOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge1xuICAgICAgICBCOiAxLFxuICAgICAgICBLQjogMTAyNCxcbiAgICAgICAgTUI6IDEwMjQgKiAxMDI0LFxuICAgICAgICBHQjogMTAyNCAqIDEwMjQgKiAxMDI0LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBzaXplICogKHVuaXRzW3VuaXQudG9VcHBlckNhc2UoKV0gfHwgMSk7XG4gICAgfVxuICBcblxuICBoYW5kbGVGaWxlVHlwZU5vdEFsbG93ZWQoZmlsZVR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdGaWxlIHR5cGUgbm90IGFsbG93ZWQnO1xuICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uTWVzc2FnZUFmdGVyVGltZW91dCgpO1xuICB9XG5cbiAgaGFuZGxlRmlsZVNpemUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgaWYgKGV2ZW50ID09PSAnRmlsZSBzaXplIGV4Y2VlZHMgdGhlIGxpbWl0Jykge1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGAke2V2ZW50fSAke3RoaXMuaW5pdGlhbEZpbGVTaXplfSAke3RoaXMuZmlsZVNpemVVbml0fWA7XG4gICAgfSBlbHNlIGlmIChldmVudCA9PT0gJ1RvdGFsIHNpemUgZXhjZWVkcyB0aGUgbGltaXQnKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYCR7ZXZlbnR9ICR7dGhpcy5pbml0aWFsVG90YWxTaXplfSAke3RoaXMuZmlsZVNpemVVbml0fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBldmVudDtcbiAgICB9XG4gICAgdGhpcy5jbGVhclZhbGlkYXRpb25NZXNzYWdlQWZ0ZXJUaW1lb3V0KCk7XG4gIH1cblxuICBjbGVhclZhbGlkYXRpb25NZXNzYWdlQWZ0ZXJUaW1lb3V0KCk6IHZvaWQge1xuICBpZiAodGhpcy50aW1lb3V0SWQpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpO1xuICB9XG5cbiAgdGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gJyc7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gZmFsc2U7XG4gICAgdGhpcy50aW1lb3V0SWQgPSBudWxsO1xuICB9LCA1MDAwKTtcbn0gXG5cbiAgb25GaWxlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZXMucHVzaCh0aGlzLnNlbGVjdGVkRmlsZSk7XG4gICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSB0aGlzLnNlbGVjdGVkRmlsZXM7XG4gICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh7YW5zd2VyOnRoaXMucXVlc3Rpb24uYW5zd2VyLG1heFBvc3NpYmxlU2NvcmU6MH0pO1xuICB9XG5cbiAgaGFuZGxlRmluYWxBcnJheShmaWxlVHlwZTogYW55W10pOiB2b2lkIHtcbiAgICBjb25zdCBleHRyYWN0ZWREYXRhID0gZmlsZVR5cGUubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICBuYW1lOiBpdGVtLl9maWxlLm5hbWUsXG4gICAgICBzaXplOiBpdGVtLl9maWxlLnNpemUsXG4gICAgICB0eXBlOiBpdGVtLl9maWxlLnR5cGUsXG4gICAgfSkpO1xuXG5cbiAgICBjb25zdCBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXh0cmFjdGVkRGF0YSk7XG4gICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSBmaWxlVHlwZTtcbiAgICBjb25zdCBmaWxlTGVuZ3RoID0gZmlsZVR5cGUubGVuZ3RoO1xuICAgIFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy53aGVuQ2xhdXNlU2VydmljZS5zZXRRdWVzdGlvbkFuc3dlcih0aGlzLnF1ZXN0aW9uLmlkLGZpbGVMZW5ndGgpO1xuICAgIH0pO1xuICAgIHRoaXMuYW5zd2VyQ2hhbmdlLmVtaXQoe2Fuc3dlcjp0aGlzLnF1ZXN0aW9uLmFuc3dlcixtYXhQb3NzaWJsZVNjb3JlOjB9KTtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZCh0aGlzLmJ1aWxkRWxlbWVudElkKCkpO1xuICB9XG4gIGRlbGV0ZUZpbGVzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnF1ZXN0aW9uLmRlbGV0ZUZpbGVzID0gZXZlbnQ7XG4gICAgdGhpcy5xdWVzdGlvbi5hdHRhY2htZW50cyA9IHRoaXMucXVlc3Rpb24uYXR0YWNobWVudHMuZmlsdGVyKFxuICAgICAgKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gIWV2ZW50LmluY2x1ZGVzKGl0ZW0uZmlsZUlkKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gQ2hlY2sgY3VycmVudCBmaWxlIGNvdW50IGFmdGVyIGRlbGF5XG4gICAgICBjb25zdCBhdHRhY2htZW50c0xlbmd0aCA9IHRoaXMucXVlc3Rpb24/LmF0dGFjaG1lbnRzPy5sZW5ndGggfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWxlQ291bnQgPSB0aGlzLnF1ZXN0aW9uPy5hbnN3ZXI/Lmxlbmd0aCB8fCAwO1xuICAgICAgXG4gICAgICAvLyBPbmx5IGNhbGwgd2hlbiBjbGF1c2UgaWYgbm8gbmV3IGZpbGVzIHdlcmUgYWRkZWQgcmVjZW50bHlcbiAgICAgIC8vIChhc3N1bWluZyBoYW5kbGVGaW5hbEFycmF5IHdvdWxkIGhhdmUgdXBkYXRlZCB0aGlzLnF1ZXN0aW9uLmFuc3dlcilcbiAgICAgIGlmIChhdHRhY2htZW50c0xlbmd0aCA9PT0gY3VycmVudEZpbGVDb3VudCkge1xuICAgICAgICB0aGlzLndoZW5DbGF1c2VTZXJ2aWNlLnNldFF1ZXN0aW9uQW5zd2VyKHRoaXMucXVlc3Rpb24uaWQsIGF0dGFjaG1lbnRzTGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9LCA1MCk7XG4gICAgdGhpcy5pbmxpbmVEZWxldGVGaWxlcy5lbWl0KHRoaXMucXVlc3Rpb24uZGVsZXRlRmlsZXMpO1xuICB9XG5cbiAgaGFuZGxlVmFsaWRhdGlvbihpc1ZhbGlkOiBib29sZWFuLCBtZXNzYWdlOiBzdHJpbmcgPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpIHtcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5idWlsZEVsZW1lbnRJZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhpcy52YWxpZGF0aW9uU2VydmljZS5zZXRJbnZhbGlkKHRoaXMucXVlc3Rpb24uaWQsIG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRFbGVtZW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuaW5MaW5lIHx8IHRoaXMuaW5DYXJkKVxuICAgICAgPyBgJHt0aGlzLnN1Ym1pc3Npb25JbmRleH0tJHt0aGlzLnF1ZXN0aW9uLmlkfWBcbiAgICAgIDogYCR7dGhpcy5xdWVzdGlvbi5pZH1gO1xuICB9XG5cbiAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZSh0aGlzLmJ1aWxkRWxlbWVudElkKCkpO1xuICB9XG5cbiAgZ2V0IGVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UodGhpcy5idWlsZEVsZW1lbnRJZCgpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pbkxpbmUgfHwgdGhpcy5pbkNhcmQpIHtcbiAgICAgIHRoaXMuZWxlbWVudElkID0gYHF1ZXN0aW9uLSR7dGhpcy5zdWJtaXNzaW9uSW5kZXh9LSR7dGhpcy5xdWVzdGlvbi5pZH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVsZW1lbnRJZCA9IGBxdWVzdGlvbi0ke3RoaXMucXVlc3Rpb24uaWR9YDtcbiAgICB9XG4gIFxuICAgIHRoaXMudHJhY2tlci5yZWdpc3RlckVsZW1lbnQodGhpcy5lbGVtZW50SWQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudElkKSB7XG4gICAgICB0aGlzLnRyYWNrZXIudW5yZWdpc3RlckVsZW1lbnQodGhpcy5lbGVtZW50SWQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbbmdDbGFzc109XCJ7ICdtYi00JzogIWluTGluZSB9XCJcbiAgY2xhc3M9XCJweC0zXCJcbiAgW2lkXT1cIihpbkxpbmUgfHwgaW5DYXJkKSA/ICdxdWVzdGlvbi0nICsgc3VibWlzc2lvbkluZGV4ICsgJy0nICsgcXVlc3Rpb24uaWQgOiAncXVlc3Rpb24tJyArIHF1ZXN0aW9uLmlkXCJcbiAgW2F0dHIubmFtZV09XCJxdWVzdGlvbi50ZXN0RWxlbWVudE5hbWVcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlciBtYi0yXCIgKm5nSWY9XCIhaW5MaW5lXCI+XG4gICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCIgW2lubmVySFRNTF09XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiPjwvZGl2PlxuICAgIDxzcGFuICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIiBjbGFzcz1cInNwYWNlXCI+PC9zcGFuPiA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsXG4gICAgPiZuYnNwO1xuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cInF1ZXN0aW9uPy5yZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzdmctd3JhcHBlciBtYi0yIGhpbnRJY29uXCJcbiAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaGludFwiXG4gICAgICAqbmdJZj1cImhpbnRcIlxuICAgID5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJoaW50U3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAzMCAzMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMTUgMjYuMjVWMjYuMjVDOC43ODYyNSAyNi4yNSAzLjc1IDIxLjIxMzggMy43NSAxNVYxNUMzLjc1IDguNzg2MjUgOC43ODYyNSAzLjc1IDE1IDMuNzVWMy43NUMyMS4yMTM4IDMuNzUgMjYuMjUgOC43ODYyNSAyNi4yNSAxNVYxNUMyNi4yNSAyMS4yMTM4IDIxLjIxMzggMjYuMjUgMTUgMjYuMjVaXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE1IDE2LjU2MjNWMTYuMjQ5OEMxNSAxNS4yMjg1IDE1LjYzMTIgMTQuNjc0OCAxNi4yNjM3IDE0LjI0OThDMTYuODgxMiAxMy44MzM1IDE3LjUgMTMuMjkxIDE3LjUgMTIuMjkxQzE3LjUgMTAuOTA5OCAxNi4zODEzIDkuNzkxMDIgMTUgOS43OTEwMkMxMy42MTg3IDkuNzkxMDIgMTIuNSAxMC45MDk4IDEyLjUgMTIuMjkxXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE0Ljk5ODggMjBDMTQuODI2MyAyMCAxNC42ODYzIDIwLjE0IDE0LjY4NzUgMjAuMzEyNUMxNC42ODc1IDIwLjQ4NSAxNC44Mjc1IDIwLjYyNSAxNSAyMC42MjVDMTUuMTcyNSAyMC42MjUgMTUuMzEyNSAyMC40ODUgMTUuMzEyNSAyMC4zMTI1QzE1LjMxMjUgMjAuMTQgMTUuMTcyNSAyMCAxNC45OTg4IDIwXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGxpYi1kb2NVcGxvYWRcbiAgICBbdG90YWxTaXplXT1cInRvdGFsRmlsZVNpemVcIlxuICAgIFtmaWxlQWxsb3dlZF09XCJmaWxlVHlwZXNcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aUZpbGVVcGxvYWRzXCJcbiAgICBbZmlsZVNpemVdPVwiZmlsZVNpemVcIlxuICAgIFtmaWxlc109XCJmaWxlc1wiXG4gICAgW2F2YXRhclBpY2tlcl09XCJhdmF0YXJQaWNrZXJcIlxuICAgIChmaWxlVHlwZU5vdEFsbG93ZWQpPVwiaGFuZGxlRmlsZVR5cGVOb3RBbGxvd2VkKCRldmVudClcIlxuICAgIChmaWxlU2l6ZUFsbG93ZWQpPVwiaGFuZGxlRmlsZVNpemUoJGV2ZW50KVwiXG4gICAgKGZpbmFsQXJyYXkpPVwiaGFuZGxlRmluYWxBcnJheSgkZXZlbnQpXCJcbiAgICBbYXR0YWNobWVudHNdPVwiYXR0YWNobWVudHNcIlxuICAgIChkZWxldGVGaWxlcyk9XCJkZWxldGVGaWxlcygkZXZlbnQpXCJcbiAgPjwvbGliLWRvY1VwbG9hZD5cblxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkICYmICghaW5MaW5lIHx8ICghcXVlc3Rpb24uYW5zd2VyfHwhYXR0YWNobWVudHMpKVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbGlkYXRpb25GYWlsZWQgJiYgIWlzSW52YWxpZFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgZXJyb3ItbWVzc2FnZVwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IHZhbGlkYXRpb25NZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -2,10 +2,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../services/element-tracker.service";
4
4
  import * as i2 from "../../services/data.service";
5
+ import * as i3 from "../../services/whenClause.service";
5
6
  export class HiddenFieldComponent {
6
- constructor(tracker, dataService) {
7
+ constructor(tracker, dataService, whenClauseService) {
7
8
  this.tracker = tracker;
8
9
  this.dataService = dataService;
10
+ this.whenClauseService = whenClauseService;
9
11
  this.question = {};
10
12
  this.inLine = false;
11
13
  this.inCard = false;
@@ -40,6 +42,9 @@ export class HiddenFieldComponent {
40
42
  // Otherwise calculate hidden field answer normally
41
43
  this.question.answer = this.resolveHiddenFieldValue(this.hiddenField);
42
44
  }
45
+ setTimeout(() => {
46
+ this.whenClauseService.setQuestionAnswer(this.question.id, this.question.answer, true);
47
+ });
43
48
  this.answerChange.emit({ answer: this.question.answer, maxPossibleScore: 0 });
44
49
  }
45
50
  resolveHiddenFieldValue(hiddenField) {
@@ -104,13 +109,13 @@ export class HiddenFieldComponent {
104
109
  this.tracker.unregisterElement(this.elementId);
105
110
  }
106
111
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HiddenFieldComponent, deps: [{ token: i1.ElementTrackerService }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HiddenFieldComponent, deps: [{ token: i1.ElementTrackerService }, { token: i2.DataService }, { token: i3.WhenClauseService }], target: i0.ɵɵFactoryTarget.Component }); }
108
113
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HiddenFieldComponent, selector: "lib-hidden-field", inputs: { question: "question", inLine: "inLine", inCard: "inCard", submissionIndex: "submissionIndex" }, outputs: { answerChange: "answerChange" }, ngImport: i0, template: '', isInline: true, styles: [""] }); }
109
114
  }
110
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HiddenFieldComponent, decorators: [{
111
116
  type: Component,
112
117
  args: [{ selector: 'lib-hidden-field', template: '' }]
113
- }], ctorParameters: function () { return [{ type: i1.ElementTrackerService }, { type: i2.DataService }]; }, propDecorators: { question: [{
118
+ }], ctorParameters: function () { return [{ type: i1.ElementTrackerService }, { type: i2.DataService }, { type: i3.WhenClauseService }]; }, propDecorators: { question: [{
114
119
  type: Input
115
120
  }], inLine: [{
116
121
  type: Input
@@ -121,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
121
126
  }], answerChange: [{
122
127
  type: Output
123
128
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZGVuLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvaGlkZGVuLWZpZWxkL2hpZGRlbi1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVN2RSxNQUFNLE9BQU8sb0JBQW9CO0lBZTlCLFlBQ1csT0FBOEIsRUFDOUIsV0FBdUI7UUFEdkIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFmMUIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBOEMsQ0FBQztRQUN4RixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFTLEVBQUUsQ0FBQztRQU16QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUgsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFFakQsNEVBQTRFO1FBQzVFLElBQ0UsSUFBSSxDQUFDLFdBQVcsS0FBSyxxQkFBcUI7WUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFDM0I7WUFDQSxxQ0FBcUM7U0FDdEM7YUFBTTtZQUNMLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsdUJBQXVCLENBQUMsV0FJdkI7UUFDQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUUzQyxRQUFRLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDL0IsS0FBSyxjQUFjO2dCQUNqQixxQ0FBcUM7Z0JBQ3JDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQztZQUUzQixLQUFLLGVBQWU7Z0JBQ2xCLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDOUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFFZCxLQUFLLGlCQUFpQjtnQkFDcEIsSUFBSSxXQUFXLENBQUMsR0FBRyxFQUFFO29CQUNuQixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNoRDtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUVkLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFM0Q7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxRQUF1QjtRQUN2RCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTNCLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFdkIsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7WUFDOUQsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7WUFDN0QsS0FBSyxtQkFBbUI7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsb0JBQW9CO1lBQ25ELEtBQUssWUFBWTtnQkFDZixPQUFPLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtZQUNsRCxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0IsS0FBSyxPQUFPO2dCQUNWLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDcEMsS0FBSyxLQUFLO2dCQUNSLE9BQU8sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztZQUMvQixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzNDO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBR0QsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQzsrR0E1SFUsb0JBQW9CO21HQUFwQixvQkFBb0IsNk1BSHJCLEVBQUU7OzRGQUdELG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsRUFBRTtzSUFLSCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnRUcmFja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhpZGRlbi1maWVsZCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGlkZGVuLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGlkZGVuRmllbGRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgaW5MaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluQ2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5kZXghOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBhbnN3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYW5zd2VyOiBhbnk7IG1heFBvc3NpYmxlU2NvcmU/OiBudW1iZXIgfT4oKTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGhpZGRlbkZpZWxkITogYW55O1xuICBrZXk6IFN0cmluZyA9ICcnO1xuICB2YWx1ZVNvdXJjZTogU3RyaW5nID0gJyc7XG4gIHZhbHVlOiBTdHJpbmcgPSAnJztcbiAgdXNlcjogU3RyaW5nID0gJyc7XG4gIHByaXZhdGUgZWxlbWVudElkOiBzdHJpbmc9Jyc7XG4gICAgXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgdHJhY2tlcjogRWxlbWVudFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTpEYXRhU2VydmljZVxuICAgICkge1xuICAgICAgdGhpcy5kYXRhU2VydmljZS5oZWFkZXIkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLnVzZXIgPSBkYXRhLmF1dGhVc2VyO1xuICAgICAgfSk7XG4gICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWVBc3NpZ25lZCgpO1xuICB9XG5cbiAgdmFsdWVBc3NpZ25lZCgpIHtcbiAgICB0aGlzLmhpbnQgPSB0aGlzLnF1ZXN0aW9uPy5oaW50O1xuICAgIHRoaXMuaGlkZGVuRmllbGQgPSB0aGlzLnF1ZXN0aW9uPy5mb3JtRWxlbWVudD8uaGlkZGVuRmllbGQ7XG4gICAgdGhpcy5rZXkgPSB0aGlzLmhpZGRlbkZpZWxkPy5rZXk7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaGlkZGVuRmllbGQ/LnZhbHVlO1xuICAgIHRoaXMudmFsdWVTb3VyY2UgPSB0aGlzLmhpZGRlbkZpZWxkPy52YWx1ZVNvdXJjZTtcbiAgXG4gICAgLy8g8J+aqCBPbmx5IHNraXAgb3ZlcndyaXRlIGZvciBQUkVERUZJTkVEX1ZBUklBQkxFIHdoZW4gYW5zd2VyIGFscmVhZHkgZXhpc3RzXG4gICAgaWYgKFxuICAgICAgdGhpcy52YWx1ZVNvdXJjZSA9PT0gJ1BSRURFRklORURfVkFSSUFCTEUnICYmXG4gICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgIT09ICcnXG4gICAgKSB7XG4gICAgICAvLyBEb24ndCBvdmVycmlkZSB0aGUgZXhpc3RpbmcgYW5zd2VyXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE90aGVyd2lzZSBjYWxjdWxhdGUgaGlkZGVuIGZpZWxkIGFuc3dlciBub3JtYWxseVxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSB0aGlzLnJlc29sdmVIaWRkZW5GaWVsZFZhbHVlKHRoaXMuaGlkZGVuRmllbGQpO1xuICAgIH1cbiAgXG4gICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh7IGFuc3dlcjogdGhpcy5xdWVzdGlvbi5hbnN3ZXIsIG1heFBvc3NpYmxlU2NvcmU6IDAgfSk7XG4gIH1cblxuICByZXNvbHZlSGlkZGVuRmllbGRWYWx1ZShoaWRkZW5GaWVsZDoge1xuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlU291cmNlOiBzdHJpbmcgfCBudWxsLFxuICAgIGtleTogc3RyaW5nIHwgbnVsbFxuICB9KTogYW55IHtcbiAgICBpZiAoIWhpZGRlbkZpZWxkPy52YWx1ZVNvdXJjZSkgcmV0dXJuIG51bGw7XG4gIFxuICAgIHN3aXRjaCAoaGlkZGVuRmllbGQudmFsdWVTb3VyY2UpIHtcbiAgICAgIGNhc2UgJ0NVU1RPTV9JTlBVVCc6XG4gICAgICAgIC8vIERpcmVjdGx5IHJldHVybiB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICAgICAgcmV0dXJuIGhpZGRlbkZpZWxkLnZhbHVlO1xuICBcbiAgICAgIGNhc2UgJ0xPQ0FMX1NUT1JBR0UnOlxuICAgICAgICBpZiAoaGlkZGVuRmllbGQua2V5KSB7XG4gICAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGhpZGRlbkZpZWxkLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gIFxuICAgICAgY2FzZSAnU0VTU0lPTl9TVE9SQUdFJzpcbiAgICAgICAgaWYgKGhpZGRlbkZpZWxkLmtleSkge1xuICAgICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGhpZGRlbkZpZWxkLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gIFxuICAgICAgY2FzZSAnUFJFREVGSU5FRF9WQVJJQUJMRSc6XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQcmVkZWZpbmVkVmFyaWFibGUoaGlkZGVuRmllbGQudmFsdWUpO1xuICBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSByZXNvbHZlUHJlZGVmaW5lZFZhcmlhYmxlKHZhcmlhYmxlOiBzdHJpbmcgfCBudWxsKTogYW55IHtcbiAgICBpZiAoIXZhcmlhYmxlKSByZXR1cm4gbnVsbDtcbiAgXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgXG4gICAgc3dpdGNoICh2YXJpYWJsZSkge1xuICAgICAgY2FzZSAnQ1VSUkVOVF9EQVRFJzpcbiAgICAgICAgcmV0dXJuIG5vdy50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07IC8vIGUuZy4gXCIyMDI1LTA5LTI5XCJcbiAgICAgIGNhc2UgJ0NVUlJFTlRfVElNRSc6XG4gICAgICAgIHJldHVybiBub3cudG9UaW1lU3RyaW5nKCkuc3BsaXQoJyAnKVswXTsgLy8gZS5nLiBcIjE1OjQyOjE4XCJcbiAgICAgIGNhc2UgJ0NVUlJFTlRfREFURV9USU1FJzpcbiAgICAgICAgcmV0dXJuIG5vdy50b0xvY2FsZVN0cmluZygpOyAvLyBmdWxsIElTTyBkYXRldGltZVxuICAgICAgY2FzZSAnRVBPQ0hfVElNRSc6XG4gICAgICAgIHJldHVybiBub3cuZ2V0VGltZSgpOyAvLyBtaWxsaXNlY29uZHMgc2luY2UgMTk3MFxuICAgICAgY2FzZSAnWUVBUic6XG4gICAgICAgIHJldHVybiBub3cuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNhc2UgJ01PTlRIJzpcbiAgICAgICAgcmV0dXJuIG5vdy5nZXRNb250aCgpICsgMTsgLy8gMS0xMlxuICAgICAgY2FzZSAnREFZJzpcbiAgICAgICAgcmV0dXJuIG5vdy5nZXREYXRlKCk7IC8vIDEtMzFcbiAgICAgIGNhc2UgJ1NVQk1JVFRFRF9CWSc6XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIgPyB0aGlzLnVzZXIgOiAnVW5rbm93bic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmluTGluZSB8fCB0aGlzLmluQ2FyZCkge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnN1Ym1pc3Npb25JbmRleH0tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudElkID0gYHF1ZXN0aW9uLSR7dGhpcy5xdWVzdGlvbi5pZH1gO1xuICAgIH1cbiAgICB0aGlzLnRyYWNrZXIucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnRJZCkge1xuICAgICAgdGhpcy50cmFja2VyLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICB9XG4gIH1cblxufVxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZGVuLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1maWVsZHMvaGlkZGVuLWZpZWxkL2hpZGRlbi1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVdkUsTUFBTSxPQUFPLG9CQUFvQjtJQWU5QixZQUNXLE9BQThCLEVBQzlCLFdBQXVCLEVBQ3ZCLGlCQUFtQztRQUZuQyxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBaEJ0QyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE4QyxDQUFDO1FBQ3hGLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQVMsRUFBRSxDQUFDO1FBT3pCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO1FB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UzsrQkFDRSxrQkFBa0IsWUFDbEIsRUFBRTtzS0FLSCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnRUcmFja2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtdHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFdoZW5DbGF1c2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2hlbkNsYXVzZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhpZGRlbi1maWVsZCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGlkZGVuLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGlkZGVuRmllbGRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgaW5MaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluQ2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5kZXghOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBhbnN3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYW5zd2VyOiBhbnk7IG1heFBvc3NpYmxlU2NvcmU/OiBudW1iZXIgfT4oKTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIGhpZGRlbkZpZWxkITogYW55O1xuICBrZXk6IFN0cmluZyA9ICcnO1xuICB2YWx1ZVNvdXJjZTogU3RyaW5nID0gJyc7XG4gIHZhbHVlOiBTdHJpbmcgPSAnJztcbiAgdXNlcjogU3RyaW5nID0gJyc7XG4gIHByaXZhdGUgZWxlbWVudElkOiBzdHJpbmc9Jyc7XG4gICAgXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgdHJhY2tlcjogRWxlbWVudFRyYWNrZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTpEYXRhU2VydmljZSxcbiAgICAgIHByaXZhdGUgd2hlbkNsYXVzZVNlcnZpY2U6V2hlbkNsYXVzZVNlcnZpY2VcbiAgICApIHtcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuaGVhZGVyJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy51c2VyID0gZGF0YS5hdXRoVXNlcjtcbiAgICAgIH0pO1xuICAgIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgfVxuXG4gIHZhbHVlQXNzaWduZWQoKSB7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbj8uaGludDtcbiAgICB0aGlzLmhpZGRlbkZpZWxkID0gdGhpcy5xdWVzdGlvbj8uZm9ybUVsZW1lbnQ/LmhpZGRlbkZpZWxkO1xuICAgIHRoaXMua2V5ID0gdGhpcy5oaWRkZW5GaWVsZD8ua2V5O1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmhpZGRlbkZpZWxkPy52YWx1ZTtcbiAgICB0aGlzLnZhbHVlU291cmNlID0gdGhpcy5oaWRkZW5GaWVsZD8udmFsdWVTb3VyY2U7XG4gIFxuICAgIC8vIPCfmqggT25seSBza2lwIG92ZXJ3cml0ZSBmb3IgUFJFREVGSU5FRF9WQVJJQUJMRSB3aGVuIGFuc3dlciBhbHJlYWR5IGV4aXN0c1xuICAgIGlmIChcbiAgICAgIHRoaXMudmFsdWVTb3VyY2UgPT09ICdQUkVERUZJTkVEX1ZBUklBQkxFJyAmJlxuICAgICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgIT09IG51bGwgJiZcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyICE9PSAnJ1xuICAgICkge1xuICAgICAgLy8gRG9uJ3Qgb3ZlcnJpZGUgdGhlIGV4aXN0aW5nIGFuc3dlclxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2UgY2FsY3VsYXRlIGhpZGRlbiBmaWVsZCBhbnN3ZXIgbm9ybWFsbHlcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gdGhpcy5yZXNvbHZlSGlkZGVuRmllbGRWYWx1ZSh0aGlzLmhpZGRlbkZpZWxkKTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLndoZW5DbGF1c2VTZXJ2aWNlLnNldFF1ZXN0aW9uQW5zd2VyKHRoaXMucXVlc3Rpb24uaWQsdGhpcy5xdWVzdGlvbi5hbnN3ZXIsdHJ1ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh7IGFuc3dlcjogdGhpcy5xdWVzdGlvbi5hbnN3ZXIsIG1heFBvc3NpYmxlU2NvcmU6IDAgfSk7XG4gIH1cblxuICByZXNvbHZlSGlkZGVuRmllbGRWYWx1ZShoaWRkZW5GaWVsZDoge1xuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlU291cmNlOiBzdHJpbmcgfCBudWxsLFxuICAgIGtleTogc3RyaW5nIHwgbnVsbFxuICB9KTogYW55IHtcbiAgICBpZiAoIWhpZGRlbkZpZWxkPy52YWx1ZVNvdXJjZSkgcmV0dXJuIG51bGw7XG4gIFxuICAgIHN3aXRjaCAoaGlkZGVuRmllbGQudmFsdWVTb3VyY2UpIHtcbiAgICAgIGNhc2UgJ0NVU1RPTV9JTlBVVCc6XG4gICAgICAgIC8vIERpcmVjdGx5IHJldHVybiB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICAgICAgcmV0dXJuIGhpZGRlbkZpZWxkLnZhbHVlO1xuICBcbiAgICAgIGNhc2UgJ0xPQ0FMX1NUT1JBR0UnOlxuICAgICAgICBpZiAoaGlkZGVuRmllbGQua2V5KSB7XG4gICAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGhpZGRlbkZpZWxkLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gIFxuICAgICAgY2FzZSAnU0VTU0lPTl9TVE9SQUdFJzpcbiAgICAgICAgaWYgKGhpZGRlbkZpZWxkLmtleSkge1xuICAgICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGhpZGRlbkZpZWxkLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gIFxuICAgICAgY2FzZSAnUFJFREVGSU5FRF9WQVJJQUJMRSc6XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVQcmVkZWZpbmVkVmFyaWFibGUoaGlkZGVuRmllbGQudmFsdWUpO1xuICBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICBcbiAgcHJpdmF0ZSByZXNvbHZlUHJlZGVmaW5lZFZhcmlhYmxlKHZhcmlhYmxlOiBzdHJpbmcgfCBudWxsKTogYW55IHtcbiAgICBpZiAoIXZhcmlhYmxlKSByZXR1cm4gbnVsbDtcbiAgXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgXG4gICAgc3dpdGNoICh2YXJpYWJsZSkge1xuICAgICAgY2FzZSAnQ1VSUkVOVF9EQVRFJzpcbiAgICAgICAgcmV0dXJuIG5vdy50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07IC8vIGUuZy4gXCIyMDI1LTA5LTI5XCJcbiAgICAgIGNhc2UgJ0NVUlJFTlRfVElNRSc6XG4gICAgICAgIHJldHVybiBub3cudG9UaW1lU3RyaW5nKCkuc3BsaXQoJyAnKVswXTsgLy8gZS5nLiBcIjE1OjQyOjE4XCJcbiAgICAgIGNhc2UgJ0NVUlJFTlRfREFURV9USU1FJzpcbiAgICAgICAgcmV0dXJuIG5vdy50b0xvY2FsZVN0cmluZygpOyAvLyBmdWxsIElTTyBkYXRldGltZVxuICAgICAgY2FzZSAnRVBPQ0hfVElNRSc6XG4gICAgICAgIHJldHVybiBub3cuZ2V0VGltZSgpOyAvLyBtaWxsaXNlY29uZHMgc2luY2UgMTk3MFxuICAgICAgY2FzZSAnWUVBUic6XG4gICAgICAgIHJldHVybiBub3cuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNhc2UgJ01PTlRIJzpcbiAgICAgICAgcmV0dXJuIG5vdy5nZXRNb250aCgpICsgMTsgLy8gMS0xMlxuICAgICAgY2FzZSAnREFZJzpcbiAgICAgICAgcmV0dXJuIG5vdy5nZXREYXRlKCk7IC8vIDEtMzFcbiAgICAgIGNhc2UgJ1NVQk1JVFRFRF9CWSc6XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIgPyB0aGlzLnVzZXIgOiAnVW5rbm93bic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgXG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmluTGluZSB8fCB0aGlzLmluQ2FyZCkge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnN1Ym1pc3Npb25JbmRleH0tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudElkID0gYHF1ZXN0aW9uLSR7dGhpcy5xdWVzdGlvbi5pZH1gO1xuICAgIH1cbiAgICB0aGlzLnRyYWNrZXIucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnRJZCkge1xuICAgICAgdGhpcy50cmFja2VyLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -53,6 +53,11 @@ export class NumberFieldsComponent {
53
53
  this.whenClauseService.setQuestionAnswer(this.question.id, this.question.answer, true);
54
54
  });
55
55
  }
56
+ else {
57
+ setTimeout(() => {
58
+ this.whenClauseService.setQuestionAnswer(this.question.id, '', true);
59
+ });
60
+ }
56
61
  if (this.question.childLogics && this.question.answer) {
57
62
  this.updateChildLogics(this.question);
58
63
  }
@@ -225,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
225
230
  }], rowId: [{
226
231
  type: Input
227
232
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL251bWJlci1maWVsZHMvbnVtYmVyLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL251bWJlci1maWVsZHMvbnVtYmVyLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVl2RSxNQUFNLE9BQU8scUJBQXFCO0lBc0JoQyxZQUNZLGlCQUFvQyxFQUNwQyxPQUE4QixFQUM5QixnQkFBMkMsRUFDM0MsaUJBQW1DO1FBSG5DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBekJ0QyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE4QyxDQUFDO1FBR3hGLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBR2xCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBSXpCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFFL0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFT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SSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQzsrR0F2T1UscUJBQXFCO21HQUFyQixxQkFBcUIsOE5DWmxDLDhySEFxR0E7OzRGRHpGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3FOQUtwQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dpYyB9IGZyb20gJy4uLy4uL21vZGVscy9sb2dpYy5tb2RlbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50VHJhY2tlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbGVtZW50LXRyYWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FnZ3JlZ2F0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdoZW5DbGF1c2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2hlbkNsYXVzZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW51bWJlci1maWVsZHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci1maWVsZHMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyRmllbGRzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueSA9IHt9O1xuICBASW5wdXQoKSBpbkxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaW5DYXJkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb25JbmRleCE6IG51bWJlcjtcbiAgQE91dHB1dCgpIGFuc3dlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBhbnN3ZXI6IGFueTsgbWF4UG9zc2libGVTY29yZT86IG51bWJlciB9PigpO1xuICBASW5wdXQoKSByb3dJZDogYW55O1xuXG4gIGNvdW50OiBudW1iZXIgPSAwO1xuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBoaW50OiBzdHJpbmcgPSAnJztcbiAgdXBEb3duITogYm9vbGVhbjtcbiAgYWxsb3dOZWdhdGl2ZVZhbHVlcyE6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgbWluITogbnVtYmVyO1xuICBtYXghOiBudW1iZXI7XG4gIGVudGVyZWROdW1iZXIhOiBudW1iZXI7XG4gIHZhbGlkYXRpb25GYWlsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBkZWZhdWx0VmFsdWUhOiBudW1iZXI7XG4gIGRpc2FibGVFZGl0OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZWxlbWVudElkOiBzdHJpbmc9Jyc7XG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICBwcml2YXRlIHRyYWNrZXI6IEVsZW1lbnRUcmFja2VyU2VydmljZSxcbiAgICAgIHByaXZhdGUgYWdncmVnYXRlU2VydmljZTpBZ2dyZWdhdGlvbkZ1bmN0aW9uU2VydmljZSxcbiAgICAgIHByaXZhdGUgd2hlbkNsYXVzZVNlcnZpY2U6V2hlbkNsYXVzZVNlcnZpY2VcbiAgICApIHtcbiAgICB9XG4gIFxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWVBc3NpZ25lZCgpO1xuICB9XG5cbiAgdmFsdWVBc3NpZ25lZCgpIHtcbiAgICB0aGlzLmNvdW50ID0gdGhpcy5xdWVzdGlvbi5jb3VudDtcbiAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZDtcbiAgICB0aGlzLmhpbnQgPSB0aGlzLnF1ZXN0aW9uLmhpbnQ7XG4gICAgdGhpcy51cERvd24gPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UudXBBbmREb3duQnV0dG9uO1xuICAgIHRoaXMuYWxsb3dOZWdhdGl2ZVZhbHVlcyA9XG4gICAgICB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LmFwcGVhcmFuY2UuYWxsb3dOZWdhdGl2ZVZhbHVlcztcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudD8uYXBwZWFyYW5jZT8ucGxhY2Vob2xkZXIgfHwgJyc7XG4gICAgdGhpcy5taW4gPSB0aGlzLnF1ZXN0aW9uLmZvcm1FbGVtZW50LnZhbGlkYXRpb24ubWluO1xuICAgIHRoaXMubWF4ID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1heDtcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMucXVlc3Rpb24/LmRlZmF1bHRWYWx1ZTtcbiAgICB0aGlzLmRpc2FibGVFZGl0ID0gdGhpcy5xdWVzdGlvbi5kaXNhYmxlRWRpdDtcbiAgICB0aGlzLmVudGVyZWROdW1iZXIgPSB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICBpZih0aGlzLnF1ZXN0aW9uLmFuc3dlcil7XG4gICAgICB0aGlzLmVudGVyZWROdW1iZXIgPSB0aGlzLnF1ZXN0aW9uPy5hbnN3ZXI7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy53aGVuQ2xhdXNlU2VydmljZS5zZXRRdWVzdGlvbkFuc3dlcih0aGlzLnF1ZXN0aW9uLmlkLHRoaXMuZW50ZXJlZE51bWJlcix0cnVlKTtcbiAgICAgIH0pOyAgXG4gICAgfWVsc2UgaWYodGhpcy5kZWZhdWx0VmFsdWUgJiYgIXRoaXMucXVlc3Rpb24uYW5zd2VyKXtcbiAgICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gdGhpcy5kZWZhdWx0VmFsdWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy53aGVuQ2xhdXNlU2VydmljZS5zZXRRdWVzdGlvbkFuc3dlcih0aGlzLnF1ZXN0aW9uLmlkLHRoaXMucXVlc3Rpb24uYW5zd2VyLHRydWUpO1xuICAgICAgfSk7IFxuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jaGlsZExvZ2ljcyAmJiB0aGlzLnF1ZXN0aW9uLmFuc3dlcikge1xuICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5hZ2dyZWdhdGVTZXJ2aWNlLnNldE51bWJlckZpZWxkKHRoaXMucm93SWQsdGhpcy5xdWVzdGlvbi5pZCx0aGlzLnF1ZXN0aW9uLmFuc3dlcik7XG4gIH1cblxuICBwcmV2ZW50TnVtYmVyU2Nyb2xsKGV2ZW50OiBXaGVlbEV2ZW50KSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbiAgXG4gIHZhbGlkYXRlTnVtYmVyKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IGZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICcnO1xuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLmVudGVyZWROdW1iZXIpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcmA7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyYDtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmFsbG93TmVnYXRpdmVWYWx1ZXMgJiYgdGhpcy5lbnRlcmVkTnVtYmVyIDwgMCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSAnUGxlYXNlIGVudGVyIGEgcG9zaXRpdmUgbnVtYmVyJztcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uTWVzc2FnZSA9ICdQbGVhc2UgZW50ZXIgYSBwb3NpdGl2ZSBudW1iZXInO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAodGhpcy5taW4gIT09IHVuZGVmaW5lZCAmJiB0aGlzLmVudGVyZWROdW1iZXIgPCB0aGlzLm1pbikgfHxcbiAgICAgICh0aGlzLm1heCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZW50ZXJlZE51bWJlciA+IHRoaXMubWF4KVxuICAgICkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcblxuICAgICAgLy8gQ29uc3RydWN0IGFwcHJvcHJpYXRlIHZhbGlkYXRpb24gbWVzc2FnZSBiYXNlZCBvbiB3aGV0aGVyIG1pbiwgbWF4LCBvciBib3RoIGFyZSBwcm92aWRlZFxuICAgICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgdGhpcy5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlciBiZXR3ZWVuICR7dGhpcy5taW59IGFuZCAke3RoaXMubWF4fWA7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyIGJldHdlZW4gJHt0aGlzLm1pbn0gYW5kICR7dGhpcy5tYXh9YDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5taW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHt0aGlzLm1pbn1gO1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb25NZXNzYWdlID0gYFBsZWFzZSBlbnRlciBhIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJHt0aGlzLm1pbn1gO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1heCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke3RoaXMubWF4fWA7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke3RoaXMubWF4fWA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb24gPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jaGlsZExvZ2ljcykge1xuICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUlucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZCh0aGlzLmJ1aWxkRWxlbWVudElkKCkpO1xuICAgIHRoaXMucXVlc3Rpb24uYW5zd2VyID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuYWdncmVnYXRlU2VydmljZS5zZXROdW1iZXJGaWVsZCh0aGlzLnJvd0lkLHRoaXMucXVlc3Rpb24uaWQsIGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY2hpbGRMb2dpY3MpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2hpbGRMb2dpY3ModGhpcy5xdWVzdGlvbik7XG4gICAgfVxuICAgIHRoaXMuYW5zd2VyQ2hhbmdlLmVtaXQoe2Fuc3dlcjp0aGlzLnF1ZXN0aW9uLmFuc3dlcixtYXhQb3NzaWJsZVNjb3JlOjB9KTtcbiAgICB0aGlzLndoZW5DbGF1c2VTZXJ2aWNlLnNldFF1ZXN0aW9uQW5zd2VyKHRoaXMucXVlc3Rpb24uaWQsdGhpcy5xdWVzdGlvbi5hbnN3ZXIpO1xuICB9XG5cbiAgdXBkYXRlQ2hpbGRMb2dpY3MocXVlc3Rpb246IGFueSkge1xuICAgIGlmIChxdWVzdGlvbi5jaGlsZExvZ2ljcyAmJiBBcnJheS5pc0FycmF5KHF1ZXN0aW9uLmNoaWxkTG9naWNzKSkge1xuICAgICAgcXVlc3Rpb24uY2hpbGRMb2dpY3MuZm9yRWFjaCgoY2hpbGRMb2dpYzogYW55KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKFxuICAgICAgICAgICAgcXVlc3Rpb24uYW5zd2VyLFxuICAgICAgICAgICAgY2hpbGRMb2dpYy5jb25kaXRpb24sXG4gICAgICAgICAgICBjaGlsZExvZ2ljLmlucHV0VmFsdWVcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGlsZExvZ2ljLnNob3dMb2dpYyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkoY2hpbGRMb2dpYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkobG9naWM6IGFueSkge1xuICAgIGlmICghbG9naWMgfHwgIWxvZ2ljLnJvd3MpIHJldHVybjtcbiAgXG4gICAgbG9naWMucm93cy5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xuICAgICAgcm93LmdyaWQuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtLmVsZW1lbnQ7XG4gIFxuICAgICAgICBpZiAoaXRlbS5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nICYmIGVsZW1lbnQpIHtcbiAgICAgICAgICAvLyBDbGVhciBhbnN3ZXIgaWYgcHJlc2VudFxuICAgICAgICAgIGlmICgnYW5zd2VyJyBpbiBlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LmFuc3dlciA9ICcnO1xuICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgLy8gUmVjdXJzaXZlbHkgY2xlYXIgY2hpbGRMb2dpY3MgaWYgYW55XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2hpbGRMb2dpY3MgJiYgZWxlbWVudC5jaGlsZExvZ2ljcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGNoaWxkTG9naWM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNsZWFyQW5zd2Vyc1JlY3Vyc2l2ZWx5KGNoaWxkTG9naWMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gIFxuICAgICAgICBpZiAoaXRlbS5lbnRpdHlUeXBlID09PSAnU1VCRk9STScgJiYgZWxlbWVudCAmJiBlbGVtZW50LnJvd3MpIHtcbiAgICAgICAgICAvLyBTVUJGT1JNIGNvbnRhaW5zIGl0cyBvd24gcm93cyBzdHJ1Y3R1cmUgbGlrZSBhIGZvcm1cbiAgICAgICAgICB0aGlzLmNsZWFyQW5zd2Vyc1JlY3Vyc2l2ZWx5KHsgcm93czogZWxlbWVudC5yb3dzIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGV2YWx1YXRlQ29uZGl0aW9uKGFuc3dlcjogYW55LCBjb25kaXRpb246IGFueSwgaW5wdXRWYWx1ZTogYW55KSB7XG4gICAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICAgIGNhc2UgJz4nOlxuICAgICAgICByZXR1cm4gYW5zd2VyID4gTnVtYmVyKGlucHV0VmFsdWUpO1xuICAgICAgY2FzZSAnPCc6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgPCBOdW1iZXIoaW5wdXRWYWx1ZSk7XG4gICAgICBjYXNlICc+PSc6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgPj0gTnVtYmVyKGlucHV0VmFsdWUpO1xuICAgICAgY2FzZSAnPD0nOlxuICAgICAgICByZXR1cm4gYW5zd2VyIDw9IE51bWJlcihpbnB1dFZhbHVlKTtcbiAgICAgIGNhc2UgJz0nOlxuICAgICAgICByZXR1cm4gYW5zd2VyID09IGlucHV0VmFsdWU7XG4gICAgICBjYXNlICchPSc6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgIT0gaW5wdXRWYWx1ZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuXG4gIFxuICBoYW5kbGVWYWxpZGF0aW9uKGlzVmFsaWQ6IGJvb2xlYW4sIG1lc3NhZ2U6IHN0cmluZyA9ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJykge1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmNsZWFySW52YWxpZCh0aGlzLmJ1aWxkRWxlbWVudElkKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnNldEludmFsaWQodGhpcy5xdWVzdGlvbi5pZCwgbWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEVsZW1lbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5pbkxpbmUgfHwgdGhpcy5pbkNhcmQpXG4gICAgICA/IGAke3RoaXMuc3VibWlzc2lvbkluZGV4fS0ke3RoaXMucXVlc3Rpb24uaWR9YFxuICAgICAgOiBgJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gIH1cblxuICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gIH1cblxuICBnZXQgZXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZSh0aGlzLmJ1aWxkRWxlbWVudElkKCkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmluTGluZSB8fCB0aGlzLmluQ2FyZCkge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnN1Ym1pc3Npb25JbmRleH0tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudElkID0gYHF1ZXN0aW9uLSR7dGhpcy5xdWVzdGlvbi5pZH1gO1xuICAgIH1cbiAgXG4gICAgdGhpcy50cmFja2VyLnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsZW1lbnRJZCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLndoZW5DbGF1c2VTZXJ2aWNlLm1hcmtMb2FkQ29tcGxldGVkKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5lbGVtZW50SWQpIHtcbiAgICAgIHRoaXMudHJhY2tlci51bnJlZ2lzdGVyRWxlbWVudCh0aGlzLmVsZW1lbnRJZCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cInsgJ21iLTQnOiAhaW5MaW5lIH1cIlxuICBjbGFzcz1cInB4LTNcIlxuICBbaWRdPVwiKGluTGluZSB8fCBpbkNhcmQpID8gJ3F1ZXN0aW9uLScgKyBzdWJtaXNzaW9uSW5kZXggKyAnLScgKyBxdWVzdGlvbi5pZCA6ICdxdWVzdGlvbi0nICsgcXVlc3Rpb24uaWRcIlxuICBbYXR0ci5uYW1lXT1cInF1ZXN0aW9uLnRlc3RFbGVtZW50TmFtZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyIG1iLTJcIiAqbmdJZj1cIiFpbkxpbmVcIj5cbiAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIiBbaW5uZXJIVE1MXT1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCI+PC9kaXY+XG4gICAgPHNwYW4gKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiIGNsYXNzPVwic3BhY2VcIj48L3NwYW4+XG4gICAgPGxhYmVsPnt7IHF1ZXN0aW9uLnF1ZXN0aW9uIH19PC9sYWJlbFxuICAgID4mbmJzcDtcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzdmctd3JhcHBlciBtYi0yIGhpbnRJY29uXCJcbiAgICAgIFthdHRyLmRhdGEtdGl0bGVdPVwiaGludFwiXG4gICAgICAqbmdJZj1cImhpbnRcIlxuICAgID5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJoaW50U3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAzMCAzMFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNMTUgMjYuMjVWMjYuMjVDOC43ODYyNSAyNi4yNSAzLjc1IDIxLjIxMzggMy43NSAxNVYxNUMzLjc1IDguNzg2MjUgOC43ODYyNSAzLjc1IDE1IDMuNzVWMy43NUMyMS4yMTM4IDMuNzUgMjYuMjUgOC43ODYyNSAyNi4yNSAxNVYxNUMyNi4yNSAyMS4yMTM4IDIxLjIxMzggMjYuMjUgMTUgMjYuMjVaXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE1IDE2LjU2MjNWMTYuMjQ5OEMxNSAxNS4yMjg1IDE1LjYzMTIgMTQuNjc0OCAxNi4yNjM3IDE0LjI0OThDMTYuODgxMiAxMy44MzM1IDE3LjUgMTMuMjkxIDE3LjUgMTIuMjkxQzE3LjUgMTAuOTA5OCAxNi4zODEzIDkuNzkxMDIgMTUgOS43OTEwMkMxMy42MTg3IDkuNzkxMDIgMTIuNSAxMC45MDk4IDEyLjUgMTIuMjkxXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTE0Ljk5ODggMjBDMTQuODI2MyAyMCAxNC42ODYzIDIwLjE0IDE0LjY4NzUgMjAuMzEyNUMxNC42ODc1IDIwLjQ4NSAxNC44Mjc1IDIwLjYyNSAxNSAyMC42MjVDMTUuMTcyNSAyMC42MjUgMTUuMzEyNSAyMC40ODUgMTUuMzEyNSAyMC4zMTI1QzE1LjMxMjUgMjAuMTQgMTUuMTcyNSAyMCAxNC45OTg4IDIwXCJcbiAgICAgICAgICBzdHJva2U9XCIjMzIzMjMyXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgdHlwZT1cIm51bWJlclwiXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItMiBoZWlnaHRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2NsYXNzLmhpZGUtc3Bpbi1idXR0b25zXT1cIiF1cERvd25cIlxuICAgIChibHVyKT1cInZhbGlkYXRlTnVtYmVyKClcIlxuICAgIFsobmdNb2RlbCldPVwiZW50ZXJlZE51bWJlclwiXG4gICAgW2NsYXNzLmludmFsaWRdPVwidmFsaWRhdGlvbkZhaWxlZFwiXG4gICAgW2NsYXNzLmludmFsaWQtcXVlc3Rpb25dPVwiaXNJbnZhbGlkICYmICghaW5MaW5lIHx8ICFlbnRlcmVkTnVtYmVyKVwiXG4gICAgKGlucHV0KT1cInZhbGlkYXRlSW5wdXQoJGV2ZW50KVwiXG4gICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgKHdoZWVsKT1cInByZXZlbnROdW1iZXJTY3JvbGwoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVFZGl0XCJcbiAgLz5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCAmJiAoIWluTGluZSB8fCAhZW50ZXJlZE51bWJlcilcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ2YWxpZGF0aW9uRmFpbGVkICYmICFpc0ludmFsaWRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIGVycm9yLW1lc3NhZ2VcIj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInZhbGlkYXRpb25TdmdcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyLjAwMSAxNi43NUMxMi4xMzkgMTYuNzUgMTIuMjUxIDE2LjYzOCAxMi4yNSAxNi41QzEyLjI1IDE2LjM2MiAxMi4xMzggMTYuMjUgMTIgMTYuMjVDMTEuODYyIDE2LjI1IDExLjc1IDE2LjM2MiAxMS43NSAxNi41QzExLjc1IDE2LjYzOCAxMS44NjIgMTYuNzUgMTIuMDAxIDE2Ljc1XCJcbiAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMiAyMUM3LjAyOSAyMSAzIDE2Ljk3MSAzIDEyQzMgNy4wMjkgNy4wMjkgMyAxMiAzQzE2Ljk3MSAzIDIxIDcuMDI5IDIxIDEyQzIxIDE2Ljk3MSAxNi45NzEgMjEgMTIgMjFaXCJcbiAgICAgICAgZmlsbD1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2U9XCIjRkYwMDAwXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTEyIDEyLjc1TDEyIDcuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxNlwiIHI9XCIxXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICA8L3N2Zz5cbiAgICB7eyB2YWxpZGF0aW9uTWVzc2FnZSB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL251bWJlci1maWVsZHMvbnVtYmVyLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tZmllbGRzL251bWJlci1maWVsZHMvbnVtYmVyLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVl2RSxNQUFNLE9BQU8scUJBQXFCO0lBc0JoQyxZQUNZLGlCQUFvQyxFQUNwQyxPQUE4QixFQUM5QixnQkFBMkMsRUFDM0MsaUJBQW1DO1FBSG5DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBekJ0QyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV2QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUE4QyxDQUFDO1FBR3hGLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBR2xCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBSXpCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFFL0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFT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RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9naWMgfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9naWMubW9kZWwnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudFRyYWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC10cmFja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWdncmVnYXRpb25GdW5jdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZ2dyZWdhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBXaGVuQ2xhdXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3doZW5DbGF1c2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1udW1iZXItZmllbGRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1maWVsZHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItZmllbGRzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgaW5MaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluQ2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5kZXghOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBhbnN3ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYW5zd2VyOiBhbnk7IG1heFBvc3NpYmxlU2NvcmU/OiBudW1iZXIgfT4oKTtcbiAgQElucHV0KCkgcm93SWQ6IGFueTtcblxuICBjb3VudDogbnVtYmVyID0gMDtcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGludDogc3RyaW5nID0gJyc7XG4gIHVwRG93biE6IGJvb2xlYW47XG4gIGFsbG93TmVnYXRpdmVWYWx1ZXMhOiBib29sZWFuO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG4gIG1pbiE6IG51bWJlcjtcbiAgbWF4ITogbnVtYmVyO1xuICBlbnRlcmVkTnVtYmVyITogbnVtYmVyO1xuICB2YWxpZGF0aW9uRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgZGVmYXVsdFZhbHVlITogbnVtYmVyO1xuICBkaXNhYmxlRWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGVsZW1lbnRJZDogc3RyaW5nPScnO1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSB0cmFja2VyOiBFbGVtZW50VHJhY2tlclNlcnZpY2UsXG4gICAgICBwcml2YXRlIGFnZ3JlZ2F0ZVNlcnZpY2U6QWdncmVnYXRpb25GdW5jdGlvblNlcnZpY2UsXG4gICAgICBwcml2YXRlIHdoZW5DbGF1c2VTZXJ2aWNlOldoZW5DbGF1c2VTZXJ2aWNlXG4gICAgKSB7XG4gICAgfVxuICBcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlQXNzaWduZWQoKTtcbiAgfVxuXG4gIHZhbHVlQXNzaWduZWQoKSB7XG4gICAgdGhpcy5jb3VudCA9IHRoaXMucXVlc3Rpb24uY291bnQ7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHRoaXMucXVlc3Rpb24ucmVxdWlyZWQ7XG4gICAgdGhpcy5oaW50ID0gdGhpcy5xdWVzdGlvbi5oaW50O1xuICAgIHRoaXMudXBEb3duID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLnVwQW5kRG93bkJ1dHRvbjtcbiAgICB0aGlzLmFsbG93TmVnYXRpdmVWYWx1ZXMgPVxuICAgICAgdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC5hcHBlYXJhbmNlLmFsbG93TmVnYXRpdmVWYWx1ZXM7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQ/LmFwcGVhcmFuY2U/LnBsYWNlaG9sZGVyIHx8ICcnO1xuICAgIHRoaXMubWluID0gdGhpcy5xdWVzdGlvbi5mb3JtRWxlbWVudC52YWxpZGF0aW9uLm1pbjtcbiAgICB0aGlzLm1heCA9IHRoaXMucXVlc3Rpb24uZm9ybUVsZW1lbnQudmFsaWRhdGlvbi5tYXg7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnF1ZXN0aW9uPy5kZWZhdWx0VmFsdWU7XG4gICAgdGhpcy5kaXNhYmxlRWRpdCA9IHRoaXMucXVlc3Rpb24uZGlzYWJsZUVkaXQ7XG4gICAgdGhpcy5lbnRlcmVkTnVtYmVyID0gdGhpcy5kZWZhdWx0VmFsdWU7XG4gICAgaWYodGhpcy5xdWVzdGlvbi5hbnN3ZXIpe1xuICAgICAgdGhpcy5lbnRlcmVkTnVtYmVyID0gdGhpcy5xdWVzdGlvbj8uYW5zd2VyO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2hlbkNsYXVzZVNlcnZpY2Uuc2V0UXVlc3Rpb25BbnN3ZXIodGhpcy5xdWVzdGlvbi5pZCx0aGlzLmVudGVyZWROdW1iZXIsdHJ1ZSk7XG4gICAgICB9KTsgIFxuICAgIH1lbHNlIGlmKHRoaXMuZGVmYXVsdFZhbHVlICYmICF0aGlzLnF1ZXN0aW9uLmFuc3dlcil7XG4gICAgICB0aGlzLnF1ZXN0aW9uLmFuc3dlciA9IHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMud2hlbkNsYXVzZVNlcnZpY2Uuc2V0UXVlc3Rpb25BbnN3ZXIodGhpcy5xdWVzdGlvbi5pZCx0aGlzLnF1ZXN0aW9uLmFuc3dlcix0cnVlKTtcbiAgICAgIH0pOyBcbiAgICB9IGVsc2V7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy53aGVuQ2xhdXNlU2VydmljZS5zZXRRdWVzdGlvbkFuc3dlcih0aGlzLnF1ZXN0aW9uLmlkLCcnLHRydWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNoaWxkTG9naWNzICYmIHRoaXMucXVlc3Rpb24uYW5zd2VyKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkTG9naWNzKHRoaXMucXVlc3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmFnZ3JlZ2F0ZVNlcnZpY2Uuc2V0TnVtYmVyRmllbGQodGhpcy5yb3dJZCx0aGlzLnF1ZXN0aW9uLmlkLHRoaXMucXVlc3Rpb24uYW5zd2VyKTtcbiAgfVxuXG4gIHByZXZlbnROdW1iZXJTY3JvbGwoZXZlbnQ6IFdoZWVsRXZlbnQpIHtcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuICBcbiAgdmFsaWRhdGVOdW1iZXIoKSB7XG4gICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gZmFsc2U7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5jbGVhckludmFsaWQodGhpcy5idWlsZEVsZW1lbnRJZCgpKTtcbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gJyc7XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuZW50ZXJlZE51bWJlcikge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRmFpbGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyYDtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uTWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXJgO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuYWxsb3dOZWdhdGl2ZVZhbHVlcyAmJiB0aGlzLmVudGVyZWROdW1iZXIgPCAwKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25GYWlsZWQgPSB0cnVlO1xuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9ICdQbGVhc2UgZW50ZXIgYSBwb3NpdGl2ZSBudW1iZXInO1xuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRpb25NZXNzYWdlID0gJ1BsZWFzZSBlbnRlciBhIHBvc2l0aXZlIG51bWJlcic7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICh0aGlzLm1pbiAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZW50ZXJlZE51bWJlciA8IHRoaXMubWluKSB8fFxuICAgICAgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5lbnRlcmVkTnVtYmVyID4gdGhpcy5tYXgpXG4gICAgKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25GYWlsZWQgPSB0cnVlO1xuXG4gICAgICAvLyBDb25zdHJ1Y3QgYXBwcm9wcmlhdGUgdmFsaWRhdGlvbiBtZXNzYWdlIGJhc2VkIG9uIHdoZXRoZXIgbWluLCBtYXgsIG9yIGJvdGggYXJlIHByb3ZpZGVkXG4gICAgICBpZiAodGhpcy5taW4gIT09IHVuZGVmaW5lZCAmJiB0aGlzLm1heCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyIGJldHdlZW4gJHt0aGlzLm1pbn0gYW5kICR7dGhpcy5tYXh9YDtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uTWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXIgYmV0d2VlbiAke3RoaXMubWlufSBhbmQgJHt0aGlzLm1heH1gO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3RoaXMubWlufWA7XG4gICAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbk1lc3NhZ2UgPSBgUGxlYXNlIGVudGVyIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke3RoaXMubWlufWA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7dGhpcy5tYXh9YDtcbiAgICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uTWVzc2FnZSA9IGBQbGVhc2UgZW50ZXIgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICR7dGhpcy5tYXh9YDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5xdWVzdGlvbi52YWxpZGF0aW9uID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlc3Rpb24udmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNoaWxkTG9naWNzKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkTG9naWNzKHRoaXMucXVlc3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gICAgdGhpcy5xdWVzdGlvbi5hbnN3ZXIgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5hZ2dyZWdhdGVTZXJ2aWNlLnNldE51bWJlckZpZWxkKHRoaXMucm93SWQsdGhpcy5xdWVzdGlvbi5pZCwgZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jaGlsZExvZ2ljcykge1xuICAgICAgdGhpcy51cGRhdGVDaGlsZExvZ2ljcyh0aGlzLnF1ZXN0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5hbnN3ZXJDaGFuZ2UuZW1pdCh7YW5zd2VyOnRoaXMucXVlc3Rpb24uYW5zd2VyLG1heFBvc3NpYmxlU2NvcmU6MH0pO1xuICAgIHRoaXMud2hlbkNsYXVzZVNlcnZpY2Uuc2V0UXVlc3Rpb25BbnN3ZXIodGhpcy5xdWVzdGlvbi5pZCx0aGlzLnF1ZXN0aW9uLmFuc3dlcik7XG4gIH1cblxuICB1cGRhdGVDaGlsZExvZ2ljcyhxdWVzdGlvbjogYW55KSB7XG4gICAgaWYgKHF1ZXN0aW9uLmNoaWxkTG9naWNzICYmIEFycmF5LmlzQXJyYXkocXVlc3Rpb24uY2hpbGRMb2dpY3MpKSB7XG4gICAgICBxdWVzdGlvbi5jaGlsZExvZ2ljcy5mb3JFYWNoKChjaGlsZExvZ2ljOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuZXZhbHVhdGVDb25kaXRpb24oXG4gICAgICAgICAgICBxdWVzdGlvbi5hbnN3ZXIsXG4gICAgICAgICAgICBjaGlsZExvZ2ljLmNvbmRpdGlvbixcbiAgICAgICAgICAgIGNoaWxkTG9naWMuaW5wdXRWYWx1ZVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2hpbGRMb2dpYy5zaG93TG9naWMgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoaWxkTG9naWMuc2hvd0xvZ2ljID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jbGVhckFuc3dlcnNSZWN1cnNpdmVseShjaGlsZExvZ2ljKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIFxuICBjbGVhckFuc3dlcnNSZWN1cnNpdmVseShsb2dpYzogYW55KSB7XG4gICAgaWYgKCFsb2dpYyB8fCAhbG9naWMucm93cykgcmV0dXJuO1xuICBcbiAgICBsb2dpYy5yb3dzLmZvckVhY2goKHJvdzogYW55KSA9PiB7XG4gICAgICByb3cuZ3JpZC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGl0ZW0uZWxlbWVudDtcbiAgXG4gICAgICAgIGlmIChpdGVtLmVudGl0eVR5cGUgPT09ICdRVUVTVElPTicgJiYgZWxlbWVudCkge1xuICAgICAgICAgIC8vIENsZWFyIGFuc3dlciBpZiBwcmVzZW50XG4gICAgICAgICAgaWYgKCdhbnN3ZXInIGluIGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuYW5zd2VyID0gJyc7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAvLyBSZWN1cnNpdmVseSBjbGVhciBjaGlsZExvZ2ljcyBpZiBhbnlcbiAgICAgICAgICBpZiAoZWxlbWVudC5jaGlsZExvZ2ljcyAmJiBlbGVtZW50LmNoaWxkTG9naWNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGVsZW1lbnQuY2hpbGRMb2dpY3MuZm9yRWFjaCgoY2hpbGRMb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkoY2hpbGRMb2dpYyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGlmIChpdGVtLmVudGl0eVR5cGUgPT09ICdTVUJGT1JNJyAmJiBlbGVtZW50ICYmIGVsZW1lbnQucm93cykge1xuICAgICAgICAgIC8vIFNVQkZPUk0gY29udGFpbnMgaXRzIG93biByb3dzIHN0cnVjdHVyZSBsaWtlIGEgZm9ybVxuICAgICAgICAgIHRoaXMuY2xlYXJBbnN3ZXJzUmVjdXJzaXZlbHkoeyByb3dzOiBlbGVtZW50LnJvd3MgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZXZhbHVhdGVDb25kaXRpb24oYW5zd2VyOiBhbnksIGNvbmRpdGlvbjogYW55LCBpbnB1dFZhbHVlOiBhbnkpIHtcbiAgICBzd2l0Y2ggKGNvbmRpdGlvbikge1xuICAgICAgY2FzZSAnPic6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgPiBOdW1iZXIoaW5wdXRWYWx1ZSk7XG4gICAgICBjYXNlICc8JzpcbiAgICAgICAgcmV0dXJuIGFuc3dlciA8IE51bWJlcihpbnB1dFZhbHVlKTtcbiAgICAgIGNhc2UgJz49JzpcbiAgICAgICAgcmV0dXJuIGFuc3dlciA+PSBOdW1iZXIoaW5wdXRWYWx1ZSk7XG4gICAgICBjYXNlICc8PSc6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgPD0gTnVtYmVyKGlucHV0VmFsdWUpO1xuICAgICAgY2FzZSAnPSc6XG4gICAgICAgIHJldHVybiBhbnN3ZXIgPT0gaW5wdXRWYWx1ZTtcbiAgICAgIGNhc2UgJyE9JzpcbiAgICAgICAgcmV0dXJuIGFuc3dlciAhPSBpbnB1dFZhbHVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG5cbiAgXG4gIGhhbmRsZVZhbGlkYXRpb24oaXNWYWxpZDogYm9vbGVhbiwgbWVzc2FnZTogc3RyaW5nID0gJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKSB7XG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuY2xlYXJJbnZhbGlkKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoaXMudmFsaWRhdGlvblNlcnZpY2Uuc2V0SW52YWxpZCh0aGlzLnF1ZXN0aW9uLmlkLCBtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRWxlbWVudElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmluTGluZSB8fCB0aGlzLmluQ2FyZClcbiAgICAgID8gYCR7dGhpcy5zdWJtaXNzaW9uSW5kZXh9LSR7dGhpcy5xdWVzdGlvbi5pZH1gXG4gICAgICA6IGAke3RoaXMucXVlc3Rpb24uaWR9YDtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UodGhpcy5idWlsZEVsZW1lbnRJZCgpKTtcbiAgfVxuXG4gIGdldCBlcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKHRoaXMuYnVpbGRFbGVtZW50SWQoKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5MaW5lIHx8IHRoaXMuaW5DYXJkKSB7XG4gICAgICB0aGlzLmVsZW1lbnRJZCA9IGBxdWVzdGlvbi0ke3RoaXMuc3VibWlzc2lvbkluZGV4fS0ke3RoaXMucXVlc3Rpb24uaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50SWQgPSBgcXVlc3Rpb24tJHt0aGlzLnF1ZXN0aW9uLmlkfWA7XG4gICAgfVxuICBcbiAgICB0aGlzLnRyYWNrZXIucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMud2hlbkNsYXVzZVNlcnZpY2UubWFya0xvYWRDb21wbGV0ZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnRJZCkge1xuICAgICAgdGhpcy50cmFja2VyLnVucmVnaXN0ZXJFbGVtZW50KHRoaXMuZWxlbWVudElkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwieyAnbWItNCc6ICFpbkxpbmUgfVwiXG4gIGNsYXNzPVwicHgtM1wiXG4gIFtpZF09XCIoaW5MaW5lIHx8IGluQ2FyZCkgPyAncXVlc3Rpb24tJyArIHN1Ym1pc3Npb25JbmRleCArICctJyArIHF1ZXN0aW9uLmlkIDogJ3F1ZXN0aW9uLScgKyBxdWVzdGlvbi5pZFwiXG4gIFthdHRyLm5hbWVdPVwicXVlc3Rpb24udGVzdEVsZW1lbnROYW1lXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIgbWItMlwiICpuZ0lmPVwiIWluTGluZVwiPlxuICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvbk51bWJlclwiIFtpbm5lckhUTUxdPVwicXVlc3Rpb24ucXVlc3Rpb25OdW1iZXJcIj48L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uTnVtYmVyXCIgY2xhc3M9XCJzcGFjZVwiPjwvc3Bhbj5cbiAgICA8bGFiZWw+e3sgcXVlc3Rpb24ucXVlc3Rpb24gfX08L2xhYmVsXG4gICAgPiZuYnNwO1xuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInN2Zy13cmFwcGVyIG1iLTIgaGludEljb25cIlxuICAgICAgW2F0dHIuZGF0YS10aXRsZV09XCJoaW50XCJcbiAgICAgICpuZ0lmPVwiaGludFwiXG4gICAgPlxuICAgICAgPHN2Z1xuICAgICAgICBjbGFzcz1cImhpbnRTdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDMwIDMwXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgZD1cIk0xNSAyNi4yNVYyNi4yNUM4Ljc4NjI1IDI2LjI1IDMuNzUgMjEuMjEzOCAzLjc1IDE1VjE1QzMuNzUgOC43ODYyNSA4Ljc4NjI1IDMuNzUgMTUgMy43NVYzLjc1QzIxLjIxMzggMy43NSAyNi4yNSA4Ljc4NjI1IDI2LjI1IDE1VjE1QzI2LjI1IDIxLjIxMzggMjEuMjEzOCAyNi4yNSAxNSAyNi4yNVpcIlxuICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTUgMTYuNTYyM1YxNi4yNDk4QzE1IDE1LjIyODUgMTUuNjMxMiAxNC42NzQ4IDE2LjI2MzcgMTQuMjQ5OEMxNi44ODEyIDEzLjgzMzUgMTcuNSAxMy4yOTEgMTcuNSAxMi4yOTFDMTcuNSAxMC45MDk4IDE2LjM4MTMgOS43OTEwMiAxNSA5Ljc5MTAyQzEzLjYxODcgOS43OTEwMiAxMi41IDEwLjkwOTggMTIuNSAxMi4yOTFcIlxuICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTQuOTk4OCAyMEMxNC44MjYzIDIwIDE0LjY4NjMgMjAuMTQgMTQuNjg3NSAyMC4zMTI1QzE0LjY4NzUgMjAuNDg1IDE0LjgyNzUgMjAuNjI1IDE1IDIwLjYyNUMxNS4xNzI1IDIwLjYyNSAxNS4zMTI1IDIwLjQ4NSAxNS4zMTI1IDIwLjMxMjVDMTUuMzEyNSAyMC4xNCAxNS4xNzI1IDIwIDE0Ljk5ODggMjBcIlxuICAgICAgICAgIHN0cm9rZT1cIiMzMjMyMzJcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8aW5wdXRcbiAgICB0eXBlPVwibnVtYmVyXCJcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtYi0yIGhlaWdodFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY2xhc3MuaGlkZS1zcGluLWJ1dHRvbnNdPVwiIXVwRG93blwiXG4gICAgKGJsdXIpPVwidmFsaWRhdGVOdW1iZXIoKVwiXG4gICAgWyhuZ01vZGVsKV09XCJlbnRlcmVkTnVtYmVyXCJcbiAgICBbY2xhc3MuaW52YWxpZF09XCJ2YWxpZGF0aW9uRmFpbGVkXCJcbiAgICBbY2xhc3MuaW52YWxpZC1xdWVzdGlvbl09XCJpc0ludmFsaWQgJiYgKCFpbkxpbmUgfHwgIWVudGVyZWROdW1iZXIpXCJcbiAgICAoaW5wdXQpPVwidmFsaWRhdGVJbnB1dCgkZXZlbnQpXCJcbiAgICBbYXR0ci5taW5dPVwibWluXCJcbiAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAod2hlZWwpPVwicHJldmVudE51bWJlclNjcm9sbCgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXRcIlxuICAvPlxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkICYmICghaW5MaW5lIHx8ICFlbnRlcmVkTnVtYmVyKVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInZhbGlkYXRpb25GYWlsZWQgJiYgIWlzSW52YWxpZFwiIGNsYXNzPVwidGV4dC1kYW5nZXIgZXJyb3ItbWVzc2FnZVwiPlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwidmFsaWRhdGlvblN2Z1wiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIuMDAxIDE2Ljc1QzEyLjEzOSAxNi43NSAxMi4yNTEgMTYuNjM4IDEyLjI1IDE2LjVDMTIuMjUgMTYuMzYyIDEyLjEzOCAxNi4yNSAxMiAxNi4yNUMxMS44NjIgMTYuMjUgMTEuNzUgMTYuMzYyIDExLjc1IDE2LjVDMTEuNzUgMTYuNjM4IDExLjg2MiAxNi43NSAxMi4wMDEgMTYuNzVcIlxuICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEyIDIxQzcuMDI5IDIxIDMgMTYuOTcxIDMgMTJDMyA3LjAyOSA3LjAyOSAzIDEyIDNDMTYuOTcxIDMgMjEgNy4wMjkgMjEgMTJDMjEgMTYuOTcxIDE2Ljk3MSAyMSAxMiAyMVpcIlxuICAgICAgICBmaWxsPVwiI0ZGMDAwMFwiXG4gICAgICAgIHN0cm9rZT1cIiNGRjAwMDBcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTIgMTIuNzVMMTIgNy43NVwiXG4gICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjE2XCIgcj1cIjFcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgIDwvc3ZnPlxuICAgIHt7IHZhbGlkYXRpb25NZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=