@ieeesa-npm/groups 0.15.14 → 0.15.16
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.
- package/esm2022/lib/assets/constants.json +43 -5
- package/esm2022/lib/components/custom-question-editor/custom-question-editor.component.mjs +164 -0
- package/esm2022/lib/components/interest-form/interest-form.component.mjs +435 -27
- package/esm2022/lib/components/interest-form-preview/interest-form-preview.component.mjs +63 -0
- package/esm2022/lib/components/roster-import/roster-import.component.mjs +27 -10
- package/esm2022/lib/models/custom-question.model.mjs +37 -0
- package/esm2022/lib/services/interest-form.service.mjs +186 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/ieeesa-npm-groups.mjs +932 -47
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/components/custom-question-editor/custom-question-editor.component.d.ts +75 -0
- package/lib/components/interest-form/interest-form.component.d.ts +151 -16
- package/lib/components/interest-form-preview/interest-form-preview.component.d.ts +37 -0
- package/lib/components/roster-import/roster-import.component.d.ts +7 -1
- package/lib/models/custom-question.model.d.ts +72 -0
- package/lib/services/groups.service.d.ts +6 -0
- package/lib/services/interest-form.service.d.ts +114 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -1,25 +1,51 @@
|
|
|
1
|
-
import { Component, Optional, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { Component, Inject, Optional, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MAT_DIALOG_DATA, } from '@angular/material/dialog';
|
|
4
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
5
|
+
import { DragDropModule, moveItemInArray, } from '@angular/cdk/drag-drop';
|
|
3
6
|
import { RadioComponent, SlideToggleComponent, } from '@ieeesa-npm/presentation';
|
|
7
|
+
import { AlertType } from '@ieeesa-npm/utility';
|
|
8
|
+
import { InterestMode, MEMBER_LEVEL_ROLE_TYPE, QuestionFieldType, } from '../../models/custom-question.model';
|
|
9
|
+
import { CustomQuestionEditorComponent } from '../custom-question-editor/custom-question-editor.component';
|
|
10
|
+
import { InterestFormPreviewComponent } from '../interest-form-preview/interest-form-preview.component';
|
|
4
11
|
import * as constants from '../../assets/constants.json';
|
|
5
12
|
import * as i0 from "@angular/core";
|
|
6
13
|
import * as i1 from "@angular/material/dialog";
|
|
7
|
-
import * as i2 from "
|
|
14
|
+
import * as i2 from "../../services/interest-form.service";
|
|
15
|
+
import * as i3 from "../../services/groups.service";
|
|
16
|
+
import * as i4 from "@ieeesa-npm/utility";
|
|
17
|
+
import * as i5 from "@angular/common";
|
|
18
|
+
import * as i6 from "@angular/cdk/drag-drop";
|
|
8
19
|
/**
|
|
9
20
|
* "Interest Form" tab content of the Roster Interests dialog (SP3M-317). The
|
|
10
|
-
* group admin
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
21
|
+
* group admin enables/disables the form, views locked standard questions,
|
|
22
|
+
* chooses the default membership level and manages custom questions
|
|
23
|
+
* (add / edit / reorder / remove), persisted to the groups backend via
|
|
24
|
+
* InterestFormService. Each question is saved individually (create/update) and
|
|
25
|
+
* the enable mode + default level are saved via the interest-config endpoint.
|
|
15
26
|
* @export
|
|
16
27
|
* @class InterestFormComponent
|
|
17
28
|
*/
|
|
18
29
|
export class InterestFormComponent {
|
|
19
30
|
constructor(
|
|
20
31
|
// eslint-disable-next-line no-unused-vars
|
|
21
|
-
dialogRef
|
|
32
|
+
dialogRef,
|
|
33
|
+
// eslint-disable-next-line no-unused-vars
|
|
34
|
+
group,
|
|
35
|
+
// eslint-disable-next-line no-unused-vars
|
|
36
|
+
interestFormService,
|
|
37
|
+
// eslint-disable-next-line no-unused-vars
|
|
38
|
+
groupsService,
|
|
39
|
+
// eslint-disable-next-line no-unused-vars
|
|
40
|
+
alertService,
|
|
41
|
+
// eslint-disable-next-line no-unused-vars
|
|
42
|
+
dialog) {
|
|
22
43
|
this.dialogRef = dialogRef;
|
|
44
|
+
this.group = group;
|
|
45
|
+
this.interestFormService = interestFormService;
|
|
46
|
+
this.groupsService = groupsService;
|
|
47
|
+
this.alertService = alertService;
|
|
48
|
+
this.dialog = dialog;
|
|
23
49
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
50
|
this.constants = constants;
|
|
25
51
|
this.interestFormTexts = this.constants?.rosterInterests?.interestForm;
|
|
@@ -32,22 +58,35 @@ export class InterestFormComponent {
|
|
|
32
58
|
this.defaultMembershipDescription = this.interestFormTexts?.defaultMembershipDescription;
|
|
33
59
|
this.customQuestionsTitle = this.interestFormTexts?.customQuestionsTitle;
|
|
34
60
|
this.addQuestionLabel = this.interestFormTexts?.addQuestionLabel;
|
|
61
|
+
this.requiredTag = this.interestFormTexts?.requiredTag;
|
|
35
62
|
this.standardTag = this.interestFormTexts?.standardTag;
|
|
63
|
+
this.newQuestionLabel = this.interestFormTexts?.newQuestionLabel;
|
|
64
|
+
this.editQuestionAriaLabel = this.interestFormTexts?.editQuestionAriaLabel;
|
|
65
|
+
this.deleteQuestionAriaLabel = this.interestFormTexts?.deleteQuestionAriaLabel;
|
|
66
|
+
this.noLevelsMessage = this.interestFormTexts?.noLevelsMessage;
|
|
67
|
+
this.typeLabels = this.interestFormTexts?.questionEditor?.types;
|
|
36
68
|
this.cancelLabel = this.constants?.rosterInterests?.footer?.cancel;
|
|
37
69
|
this.previewLabel = this.constants?.rosterInterests?.footer?.preview;
|
|
38
70
|
this.standardQuestions = [];
|
|
39
71
|
this.membershipLevels = [];
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
// the
|
|
43
|
-
this.isFormEnabled =
|
|
72
|
+
// Defaults to disabled (OFF). The real state is driven by the API response in
|
|
73
|
+
// loadConfig; when no config has been saved yet the backend returns DISABLED,
|
|
74
|
+
// so the first-time view correctly shows the toggle OFF.
|
|
75
|
+
this.isFormEnabled = false;
|
|
76
|
+
this.selectedLevelId = null;
|
|
77
|
+
this.levels = [];
|
|
78
|
+
this.customQuestions = [];
|
|
79
|
+
this.editingQuestionId = null;
|
|
80
|
+
this.isEditingNewQuestion = false;
|
|
81
|
+
this.destroy$ = new Subject();
|
|
44
82
|
}
|
|
45
83
|
/**
|
|
46
|
-
* Initializes
|
|
47
|
-
*
|
|
84
|
+
* Initializes static UI options and loads the group's interest config and
|
|
85
|
+
* custom questions from the backend.
|
|
48
86
|
* @memberof InterestFormComponent
|
|
49
87
|
*/
|
|
50
88
|
ngOnInit() {
|
|
89
|
+
this.interestFormService.setApiBaseUrl(this.groupsService?.apiBaseUrl);
|
|
51
90
|
this.enableFormToggle = {
|
|
52
91
|
id: 1,
|
|
53
92
|
label: '',
|
|
@@ -59,20 +98,360 @@ export class InterestFormComponent {
|
|
|
59
98
|
label,
|
|
60
99
|
tag: this.standardTag,
|
|
61
100
|
}));
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
101
|
+
if (this.group?.groupId) {
|
|
102
|
+
this.loadMembershipLevels();
|
|
103
|
+
this.loadQuestions();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Loads the real membership levels for the group's group type and then the
|
|
108
|
+
* saved interest configuration (so the saved default level can be
|
|
109
|
+
* preselected).
|
|
110
|
+
* @memberof InterestFormComponent
|
|
111
|
+
*/
|
|
112
|
+
loadMembershipLevels() {
|
|
113
|
+
const appId = this.groupsService?.getUserInfo()?.appId;
|
|
114
|
+
if (!appId) {
|
|
115
|
+
this.loadConfig();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.interestFormService
|
|
119
|
+
.getRoles(appId)
|
|
120
|
+
.pipe(takeUntil(this.destroy$))
|
|
121
|
+
.subscribe({
|
|
122
|
+
next: (response) => {
|
|
123
|
+
// Member levels are the roles whose roleTypeName is "Member Level".
|
|
124
|
+
this.levels = (response?.body ?? []).filter((role) => role.roleTypeName === MEMBER_LEVEL_ROLE_TYPE);
|
|
125
|
+
this.loadConfig();
|
|
126
|
+
},
|
|
127
|
+
error: (error) => {
|
|
128
|
+
this.handleError(error);
|
|
129
|
+
this.loadConfig();
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Loads the group's interest configuration (mode + default level) and syncs
|
|
135
|
+
* the toggle and the default-level radio selection.
|
|
136
|
+
* @memberof InterestFormComponent
|
|
137
|
+
*/
|
|
138
|
+
loadConfig() {
|
|
139
|
+
this.interestFormService
|
|
140
|
+
.getInterestConfig(this.group.groupId)
|
|
141
|
+
.pipe(takeUntil(this.destroy$))
|
|
142
|
+
.subscribe({
|
|
143
|
+
next: (response) => {
|
|
144
|
+
const config = response?.body;
|
|
145
|
+
this.isFormEnabled = config?.interestMode === InterestMode.FORM;
|
|
146
|
+
this.enableFormToggle = {
|
|
147
|
+
...this.enableFormToggle,
|
|
148
|
+
checked: this.isFormEnabled,
|
|
149
|
+
};
|
|
150
|
+
// Preselect the saved default level, else the first member level.
|
|
151
|
+
this.selectedLevelId =
|
|
152
|
+
config?.defaultLevelId ?? this.levels[0]?.roleId ?? null;
|
|
153
|
+
this.buildMembershipLevelOptions();
|
|
154
|
+
},
|
|
155
|
+
error: (error) => this.handleError(error),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Builds the radio options from the real membership levels, marking the
|
|
160
|
+
* currently selected level as checked.
|
|
161
|
+
* @memberof InterestFormComponent
|
|
162
|
+
*/
|
|
163
|
+
buildMembershipLevelOptions() {
|
|
164
|
+
this.membershipLevels = this.levels.map((level) => ({
|
|
165
|
+
id: level.roleId,
|
|
166
|
+
label: level.roleName,
|
|
167
|
+
checked: level.roleId === this.selectedLevelId,
|
|
66
168
|
}));
|
|
67
169
|
}
|
|
68
170
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
171
|
+
* Loads the group's custom questions.
|
|
172
|
+
* @memberof InterestFormComponent
|
|
173
|
+
*/
|
|
174
|
+
loadQuestions() {
|
|
175
|
+
this.interestFormService
|
|
176
|
+
.getQuestions(this.group.groupId)
|
|
177
|
+
.pipe(takeUntil(this.destroy$))
|
|
178
|
+
.subscribe({
|
|
179
|
+
next: (response) => {
|
|
180
|
+
this.customQuestions = response?.body ?? [];
|
|
181
|
+
},
|
|
182
|
+
error: (error) => this.handleError(error),
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Updates the form-enabled state and persists the new interest mode.
|
|
71
187
|
* @param {SlideToggleOption} toggle
|
|
72
188
|
* @memberof InterestFormComponent
|
|
73
189
|
*/
|
|
74
190
|
onEnableFormToggle(toggle) {
|
|
75
191
|
this.isFormEnabled = toggle?.checked;
|
|
192
|
+
if (!this.isFormEnabled) {
|
|
193
|
+
// Disabling always persists immediately (no level needed).
|
|
194
|
+
this.saveConfig();
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Enabling requires a default level (backend rejects FORM without one). If
|
|
198
|
+
// none is selected yet, auto-select the level flagged default, else the
|
|
199
|
+
// first available level, so the toggle persists immediately.
|
|
200
|
+
if (!this.selectedLevelId) {
|
|
201
|
+
this.selectedLevelId = this.levels[0]?.roleId ?? null;
|
|
202
|
+
this.buildMembershipLevelOptions();
|
|
203
|
+
}
|
|
204
|
+
if (this.selectedLevelId) {
|
|
205
|
+
this.saveConfig();
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// No membership levels configured for this group type: cannot enable, so
|
|
209
|
+
// revert the toggle/enabled state to false before alerting (nothing was
|
|
210
|
+
// persisted, and the dependent sections must not stay visible).
|
|
211
|
+
this.isFormEnabled = false;
|
|
212
|
+
this.enableFormToggle = {
|
|
213
|
+
...this.enableFormToggle,
|
|
214
|
+
checked: false,
|
|
215
|
+
};
|
|
216
|
+
this.alertService?.showMessage({
|
|
217
|
+
status: 'custom',
|
|
218
|
+
message: this.interestFormTexts?.noLevelsMessage,
|
|
219
|
+
alertType: AlertType?.ERROR,
|
|
220
|
+
isCloseNeeded: true,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Persists the interest config. The default level is only sent for the
|
|
226
|
+
* enabled (FORM) mode; DISABLED clears it. Enabling without a selected level
|
|
227
|
+
* is skipped so an invalid request is never sent.
|
|
228
|
+
* @memberof InterestFormComponent
|
|
229
|
+
*/
|
|
230
|
+
saveConfig() {
|
|
231
|
+
if (!this.group?.groupId)
|
|
232
|
+
return;
|
|
233
|
+
if (this.isFormEnabled && !this.selectedLevelId)
|
|
234
|
+
return;
|
|
235
|
+
this.interestFormService
|
|
236
|
+
.saveInterestConfig({
|
|
237
|
+
groupId: this.group.groupId,
|
|
238
|
+
interestMode: this.isFormEnabled
|
|
239
|
+
? InterestMode.FORM
|
|
240
|
+
: InterestMode.DISABLED,
|
|
241
|
+
defaultLevelId: this.isFormEnabled ? this.selectedLevelId : null,
|
|
242
|
+
})
|
|
243
|
+
.pipe(takeUntil(this.destroy$))
|
|
244
|
+
.subscribe({
|
|
245
|
+
error: (error) => this.handleError(error),
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Records the selected default membership level and persists the config when
|
|
250
|
+
* the form is enabled.
|
|
251
|
+
* @param {RadioOption} option
|
|
252
|
+
* @memberof InterestFormComponent
|
|
253
|
+
*/
|
|
254
|
+
onMembershipLevelChange(option) {
|
|
255
|
+
this.selectedLevelId = String(option?.id);
|
|
256
|
+
if (this.isFormEnabled) {
|
|
257
|
+
this.saveConfig();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Adds a new blank question and opens its editor. Only one editor is open at
|
|
262
|
+
* a time.
|
|
263
|
+
* @memberof InterestFormComponent
|
|
264
|
+
*/
|
|
265
|
+
onAddQuestion() {
|
|
266
|
+
if (this.editingQuestionId)
|
|
267
|
+
return;
|
|
268
|
+
const tempId = `new-${Date.now()}`;
|
|
269
|
+
const newQuestion = {
|
|
270
|
+
questionId: tempId,
|
|
271
|
+
groupId: this.group?.groupId,
|
|
272
|
+
questionLabel: '',
|
|
273
|
+
fieldType: null,
|
|
274
|
+
isRequired: true,
|
|
275
|
+
placeholder: '',
|
|
276
|
+
helpText: '',
|
|
277
|
+
options: undefined,
|
|
278
|
+
viewOrder: this.customQuestions.length,
|
|
279
|
+
};
|
|
280
|
+
this.customQuestions = [...this.customQuestions, newQuestion];
|
|
281
|
+
this.editingQuestionId = tempId;
|
|
282
|
+
this.isEditingNewQuestion = true;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Opens the editor for an existing question.
|
|
286
|
+
* @param {CustomQuestion} question
|
|
287
|
+
* @memberof InterestFormComponent
|
|
288
|
+
*/
|
|
289
|
+
onEditQuestion(question) {
|
|
290
|
+
if (this.editingQuestionId)
|
|
291
|
+
return;
|
|
292
|
+
this.editingQuestionId = question.questionId ?? null;
|
|
293
|
+
this.isEditingNewQuestion = false;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Creates or updates the question on the backend and refreshes the list.
|
|
297
|
+
* @param {CustomQuestion} question
|
|
298
|
+
* @memberof InterestFormComponent
|
|
299
|
+
*/
|
|
300
|
+
onSaveQuestion(question) {
|
|
301
|
+
if (this.isEditingNewQuestion) {
|
|
302
|
+
const payload = { ...question };
|
|
303
|
+
// Remove the temporary client id so the backend generates one.
|
|
304
|
+
delete payload.questionId;
|
|
305
|
+
this.interestFormService
|
|
306
|
+
.createQuestion(payload)
|
|
307
|
+
.pipe(takeUntil(this.destroy$))
|
|
308
|
+
.subscribe({
|
|
309
|
+
next: () => this.afterQuestionSaved(),
|
|
310
|
+
error: (error) => this.handleError(error),
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
this.interestFormService
|
|
315
|
+
.updateQuestion(question)
|
|
316
|
+
.pipe(takeUntil(this.destroy$))
|
|
317
|
+
.subscribe({
|
|
318
|
+
next: () => this.afterQuestionSaved(),
|
|
319
|
+
error: (error) => this.handleError(error),
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Closes the editor and reloads the questions after a successful save.
|
|
325
|
+
* @memberof InterestFormComponent
|
|
326
|
+
*/
|
|
327
|
+
afterQuestionSaved() {
|
|
328
|
+
this.editingQuestionId = null;
|
|
329
|
+
this.isEditingNewQuestion = false;
|
|
330
|
+
this.loadQuestions();
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Closes the editor. A newly added question is removed on cancel; an existing
|
|
334
|
+
* question keeps its previous values.
|
|
335
|
+
* @param {string} questionId
|
|
336
|
+
* @memberof InterestFormComponent
|
|
337
|
+
*/
|
|
338
|
+
onCancelQuestion(questionId) {
|
|
339
|
+
if (this.isEditingNewQuestion) {
|
|
340
|
+
this.customQuestions = this.customQuestions.filter((question) => question.questionId !== questionId);
|
|
341
|
+
}
|
|
342
|
+
this.editingQuestionId = null;
|
|
343
|
+
this.isEditingNewQuestion = false;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Removes a question on the backend and refreshes the list.
|
|
347
|
+
* @param {string} questionId
|
|
348
|
+
* @memberof InterestFormComponent
|
|
349
|
+
*/
|
|
350
|
+
onDeleteQuestion(questionId) {
|
|
351
|
+
if (!questionId)
|
|
352
|
+
return;
|
|
353
|
+
// A not-yet-saved question only exists client-side.
|
|
354
|
+
if (questionId.startsWith('new-')) {
|
|
355
|
+
this.onCancelQuestion(questionId);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
this.interestFormService
|
|
359
|
+
.removeQuestion(questionId)
|
|
360
|
+
.pipe(takeUntil(this.destroy$))
|
|
361
|
+
.subscribe({
|
|
362
|
+
next: () => {
|
|
363
|
+
if (this.editingQuestionId === questionId) {
|
|
364
|
+
this.editingQuestionId = null;
|
|
365
|
+
this.isEditingNewQuestion = false;
|
|
366
|
+
}
|
|
367
|
+
this.loadQuestions();
|
|
368
|
+
},
|
|
369
|
+
error: (error) => this.handleError(error),
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Reorders questions on drag-drop and persists the new order.
|
|
374
|
+
* @param {CdkDragDrop<CustomQuestion[]>} event
|
|
375
|
+
* @memberof InterestFormComponent
|
|
376
|
+
*/
|
|
377
|
+
onReorderQuestions(event) {
|
|
378
|
+
const reordered = [...this.customQuestions];
|
|
379
|
+
moveItemInArray(reordered, event.previousIndex, event.currentIndex);
|
|
380
|
+
this.customQuestions = reordered.map((question, index) => ({
|
|
381
|
+
...question,
|
|
382
|
+
viewOrder: index,
|
|
383
|
+
}));
|
|
384
|
+
this.interestFormService
|
|
385
|
+
.reorderQuestions(this.customQuestions.map((question) => ({
|
|
386
|
+
questionId: question.questionId,
|
|
387
|
+
viewOrder: question.viewOrder,
|
|
388
|
+
})))
|
|
389
|
+
.pipe(takeUntil(this.destroy$))
|
|
390
|
+
.subscribe({
|
|
391
|
+
// The list was reordered optimistically; if the backend rejected the
|
|
392
|
+
// new order, reload so the client reflects the persisted order.
|
|
393
|
+
error: (error) => {
|
|
394
|
+
this.handleError(error);
|
|
395
|
+
this.loadQuestions();
|
|
396
|
+
},
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Returns the display label for a question's field type.
|
|
401
|
+
* @param {(QuestionFieldType | null)} type
|
|
402
|
+
* @return {string}
|
|
403
|
+
* @memberof InterestFormComponent
|
|
404
|
+
*/
|
|
405
|
+
getTypeLabel(type) {
|
|
406
|
+
switch (type) {
|
|
407
|
+
case QuestionFieldType.TEXT:
|
|
408
|
+
return this.typeLabels?.text;
|
|
409
|
+
case QuestionFieldType.TEXTAREA:
|
|
410
|
+
return this.typeLabels?.textArea;
|
|
411
|
+
case QuestionFieldType.SELECT:
|
|
412
|
+
return this.typeLabels?.dropdown;
|
|
413
|
+
case QuestionFieldType.CHECKBOX:
|
|
414
|
+
return this.typeLabels?.checkbox;
|
|
415
|
+
case QuestionFieldType.RADIO:
|
|
416
|
+
return this.typeLabels?.radio;
|
|
417
|
+
case QuestionFieldType.DATE:
|
|
418
|
+
return this.typeLabels?.date;
|
|
419
|
+
default:
|
|
420
|
+
return '';
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Shows an error alert for a failed interest-form operation.
|
|
425
|
+
* @param {*} error
|
|
426
|
+
* @memberof InterestFormComponent
|
|
427
|
+
*/
|
|
428
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
429
|
+
handleError(error) {
|
|
430
|
+
this.alertService?.showMessage({
|
|
431
|
+
status: 'custom',
|
|
432
|
+
message: error?.error?.message ?? error?.message,
|
|
433
|
+
alertType: AlertType?.ERROR,
|
|
434
|
+
isCloseNeeded: true,
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Opens the interest form in read-only preview mode (SP3M-317 R6.7), reusing
|
|
439
|
+
* the shared express-interest dialog. Shows the admin's current custom
|
|
440
|
+
* questions as an end user would see them; no submit, Cancel only.
|
|
441
|
+
* @memberof InterestFormComponent
|
|
442
|
+
*/
|
|
443
|
+
onPreview() {
|
|
444
|
+
this.dialog?.open(InterestFormPreviewComponent, {
|
|
445
|
+
width: '720px',
|
|
446
|
+
maxWidth: '92vw',
|
|
447
|
+
maxHeight: '90vh',
|
|
448
|
+
panelClass: ['ieeesa-modal-dialog', 'ieeesa-interest-form-preview'],
|
|
449
|
+
ariaModal: true,
|
|
450
|
+
data: {
|
|
451
|
+
groupName: this.group?.groupName ?? '',
|
|
452
|
+
customQuestions: this.customQuestions,
|
|
453
|
+
},
|
|
454
|
+
});
|
|
76
455
|
}
|
|
77
456
|
/**
|
|
78
457
|
* Closes the Roster Interests dialog (Cancel action).
|
|
@@ -82,8 +461,7 @@ export class InterestFormComponent {
|
|
|
82
461
|
this.dialogRef?.close();
|
|
83
462
|
}
|
|
84
463
|
/**
|
|
85
|
-
*
|
|
86
|
-
* tracking.
|
|
464
|
+
* ngFor tracking for standard question rows.
|
|
87
465
|
* @param {number} index
|
|
88
466
|
* @param {StandardQuestionRow} question
|
|
89
467
|
* @return {number}
|
|
@@ -92,13 +470,43 @@ export class InterestFormComponent {
|
|
|
92
470
|
trackByFn(index, question) {
|
|
93
471
|
return question.id;
|
|
94
472
|
}
|
|
95
|
-
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormComponent, isStandalone: true, selector: "ieeesa-interest-form", ngImport: i0, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n ></ieeesa-radio>\r\n </section>\r\n\r\n <section\r\n *ngIf=\"isFormEnabled\"\r\n class=\"ieeesa-interest-form__section ieeesa-interest-form__section--custom d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: RadioComponent, selector: "ieeesa-radio", inputs: ["formControlName", "radioGroup", "isDisabled"], outputs: ["selectedRadioOption"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
473
|
+
/**
|
|
474
|
+
* ngFor tracking for custom questions.
|
|
475
|
+
* @param {number} index
|
|
476
|
+
* @param {CustomQuestion} question
|
|
477
|
+
* @return {string}
|
|
478
|
+
* @memberof InterestFormComponent
|
|
479
|
+
*/
|
|
480
|
+
trackByQuestionId(index, question) {
|
|
481
|
+
return question.questionId;
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Emits and completes the destroy subject so any in-flight requests are
|
|
485
|
+
* unsubscribed when the component is destroyed.
|
|
486
|
+
* @memberof InterestFormComponent
|
|
487
|
+
*/
|
|
488
|
+
ngOnDestroy() {
|
|
489
|
+
this.destroy$.next(true);
|
|
490
|
+
this.destroy$.complete();
|
|
491
|
+
}
|
|
492
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: i2.InterestFormService }, { token: i3.GroupsService }, { token: i4.AlertsService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
493
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InterestFormComponent, isStandalone: true, selector: "ieeesa-interest-form", ngImport: i0, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [disabled]=\"!!editingQuestionId\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: SlideToggleComponent, selector: "ieeesa-slide-toggle", inputs: ["formControlName", "slideToggle", "isDisabled", "canShowIcon"], outputs: ["slideToggleChange"] }, { kind: "component", type: RadioComponent, selector: "ieeesa-radio", inputs: ["formControlName", "radioGroup", "isDisabled"], outputs: ["selectedRadioOption"] }, { kind: "component", type: CustomQuestionEditorComponent, selector: "ieeesa-custom-question-editor", inputs: ["question"], outputs: ["save", "cancel"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
97
494
|
}
|
|
98
495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InterestFormComponent, decorators: [{
|
|
99
496
|
type: Component,
|
|
100
|
-
args: [{ selector: 'ieeesa-interest-form', standalone: true, imports: [CommonModule, SlideToggleComponent, RadioComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n ></ieeesa-radio>\r\n </section>\r\n\r\n <section\r\n *ngIf=\"isFormEnabled\"\r\n class=\"ieeesa-interest-form__section ieeesa-interest-form__section--custom d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"] }]
|
|
497
|
+
args: [{ selector: 'ieeesa-interest-form', standalone: true, imports: [
|
|
498
|
+
CommonModule,
|
|
499
|
+
DragDropModule,
|
|
500
|
+
SlideToggleComponent,
|
|
501
|
+
RadioComponent,
|
|
502
|
+
CustomQuestionEditorComponent,
|
|
503
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-interest-form\">\r\n <div class=\"ieeesa-interest-form__notice ieeesa-body-sm-14\" role=\"note\">\r\n <svg\r\n class=\"ieeesa-interest-form__notice-icon\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2L1 21h22L12 2zm0 4.5L19.5 19.5h-15L12 6.5zM11 10v5h2v-5h-2zm0 6v2h2v-2h-2z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <span>{{ changesNotice }}</span>\r\n </div>\r\n\r\n <section class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__row d-flex justify-content-between align-items-start\"\r\n >\r\n <div>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ sectionTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14 m-0\">\r\n {{ sectionDescription }}\r\n </p>\r\n </div>\r\n <ieeesa-slide-toggle\r\n [slideToggle]=\"enableFormToggle\"\r\n (slideToggleChange)=\"onEnableFormToggle($event)\"\r\n ></ieeesa-slide-toggle>\r\n </div>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__section-heading d-flex align-items-center gap-2\"\r\n >\r\n <svg\r\n class=\"ieeesa-interest-form__lock\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n d=\"M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v3H9V7zm-3 5h12v8H6v-8z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ standardQuestionsTitle }}\r\n </h2>\r\n <span class=\"ieeesa-interest-form__hint ieeesa-body-sm-14\">{{\r\n standardQuestionsHint\r\n }}</span>\r\n </div>\r\n <ul class=\"ieeesa-interest-form__standard-list\">\r\n <li\r\n *ngFor=\"let question of standardQuestions; trackBy: trackByFn\"\r\n class=\"ieeesa-interest-form__standard-row d-flex justify-content-between align-items-center\"\r\n >\r\n <span class=\"ieeesa-interest-form__standard-label ieeesa-body-sm-14\">{{\r\n question.label\r\n }}</span>\r\n <span class=\"ieeesa-interest-form__standard-tag ieeesa-body-sm-14\">{{\r\n question.tag\r\n }}</span>\r\n </li>\r\n </ul>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ defaultMembershipTitle }}\r\n </h2>\r\n <p class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\">\r\n {{ defaultMembershipDescription }}\r\n </p>\r\n <ieeesa-radio\r\n *ngIf=\"membershipLevels.length > 0\"\r\n formControlName=\"defaultMembershipLevel\"\r\n [radioGroup]=\"membershipLevels\"\r\n (selectedRadioOption)=\"onMembershipLevelChange($event)\"\r\n ></ieeesa-radio>\r\n <p\r\n *ngIf=\"membershipLevels.length === 0\"\r\n class=\"ieeesa-interest-form__section-desc ieeesa-body-sm-14\"\r\n >\r\n {{ noLevelsMessage }}\r\n </p>\r\n </section>\r\n\r\n <section *ngIf=\"isFormEnabled\" class=\"ieeesa-interest-form__section\">\r\n <div\r\n class=\"ieeesa-interest-form__custom-header d-flex justify-content-between align-items-center\"\r\n >\r\n <h2 class=\"ieeesa-interest-form__section-title ieeesa-body-lg-bold-16 m-0\">\r\n {{ customQuestionsTitle }}\r\n </h2>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__add-question ieeesa-body-sm-14\"\r\n [disabled]=\"editingQuestionId\"\r\n (click)=\"onAddQuestion()\"\r\n [attr.aria-label]=\"addQuestionLabel\"\r\n >\r\n {{ addQuestionLabel }}\r\n </button>\r\n </div>\r\n\r\n <div\r\n cdkDropList\r\n class=\"ieeesa-interest-form__question-list\"\r\n (cdkDropListDropped)=\"onReorderQuestions($event)\"\r\n >\r\n <div\r\n *ngFor=\"let question of customQuestions; trackBy: trackByQuestionId\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"editingQuestionId\"\r\n class=\"ieeesa-interest-form__question\"\r\n [class.ieeesa-interest-form__question--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div\r\n class=\"ieeesa-interest-form__question-row d-flex align-items-center justify-content-between gap-2\"\r\n [class.ieeesa-interest-form__question-row--editing]=\"\r\n editingQuestionId === question.questionId\r\n \"\r\n >\r\n <div class=\"d-flex align-items-center gap-2 ieeesa-interest-form__question-main\">\r\n <span\r\n class=\"ieeesa-interest-form__drag-handle\"\r\n cdkDragHandle\r\n aria-hidden=\"true\"\r\n >\r\n <svg width=\"12\" height=\"16\" viewBox=\"0 0 12 16\" fill=\"none\">\r\n <circle cx=\"3\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"2\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"3\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n <circle cx=\"9\" cy=\"14\" r=\"1.5\" fill=\"currentColor\"/>\r\n </svg>\r\n </span>\r\n <span class=\"ieeesa-interest-form__question-label ieeesa-body-sm-14\">\r\n {{ question.questionLabel || newQuestionLabel }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <span\r\n *ngIf=\"question.fieldType\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--type ieeesa-body-sm-14\"\r\n >\r\n {{ getTypeLabel(question.fieldType) }}\r\n </span>\r\n <span\r\n *ngIf=\"question.isRequired\"\r\n class=\"ieeesa-interest-form__chip ieeesa-interest-form__chip--required ieeesa-body-sm-14\"\r\n >\r\n {{ requiredTag }}\r\n </span>\r\n <button\r\n *ngIf=\"editingQuestionId !== question.questionId\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn\"\r\n (click)=\"onEditQuestion(question)\"\r\n [attr.aria-label]=\"editQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.06.59l1.35 1.35c.79.78.79 2.05 0 2.83L4.18 18H0v-4.18L10.4 3.41 13.23.59c.78-.78 2.05-.78 2.83 0zM2 16l1.41.06L13.23 6.23l-1.41-1.41L2 14.64V16z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__icon-btn ieeesa-interest-form__icon-btn--delete\"\r\n (click)=\"onDeleteQuestion(question.questionId)\"\r\n [attr.aria-label]=\"deleteQuestionAriaLabel\"\r\n >\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 3V4H20V6H19V19C19 20.1 18.1 21 17 21H7C5.9 21 5 20.1 5 19V6H4V4H9V3H15ZM7 19H17V6H7V19ZM9 8H11V17H9V8ZM15 8H13V17H15V8Z\" fill=\"currentColor\"/>\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ieeesa-custom-question-editor\r\n *ngIf=\"editingQuestionId === question.questionId\"\r\n [question]=\"question\"\r\n (save)=\"onSaveQuestion($event)\"\r\n (cancel)=\"onCancelQuestion(question.questionId)\"\r\n ></ieeesa-custom-question-editor>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <div class=\"ieeesa-interest-form__footer d-flex justify-content-start gap-3\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__cancel\"\r\n (click)=\"onCancel()\"\r\n [attr.aria-label]=\"cancelLabel\"\r\n >\r\n {{ cancelLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"isFormEnabled\"\r\n type=\"button\"\r\n class=\"ieeesa-interest-form__preview\"\r\n [disabled]=\"!!editingQuestionId\"\r\n (click)=\"onPreview()\"\r\n [attr.aria-label]=\"previewLabel\"\r\n >\r\n {{ previewLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-interest-form .ieeesa-interest-form__notice{display:flex;align-items:center;gap:8px;background-color:#fdf6e3;border:1px solid #f0d98c;border-radius:4px;padding:10px 14px;margin-top:16px;margin-bottom:16px;color:#333436}.ieeesa-interest-form__notice-icon{color:#e0a800;flex-shrink:0}.ieeesa-interest-form__section{padding:16px;border:1px solid #d7d6d6;border-radius:4px;margin-bottom:16px}.ieeesa-interest-form__section--custom{margin-bottom:0}.ieeesa-interest-form__section-heading{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__section-title{color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__section-desc{margin:4px 0 0;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__hint{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;background-color:#f0f5f9;color:#9ba0a6;font-weight:400}.ieeesa-interest-form__lock{color:#1c1d1e;flex-shrink:0}.ieeesa-interest-form__standard-list{list-style:none;margin:0;padding:0;border:1px solid #d7d6d6;border-radius:4px}.ieeesa-interest-form__standard-row{padding:12px 16px}.ieeesa-interest-form__standard-row:not(:last-child){border-bottom:1px solid #d7d6d6}.ieeesa-interest-form .ieeesa-interest-form__standard-label,.ieeesa-interest-form .ieeesa-interest-form__standard-tag{color:#9ba0a6}.ieeesa-interest-form__custom-header{margin-bottom:12px}.ieeesa-interest-form .ieeesa-interest-form__add-question{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__add-question:disabled{background-color:#c0c7cd;color:#fff;cursor:not-allowed}.ieeesa-interest-form__question{border:1px solid #d7d6d6;border-radius:4px;margin-bottom:12px;overflow:hidden}.ieeesa-interest-form__question:last-child{margin-bottom:0}.ieeesa-interest-form__question--editing{border:2px solid #00629b}.ieeesa-interest-form .cdk-drag-preview,.ieeesa-interest-form .cdk-drag-placeholder{border:1px solid #d7d6d6!important;border-radius:4px;background:#fff}.ieeesa-interest-form__question-row{padding:12px 16px}.ieeesa-interest-form__question-row--editing{background-color:#eaf3f9;border-bottom:1px solid #d7d6d6}.ieeesa-interest-form__drag-handle{cursor:grab;color:#777a7e;display:flex;align-items:center}.ieeesa-interest-form ieeesa-custom-question-editor{display:block;padding:16px}.ieeesa-interest-form .ieeesa-interest-form__question-label{font-weight:600;color:#1c1d1e}.ieeesa-interest-form .ieeesa-interest-form__chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px}.ieeesa-interest-form .ieeesa-interest-form__chip--type{background-color:#f0f5f9;color:#777a7e}.ieeesa-interest-form .ieeesa-interest-form__chip--required{background-color:#b3261e14;color:#b3261e}.ieeesa-interest-form__icon-btn{background:none;border:none;cursor:pointer;color:#00629b;padding:0}.ieeesa-interest-form__icon-btn--delete{color:#b3261e}.ieeesa-interest-form__footer{margin-top:24px}.ieeesa-interest-form .ieeesa-interest-form__cancel{background:none;border:1px solid #00629b;color:#00629b;font-weight:600;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .ieeesa-interest-form__preview{background-color:#00629b;color:#fff;border:none;border-radius:4px;padding:8px 20px;cursor:pointer}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:before,.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__track:after{border-color:#a7a8aa!important;background:#a7a8aa!important}.ieeesa-interest-form .mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle .mdc-switch__shadow{border-color:#a7a8aa!important;background:#fff!important}\n"] }]
|
|
101
504
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef, decorators: [{
|
|
102
505
|
type: Optional
|
|
103
|
-
}] }
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUNMLGNBQWMsRUFFZCxvQkFBb0IsR0FFckIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7O0FBYXpEOzs7Ozs7Ozs7R0FTRztBQVNILE1BQU0sT0FBTyxxQkFBcUI7SUEwQmhDO0lBQ0UsMENBQTBDO0lBQ3RCLFNBQWdDO1FBQWhDLGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBM0J0RCw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFNBQVMsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDbEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO1FBQ3RELGlCQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7UUFDaEUsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO1FBQ3hFLDBCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztRQUN0RSwyQkFBc0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUM7UUFDeEUsaUNBQTRCLEdBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSw0QkFBNEIsQ0FBQztRQUN2RCx5QkFBb0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUM7UUFDcEUscUJBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDO1FBQzVELGdCQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDOUQsaUJBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBR2hFLHNCQUFpQixHQUEwQixFQUFFLENBQUM7UUFDOUMscUJBQWdCLEdBQWtCLEVBQUUsQ0FBQztRQUNyQyw4RUFBOEU7UUFDOUUsOEVBQThFO1FBQzlFLGlDQUFpQztRQUNqQyxrQkFBYSxHQUFHLElBQUksQ0FBQztJQUtsQixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsRUFBRSxFQUFFLENBQUM7WUFDTCxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDN0IsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUNoRCxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFDO1lBQ2IsS0FBSztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUN0QixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxDQUMvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsRUFBRSxFQUFFLEtBQUssR0FBRyxDQUFDO1lBQ2IsS0FBSztZQUNMLE9BQU8sRUFBRSxLQUFLLEtBQUssQ0FBQztTQUNyQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFDLE1BQXlCO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxFQUFFLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLFFBQTZCO1FBQ3BELE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQXZGVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnRkN4Q2xDLDh2SUE0SEEsaytWRHpGWSxZQUFZLGdRQUFFLG9CQUFvQix5S0FBRSxjQUFjOzs0RkFLakQscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxDQUFDLGlCQUc5QyxpQkFBaUIsQ0FBQyxJQUFJOzswQkE4QmxDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7XHJcbiAgUmFkaW9Db21wb25lbnQsXHJcbiAgUmFkaW9PcHRpb24sXHJcbiAgU2xpZGVUb2dnbGVDb21wb25lbnQsXHJcbiAgU2xpZGVUb2dnbGVPcHRpb24sXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgKGxvY2tlZCkgcXVlc3Rpb24gcm93IHNob3duIGluIHRoZSBJbnRlcmVzdCBGb3JtIHRhYi5cclxuICogQGV4cG9ydFxyXG4gKiBAaW50ZXJmYWNlIFN0YW5kYXJkUXVlc3Rpb25Sb3dcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRRdWVzdGlvblJvdyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHRhZzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogXCJJbnRlcmVzdCBGb3JtXCIgdGFiIGNvbnRlbnQgb2YgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChTUDNNLTMxNykuIFRoZVxyXG4gKiBncm91cCBhZG1pbiBjb25maWd1cmVzIHRoZSBpbnRlcmVzdCBmb3JtIGhlcmU6IGVuYWJsZS9kaXNhYmxlIHRoZSBmb3JtLCB2aWV3XHJcbiAqIHRoZSBsb2NrZWQgc3RhbmRhcmQgcXVlc3Rpb25zLCBjaG9vc2UgdGhlIGRlZmF1bHQgbWVtYmVyc2hpcCBsZXZlbCBhbmQgbWFuYWdlXHJcbiAqIGN1c3RvbSBxdWVzdGlvbnMuIEludGVyYWN0aXZlIGNvbnRyb2xzIHJldXNlIHRoZSBzaGFyZWQgcHJlc2VudGF0aW9uXHJcbiAqIGNvbXBvbmVudHMgKHNsaWRlIHRvZ2dsZSwgcmFkaW8pLiBQZXJzaXN0ZW5jZSB2aWEgYSBtb2NrZWQgc2VydmljZSBhbmQgdGhlXHJcbiAqIGN1c3RvbS1xdWVzdGlvbiBidWlsZGVyIHdpbGwgYmUgYWRkZWQgaW4gc3Vic2VxdWVudCBpbmNyZW1lbnRzLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWludGVyZXN0LWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2xpZGVUb2dnbGVDb21wb25lbnQsIFJhZGlvQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgaW50ZXJlc3RGb3JtVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5pbnRlcmVzdEZvcm07XHJcbiAgY2hhbmdlc05vdGljZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmNoYW5nZXNOb3RpY2U7XHJcbiAgc2VjdGlvblRpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc2VjdGlvblRpdGxlO1xyXG4gIHNlY3Rpb25EZXNjcmlwdGlvbiA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnNlY3Rpb25EZXNjcmlwdGlvbjtcclxuICBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRRdWVzdGlvbnNUaXRsZTtcclxuICBzdGFuZGFyZFF1ZXN0aW9uc0hpbnQgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFF1ZXN0aW9uc0hpbnQ7XHJcbiAgZGVmYXVsdE1lbWJlcnNoaXBUaXRsZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlZmF1bHRNZW1iZXJzaGlwVGl0bGU7XHJcbiAgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiA9XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5kZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uO1xyXG4gIGN1c3RvbVF1ZXN0aW9uc1RpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uY3VzdG9tUXVlc3Rpb25zVGl0bGU7XHJcbiAgYWRkUXVlc3Rpb25MYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmFkZFF1ZXN0aW9uTGFiZWw7XHJcbiAgc3RhbmRhcmRUYWcgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFRhZztcclxuICBjYW5jZWxMYWJlbCA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmZvb3Rlcj8uY2FuY2VsO1xyXG4gIHByZXZpZXdMYWJlbCA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmZvb3Rlcj8ucHJldmlldztcclxuXHJcbiAgZW5hYmxlRm9ybVRvZ2dsZSE6IFNsaWRlVG9nZ2xlT3B0aW9uO1xyXG4gIHN0YW5kYXJkUXVlc3Rpb25zOiBTdGFuZGFyZFF1ZXN0aW9uUm93W10gPSBbXTtcclxuICBtZW1iZXJzaGlwTGV2ZWxzOiBSYWRpb09wdGlvbltdID0gW107XHJcbiAgLy8gQ29udHJvbHMgd2hldGhlciB0aGUgbG93ZXIgc2VjdGlvbnMgKHN0YW5kYXJkIHF1ZXN0aW9ucywgZGVmYXVsdCBtZW1iZXJzaGlwXHJcbiAgLy8gbGV2ZWwsIGN1c3RvbSBxdWVzdGlvbnMpIGFyZSBzaG93bi4gV2hlbiB0aGUgaW50ZXJlc3QgZm9ybSBpcyBkaXNhYmxlZCBvbmx5XHJcbiAgLy8gdGhlIHRvZ2dsZSBzZWN0aW9uIGlzIHZpc2libGUuXHJcbiAgaXNGb3JtRW5hYmxlZCA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPHVua25vd24+XHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgdG9nZ2xlLCBsb2NrZWQgc3RhbmRhcmQgcXVlc3Rpb25zIGFuZCBkZWZhdWx0IG1lbWJlcnNoaXBcclxuICAgKiBsZXZlbCBvcHRpb25zIGZyb20gY29uc3RhbnRzLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5hYmxlRm9ybVRvZ2dsZSA9IHtcclxuICAgICAgaWQ6IDEsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgY2hlY2tlZDogdGhpcy5pc0Zvcm1FbmFibGVkLFxyXG4gICAgICBhcmlhTGFiZWw6IHRoaXMuc2VjdGlvblRpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RhbmRhcmRRdWVzdGlvbnMgPSAoXHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkUXVlc3Rpb25zID8/IFtdXHJcbiAgICApLm1hcCgobGFiZWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gKHtcclxuICAgICAgaWQ6IGluZGV4ICsgMSxcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIHRhZzogdGhpcy5zdGFuZGFyZFRhZyxcclxuICAgIH0pKTtcclxuICAgIHRoaXMubWVtYmVyc2hpcExldmVscyA9IChcclxuICAgICAgdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ubWVtYmVyc2hpcExldmVscyA/PyBbXVxyXG4gICAgKS5tYXAoKGxhYmVsOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+ICh7XHJcbiAgICAgIGlkOiBpbmRleCArIDEsXHJcbiAgICAgIGxhYmVsLFxyXG4gICAgICBjaGVja2VkOiBpbmRleCA9PT0gMCxcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGZvcm0tZW5hYmxlZCBzdGF0ZSB3aGVuIHRoZSB0b2dnbGUgY2hhbmdlcyBzbyB0aGUgZGVwZW5kZW50XHJcbiAgICogc2VjdGlvbnMgc2hvdyBvciBoaWRlIGFjY29yZGluZ2x5LlxyXG4gICAqIEBwYXJhbSB7U2xpZGVUb2dnbGVPcHRpb259IHRvZ2dsZVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkVuYWJsZUZvcm1Ub2dnbGUodG9nZ2xlOiBTbGlkZVRvZ2dsZU9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1FbmFibGVkID0gdG9nZ2xlPy5jaGVja2VkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHRoZSBSb3N0ZXIgSW50ZXJlc3RzIGRpYWxvZyAoQ2FuY2VsIGFjdGlvbikuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBzdGFuZGFyZCBxdWVzdGlvbiByb3cgZm9yIG5nRm9yXHJcbiAgICogdHJhY2tpbmcuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtTdGFuZGFyZFF1ZXN0aW9uUm93fSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHF1ZXN0aW9uOiBTdGFuZGFyZFF1ZXN0aW9uUm93KTogbnVtYmVyIHtcclxuICAgIHJldHVybiBxdWVzdGlvbi5pZDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UgaWVlZXNhLWJvZHktc20tMTRcIiByb2xlPVwibm90ZVwiPlxyXG4gICAgPHN2Z1xyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19ub3RpY2UtaWNvblwiXHJcbiAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0xMiAyTDEgMjFoMjJMMTIgMnptMCA0LjVMMTkuNSAxOS41aC0xNUwxMiA2LjV6TTExIDEwdjVoMnYtNWgtMnptMCA2djJoMnYtMmgtMnpcIlxyXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3Bhbj57eyBjaGFuZ2VzTm90aWNlIH19PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8c2VjdGlvbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3JvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgICAgICB7eyBzZWN0aW9uVGl0bGUgfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tZGVzYyBpZWVlc2EtYm9keS1zbS0xNCBtLTBcIj5cclxuICAgICAgICAgIHt7IHNlY3Rpb25EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpZWVlc2Etc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgW3NsaWRlVG9nZ2xlXT1cImVuYWJsZUZvcm1Ub2dnbGVcIlxyXG4gICAgICAgIChzbGlkZVRvZ2dsZUNoYW5nZSk9XCJvbkVuYWJsZUZvcm1Ub2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1oZWFkaW5nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIlxyXG4gICAgPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fbG9ja1wiXHJcbiAgICAgICAgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGQ9XCJNMTIgMmE1IDUgMCAwIDAtNSA1djNINmEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04YTIgMiAwIDAgMC0yLTJoLTFWN2E1IDUgMCAwIDAtNS01em0tMyA1YTMgMyAwIDAgMSA2IDB2M0g5Vjd6bS0zIDVoMTJ2OEg2di04elwiXHJcbiAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICB7eyBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlIH19XHJcbiAgICAgIDwvaDI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2hpbnQgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgIHN0YW5kYXJkUXVlc3Rpb25zSGludFxyXG4gICAgICB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHVsIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHN0YW5kYXJkUXVlc3Rpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLXJvdyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3N0YW5kYXJkLWxhYmVsIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLmxhYmVsXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtdGFnIGllZWVzYS1ib2R5LXNtLTE0XCI+e3tcclxuICAgICAgICAgIHF1ZXN0aW9uLnRhZ1xyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxoMiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLXRpdGxlIGllZWVzYS1ib2R5LWxnLWJvbGQtMTYgbS0wXCI+XHJcbiAgICAgIHt7IGRlZmF1bHRNZW1iZXJzaGlwVGl0bGUgfX1cclxuICAgIDwvaDI+XHJcbiAgICA8cCBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWRlc2MgaWVlZXNhLWJvZHktc20tMTRcIj5cclxuICAgICAge3sgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiB9fVxyXG4gICAgPC9wPlxyXG4gICAgPGllZWVzYS1yYWRpb1xyXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0TWVtYmVyc2hpcExldmVsXCJcclxuICAgICAgW3JhZGlvR3JvdXBdPVwibWVtYmVyc2hpcExldmVsc1wiXHJcbiAgICA+PC9pZWVlc2EtcmFkaW8+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8c2VjdGlvblxyXG4gICAgKm5nSWY9XCJpc0Zvcm1FbmFibGVkXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24gaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tLWN1c3RvbSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICA+XHJcbiAgICA8aDIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi10aXRsZSBpZWVlc2EtYm9keS1sZy1ib2xkLTE2IG0tMFwiPlxyXG4gICAgICB7eyBjdXN0b21RdWVzdGlvbnNUaXRsZSB9fVxyXG4gICAgPC9oMj5cclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2FkZC1xdWVzdGlvbiBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWRkUXVlc3Rpb25MYWJlbFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGFkZFF1ZXN0aW9uTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19mb290ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBnYXAtM1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2FuY2VsXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbmNlbExhYmVsXCJcclxuICAgID5cclxuICAgICAge3sgY2FuY2VsTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cImlzRm9ybUVuYWJsZWRcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcHJldmlld1wiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJldmlld0xhYmVsXCJcclxuICAgID5cclxuICAgICAge3sgcHJldmlld0xhYmVsIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
506
|
+
}] }, { type: undefined, decorators: [{
|
|
507
|
+
type: Optional
|
|
508
|
+
}, {
|
|
509
|
+
type: Inject,
|
|
510
|
+
args: [MAT_DIALOG_DATA]
|
|
511
|
+
}] }, { type: i2.InterestFormService }, { type: i3.GroupsService }, { type: i4.AlertsService }, { type: i1.MatDialog }]; } });
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0LWZvcm0vaW50ZXJlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFHTixRQUFRLEVBQ1IsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsZUFBZSxHQUdoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFFTCxjQUFjLEVBQ2QsZUFBZSxHQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxjQUFjLEVBRWQsb0JBQW9CLEdBRXJCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBR0wsWUFBWSxFQUNaLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUk1QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQWF6RDs7Ozs7Ozs7O0dBU0c7QUFlSCxNQUFNLE9BQU8scUJB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UyxJQUFJLEVBQUU7Z0JBQ3RDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTthQUN0QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxRQUE2QjtRQUNwRCxPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGlCQUFpQixDQUFDLEtBQWEsRUFBRSxRQUF3QjtRQUN2RCxPQUFPLFFBQVEsQ0FBQyxVQUFvQixDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0FwZVUscUJBQXFCLDhEQTJDVixlQUFlO21HQTNDMUIscUJBQXFCLGdGQzVFbEMsbzFSQThOQSxvNVlENUpJLFlBQVksK1BBQ1osY0FBYyw2akNBQ2Qsb0JBQW9CLHlLQUNwQixjQUFjLG9KQUNkLDZCQUE2Qjs7NEZBTXBCLHFCQUFxQjtrQkFkakMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsNkJBQTZCO3FCQUM5QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzswQkEyQ2xDLFFBQVE7OzBCQUVSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2csXHJcbiAgTWF0RGlhbG9nUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENka0RyYWdEcm9wLFxyXG4gIERyYWdEcm9wTW9kdWxlLFxyXG4gIG1vdmVJdGVtSW5BcnJheSxcclxufSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICBSYWRpb0NvbXBvbmVudCxcclxuICBSYWRpb09wdGlvbixcclxuICBTbGlkZVRvZ2dsZUNvbXBvbmVudCxcclxuICBTbGlkZVRvZ2dsZU9wdGlvbixcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBBbGVydFR5cGUsIEFsZXJ0c1NlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHtcclxuICBDdXN0b21RdWVzdGlvbixcclxuICBHcm91cFJvbGUsXHJcbiAgSW50ZXJlc3RNb2RlLFxyXG4gIE1FTUJFUl9MRVZFTF9ST0xFX1RZUEUsXHJcbiAgUXVlc3Rpb25GaWVsZFR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2N1c3RvbS1xdWVzdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1pbmZvLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW50ZXJlc3RGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ludGVyZXN0LWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVF1ZXN0aW9uRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY3VzdG9tLXF1ZXN0aW9uLWVkaXRvci9jdXN0b20tcXVlc3Rpb24tZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEludGVyZXN0Rm9ybVByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcmVzdC1mb3JtLXByZXZpZXcvaW50ZXJlc3QtZm9ybS1wcmV2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5cclxuLyoqXHJcbiAqIFN0YW5kYXJkIChsb2NrZWQpIHF1ZXN0aW9uIHJvdyBzaG93biBpbiB0aGUgSW50ZXJlc3QgRm9ybSB0YWIuXHJcbiAqIEBleHBvcnRcclxuICogQGludGVyZmFjZSBTdGFuZGFyZFF1ZXN0aW9uUm93XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkUXVlc3Rpb25Sb3cge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB0YWc6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFwiSW50ZXJlc3QgRm9ybVwiIHRhYiBjb250ZW50IG9mIHRoZSBSb3N0ZXIgSW50ZXJlc3RzIGRpYWxvZyAoU1AzTS0zMTcpLiBUaGVcclxuICogZ3JvdXAgYWRtaW4gZW5hYmxlcy9kaXNhYmxlcyB0aGUgZm9ybSwgdmlld3MgbG9ja2VkIHN0YW5kYXJkIHF1ZXN0aW9ucyxcclxuICogY2hvb3NlcyB0aGUgZGVmYXVsdCBtZW1iZXJzaGlwIGxldmVsIGFuZCBtYW5hZ2VzIGN1c3RvbSBxdWVzdGlvbnNcclxuICogKGFkZCAvIGVkaXQgLyByZW9yZGVyIC8gcmVtb3ZlKSwgcGVyc2lzdGVkIHRvIHRoZSBncm91cHMgYmFja2VuZCB2aWFcclxuICogSW50ZXJlc3RGb3JtU2VydmljZS4gRWFjaCBxdWVzdGlvbiBpcyBzYXZlZCBpbmRpdmlkdWFsbHkgKGNyZWF0ZS91cGRhdGUpIGFuZFxyXG4gKiB0aGUgZW5hYmxlIG1vZGUgKyBkZWZhdWx0IGxldmVsIGFyZSBzYXZlZCB2aWEgdGhlIGludGVyZXN0LWNvbmZpZyBlbmRwb2ludC5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1pbnRlcmVzdC1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgU2xpZGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBSYWRpb0NvbXBvbmVudCxcclxuICAgIEN1c3RvbVF1ZXN0aW9uRWRpdG9yQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyZXN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ludGVyZXN0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJlc3RGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgaW50ZXJlc3RGb3JtVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5pbnRlcmVzdEZvcm07XHJcbiAgY2hhbmdlc05vdGljZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmNoYW5nZXNOb3RpY2U7XHJcbiAgc2VjdGlvblRpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc2VjdGlvblRpdGxlO1xyXG4gIHNlY3Rpb25EZXNjcmlwdGlvbiA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnNlY3Rpb25EZXNjcmlwdGlvbjtcclxuICBzdGFuZGFyZFF1ZXN0aW9uc1RpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uc3RhbmRhcmRRdWVzdGlvbnNUaXRsZTtcclxuICBzdGFuZGFyZFF1ZXN0aW9uc0hpbnQgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5zdGFuZGFyZFF1ZXN0aW9uc0hpbnQ7XHJcbiAgZGVmYXVsdE1lbWJlcnNoaXBUaXRsZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlZmF1bHRNZW1iZXJzaGlwVGl0bGU7XHJcbiAgZGVmYXVsdE1lbWJlcnNoaXBEZXNjcmlwdGlvbiA9XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5kZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uO1xyXG4gIGN1c3RvbVF1ZXN0aW9uc1RpdGxlID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8uY3VzdG9tUXVlc3Rpb25zVGl0bGU7XHJcbiAgYWRkUXVlc3Rpb25MYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmFkZFF1ZXN0aW9uTGFiZWw7XHJcbiAgcmVxdWlyZWRUYWcgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5yZXF1aXJlZFRhZztcclxuICBzdGFuZGFyZFRhZyA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkVGFnO1xyXG4gIG5ld1F1ZXN0aW9uTGFiZWwgPSB0aGlzLmludGVyZXN0Rm9ybVRleHRzPy5uZXdRdWVzdGlvbkxhYmVsO1xyXG4gIGVkaXRRdWVzdGlvbkFyaWFMYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmVkaXRRdWVzdGlvbkFyaWFMYWJlbDtcclxuICBkZWxldGVRdWVzdGlvbkFyaWFMYWJlbCA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LmRlbGV0ZVF1ZXN0aW9uQXJpYUxhYmVsO1xyXG4gIG5vTGV2ZWxzTWVzc2FnZSA9IHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/Lm5vTGV2ZWxzTWVzc2FnZTtcclxuICB0eXBlTGFiZWxzID0gdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ucXVlc3Rpb25FZGl0b3I/LnR5cGVzO1xyXG4gIGNhbmNlbExhYmVsID0gdGhpcy5jb25zdGFudHM/LnJvc3RlckludGVyZXN0cz8uZm9vdGVyPy5jYW5jZWw7XHJcbiAgcHJldmlld0xhYmVsID0gdGhpcy5jb25zdGFudHM/LnJvc3RlckludGVyZXN0cz8uZm9vdGVyPy5wcmV2aWV3O1xyXG5cclxuICBlbmFibGVGb3JtVG9nZ2xlITogU2xpZGVUb2dnbGVPcHRpb247XHJcbiAgc3RhbmRhcmRRdWVzdGlvbnM6IFN0YW5kYXJkUXVlc3Rpb25Sb3dbXSA9IFtdO1xyXG4gIG1lbWJlcnNoaXBMZXZlbHM6IFJhZGlvT3B0aW9uW10gPSBbXTtcclxuICAvLyBEZWZhdWx0cyB0byBkaXNhYmxlZCAoT0ZGKS4gVGhlIHJlYWwgc3RhdGUgaXMgZHJpdmVuIGJ5IHRoZSBBUEkgcmVzcG9uc2UgaW5cclxuICAvLyBsb2FkQ29uZmlnOyB3aGVuIG5vIGNvbmZpZyBoYXMgYmVlbiBzYXZlZCB5ZXQgdGhlIGJhY2tlbmQgcmV0dXJucyBESVNBQkxFRCxcclxuICAvLyBzbyB0aGUgZmlyc3QtdGltZSB2aWV3IGNvcnJlY3RseSBzaG93cyB0aGUgdG9nZ2xlIE9GRi5cclxuICBpc0Zvcm1FbmFibGVkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRMZXZlbElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBsZXZlbHM6IEdyb3VwUm9sZVtdID0gW107XHJcblxyXG4gIGN1c3RvbVF1ZXN0aW9uczogQ3VzdG9tUXVlc3Rpb25bXSA9IFtdO1xyXG4gIGVkaXRpbmdRdWVzdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGlzRWRpdGluZ05ld1F1ZXN0aW9uID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPHVua25vd24+LFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGdyb3VwOiBHcm91cEluZm8sXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgaW50ZXJlc3RGb3JtU2VydmljZTogSW50ZXJlc3RGb3JtU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgc3RhdGljIFVJIG9wdGlvbnMgYW5kIGxvYWRzIHRoZSBncm91cCdzIGludGVyZXN0IGNvbmZpZyBhbmRcclxuICAgKiBjdXN0b20gcXVlc3Rpb25zIGZyb20gdGhlIGJhY2tlbmQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlLnNldEFwaUJhc2VVcmwodGhpcy5ncm91cHNTZXJ2aWNlPy5hcGlCYXNlVXJsKTtcclxuICAgIHRoaXMuZW5hYmxlRm9ybVRvZ2dsZSA9IHtcclxuICAgICAgaWQ6IDEsXHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgY2hlY2tlZDogdGhpcy5pc0Zvcm1FbmFibGVkLFxyXG4gICAgICBhcmlhTGFiZWw6IHRoaXMuc2VjdGlvblRpdGxlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RhbmRhcmRRdWVzdGlvbnMgPSAoXHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtVGV4dHM/LnN0YW5kYXJkUXVlc3Rpb25zID8/IFtdXHJcbiAgICApLm1hcCgobGFiZWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gKHtcclxuICAgICAgaWQ6IGluZGV4ICsgMSxcclxuICAgICAgbGFiZWwsXHJcbiAgICAgIHRhZzogdGhpcy5zdGFuZGFyZFRhZyxcclxuICAgIH0pKTtcclxuICAgIGlmICh0aGlzLmdyb3VwPy5ncm91cElkKSB7XHJcbiAgICAgIHRoaXMubG9hZE1lbWJlcnNoaXBMZXZlbHMoKTtcclxuICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgcmVhbCBtZW1iZXJzaGlwIGxldmVscyBmb3IgdGhlIGdyb3VwJ3MgZ3JvdXAgdHlwZSBhbmQgdGhlbiB0aGVcclxuICAgKiBzYXZlZCBpbnRlcmVzdCBjb25maWd1cmF0aW9uIChzbyB0aGUgc2F2ZWQgZGVmYXVsdCBsZXZlbCBjYW4gYmVcclxuICAgKiBwcmVzZWxlY3RlZCkuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGxvYWRNZW1iZXJzaGlwTGV2ZWxzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYXBwSWQgPSB0aGlzLmdyb3Vwc1NlcnZpY2U/LmdldFVzZXJJbmZvKCk/LmFwcElkO1xyXG4gICAgaWYgKCFhcHBJZCkge1xyXG4gICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXRSb2xlcyhhcHBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIC8vIE1lbWJlciBsZXZlbHMgYXJlIHRoZSByb2xlcyB3aG9zZSByb2xlVHlwZU5hbWUgaXMgXCJNZW1iZXIgTGV2ZWxcIi5cclxuICAgICAgICAgIHRoaXMubGV2ZWxzID0gKHJlc3BvbnNlPy5ib2R5ID8/IFtdKS5maWx0ZXIoXHJcbiAgICAgICAgICAgIChyb2xlKSA9PiByb2xlLnJvbGVUeXBlTmFtZSA9PT0gTUVNQkVSX0xFVkVMX1JPTEVfVFlQRVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubG9hZENvbmZpZygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDb25maWcoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSBncm91cCdzIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKG1vZGUgKyBkZWZhdWx0IGxldmVsKSBhbmQgc3luY3NcclxuICAgKiB0aGUgdG9nZ2xlIGFuZCB0aGUgZGVmYXVsdC1sZXZlbCByYWRpbyBzZWxlY3Rpb24uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGxvYWRDb25maWcoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgLmdldEludGVyZXN0Q29uZmlnKHRoaXMuZ3JvdXAuZ3JvdXBJZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHJlc3BvbnNlPy5ib2R5O1xyXG4gICAgICAgICAgdGhpcy5pc0Zvcm1FbmFibGVkID0gY29uZmlnPy5pbnRlcmVzdE1vZGUgPT09IEludGVyZXN0TW9kZS5GT1JNO1xyXG4gICAgICAgICAgdGhpcy5lbmFibGVGb3JtVG9nZ2xlID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmVuYWJsZUZvcm1Ub2dnbGUsXHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IHRoaXMuaXNGb3JtRW5hYmxlZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICAvLyBQcmVzZWxlY3QgdGhlIHNhdmVkIGRlZmF1bHQgbGV2ZWwsIGVsc2UgdGhlIGZpcnN0IG1lbWJlciBsZXZlbC5cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID1cclxuICAgICAgICAgICAgY29uZmlnPy5kZWZhdWx0TGV2ZWxJZCA/PyB0aGlzLmxldmVsc1swXT8ucm9sZUlkID8/IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIHRoZSByYWRpbyBvcHRpb25zIGZyb20gdGhlIHJlYWwgbWVtYmVyc2hpcCBsZXZlbHMsIG1hcmtpbmcgdGhlXHJcbiAgICogY3VycmVudGx5IHNlbGVjdGVkIGxldmVsIGFzIGNoZWNrZWQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGJ1aWxkTWVtYmVyc2hpcExldmVsT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMubWVtYmVyc2hpcExldmVscyA9IHRoaXMubGV2ZWxzLm1hcCgobGV2ZWwpID0+ICh7XHJcbiAgICAgIGlkOiBsZXZlbC5yb2xlSWQsXHJcbiAgICAgIGxhYmVsOiBsZXZlbC5yb2xlTmFtZSxcclxuICAgICAgY2hlY2tlZDogbGV2ZWwucm9sZUlkID09PSB0aGlzLnNlbGVjdGVkTGV2ZWxJZCxcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIHRoZSBncm91cCdzIGN1c3RvbSBxdWVzdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGxvYWRRdWVzdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgLmdldFF1ZXN0aW9ucyh0aGlzLmdyb3VwLmdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9IHJlc3BvbnNlPy5ib2R5ID8/IFtdO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgZm9ybS1lbmFibGVkIHN0YXRlIGFuZCBwZXJzaXN0cyB0aGUgbmV3IGludGVyZXN0IG1vZGUuXHJcbiAgICogQHBhcmFtIHtTbGlkZVRvZ2dsZU9wdGlvbn0gdG9nZ2xlXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRW5hYmxlRm9ybVRvZ2dsZSh0b2dnbGU6IFNsaWRlVG9nZ2xlT3B0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9ybUVuYWJsZWQgPSB0b2dnbGU/LmNoZWNrZWQ7XHJcbiAgICBpZiAoIXRoaXMuaXNGb3JtRW5hYmxlZCkge1xyXG4gICAgICAvLyBEaXNhYmxpbmcgYWx3YXlzIHBlcnNpc3RzIGltbWVkaWF0ZWx5IChubyBsZXZlbCBuZWVkZWQpLlxyXG4gICAgICB0aGlzLnNhdmVDb25maWcoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRW5hYmxpbmcgcmVxdWlyZXMgYSBkZWZhdWx0IGxldmVsIChiYWNrZW5kIHJlamVjdHMgRk9STSB3aXRob3V0IG9uZSkuIElmXHJcbiAgICAvLyBub25lIGlzIHNlbGVjdGVkIHlldCwgYXV0by1zZWxlY3QgdGhlIGxldmVsIGZsYWdnZWQgZGVmYXVsdCwgZWxzZSB0aGVcclxuICAgIC8vIGZpcnN0IGF2YWlsYWJsZSBsZXZlbCwgc28gdGhlIHRvZ2dsZSBwZXJzaXN0cyBpbW1lZGlhdGVseS5cclxuICAgIGlmICghdGhpcy5zZWxlY3RlZExldmVsSWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExldmVsSWQgPSB0aGlzLmxldmVsc1swXT8ucm9sZUlkID8/IG51bGw7XHJcbiAgICAgIHRoaXMuYnVpbGRNZW1iZXJzaGlwTGV2ZWxPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZExldmVsSWQpIHtcclxuICAgICAgdGhpcy5zYXZlQ29uZmlnKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBObyBtZW1iZXJzaGlwIGxldmVscyBjb25maWd1cmVkIGZvciB0aGlzIGdyb3VwIHR5cGU6IGNhbm5vdCBlbmFibGUsIHNvXHJcbiAgICAgIC8vIHJldmVydCB0aGUgdG9nZ2xlL2VuYWJsZWQgc3RhdGUgdG8gZmFsc2UgYmVmb3JlIGFsZXJ0aW5nIChub3RoaW5nIHdhc1xyXG4gICAgICAvLyBwZXJzaXN0ZWQsIGFuZCB0aGUgZGVwZW5kZW50IHNlY3Rpb25zIG11c3Qgbm90IHN0YXkgdmlzaWJsZSkuXHJcbiAgICAgIHRoaXMuaXNGb3JtRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVuYWJsZUZvcm1Ub2dnbGUgPSB7XHJcbiAgICAgICAgLi4udGhpcy5lbmFibGVGb3JtVG9nZ2xlLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5pbnRlcmVzdEZvcm1UZXh0cz8ubm9MZXZlbHNNZXNzYWdlLFxyXG4gICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlPy5FUlJPUixcclxuICAgICAgICBpc0Nsb3NlTmVlZGVkOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcnNpc3RzIHRoZSBpbnRlcmVzdCBjb25maWcuIFRoZSBkZWZhdWx0IGxldmVsIGlzIG9ubHkgc2VudCBmb3IgdGhlXHJcbiAgICogZW5hYmxlZCAoRk9STSkgbW9kZTsgRElTQUJMRUQgY2xlYXJzIGl0LiBFbmFibGluZyB3aXRob3V0IGEgc2VsZWN0ZWQgbGV2ZWxcclxuICAgKiBpcyBza2lwcGVkIHNvIGFuIGludmFsaWQgcmVxdWVzdCBpcyBuZXZlciBzZW50LlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBzYXZlQ29uZmlnKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmdyb3VwPy5ncm91cElkKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5pc0Zvcm1FbmFibGVkICYmICF0aGlzLnNlbGVjdGVkTGV2ZWxJZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5zYXZlSW50ZXJlc3RDb25maWcoe1xyXG4gICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXAuZ3JvdXBJZCxcclxuICAgICAgICBpbnRlcmVzdE1vZGU6IHRoaXMuaXNGb3JtRW5hYmxlZFxyXG4gICAgICAgICAgPyBJbnRlcmVzdE1vZGUuRk9STVxyXG4gICAgICAgICAgOiBJbnRlcmVzdE1vZGUuRElTQUJMRUQsXHJcbiAgICAgICAgZGVmYXVsdExldmVsSWQ6IHRoaXMuaXNGb3JtRW5hYmxlZCA/IHRoaXMuc2VsZWN0ZWRMZXZlbElkIDogbnVsbCxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWNvcmRzIHRoZSBzZWxlY3RlZCBkZWZhdWx0IG1lbWJlcnNoaXAgbGV2ZWwgYW5kIHBlcnNpc3RzIHRoZSBjb25maWcgd2hlblxyXG4gICAqIHRoZSBmb3JtIGlzIGVuYWJsZWQuXHJcbiAgICogQHBhcmFtIHtSYWRpb09wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVtYmVyc2hpcExldmVsQ2hhbmdlKG9wdGlvbjogUmFkaW9PcHRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMZXZlbElkID0gU3RyaW5nKG9wdGlvbj8uaWQpO1xyXG4gICAgaWYgKHRoaXMuaXNGb3JtRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnNhdmVDb25maWcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgYSBuZXcgYmxhbmsgcXVlc3Rpb24gYW5kIG9wZW5zIGl0cyBlZGl0b3IuIE9ubHkgb25lIGVkaXRvciBpcyBvcGVuIGF0XHJcbiAgICogYSB0aW1lLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkFkZFF1ZXN0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIGNvbnN0IHRlbXBJZCA9IGBuZXctJHtEYXRlLm5vdygpfWA7XHJcbiAgICBjb25zdCBuZXdRdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24gPSB7XHJcbiAgICAgIHF1ZXN0aW9uSWQ6IHRlbXBJZCxcclxuICAgICAgZ3JvdXBJZDogdGhpcy5ncm91cD8uZ3JvdXBJZCxcclxuICAgICAgcXVlc3Rpb25MYWJlbDogJycsXHJcbiAgICAgIGZpZWxkVHlwZTogbnVsbCxcclxuICAgICAgaXNSZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gICAgICBoZWxwVGV4dDogJycsXHJcbiAgICAgIG9wdGlvbnM6IHVuZGVmaW5lZCxcclxuICAgICAgdmlld09yZGVyOiB0aGlzLmN1c3RvbVF1ZXN0aW9ucy5sZW5ndGgsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jdXN0b21RdWVzdGlvbnMgPSBbLi4udGhpcy5jdXN0b21RdWVzdGlvbnMsIG5ld1F1ZXN0aW9uXTtcclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSB0ZW1wSWQ7XHJcbiAgICB0aGlzLmlzRWRpdGluZ05ld1F1ZXN0aW9uID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBlZGl0b3IgZm9yIGFuIGV4aXN0aW5nIHF1ZXN0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQpIHJldHVybjtcclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBxdWVzdGlvbi5xdWVzdGlvbklkID8/IG51bGw7XHJcbiAgICB0aGlzLmlzRWRpdGluZ05ld1F1ZXN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIG9yIHVwZGF0ZXMgdGhlIHF1ZXN0aW9uIG9uIHRoZSBiYWNrZW5kIGFuZCByZWZyZXNoZXMgdGhlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtDdXN0b21RdWVzdGlvbn0gcXVlc3Rpb25cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TYXZlUXVlc3Rpb24ocXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbikge1xyXG4gICAgICBjb25zdCBwYXlsb2FkOiBDdXN0b21RdWVzdGlvbiA9IHsgLi4ucXVlc3Rpb24gfTtcclxuICAgICAgLy8gUmVtb3ZlIHRoZSB0ZW1wb3JhcnkgY2xpZW50IGlkIHNvIHRoZSBiYWNrZW5kIGdlbmVyYXRlcyBvbmUuXHJcbiAgICAgIGRlbGV0ZSBwYXlsb2FkLnF1ZXN0aW9uSWQ7XHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAgIC5jcmVhdGVRdWVzdGlvbihwYXlsb2FkKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMuYWZ0ZXJRdWVzdGlvblNhdmVkKCksXHJcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSxcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAgICAgIC51cGRhdGVRdWVzdGlvbihxdWVzdGlvbilcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmFmdGVyUXVlc3Rpb25TYXZlZCgpLFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIGVkaXRvciBhbmQgcmVsb2FkcyB0aGUgcXVlc3Rpb25zIGFmdGVyIGEgc3VjY2Vzc2Z1bCBzYXZlLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGFmdGVyUXVlc3Rpb25TYXZlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2FkUXVlc3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIGVkaXRvci4gQSBuZXdseSBhZGRlZCBxdWVzdGlvbiBpcyByZW1vdmVkIG9uIGNhbmNlbDsgYW4gZXhpc3RpbmdcclxuICAgKiBxdWVzdGlvbiBrZWVwcyBpdHMgcHJldmlvdXMgdmFsdWVzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uQ2FuY2VsUXVlc3Rpb24ocXVlc3Rpb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbikge1xyXG4gICAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9IHRoaXMuY3VzdG9tUXVlc3Rpb25zLmZpbHRlcihcclxuICAgICAgICAocXVlc3Rpb24pID0+IHF1ZXN0aW9uLnF1ZXN0aW9uSWQgIT09IHF1ZXN0aW9uSWRcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBudWxsO1xyXG4gICAgdGhpcy5pc0VkaXRpbmdOZXdRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHF1ZXN0aW9uIG9uIHRoZSBiYWNrZW5kIGFuZCByZWZyZXNoZXMgdGhlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHF1ZXN0aW9uSWRcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25EZWxldGVRdWVzdGlvbihxdWVzdGlvbklkOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICghcXVlc3Rpb25JZCkgcmV0dXJuO1xyXG4gICAgLy8gQSBub3QteWV0LXNhdmVkIHF1ZXN0aW9uIG9ubHkgZXhpc3RzIGNsaWVudC1zaWRlLlxyXG4gICAgaWYgKHF1ZXN0aW9uSWQuc3RhcnRzV2l0aCgnbmV3LScpKSB7XHJcbiAgICAgIHRoaXMub25DYW5jZWxRdWVzdGlvbihxdWVzdGlvbklkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICAgIC5yZW1vdmVRdWVzdGlvbihxdWVzdGlvbklkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbklkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdGluZ1F1ZXN0aW9uSWQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmlzRWRpdGluZ05ld1F1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlb3JkZXJzIHF1ZXN0aW9ucyBvbiBkcmFnLWRyb3AgYW5kIHBlcnNpc3RzIHRoZSBuZXcgb3JkZXIuXHJcbiAgICogQHBhcmFtIHtDZGtEcmFnRHJvcDxDdXN0b21RdWVzdGlvbltdPn0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25SZW9yZGVyUXVlc3Rpb25zKGV2ZW50OiBDZGtEcmFnRHJvcDxDdXN0b21RdWVzdGlvbltdPik6IHZvaWQge1xyXG4gICAgY29uc3QgcmVvcmRlcmVkID0gWy4uLnRoaXMuY3VzdG9tUXVlc3Rpb25zXTtcclxuICAgIG1vdmVJdGVtSW5BcnJheShyZW9yZGVyZWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLmN1c3RvbVF1ZXN0aW9ucyA9IHJlb3JkZXJlZC5tYXAoKHF1ZXN0aW9uLCBpbmRleCkgPT4gKHtcclxuICAgICAgLi4ucXVlc3Rpb24sXHJcbiAgICAgIHZpZXdPcmRlcjogaW5kZXgsXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgICAgLnJlb3JkZXJRdWVzdGlvbnMoXHJcbiAgICAgICAgdGhpcy5jdXN0b21RdWVzdGlvbnMubWFwKChxdWVzdGlvbikgPT4gKHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IHF1ZXN0aW9uLnF1ZXN0aW9uSWQgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgdmlld09yZGVyOiBxdWVzdGlvbi52aWV3T3JkZXIsXHJcbiAgICAgICAgfSkpXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBUaGUgbGlzdCB3YXMgcmVvcmRlcmVkIG9wdGltaXN0aWNhbGx5OyBpZiB0aGUgYmFja2VuZCByZWplY3RlZCB0aGVcclxuICAgICAgICAvLyBuZXcgb3JkZXIsIHJlbG9hZCBzbyB0aGUgY2xpZW50IHJlZmxlY3RzIHRoZSBwZXJzaXN0ZWQgb3JkZXIuXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGRpc3BsYXkgbGFiZWwgZm9yIGEgcXVlc3Rpb24ncyBmaWVsZCB0eXBlLlxyXG4gICAqIEBwYXJhbSB7KFF1ZXN0aW9uRmllbGRUeXBlIHwgbnVsbCl9IHR5cGVcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFR5cGVMYWJlbCh0eXBlOiBRdWVzdGlvbkZpZWxkVHlwZSB8IG51bGwpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgUXVlc3Rpb25GaWVsZFR5cGUuVEVYVDpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy50ZXh0O1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlRFWFRBUkVBOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGVMYWJlbHM/LnRleHRBcmVhO1xyXG4gICAgICBjYXNlIFF1ZXN0aW9uRmllbGRUeXBlLlNFTEVDVDpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5kcm9wZG93bjtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5DSEVDS0JPWDpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5jaGVja2JveDtcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5SQURJTzpcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlTGFiZWxzPy5yYWRpbztcclxuICAgICAgY2FzZSBRdWVzdGlvbkZpZWxkVHlwZS5EQVRFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGVMYWJlbHM/LmRhdGU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgYW4gZXJyb3IgYWxlcnQgZm9yIGEgZmFpbGVkIGludGVyZXN0LWZvcm0gb3BlcmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7Kn0gZXJyb3JcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmFsZXJ0U2VydmljZT8uc2hvd01lc3NhZ2Uoe1xyXG4gICAgICBzdGF0dXM6ICdjdXN0b20nLFxyXG4gICAgICBtZXNzYWdlOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgPz8gZXJyb3I/Lm1lc3NhZ2UsXHJcbiAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlPy5FUlJPUixcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgdGhlIGludGVyZXN0IGZvcm0gaW4gcmVhZC1vbmx5IHByZXZpZXcgbW9kZSAoU1AzTS0zMTcgUjYuNyksIHJldXNpbmdcclxuICAgKiB0aGUgc2hhcmVkIGV4cHJlc3MtaW50ZXJlc3QgZGlhbG9nLiBTaG93cyB0aGUgYWRtaW4ncyBjdXJyZW50IGN1c3RvbVxyXG4gICAqIHF1ZXN0aW9ucyBhcyBhbiBlbmQgdXNlciB3b3VsZCBzZWUgdGhlbTsgbm8gc3VibWl0LCBDYW5jZWwgb25seS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25QcmV2aWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2c/Lm9wZW4oSW50ZXJlc3RGb3JtUHJldmlld0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzcyMHB4JyxcclxuICAgICAgbWF4V2lkdGg6ICc5MnZ3JyxcclxuICAgICAgbWF4SGVpZ2h0OiAnOTB2aCcsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLW1vZGFsLWRpYWxvZycsICdpZWVlc2EtaW50ZXJlc3QtZm9ybS1wcmV2aWV3J10sXHJcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGdyb3VwTmFtZTogdGhpcy5ncm91cD8uZ3JvdXBOYW1lID8/ICcnLFxyXG4gICAgICAgIGN1c3RvbVF1ZXN0aW9uczogdGhpcy5jdXN0b21RdWVzdGlvbnMsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlcyB0aGUgUm9zdGVyIEludGVyZXN0cyBkaWFsb2cgKENhbmNlbCBhY3Rpb24pLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogbmdGb3IgdHJhY2tpbmcgZm9yIHN0YW5kYXJkIHF1ZXN0aW9uIHJvd3MuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtTdGFuZGFyZFF1ZXN0aW9uUm93fSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHF1ZXN0aW9uOiBTdGFuZGFyZFF1ZXN0aW9uUm93KTogbnVtYmVyIHtcclxuICAgIHJldHVybiBxdWVzdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5nRm9yIHRyYWNraW5nIGZvciBjdXN0b20gcXVlc3Rpb25zLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1Db21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5UXVlc3Rpb25JZChpbmRleDogbnVtYmVyLCBxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb24pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHF1ZXN0aW9uLnF1ZXN0aW9uSWQgYXMgc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgYW5kIGNvbXBsZXRlcyB0aGUgZGVzdHJveSBzdWJqZWN0IHNvIGFueSBpbi1mbGlnaHQgcmVxdWVzdHMgYXJlXHJcbiAgICogdW5zdWJzY3JpYmVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1cIj5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX25vdGljZSBpZWVlc2EtYm9keS1zbS0xNFwiIHJvbGU9XCJub3RlXCI+XHJcbiAgICA8c3ZnXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX25vdGljZS1pY29uXCJcclxuICAgICAgd2lkdGg9XCIxNlwiXHJcbiAgICAgIGhlaWdodD1cIjE2XCJcclxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgID5cclxuICAgICAgPHBhdGhcclxuICAgICAgICBkPVwiTTEyIDJMMSAyMWgyMkwxMiAyem0wIDQuNUwxOS41IDE5LjVoLTE1TDEyIDYuNXpNMTEgMTB2NWgydi01aC0yem0wIDZ2Mmgydi0yaC0yelwiXHJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuPnt7IGNoYW5nZXNOb3RpY2UgfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICAgIHt7IHNlY3Rpb25UaXRsZSB9fVxyXG4gICAgICAgIDwvaDI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi1kZXNjIGllZWVzYS1ib2R5LXNtLTE0IG0tMFwiPlxyXG4gICAgICAgICAge3sgc2VjdGlvbkRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGllZWVzYS1zbGlkZS10b2dnbGVcclxuICAgICAgICBbc2xpZGVUb2dnbGVdPVwiZW5hYmxlRm9ybVRvZ2dsZVwiXHJcbiAgICAgICAgKHNsaWRlVG9nZ2xlQ2hhbmdlKT1cIm9uRW5hYmxlRm9ybVRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgPjwvaWVlZXNhLXNsaWRlLXRvZ2dsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPHNlY3Rpb24gKm5nSWY9XCJpc0Zvcm1FbmFibGVkXCIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvblwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWhlYWRpbmcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcbiAgICA+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19sb2NrXCJcclxuICAgICAgICB3aWR0aD1cIjE2XCJcclxuICAgICAgICBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgZD1cIk0xMiAyYTUgNSAwIDAgMC01IDV2M0g2YTIgMiAwIDAgMC0yIDJ2OGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMmgtMVY3YTUgNSAwIDAgMC01LTV6bS0zIDVhMyAzIDAgMCAxIDYgMHYzSDlWN3ptLTMgNWgxMnY4SDZ2LTh6XCJcclxuICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8aDIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvbi10aXRsZSBpZWVlc2EtYm9keS1sZy1ib2xkLTE2IG0tMFwiPlxyXG4gICAgICAgIHt7IHN0YW5kYXJkUXVlc3Rpb25zVGl0bGUgfX1cclxuICAgICAgPC9oMj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9faGludCBpZWVlc2EtYm9keS1zbS0xNFwiPnt7XHJcbiAgICAgICAgc3RhbmRhcmRRdWVzdGlvbnNIaW50XHJcbiAgICAgIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dWwgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtbGlzdFwiPlxyXG4gICAgICA8bGlcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2Ygc3RhbmRhcmRRdWVzdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtcm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc3RhbmRhcmQtbGFiZWwgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgICAgcXVlc3Rpb24ubGFiZWxcclxuICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zdGFuZGFyZC10YWcgaWVlZXNhLWJvZHktc20tMTRcIj57e1xyXG4gICAgICAgICAgcXVlc3Rpb24udGFnXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbiAgPHNlY3Rpb24gKm5nSWY9XCJpc0Zvcm1FbmFibGVkXCIgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fc2VjdGlvblwiPlxyXG4gICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAge3sgZGVmYXVsdE1lbWJlcnNoaXBUaXRsZSB9fVxyXG4gICAgPC9oMj5cclxuICAgIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tZGVzYyBpZWVlc2EtYm9keS1zbS0xNFwiPlxyXG4gICAgICB7eyBkZWZhdWx0TWVtYmVyc2hpcERlc2NyaXB0aW9uIH19XHJcbiAgICA8L3A+XHJcbiAgICA8aWVlZXNhLXJhZGlvXHJcbiAgICAgICpuZ0lmPVwibWVtYmVyc2hpcExldmVscy5sZW5ndGggPiAwXCJcclxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVmYXVsdE1lbWJlcnNoaXBMZXZlbFwiXHJcbiAgICAgIFtyYWRpb0dyb3VwXT1cIm1lbWJlcnNoaXBMZXZlbHNcIlxyXG4gICAgICAoc2VsZWN0ZWRSYWRpb09wdGlvbik9XCJvbk1lbWJlcnNoaXBMZXZlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1yYWRpbz5cclxuICAgIDxwXHJcbiAgICAgICpuZ0lmPVwibWVtYmVyc2hpcExldmVscy5sZW5ndGggPT09IDBcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19zZWN0aW9uLWRlc2MgaWVlZXNhLWJvZHktc20tMTRcIlxyXG4gICAgPlxyXG4gICAgICB7eyBub0xldmVsc01lc3NhZ2UgfX1cclxuICAgIDwvcD5cclxuICA8L3NlY3Rpb24+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb25cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY3VzdG9tLWhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPGgyIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3NlY3Rpb24tdGl0bGUgaWVlZXNhLWJvZHktbGctYm9sZC0xNiBtLTBcIj5cclxuICAgICAgICB7eyBjdXN0b21RdWVzdGlvbnNUaXRsZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fYWRkLXF1ZXN0aW9uIGllZWVzYS1ib2R5LXNtLTE0XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZWRpdGluZ1F1ZXN0aW9uSWRcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkFkZFF1ZXN0aW9uKClcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWRkUXVlc3Rpb25MYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBhZGRRdWVzdGlvbkxhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1saXN0XCJcclxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvblJlb3JkZXJRdWVzdGlvbnMoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgY3VzdG9tUXVlc3Rpb25zOyB0cmFja0J5OiB0cmFja0J5UXVlc3Rpb25JZFwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZWRpdGluZ1F1ZXN0aW9uSWRcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uXCJcclxuICAgICAgICBbY2xhc3MuaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLS1lZGl0aW5nXT1cIlxyXG4gICAgICAgICAgZWRpdGluZ1F1ZXN0aW9uSWQgPT09IHF1ZXN0aW9uLnF1ZXN0aW9uSWRcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fcXVlc3Rpb24tcm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTJcIlxyXG4gICAgICAgICAgW2NsYXNzLmllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1yb3ctLWVkaXRpbmddPVwiXHJcbiAgICAgICAgICAgIGVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGllZWVzYS1pbnRlcmVzdC1mb3JtX19xdWVzdGlvbi1tYWluXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fZHJhZy1oYW5kbGVcIlxyXG4gICAgICAgICAgICAgIGNka0RyYWdIYW5kbGVcclxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCIyXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMTRcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCIxNFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX3F1ZXN0aW9uLWxhYmVsIGllZWVzYS1ib2R5LXNtLTE0XCI+XHJcbiAgICAgICAgICAgICAge3sgcXVlc3Rpb24ucXVlc3Rpb25MYWJlbCB8fCBuZXdRdWVzdGlvbkxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmZpZWxkVHlwZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcCBpZWVlc2EtaW50ZXJlc3QtZm9ybV9fY2hpcC0tdHlwZSBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBnZXRUeXBlTGFiZWwocXVlc3Rpb24uZmllbGRUeXBlKSB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19jaGlwIGllZWVzYS1pbnRlcmVzdC1mb3JtX19jaGlwLS1yZXF1aXJlZCBpZWVlc2EtYm9keS1zbS0xNFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyByZXF1aXJlZFRhZyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImVkaXRpbmdRdWVzdGlvbklkICE9PSBxdWVzdGlvbi5xdWVzdGlvbklkXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0blwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJlZGl0UXVlc3Rpb25BcmlhTGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNi4wNi41OWwxLjM1IDEuMzVjLjc5Ljc4Ljc5IDIuMDUgMCAyLjgzTDQuMTggMThIMHYtNC4xOEwxMC40IDMuNDEgMTMuMjMuNTljLjc4LS43OCAyLjA1LS43OCAyLjgzIDB6TTIgMTZsMS40MS4wNkwxMy4yMyA2LjIzbC0xLjQxLTEuNDFMMiAxNC42NFYxNnpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2ljb24tYnRuIGllZWVzYS1pbnRlcmVzdC1mb3JtX19pY29uLWJ0bi0tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVRdWVzdGlvbihxdWVzdGlvbi5xdWVzdGlvbklkKVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZWxldGVRdWVzdGlvbkFyaWFMYWJlbFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE1IDNWNEgyMFY2SDE5VjE5QzE5IDIwLjEgMTguMSAyMSAxNyAyMUg3QzUuOSAyMSA1IDIwLjEgNSAxOVY2SDRWNEg5VjNIMTVaTTcgMTlIMTdWNkg3VjE5Wk05IDhIMTFWMTdIOVY4Wk0xNSA4SDEzVjE3SDE1VjhaXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGllZWVzYS1jdXN0b20tcXVlc3Rpb24tZWRpdG9yXHJcbiAgICAgICAgICAqbmdJZj1cImVkaXRpbmdRdWVzdGlvbklkID09PSBxdWVzdGlvbi5xdWVzdGlvbklkXCJcclxuICAgICAgICAgIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAoc2F2ZSk9XCJvblNhdmVRdWVzdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChjYW5jZWwpPVwib25DYW5jZWxRdWVzdGlvbihxdWVzdGlvbi5xdWVzdGlvbklkKVwiXHJcbiAgICAgICAgPjwvaWVlZXNhLWN1c3RvbS1xdWVzdGlvbi1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWludGVyZXN0LWZvcm1fX2Zvb3RlciBkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGdhcC0zXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19jYW5jZWxcIlxyXG4gICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2FuY2VsTGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjYW5jZWxMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwiaXNGb3JtRW5hYmxlZFwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1pbnRlcmVzdC1mb3JtX19wcmV2aWV3XCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiEhZWRpdGluZ1F1ZXN0aW9uSWRcIlxyXG4gICAgICAoY2xpY2spPVwib25QcmV2aWV3KClcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByZXZpZXdMYWJlbFwiXHJcbiAgICA+XHJcbiAgICAgIHt7IHByZXZpZXdMYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|