@colijnit/sharedcomponents 260.1.9 → 260.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,11 +3,15 @@ import { FormQuestionType } from '@colijnit/mainapi/build/enum/form-question.typ
3
3
  import { TableName } from '@colijnit/mainapi/build/enum/table-name.enum';
4
4
  import { FormQuestionAnswer } from '@colijnit/mainapi/build/model/form-question-answer.bo';
5
5
  import { Icon } from '../../../enum/icon.enum';
6
+ import { UserFormMode } from '../../../enum/user-form-mode.enum';
6
7
  export class FormBuilderQuestionComponent {
7
8
  constructor() {
8
9
  this.formQuestionType = FormQuestionType;
9
10
  this.TableName = TableName;
10
11
  this.icons = Icon;
12
+ this.modes = UserFormMode;
13
+ this.formQuestionTypes = FormQuestionType;
14
+ this.mode = UserFormMode.Create;
11
15
  this.active = false;
12
16
  this.readonly = false;
13
17
  this.updateQuestion = new EventEmitter();
@@ -69,13 +73,11 @@ FormBuilderQuestionComponent.decorators = [
69
73
  [(model)]="question.responseQuestion.response"
70
74
  [required]="question.mandatory"
71
75
  [readonly]="readonly"
72
- [disabled]="question.disabled && questionIndex !== 0"
73
76
  ></co-input-text>
74
77
  <co-input-textarea *ngSwitchCase="formQuestionType.LongAnswer"
75
78
  [(model)]="question.responseQuestion.response"
76
79
  [required]="question.mandatory"
77
80
  [readonly]="readonly"
78
- [disabled]="question.disabled && questionIndex !== 0"
79
81
  ></co-input-textarea>
80
82
  <ng-container *ngSwitchCase="formQuestionType.MultipleChoiceSingleOption"
81
83
 
@@ -84,7 +86,6 @@ FormBuilderQuestionComponent.decorators = [
84
86
  <co-input-radio-button *ngFor="let answer of question.formQuestionAnswers"
85
87
  [label]="answer.answer"
86
88
  [model]="answer.answerId == question.responseQuestion.response"
87
- [disabled]="question.disabled && questionIndex !== 0"
88
89
  (modelChange)="question.responseQuestion.response = answer.answerId + ''; updateQuestion.emit({question: question, answer: answer})"
89
90
  ></co-input-radio-button>
90
91
  </co-form>
@@ -96,7 +97,6 @@ FormBuilderQuestionComponent.decorators = [
96
97
  [model]="question.responseQuestion.response ?
97
98
  question.responseQuestion.response.indexOf(answer.answerId) > -1 :
98
99
  question.responseQuestion.response"
99
- [disabled]="question.disabled && questionIndex !== 0"
100
100
  (modelChange)="changeMultipleOption(answer.answerId, question.responseQuestion, $event); updateQuestion.emit({question: question, answer: answer})"
101
101
  ></co-input-checkbox>
102
102
  </ng-container>
@@ -106,7 +106,6 @@ FormBuilderQuestionComponent.decorators = [
106
106
  [displayField]="'answer'"
107
107
  [required]="question.mandatory"
108
108
  [readonly]="readonly"
109
- [disabled]="question.disabled && questionIndex !== 0"
110
109
  (modelChange)="changeLovOption(question.responseQuestion, $event); updateQuestion.emit({question: question, answer: $event})"
111
110
  ></co-list-of-values>
112
111
  <co-user-form-input-scale *ngSwitchCase="formQuestionType.LinearScale"
@@ -117,21 +116,18 @@ FormBuilderQuestionComponent.decorators = [
117
116
  [descriptionField]="'answer'"
118
117
  [required]="question.mandatory"
119
118
  [readonly]="readonly"
120
- [disabled]="question.disabled && questionIndex !== 0"
121
119
  (selectionChange)="question.responseQuestion.response = $event.answerId + ''"
122
120
  ></co-user-form-input-scale>
123
121
  <co-input-date *ngSwitchCase="formQuestionType.Date"
124
122
  [(model)]="question.responseQuestion.dateResponse"
125
123
  [required]="question.mandatory"
126
124
  [readonly]="readonly"
127
- [disabled]="question.disabled && questionIndex !== 0"
128
125
  ></co-input-date>
129
126
  <co-input-time *ngSwitchCase="formQuestionType.Time"
130
127
  [model]="question.responseQuestion?.timeResponse ?? 1"
131
128
  (modelChange)="changeTime(question.responseQuestion, $event)"
132
129
  [required]="question.mandatory"
133
130
  [readonly]="readonly"
134
- [disabled]="question.disabled && questionIndex !== 0"
135
131
  ></co-input-time>
136
132
  </div>
137
133
  </div>
@@ -140,6 +136,7 @@ FormBuilderQuestionComponent.decorators = [
140
136
  },] }
141
137
  ];
142
138
  FormBuilderQuestionComponent.propDecorators = {
139
+ mode: [{ type: Input }],
143
140
  question: [{ type: Input }],
144
141
  formResponse: [{ type: Input }],
145
142
  questionIndex: [{ type: Input }],
@@ -148,4 +145,4 @@ FormBuilderQuestionComponent.propDecorators = {
148
145
  updateQuestion: [{ type: Output }],
149
146
  formResponseChange: [{ type: Output }]
150
147
  };
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci9mb3JtLWJ1aWxkZXItdXNlci1mb3JtL2Zvcm0tYnVpbGRlci1xdWVzdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNqRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFdkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFFekYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBb0Y3QyxNQUFNLE9BQU8sNEJBQTRCO0lBbEZ6QztRQW1Ga0IscUJBQWdCLEdBQTRCLGdCQUFnQixDQUFDO1FBQzdELGNBQVMsR0FBcUIsU0FBUyxDQUFDO1FBQ3hDLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBWW5DLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixtQkFBYyxHQUFnRCxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUdoSCx1QkFBa0IsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFdEcsa0JBQWEsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBOEN0RSxDQUFDO0lBNUNRLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEtBQUssZ0JBQWdCLENBQUMsWUFBWSxFQUFFO1lBQ3JGLE1BQU0sZUFBZSxHQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNySCxJQUFJLGVBQWUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQzthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxvQkFBMEMsRUFBRSxLQUF5QjtRQUMxRixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDN0Msb0JBQW9CLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDbkQsb0JBQW9CLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQy9DO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsZ0JBQXNDO1FBQzlELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixNQUFNLG9CQUFvQixHQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0gsSUFBSSxvQkFBb0IsRUFBRTtnQkFDeEIsb0JBQW9CLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakQ7U0FDRjtJQUNILENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxFQUFVLEVBQUUsWUFBa0MsRUFBRSxHQUFZO1FBQ3RGLE1BQU0sWUFBWSxHQUFhLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0YsSUFBSSxHQUFHLEVBQUU7WUFDUCxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7UUFDRCxZQUFZLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQWtDLEVBQUUsSUFBVTtRQUM5RCxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDOzs7WUF4SkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2RVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7Ozt1QkFNRSxLQUFLOzJCQUdMLEtBQUs7NEJBR0wsS0FBSztxQkFHTCxLQUFLO3VCQUdMLEtBQUs7NkJBR0wsTUFBTTtpQ0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uVHlwZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9mb3JtLXF1ZXN0aW9uLnR5cGUnO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW0nO1xyXG5pbXBvcnQge0Zvcm1RdWVzdGlvbn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZm9ybS1xdWVzdGlvbi5ibyc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uQW5zd2VyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLXF1ZXN0aW9uLWFuc3dlci5ibyc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2Zvcm0tcXVlc3Rpb24tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tZm9ybS1idWlsZGVyLXF1ZXN0aW9uJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlXCIgY2xhc3M9XCJoZWFkZXJzLXJvd1wiIGZ4TGF5b3V0PVwiY29sdW1uXCJcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAoa2V5ZG93bik9XCJ1cGRhdGVRdWVzdGlvbi5lbWl0KHtxdWVzdGlvbjogcXVlc3Rpb259KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tcnVicmljLWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJxdWVzdGlvbi5zZXF1ZW5jZSsgJy4gJyArIChxdWVzdGlvbi5xdWVzdGlvbilcIj48L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLXdyYXBwZXJcIiBbbmdTd2l0Y2hdPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgKm5nU3dpdGNoQ2FzZT1cImZvcm1RdWVzdGlvblR5cGUuU2hvcnRBbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJxdWVzdGlvbi5tYW5kYXRvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInF1ZXN0aW9uLmRpc2FibGVkICYmIHF1ZXN0aW9uSW5kZXggIT09IDBcIlxyXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRhcmVhICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLkxvbmdBbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLm1hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5kaXNhYmxlZCAmJiBxdWVzdGlvbkluZGV4ICE9PSAwXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0YXJlYT5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLk11bHRpcGxlQ2hvaWNlU2luZ2xlT3B0aW9uXCJcclxuXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IGFuc3dlciBvZiBxdWVzdGlvbi5mb3JtUXVlc3Rpb25BbnN3ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImFuc3dlci5hbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYW5zd2VyLmFuc3dlcklkID09IHF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicXVlc3Rpb24uZGlzYWJsZWQgJiYgcXVlc3Rpb25JbmRleCAhPT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlID0gYW5zd2VyLmFuc3dlcklkICsgJyc7IHVwZGF0ZVF1ZXN0aW9uLmVtaXQoe3F1ZXN0aW9uOiBxdWVzdGlvbiwgYW5zd2VyOiBhbnN3ZXJ9KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLk11bHRpcGxlQ2hvaWNlTXVsdGlwbGVPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHF1ZXN0aW9uLmZvcm1RdWVzdGlvbkFuc3dlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImFuc3dlci5hbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlID8gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlLmluZGV4T2YoYW5zd2VyLmFuc3dlcklkKSA+IC0xIDogXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5kaXNhYmxlZCAmJiBxdWVzdGlvbkluZGV4ICE9PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VNdWx0aXBsZU9wdGlvbihhbnN3ZXIuYW5zd2VySWQsIHF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24sICRldmVudCk7IHVwZGF0ZVF1ZXN0aW9uLmVtaXQoe3F1ZXN0aW9uOiBxdWVzdGlvbiwgYW5zd2VyOiBhbnN3ZXJ9KVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlcyAqbmdTd2l0Y2hDYXNlPVwiZm9ybVF1ZXN0aW9uVHlwZS5Ecm9wRG93bkxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZHJvcERvd25Nb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInF1ZXN0aW9uLmZvcm1RdWVzdGlvbkFuc3dlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidhbnN3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLm1hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5kaXNhYmxlZCAmJiBxdWVzdGlvbkluZGV4ICE9PSAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUxvdk9wdGlvbihxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLCAkZXZlbnQpOyB1cGRhdGVRdWVzdGlvbi5lbWl0KHtxdWVzdGlvbjogcXVlc3Rpb24sIGFuc3dlcjogJGV2ZW50fSlcIlxyXG4gICAgICAgICAgICAgID48L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgIDxjby11c2VyLWZvcm0taW5wdXQtc2NhbGUgKm5nU3dpdGNoQ2FzZT1cImZvcm1RdWVzdGlvblR5cGUuTGluZWFyU2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInF1ZXN0aW9uLnF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIidhbnN3ZXJJZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjYWxlTW9kZWxdPVwicXVlc3Rpb24uZm9ybVF1ZXN0aW9uQW5zd2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25GaWVsZF09XCInYW5zd2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicXVlc3Rpb24uZGlzYWJsZWQgJiYgcXVlc3Rpb25JbmRleCAhPT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2UgPSAkZXZlbnQuYW5zd2VySWQgKyAnJ1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdXNlci1mb3JtLWlucHV0LXNjYWxlPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24uZGF0ZVJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJxdWVzdGlvbi5kaXNhYmxlZCAmJiBxdWVzdGlvbkluZGV4ICE9PSAwXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC1kYXRlPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10aW1lICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLlRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uPy50aW1lUmVzcG9uc2UgPz8gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZVRpbWUocXVlc3Rpb24ucmVzcG9uc2VRdWVzdGlvbiwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLm1hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicXVlc3Rpb24uZGlzYWJsZWQgJiYgcXVlc3Rpb25JbmRleCAhPT0gMFwiXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGltZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1CdWlsZGVyUXVlc3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBmb3JtUXVlc3Rpb25UeXBlOiB0eXBlb2YgRm9ybVF1ZXN0aW9uVHlwZSA9IEZvcm1RdWVzdGlvblR5cGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRhYmxlTmFtZTogdHlwZW9mIFRhYmxlTmFtZSA9IFRhYmxlTmFtZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcXVlc3Rpb246IEZvcm1RdWVzdGlvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZm9ybVJlc3BvbnNlOiBGb3JtUXVlc3Rpb25SZXNwb25zZVtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBxdWVzdGlvbkluZGV4OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdXBkYXRlUXVlc3Rpb246IEV2ZW50RW1pdHRlcjx7cXVlc3Rpb246IGFueSwgYW5zd2VyPzogYW55fT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtxdWVzdGlvbjogYW55LCBhbnN3ZXI/OiBhbnl9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZm9ybVJlc3BvbnNlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Rm9ybVF1ZXN0aW9uUmVzcG9uc2VbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1RdWVzdGlvblJlc3BvbnNlW10+KCk7XHJcblxyXG4gIHB1YmxpYyBkcm9wRG93bk1vZGVsOiBGb3JtUXVlc3Rpb25BbnN3ZXIgPSBuZXcgRm9ybVF1ZXN0aW9uQW5zd2VyKCk7XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1SZXNwb25zZSAmJiB0aGlzLnF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSA9PT0gRm9ybVF1ZXN0aW9uVHlwZS5Ecm9wRG93bkxpc3QpIHtcclxuICAgICAgY29uc3QgY3VycmVudFF1ZXN0aW9uOiBGb3JtUXVlc3Rpb25SZXNwb25zZSA9IHRoaXMuZm9ybVJlc3BvbnNlLmZpbmQoZiA9PiBmLnF1ZXN0aW9uSWQgPT09IHRoaXMucXVlc3Rpb24ucXVlc3Rpb25JZCk7XHJcbiAgICAgIGlmIChjdXJyZW50UXVlc3Rpb24pIHtcclxuICAgICAgICB0aGlzLmRyb3BEb3duTW9kZWwuYW5zd2VyID0gY3VycmVudFF1ZXN0aW9uLnJlc3BvbnNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlTG92T3B0aW9uKGZvcm1RdWVzdGlvblJlc3BvbnNlOiBGb3JtUXVlc3Rpb25SZXNwb25zZSwgdmFsdWU6IEZvcm1RdWVzdGlvbkFuc3dlcik6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLnF1ZXN0aW9uSWQgJiYgdmFsdWUuYW5zd2VyKSB7XHJcbiAgICAgIGZvcm1RdWVzdGlvblJlc3BvbnNlLnF1ZXN0aW9uSWQgPSB2YWx1ZS5xdWVzdGlvbklkO1xyXG4gICAgICBmb3JtUXVlc3Rpb25SZXNwb25zZS5yZXNwb25zZSA9IHZhbHVlLmFuc3dlci50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLmRyb3BEb3duTW9kZWwuYW5zd2VyID0gdmFsdWUuYW5zd2VyO1xyXG4gICAgICBpZiAodGhpcy5mb3JtUmVzcG9uc2UpIHtcclxuICAgICAgICB0aGlzLmNoYW5nZUZvcm1SZXNwb25zZShmb3JtUXVlc3Rpb25SZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VGb3JtUmVzcG9uc2UocXVlc3Rpb25SZXNwb25zZTogRm9ybVF1ZXN0aW9uUmVzcG9uc2UpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1SZXNwb25zZSkge1xyXG4gICAgICBjb25zdCBmb3JtUmVzcG9uc2VRdWVzdGlvbjogRm9ybVF1ZXN0aW9uUmVzcG9uc2UgPSB0aGlzLmZvcm1SZXNwb25zZS5maW5kKGYgPT4gZi5xdWVzdGlvbklkID09PSBxdWVzdGlvblJlc3BvbnNlLnF1ZXN0aW9uSWQpO1xyXG4gICAgICBpZiAoZm9ybVJlc3BvbnNlUXVlc3Rpb24pIHtcclxuICAgICAgICBmb3JtUmVzcG9uc2VRdWVzdGlvbi5yZXNwb25zZSA9IHF1ZXN0aW9uUmVzcG9uc2UucmVzcG9uc2U7XHJcbiAgICAgICAgdGhpcy5mb3JtUmVzcG9uc2VDaGFuZ2UubmV4dCh0aGlzLmZvcm1SZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VNdWx0aXBsZU9wdGlvbihpZDogc3RyaW5nLCBmb3JtUmVzcG9uc2U6IEZvcm1RdWVzdGlvblJlc3BvbnNlLCBhZGQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlc3BvbnNlTGlzdDogc3RyaW5nW10gPSBmb3JtUmVzcG9uc2UucmVzcG9uc2UgPyBmb3JtUmVzcG9uc2UucmVzcG9uc2Uuc3BsaXQoJywnKSA6IFtdO1xyXG4gICAgaWYgKGFkZCkge1xyXG4gICAgICByZXNwb25zZUxpc3QucHVzaChpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNwb25zZUxpc3Quc3BsaWNlKHJlc3BvbnNlTGlzdC5pbmRleE9mKGlkKSwgMSk7XHJcbiAgICB9XHJcbiAgICBmb3JtUmVzcG9uc2UucmVzcG9uc2UgPSByZXNwb25zZUxpc3QudG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VUaW1lKGZvcm1SZXNwb25zZTogRm9ybVF1ZXN0aW9uUmVzcG9uc2UsIHRpbWU6IERhdGUpOiB2b2lkIHtcclxuICAgIGZvcm1SZXNwb25zZS50aW1lUmVzcG9uc2UgPSB0aW1lO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tYnVpbGRlci9mb3JtLWJ1aWxkZXItdXNlci1mb3JtL2Zvcm0tYnVpbGRlci1xdWVzdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNqRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFdkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFFekYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQTRFL0QsTUFBTSxPQUFPLDRCQUE0QjtJQTFFekM7UUEyRWtCLHFCQUFnQixHQUE0QixnQkFBZ0IsQ0FBQztRQUM3RCxjQUFTLEdBQXFCLFNBQVMsQ0FBQztRQUN4QyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQXdCLFlBQVksQ0FBQztRQUMxQyxzQkFBaUIsR0FBNEIsZ0JBQWdCLENBQUM7UUFHdkUsU0FBSSxHQUFpQixZQUFZLENBQUMsTUFBTSxDQUFDO1FBWXpDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixtQkFBYyxHQUFnRCxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUdoSCx1QkFBa0IsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFdEcsa0JB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b25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uVHlwZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9mb3JtLXF1ZXN0aW9uLnR5cGUnO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW0nO1xyXG5pbXBvcnQge0Zvcm1RdWVzdGlvbn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZm9ybS1xdWVzdGlvbi5ibyc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uQW5zd2VyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLXF1ZXN0aW9uLWFuc3dlci5ibyc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2Zvcm0tcXVlc3Rpb24tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtVc2VyRm9ybU1vZGV9IGZyb20gJy4uLy4uLy4uL2VudW0vdXNlci1mb3JtLW1vZGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWZvcm0tYnVpbGRlci1xdWVzdGlvbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVwiIGNsYXNzPVwiaGVhZGVycy1yb3dcIiBmeExheW91dD1cImNvbHVtblwiXHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgKGtleWRvd24pPVwidXBkYXRlUXVlc3Rpb24uZW1pdCh7cXVlc3Rpb246IHF1ZXN0aW9ufSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXJ1YnJpYy1oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwicXVlc3Rpb24uc2VxdWVuY2UrICcuICcgKyAocXVlc3Rpb24ucXVlc3Rpb24pXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci13cmFwcGVyXCIgW25nU3dpdGNoXT1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLlNob3J0QW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRhcmVhICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLkxvbmdBbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLm1hbmRhdG9yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZm9ybVF1ZXN0aW9uVHlwZS5NdWx0aXBsZUNob2ljZVNpbmdsZU9wdGlvblwiXHJcblxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uZm9ybVF1ZXN0aW9uQW5zd2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhbnN3ZXIuYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImFuc3dlci5hbnN3ZXJJZCA9PSBxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2UgPSBhbnN3ZXIuYW5zd2VySWQgKyAnJzsgdXBkYXRlUXVlc3Rpb24uZW1pdCh7cXVlc3Rpb246IHF1ZXN0aW9uLCBhbnN3ZXI6IGFuc3dlcn0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImZvcm1RdWVzdGlvblR5cGUuTXVsdGlwbGVDaG9pY2VNdWx0aXBsZU9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94ICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgcXVlc3Rpb24uZm9ybVF1ZXN0aW9uQW5zd2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiYW5zd2VyLmFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2UgPyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2UuaW5kZXhPZihhbnN3ZXIuYW5zd2VySWQpID4gLTEgOiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZU11bHRpcGxlT3B0aW9uKGFuc3dlci5hbnN3ZXJJZCwgcXVlc3Rpb24ucmVzcG9uc2VRdWVzdGlvbiwgJGV2ZW50KTsgdXBkYXRlUXVlc3Rpb24uZW1pdCh7cXVlc3Rpb246IHF1ZXN0aW9uLCBhbnN3ZXI6IGFuc3dlcn0pXCJcclxuICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLkRyb3BEb3duTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJkcm9wRG93bk1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwicXVlc3Rpb24uZm9ybVF1ZXN0aW9uQW5zd2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ2Fuc3dlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUxvdk9wdGlvbihxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLCAkZXZlbnQpOyB1cGRhdGVRdWVzdGlvbi5lbWl0KHtxdWVzdGlvbjogcXVlc3Rpb24sIGFuc3dlcjogJGV2ZW50fSlcIlxyXG4gICAgICAgICAgICAgID48L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgIDxjby11c2VyLWZvcm0taW5wdXQtc2NhbGUgKm5nU3dpdGNoQ2FzZT1cImZvcm1RdWVzdGlvblR5cGUuTGluZWFyU2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInF1ZXN0aW9uLnF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIidhbnN3ZXJJZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjYWxlTW9kZWxdPVwicXVlc3Rpb24uZm9ybVF1ZXN0aW9uQW5zd2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25GaWVsZF09XCInYW5zd2VyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24ucmVzcG9uc2UgPSAkZXZlbnQuYW5zd2VySWQgKyAnJ1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdXNlci1mb3JtLWlucHV0LXNjYWxlPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlICpuZ1N3aXRjaENhc2U9XCJmb3JtUXVlc3Rpb25UeXBlLkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24uZGF0ZVJlc3BvbnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRpbWUgKm5nU3dpdGNoQ2FzZT1cImZvcm1RdWVzdGlvblR5cGUuVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInF1ZXN0aW9uLnJlc3BvbnNlUXVlc3Rpb24/LnRpbWVSZXNwb25zZSA/PyAxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hhbmdlVGltZShxdWVzdGlvbi5yZXNwb25zZVF1ZXN0aW9uLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24ubWFuZGF0b3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRpbWU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQnVpbGRlclF1ZXN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgZm9ybVF1ZXN0aW9uVHlwZTogdHlwZW9mIEZvcm1RdWVzdGlvblR5cGUgPSBGb3JtUXVlc3Rpb25UeXBlO1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWU6IHR5cGVvZiBUYWJsZU5hbWUgPSBUYWJsZU5hbWU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IG1vZGVzOiB0eXBlb2YgVXNlckZvcm1Nb2RlID0gVXNlckZvcm1Nb2RlO1xyXG4gIHB1YmxpYyByZWFkb25seSBmb3JtUXVlc3Rpb25UeXBlczogdHlwZW9mIEZvcm1RdWVzdGlvblR5cGUgPSBGb3JtUXVlc3Rpb25UeXBlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtb2RlOiBVc2VyRm9ybU1vZGUgPSBVc2VyRm9ybU1vZGUuQ3JlYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBxdWVzdGlvbjogRm9ybVF1ZXN0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmb3JtUmVzcG9uc2U6IEZvcm1RdWVzdGlvblJlc3BvbnNlW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHF1ZXN0aW9uSW5kZXg6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB1cGRhdGVRdWVzdGlvbjogRXZlbnRFbWl0dGVyPHtxdWVzdGlvbjogYW55LCBhbnN3ZXI/OiBhbnl9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e3F1ZXN0aW9uOiBhbnksIGFuc3dlcj86IGFueX0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBmb3JtUmVzcG9uc2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGb3JtUXVlc3Rpb25SZXNwb25zZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVF1ZXN0aW9uUmVzcG9uc2VbXT4oKTtcclxuXHJcbiAgcHVibGljIGRyb3BEb3duTW9kZWw6IEZvcm1RdWVzdGlvbkFuc3dlciA9IG5ldyBGb3JtUXVlc3Rpb25BbnN3ZXIoKTtcclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybVJlc3BvbnNlICYmIHRoaXMucXVlc3Rpb24ucXVlc3Rpb25UeXBlID09PSBGb3JtUXVlc3Rpb25UeXBlLkRyb3BEb3duTGlzdCkge1xyXG4gICAgICBjb25zdCBjdXJyZW50UXVlc3Rpb246IEZvcm1RdWVzdGlvblJlc3BvbnNlID0gdGhpcy5mb3JtUmVzcG9uc2UuZmluZChmID0+IGYucXVlc3Rpb25JZCA9PT0gdGhpcy5xdWVzdGlvbi5xdWVzdGlvbklkKTtcclxuICAgICAgaWYgKGN1cnJlbnRRdWVzdGlvbikge1xyXG4gICAgICAgIHRoaXMuZHJvcERvd25Nb2RlbC5hbnN3ZXIgPSBjdXJyZW50UXVlc3Rpb24ucmVzcG9uc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMb3ZPcHRpb24oZm9ybVF1ZXN0aW9uUmVzcG9uc2U6IEZvcm1RdWVzdGlvblJlc3BvbnNlLCB2YWx1ZTogRm9ybVF1ZXN0aW9uQW5zd2VyKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUucXVlc3Rpb25JZCAmJiB2YWx1ZS5hbnN3ZXIpIHtcclxuICAgICAgZm9ybVF1ZXN0aW9uUmVzcG9uc2UucXVlc3Rpb25JZCA9IHZhbHVlLnF1ZXN0aW9uSWQ7XHJcbiAgICAgIGZvcm1RdWVzdGlvblJlc3BvbnNlLnJlc3BvbnNlID0gdmFsdWUuYW5zd2VyLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZHJvcERvd25Nb2RlbC5hbnN3ZXIgPSB2YWx1ZS5hbnN3ZXI7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1SZXNwb25zZSkge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRm9ybVJlc3BvbnNlKGZvcm1RdWVzdGlvblJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUZvcm1SZXNwb25zZShxdWVzdGlvblJlc3BvbnNlOiBGb3JtUXVlc3Rpb25SZXNwb25zZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybVJlc3BvbnNlKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1SZXNwb25zZVF1ZXN0aW9uOiBGb3JtUXVlc3Rpb25SZXNwb25zZSA9IHRoaXMuZm9ybVJlc3BvbnNlLmZpbmQoZiA9PiBmLnF1ZXN0aW9uSWQgPT09IHF1ZXN0aW9uUmVzcG9uc2UucXVlc3Rpb25JZCk7XHJcbiAgICAgIGlmIChmb3JtUmVzcG9uc2VRdWVzdGlvbikge1xyXG4gICAgICAgIGZvcm1SZXNwb25zZVF1ZXN0aW9uLnJlc3BvbnNlID0gcXVlc3Rpb25SZXNwb25zZS5yZXNwb25zZTtcclxuICAgICAgICB0aGlzLmZvcm1SZXNwb25zZUNoYW5nZS5uZXh0KHRoaXMuZm9ybVJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZU11bHRpcGxlT3B0aW9uKGlkOiBzdHJpbmcsIGZvcm1SZXNwb25zZTogRm9ybVF1ZXN0aW9uUmVzcG9uc2UsIGFkZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgcmVzcG9uc2VMaXN0OiBzdHJpbmdbXSA9IGZvcm1SZXNwb25zZS5yZXNwb25zZSA/IGZvcm1SZXNwb25zZS5yZXNwb25zZS5zcGxpdCgnLCcpIDogW107XHJcbiAgICBpZiAoYWRkKSB7XHJcbiAgICAgIHJlc3BvbnNlTGlzdC5wdXNoKGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3BvbnNlTGlzdC5zcGxpY2UocmVzcG9uc2VMaXN0LmluZGV4T2YoaWQpLCAxKTtcclxuICAgIH1cclxuICAgIGZvcm1SZXNwb25zZS5yZXNwb25zZSA9IHJlc3BvbnNlTGlzdC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVRpbWUoZm9ybVJlc3BvbnNlOiBGb3JtUXVlc3Rpb25SZXNwb25zZSwgdGltZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgZm9ybVJlc3BvbnNlLnRpbWVSZXNwb25zZSA9IHRpbWU7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -206,6 +206,7 @@ FormBuilderUserFormComponent.decorators = [
206
206
  <co-form #coForm (validSubmit)="onValid()" [keepInView]="sectionWrapper">
207
207
  <ng-container *ngFor="let question of cloneForm.questions; let index = index">
208
208
  <co-form-builder-question
209
+ [mode]="mode"
209
210
  [questionIndex]="index"
210
211
  [question]="question"
211
212
  [active]="form.questions.indexOf(question) === form.questions.indexOf(activeQuestion)"
@@ -279,4 +280,4 @@ FormBuilderUserFormComponent.propDecorators = {
279
280
  __decorate([
280
281
  InputBoolean()
281
282
  ], FormBuilderUserFormComponent.prototype, "readonly", void 0);
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLXVzZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvZm9ybS1idWlsZGVyLXVzZXItZm9ybS9mb3JtLWJ1aWxkZXItdXNlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxPQUFPLEVBQUMscUJBQXFCLEVBQTRCLE1BQU0sdUNBQXVDLENBQUM7QUFJdkcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8s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QUs7b0JBR0wsS0FBSztrQkFHTCxLQUFLO3VCQUdMLEtBQUs7OEJBSUwsS0FBSzt1QkFHTCxLQUFLO3lCQUdMLE1BQU07dUJBR04sTUFBTTsrQkFHTixNQUFNO29DQUdOLE1BQU07MkJBR04sTUFBTTt3QkFTTixXQUFXLFNBQUMsaUNBQWlDOztBQTdCOUM7SUFEQyxZQUFZLEVBQUU7OERBQ2tCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1RdWVzdGlvblR5cGV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vZm9ybS1xdWVzdGlvbi50eXBlJztcclxuaW1wb3J0IHtUYWJsZU5hbWV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtJztcclxuaW1wb3J0IHtGb3JtfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLmJvJztcclxuaW1wb3J0IHtGb3JtUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2Zvcm0tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSAnLi4vLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yJztcclxuaW1wb3J0IHtGb3JtUXVlc3Rpb259IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2Zvcm0tcXVlc3Rpb24uYm8nO1xyXG5pbXBvcnQge05VTExfRk9STV9GVUxMX09CSkVDVCwgTlVMTF9GT1JNX1JFU1BPTlNFX09CSkVDVH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvdXRpbC9mb3Jtcy1udWxsLW9iamVjdCc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uQW5zd2VyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLXF1ZXN0aW9uLWFuc3dlci5ibyc7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9uUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2Zvcm0tcXVlc3Rpb24tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50LmJvJztcclxuaW1wb3J0IHtBcnJheVV0aWxzfSBmcm9tICcuLi8uLi8uLi91dGlscy9hcnJheS11dGlscyc7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5JztcclxuaW1wb3J0IHtGb3JtVXRpbHN9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2Zvcm0tdXRpbHMnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VXNlckZvcm1Nb2RlfSBmcm9tICcuLi8uLi8uLi9lbnVtL3VzZXItZm9ybS1tb2RlLmVudW0nO1xyXG5pbXBvcnQge1NoYXJlZENvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvc2hhcmVkLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtGaWxlc1VwbG9hZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZmlsZXMtdXBsb2FkL2ZpbGVzLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1Byb21wdFNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25FcnJvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tZm9ybS1idWlsZGVyLXVzZXItZm9ybScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGNvLWRpYWxvZyBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIiAoY2xvc2VDbGljayk9XCJoYW5kbGVDYW5jZWxGb3JtKClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXdyYXBwZXIgbWluaS1zY3JvbGxiYXJcIiAjc2VjdGlvbldyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1mb3JtICNjb0Zvcm0gKHZhbGlkU3VibWl0KT1cIm9uVmFsaWQoKVwiIFtrZWVwSW5WaWV3XT1cInNlY3Rpb25XcmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBjbG9uZUZvcm0ucXVlc3Rpb25zOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1mb3JtLWJ1aWxkZXItcXVlc3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbkluZGV4XT1cImluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cImZvcm0ucXVlc3Rpb25zLmluZGV4T2YocXVlc3Rpb24pID09PSBmb3JtLnF1ZXN0aW9ucy5pbmRleE9mKGFjdGl2ZVF1ZXN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmb3JtUmVzcG9uc2UpXT1cImZvcm1SZXNwb25zZS5mb3JtUXVlc3Rpb25SZXNwb25zZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVwZGF0ZVF1ZXN0aW9uKT1cImVuYWJsZWROZXh0UXVlc3Rpb24oJGV2ZW50LnF1ZXN0aW9uLCAkZXZlbnQuYW5zd2VyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tZm9ybS1idWlsZGVyLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi13cmFwcGVyIG1pbmktc2Nyb2xsYmFyXCIgI3NlY3Rpb25XcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW21vZGVsXT1cImZvcm1SZXNwb25zZT8uaXNGaW5hbFwiIChtb2RlbENoYW5nZSk9XCJoYW5kbGVEZWZpbml0aXZlQ2hhbmdlKCRldmVudClcIiBbbGFiZWxdPVwiJ0RFRklOSVRJVkUnIHwgc2hhcmVkTG9jYWxpemVcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXRpdGxlXCIgW3RleHRDb250ZW50XT1cImZvcm0/LmZvcm1OYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudHMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgY2FwdHVyZT1cImVudmlyb25tZW50XCIgKGNoYW5nZSk9XCJoYW5kbGVEb2N1bWVudHNBZGRlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tZmlsZXMtdXBsb2FkICNmaWxlc1VwbG9hZENvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvLWZpbGVzLXVwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb2N1bWVudHNdPVwiZm9ybVJlc3BvbnNlLmRvY3VtZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudHNBZGRlZCk9XCJoYW5kbGVEb2N1bWVudHNBZGRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50Q2hhbmdlRXZlbnQpPVwiaGFuZGxlRG9jdW1lbnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnREZWxldGVkKT1cImhhbmRsZURvY3VtZW50RGVsZXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIiAoY2xpY2spPVwiY29tbWl0VXNlckZvcm0oKVwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIiAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsRm9ybSgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUJ1aWxkZXJVc2VyRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBmb3JtUXVlc3Rpb25UeXBlOiB0eXBlb2YgRm9ybVF1ZXN0aW9uVHlwZSA9IEZvcm1RdWVzdGlvblR5cGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRhYmxlTmFtZTogdHlwZW9mIFRhYmxlTmFtZSA9IFRhYmxlTmFtZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgcHVibGljIG1vZGU6IFVzZXJGb3JtTW9kZSA9IFVzZXJGb3JtTW9kZS5DcmVhdGU7XHJcbiAgcHVibGljIGRvY3VtZW50czogQ29Eb2N1bWVudFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2Zvcm06IEZvcm07XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVzVXBsb2FkQ29tcG9uZW50JylcclxuICBwdWJsaWMgZmlsZXNVcGxvYWRDb21wb25lbnQ6IEZpbGVzVXBsb2FkQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93UG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZvcm0oZm9ybTogRm9ybSkge1xyXG4gICAgdGhpcy5fZm9ybSA9IGZvcm07XHJcbiAgICB0aGlzLl9wcmVwYXJlTmV3Rm9ybSgpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmb3JtKCk6IEZvcm0ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm07XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB1c2VyRm9ybTogRm9ybVJlc3BvbnNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YWJsZTogVGFibGVOYW1lO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBrZXk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlUXVlc3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb2JqZWN0SWQ6IG51bWJlciA9IDA7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBjYW5jZWxGb3JtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBzYXZlRm9ybTogRXZlbnRFbWl0dGVyPEZvcm1SZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1SZXNwb25zZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IGRlZmluaXRpdmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBib29sZWFuLCBpZDogbnVtYmVyIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBib29sZWFuLCBpZDogbnVtYmVyIH0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVOZXdGb3JtUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxGb3JtUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtUmVzcG9uc2U+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBlcnJvck1lc3NhZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyBjbG9uZUZvcm06IEZvcm0gPSBOVUxMX0ZPUk1fRlVMTF9PQkpFQ1Q7XHJcbiAgcHVibGljIGZvcm1SZXNwb25zZTogRm9ybVJlc3BvbnNlO1xyXG5cclxuICBwdWJsaWMgYWN0aXZlUXVlc3Rpb246IEZvcm1RdWVzdGlvbjtcclxuICBwdWJsaWMgZ290b1F1ZXN0aW9uOiBudW1iZXI7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tZm9ybS1idWlsZGVyLXVzZXItZm9ybScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9ib0ZhY3Rvcnk6IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3NoYXJlZENvbm5lY3RvclNlcnZpY2U6IFNoYXJlZENvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXRlY3RvclJlZiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbmFibGVkTmV4dFF1ZXN0aW9uKHF1ZXN0aW9uOiBGb3JtUXVlc3Rpb24sIGFuc3dlcj86IEZvcm1RdWVzdGlvbkFuc3dlciB8IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbiA9IHF1ZXN0aW9uO1xyXG4gICAgaWYgKHR5cGVvZiBhbnN3ZXIgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIGFuc3dlciA9IHF1ZXN0aW9uLmZvcm1RdWVzdGlvbkFuc3dlcnMuZmluZChhID0+IGEuYW5zd2VySWQgPT09IGFuc3dlcik7XHJcbiAgICB9XHJcbiAgICBjb25zdCBnb3RvUXVlc3Rpb246IG51bWJlciA9IGFuc3dlciA/IGFuc3dlci5nb3RvUXVlc3Rpb25JZCA6IHF1ZXN0aW9uLmdvdG9RdWVzdGlvbklkO1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4OiBudW1iZXIgPSB0aGlzLmNsb25lRm9ybS5xdWVzdGlvbnMuZmluZEluZGV4KHEgPT4gcS5xdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkKTtcclxuICAgIGxldCBuZXh0UXVlc3Rpb246IEZvcm1RdWVzdGlvbiA9IHRoaXMuY2xvbmVGb3JtLnF1ZXN0aW9uc1tjdXJyZW50SW5kZXggKyAxXTtcclxuICAgIGlmIChnb3RvUXVlc3Rpb24pIHtcclxuICAgICAgbmV4dFF1ZXN0aW9uID0gdGhpcy5jbG9uZUZvcm0ucXVlc3Rpb25zLmZpbmQocSA9PiBxLnF1ZXN0aW9uSWQgPT09IGdvdG9RdWVzdGlvbik7XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dFF1ZXN0aW9uKSB7XHJcbiAgICAgIG5leHRRdWVzdGlvbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5nb3RvUXVlc3Rpb24gPSBuZXh0UXVlc3Rpb24uc2VxdWVuY2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdvdG9RdWVzdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblZhbGlkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zYXZlRm9ybS5uZXh0KHRoaXMuZm9ybVJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVDYW5jZWxGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudXNlckZvcm0gJiYgdGhpcy51c2VyRm9ybS5yZXNwb25zZUlkKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fc2hhcmVkQ29ubmVjdG9yU2VydmljZS51bmxvY2tGb3JtUmVzcG9uc2UodGhpcy51c2VyRm9ybS5yZXNwb25zZUlkKTtcclxuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UuZW1pdCg8c3RyaW5nPmUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsb25lRm9ybSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudXNlckZvcm0gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZvcm1SZXNwb25zZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY2FuY2VsRm9ybS5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnREZWxldGVkKGRvYzogQ29Eb2N1bWVudCk6IHZvaWQge1xyXG4gICAgQXJyYXlVdGlscy5SZW1vdmVFbGVtZW50KGRvYywgdGhpcy5mb3JtUmVzcG9uc2UuZG9jdW1lbnRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEb2N1bWVudENoYW5nZWQoZG9jOiBDb0RvY3VtZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMucHVzaChkb2MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURvY3VtZW50c0FkZGVkKGRvY3M6IENvRG9jdW1lbnRbXSk6IHZvaWQge1xyXG4gICAgZG9jcy5mb3JFYWNoKChkb2N1bWVudDogQ29Eb2N1bWVudCkgPT4ge1xyXG4gICAgICB0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMucHVzaChkb2N1bWVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3ByZXBhcmVOZXdGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jbG9uZUZvcm0gPSA8Rm9ybT50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtLCB0aGlzLmZvcm0pO1xyXG4gICAgaWYgKCF0aGlzLnVzZXJGb3JtPy5yZXNwb25zZUlkKSB7XHJcbiAgICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gPEZvcm1SZXNwb25zZT50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtUmVzcG9uc2UsIHRoaXMudXNlckZvcm0pO1xyXG4gICAgICB0aGlzLmZvcm1SZXNwb25zZS5mb3JtSWQgPSB0aGlzLmZvcm0uZm9ybUlkO1xyXG4gICAgICB0aGlzLmZvcm1SZXNwb25zZS50YWJsZSA9IHRoaXMudGFibGU7XHJcbiAgICAgIHRoaXMuZm9ybVJlc3BvbnNlLmtleSA9IHRoaXMua2V5O1xyXG4gICAgICBGb3JtVXRpbHMuTWVyZ2VSZXNwb25zZVdpdGhGb3JtKHRoaXMuY2xvbmVGb3JtLCB0aGlzLmZvcm1SZXNwb25zZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGUgPSBVc2VyRm9ybU1vZGUuRWRpdDtcclxuICAgICAgdGhpcy5fcHJlcGFyZUV4aXN0aW5nRm9ybSgpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX3NoYXJlZENvbm5lY3RvclNlcnZpY2UubG9ja0Zvcm1SZXNwb25zZSh0aGlzLnVzZXJGb3JtLnJlc3BvbnNlSWQpO1xyXG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZS5lbWl0KDxzdHJpbmc+ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9sb2FkRG9jcygpO1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlUXVlc3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuX2VuYWJsZVF1ZXN0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUV4aXN0aW5nRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvbmVGb3JtID0gPEZvcm0+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoRm9ybSwgdGhpcy5mb3JtKTtcclxuICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gPEZvcm1SZXNwb25zZT50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtUmVzcG9uc2UsIHRoaXMudXNlckZvcm0pO1xyXG4gICAgRm9ybVV0aWxzLk1lcmdlUmVzcG9uc2VXaXRoRm9ybSh0aGlzLmNsb25lRm9ybSwgdGhpcy5mb3JtUmVzcG9uc2UpO1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZVF1ZXN0aW9ucykge1xyXG4gICAgICB0aGlzLl9lbmFibGVRdWVzdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2VuYWJsZVF1ZXN0aW9ucygpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgY3VycmVudEluZGV4IGluIHRoaXMuY2xvbmVGb3JtLnF1ZXN0aW9ucykge1xyXG4gICAgICBpZiAodGhpcy5jbG9uZUZvcm0ucXVlc3Rpb25zW2N1cnJlbnRJbmRleF0pIHtcclxuICAgICAgICBjb25zdCBuZXh0UXVlc3Rpb246IEZvcm1RdWVzdGlvbiA9IHRoaXMuY2xvbmVGb3JtLnF1ZXN0aW9uc1tjdXJyZW50SW5kZXhdO1xyXG4gICAgICAgIGlmIChuZXh0UXVlc3Rpb24pIHtcclxuICAgICAgICAgIG5leHRRdWVzdGlvbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZ290b1F1ZXN0aW9uID0gbmV4dFF1ZXN0aW9uLnNlcXVlbmNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdvdG9RdWVzdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWREb2NzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMpIHtcclxuICAgICAgdGhpcy5mb3JtUmVzcG9uc2UuZG9jdW1lbnRzID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMuZm9yRWFjaCgoZG9jOiBDb0RvY3VtZW50KSA9PiB7XHJcbiAgICAgIGlmIChkb2MuZG9jdW1lbnRJZCAmJiAhZG9jLmRvY3VtZW50Qm9keSkge1xyXG4gICAgICAgIHRoaXMuX3NoYXJlZENvbm5lY3RvclNlcnZpY2UuZ2V0RG9jdW1lbnRDb250ZW50KGRvYy5kb2N1bWVudElkKS50aGVuKChjb250ZW50OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIGRvYy5kb2N1bWVudEJvZHkgPSBjb250ZW50O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWZpbml0aXZlQ2hhbmdlKGRlZmluaXRpdmU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZm9ybVJlc3BvbnNlLmlzRmluYWwgPSBkZWZpbml0aXZlO1xyXG4gICAgdGhpcy5kZWZpbml0aXZlQ2hhbmdlLm5leHQoe3ZhbHVlOiBkZWZpbml0aXZlLCBpZDogdGhpcy5vYmplY3RJZH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdFVzZXJGb3JtKCkge1xyXG4gICAgRm9ybVV0aWxzLk1lcmdlUmVzcG9uc2VXaXRoRm9ybSh0aGlzLmNsb25lRm9ybSwgdGhpcy5mb3JtUmVzcG9uc2UpO1xyXG4gICAgdGhpcy5mb3JtUmVzcG9uc2UudGFibGUgPSB0aGlzLnRhYmxlO1xyXG4gICAgdGhpcy5mb3JtUmVzcG9uc2Uua2V5ID0gdGhpcy5rZXk7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xyXG4gICAgICBjYXNlIFVzZXJGb3JtTW9kZS5DcmVhdGU6XHJcbiAgICAgICAgdGhpcy5fc2hhcmVkQ29ubmVjdG9yU2VydmljZS5pbnNlcnRGb3JtUmVzcG9uc2UodGhpcy5mb3JtUmVzcG9uc2UpLnRoZW4oKHJlc3BvbnNlOiBGb3JtUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXNwb25zZUlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUZvcm0ubmV4dChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsRm9ybSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UuZW1pdCgnRVJST1JfSU5TRVJUX0ZPUk1fUkVTUE9OU0UnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNyZWF0ZU5ld0Zvcm1SZXNwb25zZS5uZXh0KHRoaXMuZm9ybVJlc3BvbnNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBVc2VyRm9ybU1vZGUuRWRpdDpcclxuICAgICAgICB0aGlzLl9zaGFyZWRDb25uZWN0b3JTZXJ2aWNlLnVwZGF0ZUZvcm1SZXNwb25zZSh0aGlzLmZvcm1SZXNwb25zZSkudGhlbigocmVzcG9uc2U6IEZvcm1SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3BvbnNlSWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRm9ybS5uZXh0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDYW5jZWxGb3JtKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZS5lbWl0KCdFUlJPUl9TQVZJTkdfRk9STV9SRVNQT05TRScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLXVzZXItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvZm9ybS1idWlsZGVyLXVzZXItZm9ybS9mb3JtLWJ1aWxkZXItdXNlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV4RSxPQUFPLEVBQUMscUJBQXFCLEVBQTRCLE1BQU0sdUNBQXVDLENBQUM7QUFJdkcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8s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QUFLO29CQUdMLEtBQUs7a0JBR0wsS0FBSzt1QkFHTCxLQUFLOzhCQUlMLEtBQUs7dUJBR0wsS0FBSzt5QkFHTCxNQUFNO3VCQUdOLE1BQU07K0JBR04sTUFBTTtvQ0FHTixNQUFNOzJCQUdOLE1BQU07d0JBU04sV0FBVyxTQUFDLGlDQUFpQzs7QUE3QjlDO0lBREMsWUFBWSxFQUFFOzhEQUNrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtUXVlc3Rpb25UeXBlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2Zvcm0tcXVlc3Rpb24udHlwZSc7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RhYmxlLW5hbWUuZW51bSc7XHJcbmltcG9ydCB7Rm9ybX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZm9ybS5ibyc7XHJcbmltcG9ydCB7Rm9ybVJlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvcic7XHJcbmltcG9ydCB7Rm9ybVF1ZXN0aW9ufSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLXF1ZXN0aW9uLmJvJztcclxuaW1wb3J0IHtOVUxMX0ZPUk1fRlVMTF9PQkpFQ1QsIE5VTExfRk9STV9SRVNQT05TRV9PQkpFQ1R9IGZyb20gJy4uLy4uLy4uL21vZGVsL3V0aWwvZm9ybXMtbnVsbC1vYmplY3QnO1xyXG5pbXBvcnQge0Zvcm1RdWVzdGlvbkFuc3dlcn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZm9ybS1xdWVzdGlvbi1hbnN3ZXIuYm8nO1xyXG5pbXBvcnQge0Zvcm1RdWVzdGlvblJlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLXF1ZXN0aW9uLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC5ibyc7XHJcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvc2VydmljZS9idXNpbmVzcy1vYmplY3QtZmFjdG9yeSc7XHJcbmltcG9ydCB7Rm9ybVV0aWxzfSBmcm9tICcuLi8uLi8uLi91dGlscy9mb3JtLXV0aWxzJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1VzZXJGb3JtTW9kZX0gZnJvbSAnLi4vLi4vLi4vZW51bS91c2VyLWZvcm0tbW9kZS5lbnVtJztcclxuaW1wb3J0IHtTaGFyZWRDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3NoYXJlZC1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7RmlsZXNVcGxvYWRDb21wb25lbnR9IGZyb20gJy4uLy4uL2ZpbGVzLXVwbG9hZC9maWxlcy11cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWZvcm0tYnVpbGRlci11c2VyLWZvcm0nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby1kaWFsb2cgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgKGNsb3NlQ2xpY2spPVwiaGFuZGxlQ2FuY2VsRm9ybSgpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi13cmFwcGVyIG1pbmktc2Nyb2xsYmFyXCIgI3NlY3Rpb25XcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tZm9ybSAjY29Gb3JtICh2YWxpZFN1Ym1pdCk9XCJvblZhbGlkKClcIiBba2VlcEluVmlld109XCJzZWN0aW9uV3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgY2xvbmVGb3JtLnF1ZXN0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tZm9ybS1idWlsZGVyLXF1ZXN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbkluZGV4XT1cImluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cImZvcm0ucXVlc3Rpb25zLmluZGV4T2YocXVlc3Rpb24pID09PSBmb3JtLnF1ZXN0aW9ucy5pbmRleE9mKGFjdGl2ZVF1ZXN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmb3JtUmVzcG9uc2UpXT1cImZvcm1SZXNwb25zZS5mb3JtUXVlc3Rpb25SZXNwb25zZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVwZGF0ZVF1ZXN0aW9uKT1cImVuYWJsZWROZXh0UXVlc3Rpb24oJGV2ZW50LnF1ZXN0aW9uLCAkZXZlbnQuYW5zd2VyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tZm9ybS1idWlsZGVyLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi13cmFwcGVyIG1pbmktc2Nyb2xsYmFyXCIgI3NlY3Rpb25XcmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW21vZGVsXT1cImZvcm1SZXNwb25zZT8uaXNGaW5hbFwiIChtb2RlbENoYW5nZSk9XCJoYW5kbGVEZWZpbml0aXZlQ2hhbmdlKCRldmVudClcIiBbbGFiZWxdPVwiJ0RFRklOSVRJVkUnIHwgc2hhcmVkTG9jYWxpemVcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLXRpdGxlXCIgW3RleHRDb250ZW50XT1cImZvcm0/LmZvcm1OYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudHMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgY2FwdHVyZT1cImVudmlyb25tZW50XCIgKGNoYW5nZSk9XCJoYW5kbGVEb2N1bWVudHNBZGRlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tZmlsZXMtdXBsb2FkICNmaWxlc1VwbG9hZENvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvLWZpbGVzLXVwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb2N1bWVudHNdPVwiZm9ybVJlc3BvbnNlLmRvY3VtZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudHNBZGRlZCk9XCJoYW5kbGVEb2N1bWVudHNBZGRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50Q2hhbmdlRXZlbnQpPVwiaGFuZGxlRG9jdW1lbnRDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnREZWxldGVkKT1cImhhbmRsZURvY3VtZW50RGVsZXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIiAoY2xpY2spPVwiY29tbWl0VXNlckZvcm0oKVwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIiAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsRm9ybSgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUJ1aWxkZXJVc2VyRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBmb3JtUXVlc3Rpb25UeXBlOiB0eXBlb2YgRm9ybVF1ZXN0aW9uVHlwZSA9IEZvcm1RdWVzdGlvblR5cGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRhYmxlTmFtZTogdHlwZW9mIFRhYmxlTmFtZSA9IFRhYmxlTmFtZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgcHVibGljIG1vZGU6IFVzZXJGb3JtTW9kZSA9IFVzZXJGb3JtTW9kZS5DcmVhdGU7XHJcbiAgcHVibGljIGRvY3VtZW50czogQ29Eb2N1bWVudFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2Zvcm06IEZvcm07XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVzVXBsb2FkQ29tcG9uZW50JylcclxuICBwdWJsaWMgZmlsZXNVcGxvYWRDb21wb25lbnQ6IEZpbGVzVXBsb2FkQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93UG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZvcm0oZm9ybTogRm9ybSkge1xyXG4gICAgdGhpcy5fZm9ybSA9IGZvcm07XHJcbiAgICB0aGlzLl9wcmVwYXJlTmV3Rm9ybSgpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmb3JtKCk6IEZvcm0ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm07XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB1c2VyRm9ybTogRm9ybVJlc3BvbnNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YWJsZTogVGFibGVOYW1lO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBrZXk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlUXVlc3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb2JqZWN0SWQ6IG51bWJlciA9IDA7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBjYW5jZWxGb3JtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBzYXZlRm9ybTogRXZlbnRFbWl0dGVyPEZvcm1SZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1SZXNwb25zZT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IGRlZmluaXRpdmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBib29sZWFuLCBpZDogbnVtYmVyIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBib29sZWFuLCBpZDogbnVtYmVyIH0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVOZXdGb3JtUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxGb3JtUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtUmVzcG9uc2U+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBlcnJvck1lc3NhZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyBjbG9uZUZvcm06IEZvcm0gPSBOVUxMX0ZPUk1fRlVMTF9PQkpFQ1Q7XHJcbiAgcHVibGljIGZvcm1SZXNwb25zZTogRm9ybVJlc3BvbnNlO1xyXG5cclxuICBwdWJsaWMgYWN0aXZlUXVlc3Rpb246IEZvcm1RdWVzdGlvbjtcclxuICBwdWJsaWMgZ290b1F1ZXN0aW9uOiBudW1iZXI7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tZm9ybS1idWlsZGVyLXVzZXItZm9ybScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9ib0ZhY3Rvcnk6IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3NoYXJlZENvbm5lY3RvclNlcnZpY2U6IFNoYXJlZENvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXRlY3RvclJlZiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbmFibGVkTmV4dFF1ZXN0aW9uKHF1ZXN0aW9uOiBGb3JtUXVlc3Rpb24sIGFuc3dlcj86IEZvcm1RdWVzdGlvbkFuc3dlciB8IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbiA9IHF1ZXN0aW9uO1xyXG4gICAgaWYgKHR5cGVvZiBhbnN3ZXIgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIGFuc3dlciA9IHF1ZXN0aW9uLmZvcm1RdWVzdGlvbkFuc3dlcnMuZmluZChhID0+IGEuYW5zd2VySWQgPT09IGFuc3dlcik7XHJcbiAgICB9XHJcbiAgICBjb25zdCBnb3RvUXVlc3Rpb246IG51bWJlciA9IGFuc3dlciA/IGFuc3dlci5nb3RvUXVlc3Rpb25JZCA6IHF1ZXN0aW9uLmdvdG9RdWVzdGlvbklkO1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4OiBudW1iZXIgPSB0aGlzLmNsb25lRm9ybS5xdWVzdGlvbnMuZmluZEluZGV4KHEgPT4gcS5xdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkKTtcclxuICAgIGxldCBuZXh0UXVlc3Rpb246IEZvcm1RdWVzdGlvbiA9IHRoaXMuY2xvbmVGb3JtLnF1ZXN0aW9uc1tjdXJyZW50SW5kZXggKyAxXTtcclxuICAgIGlmIChnb3RvUXVlc3Rpb24pIHtcclxuICAgICAgbmV4dFF1ZXN0aW9uID0gdGhpcy5jbG9uZUZvcm0ucXVlc3Rpb25zLmZpbmQocSA9PiBxLnF1ZXN0aW9uSWQgPT09IGdvdG9RdWVzdGlvbik7XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dFF1ZXN0aW9uKSB7XHJcbiAgICAgIG5leHRRdWVzdGlvbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5nb3RvUXVlc3Rpb24gPSBuZXh0UXVlc3Rpb24uc2VxdWVuY2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdvdG9RdWVzdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblZhbGlkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zYXZlRm9ybS5uZXh0KHRoaXMuZm9ybVJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVDYW5jZWxGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudXNlckZvcm0gJiYgdGhpcy51c2VyRm9ybS5yZXNwb25zZUlkKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fc2hhcmVkQ29ubmVjdG9yU2VydmljZS51bmxvY2tGb3JtUmVzcG9uc2UodGhpcy51c2VyRm9ybS5yZXNwb25zZUlkKTtcclxuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UuZW1pdCg8c3RyaW5nPmUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsb25lRm9ybSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudXNlckZvcm0gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZvcm1SZXNwb25zZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY2FuY2VsRm9ybS5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnREZWxldGVkKGRvYzogQ29Eb2N1bWVudCk6IHZvaWQge1xyXG4gICAgQXJyYXlVdGlscy5SZW1vdmVFbGVtZW50KGRvYywgdGhpcy5mb3JtUmVzcG9uc2UuZG9jdW1lbnRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEb2N1bWVudENoYW5nZWQoZG9jOiBDb0RvY3VtZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMucHVzaChkb2MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURvY3VtZW50c0FkZGVkKGRvY3M6IENvRG9jdW1lbnRbXSk6IHZvaWQge1xyXG4gICAgZG9jcy5mb3JFYWNoKChkb2N1bWVudDogQ29Eb2N1bWVudCkgPT4ge1xyXG4gICAgICB0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMucHVzaChkb2N1bWVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3ByZXBhcmVOZXdGb3JtKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jbG9uZUZvcm0gPSA8Rm9ybT50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtLCB0aGlzLmZvcm0pO1xyXG4gICAgaWYgKCF0aGlzLnVzZXJGb3JtPy5yZXNwb25zZUlkKSB7XHJcbiAgICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gPEZvcm1SZXNwb25zZT50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtUmVzcG9uc2UsIHRoaXMudXNlckZvcm0pO1xyXG4gICAgICB0aGlzLmZvcm1SZXNwb25zZS5mb3JtSWQgPSB0aGlzLmZvcm0uZm9ybUlkO1xyXG4gICAgICB0aGlzLmZvcm1SZXNwb25zZS50YWJsZSA9IHRoaXMudGFibGU7XHJcbiAgICAgIHRoaXMuZm9ybVJlc3BvbnNlLmtleSA9IHRoaXMua2V5O1xyXG4gICAgICBGb3JtVXRpbHMuTWVyZ2VSZXNwb25zZVdpdGhGb3JtKHRoaXMuY2xvbmVGb3JtLCB0aGlzLmZvcm1SZXNwb25zZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGUgPSBVc2VyRm9ybU1vZGUuRWRpdDtcclxuICAgICAgdGhpcy5fcHJlcGFyZUV4aXN0aW5nRm9ybSgpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX3NoYXJlZENvbm5lY3RvclNlcnZpY2UubG9ja0Zvcm1SZXNwb25zZSh0aGlzLnVzZXJGb3JtLnJlc3BvbnNlSWQpO1xyXG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZS5lbWl0KDxzdHJpbmc+ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9sb2FkRG9jcygpO1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlUXVlc3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuX2VuYWJsZVF1ZXN0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUV4aXN0aW5nRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvbmVGb3JtID0gPEZvcm0+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoRm9ybSwgdGhpcy5mb3JtKTtcclxuICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gPEZvcm1SZXNwb25zZT50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtUmVzcG9uc2UsIHRoaXMudXNlckZvcm0pO1xyXG4gICAgRm9ybVV0aWxzLk1lcmdlUmVzcG9uc2VXaXRoRm9ybSh0aGlzLmNsb25lRm9ybSwgdGhpcy5mb3JtUmVzcG9uc2UpO1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZVF1ZXN0aW9ucykge1xyXG4gICAgICB0aGlzLl9lbmFibGVRdWVzdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2VuYWJsZVF1ZXN0aW9ucygpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgY3VycmVudEluZGV4IGluIHRoaXMuY2xvbmVGb3JtLnF1ZXN0aW9ucykge1xyXG4gICAgICBpZiAodGhpcy5jbG9uZUZvcm0ucXVlc3Rpb25zW2N1cnJlbnRJbmRleF0pIHtcclxuICAgICAgICBjb25zdCBuZXh0UXVlc3Rpb246IEZvcm1RdWVzdGlvbiA9IHRoaXMuY2xvbmVGb3JtLnF1ZXN0aW9uc1tjdXJyZW50SW5kZXhdO1xyXG4gICAgICAgIGlmIChuZXh0UXVlc3Rpb24pIHtcclxuICAgICAgICAgIG5leHRRdWVzdGlvbi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZ290b1F1ZXN0aW9uID0gbmV4dFF1ZXN0aW9uLnNlcXVlbmNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdvdG9RdWVzdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWREb2NzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMpIHtcclxuICAgICAgdGhpcy5mb3JtUmVzcG9uc2UuZG9jdW1lbnRzID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1SZXNwb25zZS5kb2N1bWVudHMuZm9yRWFjaCgoZG9jOiBDb0RvY3VtZW50KSA9PiB7XHJcbiAgICAgIGlmIChkb2MuZG9jdW1lbnRJZCAmJiAhZG9jLmRvY3VtZW50Qm9keSkge1xyXG4gICAgICAgIHRoaXMuX3NoYXJlZENvbm5lY3RvclNlcnZpY2UuZ2V0RG9jdW1lbnRDb250ZW50KGRvYy5kb2N1bWVudElkKS50aGVuKChjb250ZW50OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIGRvYy5kb2N1bWVudEJvZHkgPSBjb250ZW50O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWZpbml0aXZlQ2hhbmdlKGRlZmluaXRpdmU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZm9ybVJlc3BvbnNlLmlzRmluYWwgPSBkZWZpbml0aXZlO1xyXG4gICAgdGhpcy5kZWZpbml0aXZlQ2hhbmdlLm5leHQoe3ZhbHVlOiBkZWZpbml0aXZlLCBpZDogdGhpcy5vYmplY3RJZH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdFVzZXJGb3JtKCkge1xyXG4gICAgRm9ybVV0aWxzLk1lcmdlUmVzcG9uc2VXaXRoRm9ybSh0aGlzLmNsb25lRm9ybSwgdGhpcy5mb3JtUmVzcG9uc2UpO1xyXG4gICAgdGhpcy5mb3JtUmVzcG9uc2UudGFibGUgPSB0aGlzLnRhYmxlO1xyXG4gICAgdGhpcy5mb3JtUmVzcG9uc2Uua2V5ID0gdGhpcy5rZXk7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xyXG4gICAgICBjYXNlIFVzZXJGb3JtTW9kZS5DcmVhdGU6XHJcbiAgICAgICAgdGhpcy5fc2hhcmVkQ29ubmVjdG9yU2VydmljZS5pbnNlcnRGb3JtUmVzcG9uc2UodGhpcy5mb3JtUmVzcG9uc2UpLnRoZW4oKHJlc3BvbnNlOiBGb3JtUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXNwb25zZUlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUZvcm0ubmV4dChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2FuY2VsRm9ybSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UuZW1pdCgnRVJST1JfSU5TRVJUX0ZPUk1fUkVTUE9OU0UnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNyZWF0ZU5ld0Zvcm1SZXNwb25zZS5uZXh0KHRoaXMuZm9ybVJlc3BvbnNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBVc2VyRm9ybU1vZGUuRWRpdDpcclxuICAgICAgICB0aGlzLl9zaGFyZWRDb25uZWN0b3JTZXJ2aWNlLnVwZGF0ZUZvcm1SZXNwb25zZSh0aGlzLmZvcm1SZXNwb25zZSkudGhlbigocmVzcG9uc2U6IEZvcm1SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3BvbnNlSWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRm9ybS5uZXh0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDYW5jZWxGb3JtKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZS5lbWl0KCdFUlJPUl9TQVZJTkdfRk9STV9SRVNQT05TRScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -18143,6 +18143,7 @@ FormBuilderUserFormComponent.decorators = [
18143
18143
  <co-form #coForm (validSubmit)="onValid()" [keepInView]="sectionWrapper">
18144
18144
  <ng-container *ngFor="let question of cloneForm.questions; let index = index">
18145
18145
  <co-form-builder-question
18146
+ [mode]="mode"
18146
18147
  [questionIndex]="index"
18147
18148
  [question]="question"
18148
18149
  [active]="form.questions.indexOf(question) === form.questions.indexOf(activeQuestion)"
@@ -18335,6 +18336,9 @@ class FormBuilderQuestionComponent {
18335
18336
  this.formQuestionType = FormQuestionType;
18336
18337
  this.TableName = TableName$1;
18337
18338
  this.icons = Icon;
18339
+ this.modes = UserFormMode;
18340
+ this.formQuestionTypes = FormQuestionType;
18341
+ this.mode = UserFormMode.Create;
18338
18342
  this.active = false;
18339
18343
  this.readonly = false;
18340
18344
  this.updateQuestion = new EventEmitter();
@@ -18396,13 +18400,11 @@ FormBuilderQuestionComponent.decorators = [
18396
18400
  [(model)]="question.responseQuestion.response"
18397
18401
  [required]="question.mandatory"
18398
18402
  [readonly]="readonly"
18399
- [disabled]="question.disabled && questionIndex !== 0"
18400
18403
  ></co-input-text>
18401
18404
  <co-input-textarea *ngSwitchCase="formQuestionType.LongAnswer"
18402
18405
  [(model)]="question.responseQuestion.response"
18403
18406
  [required]="question.mandatory"
18404
18407
  [readonly]="readonly"
18405
- [disabled]="question.disabled && questionIndex !== 0"
18406
18408
  ></co-input-textarea>
18407
18409
  <ng-container *ngSwitchCase="formQuestionType.MultipleChoiceSingleOption"
18408
18410
 
@@ -18411,7 +18413,6 @@ FormBuilderQuestionComponent.decorators = [
18411
18413
  <co-input-radio-button *ngFor="let answer of question.formQuestionAnswers"
18412
18414
  [label]="answer.answer"
18413
18415
  [model]="answer.answerId == question.responseQuestion.response"
18414
- [disabled]="question.disabled && questionIndex !== 0"
18415
18416
  (modelChange)="question.responseQuestion.response = answer.answerId + ''; updateQuestion.emit({question: question, answer: answer})"
18416
18417
  ></co-input-radio-button>
18417
18418
  </co-form>
@@ -18423,7 +18424,6 @@ FormBuilderQuestionComponent.decorators = [
18423
18424
  [model]="question.responseQuestion.response ?
18424
18425
  question.responseQuestion.response.indexOf(answer.answerId) > -1 :
18425
18426
  question.responseQuestion.response"
18426
- [disabled]="question.disabled && questionIndex !== 0"
18427
18427
  (modelChange)="changeMultipleOption(answer.answerId, question.responseQuestion, $event); updateQuestion.emit({question: question, answer: answer})"
18428
18428
  ></co-input-checkbox>
18429
18429
  </ng-container>
@@ -18433,7 +18433,6 @@ FormBuilderQuestionComponent.decorators = [
18433
18433
  [displayField]="'answer'"
18434
18434
  [required]="question.mandatory"
18435
18435
  [readonly]="readonly"
18436
- [disabled]="question.disabled && questionIndex !== 0"
18437
18436
  (modelChange)="changeLovOption(question.responseQuestion, $event); updateQuestion.emit({question: question, answer: $event})"
18438
18437
  ></co-list-of-values>
18439
18438
  <co-user-form-input-scale *ngSwitchCase="formQuestionType.LinearScale"
@@ -18444,21 +18443,18 @@ FormBuilderQuestionComponent.decorators = [
18444
18443
  [descriptionField]="'answer'"
18445
18444
  [required]="question.mandatory"
18446
18445
  [readonly]="readonly"
18447
- [disabled]="question.disabled && questionIndex !== 0"
18448
18446
  (selectionChange)="question.responseQuestion.response = $event.answerId + ''"
18449
18447
  ></co-user-form-input-scale>
18450
18448
  <co-input-date *ngSwitchCase="formQuestionType.Date"
18451
18449
  [(model)]="question.responseQuestion.dateResponse"
18452
18450
  [required]="question.mandatory"
18453
18451
  [readonly]="readonly"
18454
- [disabled]="question.disabled && questionIndex !== 0"
18455
18452
  ></co-input-date>
18456
18453
  <co-input-time *ngSwitchCase="formQuestionType.Time"
18457
18454
  [model]="question.responseQuestion?.timeResponse ?? 1"
18458
18455
  (modelChange)="changeTime(question.responseQuestion, $event)"
18459
18456
  [required]="question.mandatory"
18460
18457
  [readonly]="readonly"
18461
- [disabled]="question.disabled && questionIndex !== 0"
18462
18458
  ></co-input-time>
18463
18459
  </div>
18464
18460
  </div>
@@ -18467,6 +18463,7 @@ FormBuilderQuestionComponent.decorators = [
18467
18463
  },] }
18468
18464
  ];
18469
18465
  FormBuilderQuestionComponent.propDecorators = {
18466
+ mode: [{ type: Input }],
18470
18467
  question: [{ type: Input }],
18471
18468
  formResponse: [{ type: Input }],
18472
18469
  questionIndex: [{ type: Input }],