@the-liberators/ngx-scrumteamsurvey-tools 2.3.12 → 2.3.14

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.
@@ -0,0 +1,15 @@
1
+ export function minTopicsSelectedValidator(minimum) {
2
+ return (control) => {
3
+ var value = control.value;
4
+ if (!value) {
5
+ return null;
6
+ }
7
+ if (value.topicKeys == null || value.topicKeys.length <= minimum) {
8
+ return {
9
+ minTopics: true
10
+ };
11
+ }
12
+ return null;
13
+ };
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluVG9waWNzU2VsZWN0ZWRWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvY29tcG9uZW50cy90b3BpY3NlbGVjdG9yL21pblRvcGljc1NlbGVjdGVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxPQUFlO0lBQ3ZELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzFELElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUF5QixDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDO1FBQUMsQ0FBQztRQUU1QixJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2hFLE9BQU87Z0JBQ0osU0FBUyxFQUFFLElBQUk7YUFDakIsQ0FBQTtRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNmLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVG9waWNTZWxlY3RvckR0byB9IGZyb20gJy4vdG9waWMtc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCBmdW5jdGlvbiBtaW5Ub3BpY3NTZWxlY3RlZFZhbGlkYXRvcihtaW5pbXVtOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XG4gICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIHZhciB2YWx1ZSA9IGNvbnRyb2wudmFsdWUgYXMgVG9waWNTZWxlY3RvckR0bztcbiAgICAgIGlmICghdmFsdWUpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgaWYgKHZhbHVlLnRvcGljS2V5cyA9PSBudWxsIHx8IHZhbHVlLnRvcGljS2V5cy5sZW5ndGggPD0gbWluaW11bSkge1xuICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1pblRvcGljczogdHJ1ZVxuICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICB9XG59XG4iXX0=
@@ -0,0 +1,235 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { FormArray, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { MatDialogConfig } from '@angular/material/dialog';
4
+ import { SegmentEnum } from '../../models/modelStructureDto';
5
+ import { DialogFactorInformationComponent } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "@angular/material/dialog";
9
+ import * as i3 from "@angular/material/form-field";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/material/select";
12
+ import * as i6 from "@angular/material/core";
13
+ import * as i7 from "../../pipes/slugify/ngx-slugify.pipe";
14
+ export class TopicSelectorComponent {
15
+ constructor(formBuilder, dialog) {
16
+ this.formBuilder = formBuilder;
17
+ this.dialog = dialog;
18
+ this.warnings = [];
19
+ this.selectedTopics = [];
20
+ this.questionnaireAccuracy = 0;
21
+ this.questionsTeamMembers = 0;
22
+ this.questionsStakeholders = 0;
23
+ this.questionsSupporters = 0;
24
+ this.durationTeamMembers = 0;
25
+ this.durationStakeholders = 0;
26
+ this.durationSupporters = 0;
27
+ this.questionsTotal = 0;
28
+ this.disabled = false;
29
+ this.topicKeys = [];
30
+ this.presets = [];
31
+ this.onChange = () => { };
32
+ this.onTouch = () => { };
33
+ }
34
+ ngOnInit() {
35
+ this.createForm();
36
+ this.form.valueChanges.subscribe(() => {
37
+ var output = this.getValue();
38
+ this.onChange(output);
39
+ this.updateMetaData(output);
40
+ });
41
+ }
42
+ writeValue(dto) {
43
+ if (!dto) {
44
+ return;
45
+ }
46
+ var questionnaire = this.presets.find(p => p.publicKey == dto.presetKey);
47
+ if (!questionnaire) {
48
+ questionnaire = this.presets[0];
49
+ dto.topicKeys = questionnaire.scaleKeys;
50
+ dto.presetKey = questionnaire.publicKey;
51
+ }
52
+ this.selectedTopics = dto.topicKeys ?? [];
53
+ this.form.controls.preset.setValue(dto.presetKey);
54
+ this.getAllFormGroups(this.form)
55
+ .filter(p => p.get('selected') != null)
56
+ .forEach(p => p.get('selected').setValue(this.selectedTopics.includes(p.get('publicKey').value)));
57
+ this.updateMetaData(dto);
58
+ }
59
+ setDisabledState(isDisabled) {
60
+ this.disabled = isDisabled;
61
+ }
62
+ registerOnChange(fn) {
63
+ this.onChange = fn;
64
+ }
65
+ registerOnTouched(fn) {
66
+ this.onTouch = fn;
67
+ }
68
+ selectPreset() {
69
+ var questionnaire = this.presets.find(p => p.publicKey == this.form.controls.preset.value);
70
+ if (!questionnaire) {
71
+ return;
72
+ }
73
+ var topicKeys = questionnaire.scaleKeys;
74
+ if (topicKeys.length == 0) {
75
+ topicKeys = this.presets[0].scaleKeys;
76
+ }
77
+ this.selectedTopics = topicKeys ?? [];
78
+ this.getAllFormGroups(this.form)
79
+ .filter(p => p.get('selected') != null)
80
+ .forEach(p => p.get('selected').setValue(this.selectedTopics.includes(p.get('publicKey').value)));
81
+ var dto = new TopicSelectorDto(questionnaire.publicKey, topicKeys);
82
+ this.updateMetaData(dto);
83
+ this.onChange(dto);
84
+ }
85
+ getValue() {
86
+ var selectedTopics = this.getAllFormGroups(this.form)
87
+ .filter(p => p.valid && p.get('selected') && p.get('selected').value)
88
+ .map(p => p.get('publicKey').value);
89
+ var presetKey = this.form.controls.preset.value;
90
+ return new TopicSelectorDto(presetKey, selectedTopics);
91
+ }
92
+ openFactorInformation(topicKey, $event) {
93
+ var topic = this.topics.find(p => p.publicKey == topicKey);
94
+ if (!topic) {
95
+ return;
96
+ }
97
+ $event.preventDefault();
98
+ const dialogConfig = new MatDialogConfig();
99
+ dialogConfig.panelClass = ['dialog', 'factor'];
100
+ dialogConfig.data = topic;
101
+ dialogConfig.enterAnimationDuration = 0;
102
+ dialogConfig.exitAnimationDuration = 0;
103
+ this.dialog.open(DialogFactorInformationComponent, dialogConfig);
104
+ }
105
+ get topicsArray() {
106
+ return this.form.get('topicsArray');
107
+ }
108
+ getSubTopicsArray(topicGroup) {
109
+ return topicGroup.get('subTopicsArray').controls;
110
+ }
111
+ selectTopic(subTopicGroup) {
112
+ var output = this.getValue();
113
+ this.onChange(output);
114
+ this.updateMetaData(output);
115
+ }
116
+ selectAll(subTopicGroup, $event) {
117
+ $event.preventDefault();
118
+ const subTopics = subTopicGroup.get('subTopicsArray');
119
+ subTopics.controls.forEach(p => p.get('selected').setValue(true));
120
+ var dto = this.getValue();
121
+ this.onChange(dto);
122
+ this.updateMetaData(dto);
123
+ }
124
+ selectNone(subTopicGroup, $event) {
125
+ $event.preventDefault();
126
+ const subTopics = subTopicGroup.get('subTopicsArray');
127
+ subTopics.controls.forEach(p => p.get('selected').setValue(false));
128
+ var dto = this.getValue();
129
+ this.onChange(dto);
130
+ this.updateMetaData(dto);
131
+ }
132
+ getAllFormGroups(form) {
133
+ if (form instanceof FormGroup) {
134
+ return [form, ...Object.values(form.controls).flatMap(control => this.getAllFormGroups(control))];
135
+ }
136
+ if (form instanceof FormArray) {
137
+ return form.controls.flatMap(control => this.getAllFormGroups(control));
138
+ }
139
+ return [];
140
+ }
141
+ createForm() {
142
+ this.form = this.formBuilder.group({
143
+ preset: [null],
144
+ topicsArray: this.formBuilder.array(this.topics.filter(p => p.parentKey == null).map(topic => {
145
+ return this.formBuilder.group({
146
+ publicKey: topic.publicKey,
147
+ name: topic.name,
148
+ questionCount: topic.questionCount,
149
+ description: topic.description,
150
+ attribution: topic.attribution,
151
+ selected: this.selectedTopics.includes(topic.publicKey),
152
+ recommended: topic.recommended,
153
+ segments: topic.segments.map(p => { name: p.segment; }),
154
+ forTeamMembers: topic.segments.find(p => p.segment == SegmentEnum.TeamMember && p.questionCount > 0),
155
+ forStakeholders: topic.segments.find(p => p.segment == SegmentEnum.Stakeholder && p.questionCount > 0),
156
+ forSupporters: topic.segments.find(p => p.segment == SegmentEnum.Management && p.questionCount > 0),
157
+ subTopicsArray: this.formBuilder.array(this.topics.filter(p => p.parentKey == topic.publicKey).sort(function (a, b) { return a.name.localeCompare(b.name); }).map(topic => {
158
+ return this.formBuilder.group({
159
+ publicKey: topic.publicKey,
160
+ name: topic.name,
161
+ description: topic.description,
162
+ attribution: topic.attribution,
163
+ questionCount: topic.questionCount,
164
+ recommended: topic.recommended,
165
+ forTeamMembers: topic.segments.find(p => p.segment == SegmentEnum.TeamMember && p.questionCount > 0),
166
+ forStakeholders: topic.segments.find(p => p.segment == SegmentEnum.Stakeholder && p.questionCount > 0),
167
+ forSupporters: topic.segments.find(p => p.segment == SegmentEnum.Management && p.questionCount > 0),
168
+ selected: this.selectedTopics.includes(topic.publicKey)
169
+ });
170
+ }))
171
+ });
172
+ }))
173
+ });
174
+ }
175
+ updateMetaData(output) {
176
+ this.warnings = [];
177
+ // only work with lower-level factors, as higher-level contain aggregated higher-level question counts
178
+ var scalesToInclude = this.topics.filter(p => p.parentKey != null && output.topicKeys.includes(p.publicKey));
179
+ var totalQuestions = this.topics.filter(p => p.parentKey != null).reduce((sum, current) => sum += current.questionCount, 0);
180
+ this.questionsTotal = scalesToInclude.reduce((sum, current) => sum += current.questionCount, 0);
181
+ this.questionsTeamMembers = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.TeamMember).reduce((sum, current) => sum += current.questionCount, 0);
182
+ this.questionsStakeholders = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Stakeholder).reduce((sum, current) => sum += current.questionCount, 0);
183
+ this.questionsSupporters = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Management).reduce((sum, current) => sum += current.questionCount, 0);
184
+ this.durationTeamMembers = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.TeamMember).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;
185
+ this.durationStakeholders = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Stakeholder).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;
186
+ this.durationSupporters = scalesToInclude.flatMap(p => p.segments).filter(p => p.segment == SegmentEnum.Management).reduce((sum, current) => sum += current.durationInSeconds, 0) / 60;
187
+ if (this.durationTeamMembers < 1) {
188
+ this.durationTeamMembers = 1;
189
+ }
190
+ if (this.durationStakeholders < 1) {
191
+ this.durationStakeholders = 1;
192
+ }
193
+ if (this.durationSupporters < 1) {
194
+ this.durationSupporters = 1;
195
+ }
196
+ if (this.questionsStakeholders == 0) {
197
+ this.warnings.push("The selection does not include topics for stakeholders.");
198
+ }
199
+ if (this.questionsSupporters == 0) {
200
+ this.warnings.push("The selection does not include topics for supporters / management.");
201
+ }
202
+ if (this.questionsTeamMembers == 0) {
203
+ this.warnings.push("The selection does not include topics for team members.");
204
+ }
205
+ if (this.questionnaireAccuracy < 0.25) {
206
+ this.warnings.push("The selection measures few topics, so its overall accuracy is low.");
207
+ }
208
+ this.questionnaireAccuracy = this.questionsTotal / totalQuestions;
209
+ }
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopicSelectorComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: TopicSelectorComponent, selector: "topic-selector", inputs: { topics: "topics", disabled: "disabled", topicKeys: "topicKeys", presets: "presets" }, providers: [
212
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => TopicSelectorComponent), }
213
+ ], ngImport: i0, template: "<form [formGroup]=\"form\">\n <div class=\"scaleselector-container\">\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-preset\">\n <mat-form-field class=\"questionnaire-preset-select\" appearance=\"fill\">\n <mat-label>Select predefined questionnaire</mat-label>\n <mat-select id=\"question-preset\" formControlName=\"preset\" (selectionChange)=\"selectPreset()\">\n <mat-option [value]=\"type.publicKey\" *ngFor=\"let type of presets\" class=\"select-option\">{{type.name}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"questionnaire-accuracy\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25, 'moderate' : questionnaireAccuracy < 0.5 && questionnaireAccuracy >= 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n <div class=\"questionnaire-segments\">\n <div class=\"questionnaire-segments-label\">Time investment</div>\n <div class=\"questionnaire-breakdowns\">\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Team members</div>\n <div class=\"progressbar progressbar-positive progressbar-teammember\">\n <div class=\"progressbar-bar\" *ngIf=\"questionsTeamMembers > 0\" [style.width]=\"((questionsTeamMembers / questionsTotal) * 100) + '%'\"></div>\n <div class=\"progressbar-score\">{{durationTeamMembers | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Stakeholders</div>\n <div class=\"progressbar progressbar-positive progressbar-stakeholder\">\n <div class=\"progressbar-bar\" *ngIf=\"questionsStakeholders > 0\" [style.width]=\"((questionsStakeholders / questionsTotal) * 100) + '%'\"></div>\n <div class=\"progressbar-score\">{{durationStakeholders | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Supporters</div>\n <div class=\"progressbar progressbar-positive progressbar-supporter\">\n <div class=\"progressbar-bar\" *ngIf=\"questionsSupporters > 0\" [style.width]=\"((questionsSupporters / questionsTotal) * 100) + '%'\"></div>\n <div class=\"progressbar-score\">{{durationSupporters | number:'1.0-0'}} min</div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls.preset.value == 'custom'\">\n <div class=\"topic-parent\" formArrayName=\"topicsArray\" *ngFor=\"let topicGroup of topicsArray.controls; let i = index\">\n <div [formGroupName]=\"i\">\n <div class=\"name\">\n <h4>{{topicGroup.value.name}}</h4>\n <div class=\"helpers\">(<a href=\"#\" (click)=\"selectAll(topicGroup, $event)\">all</a> | <a href=\"#\" (click)=\"selectNone(topicGroup, $event)\">none</a>)</div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(topicGroup.value.publicKey, $event)\"></span>\n </div>\n </div>\n\n <div formArrayName=\"subTopicsArray\" *ngFor=\"let subTopicGroup of getSubTopicsArray(topicGroup); let j = index\">\n <div [formGroupName]=\"j\" class=\"topic-child\">\n <mat-checkbox class=\"topic-child-check\" formControlName=\"selected\" (click)=\"selectTopic(subTopicGroup)\" [id]=\"'topic-' + subTopicGroup.value.name | slugify\"></mat-checkbox>\n <div class=\"topic-child-description\">\n {{subTopicGroup.value.name}} ({{subTopicGroup.value.questionCount}} questions)\n <div class=\"tags\">\n <div class=\"tags-tag recommended\" *ngIf=\"subTopicGroup.value.recommended\">Recommended</div>\n <div class=\"tags-tag teammember\" *ngIf=\"subTopicGroup.value.forTeamMembers\">For team members</div>\n <div class=\"tags-tag stakeholder\" *ngIf=\"subTopicGroup.value.forStakeholders\">For stakeholders</div>\n <div class=\"tags-tag supporter\" *ngIf=\"subTopicGroup.value.forSupporters\">For supporters</div>\n </div>\n </div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(subTopicGroup.value.publicKey, $event)\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</form>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.scaleselector-container .scaleselector-metadata{margin:30px 0;background:#f0f0f0;border-radius:20px;padding:30px;display:flex;column-gap:30px;flex-direction:column}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-preset .questionnaire-preset-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;margin-bottom:5px}.scaleselector-container .scaleselector-metadata .questionnaire-preset .questionnaire-preset-select{width:100%}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-segments-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;margin-bottom:5px}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns{display:flex;gap:15px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown{margin-bottom:15px;flex:auto}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .questionnaire-breakdown-label{font-size:14px;font-weight:700;font-family:StevieSans,sans-serif;margin-bottom:5px;margin-top:5px}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar{margin:0;width:100%}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar.progressbar-teammember .progressbar-bar{background:#00af77}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar.progressbar-stakeholder .progressbar-bar{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar.progressbar-supporter .progressbar-bar{background:#ef4f9f}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;margin-bottom:5px;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ef6f00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.moderate{background:#fff73f}.scaleselector-container .scaleselector-warnings{margin-top:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.scaleselector-container .topic-parent{margin-bottom:60px;padding-left:30px}.scaleselector-container .topic-parent .name{display:flex;align-items:baseline;gap:15px}.scaleselector-container .topic-parent .name h4{font-weight:700!important;font-family:StevieSans,sans-serif!important;margin:0}.scaleselector-container .topic-parent .name .helpers{font-size:12pt}.scaleselector-container .topic-parent .name .helpers a{font-family:StevieSans,sans-serif}.scaleselector-container .topic-parent .name .topic-child-moreinformation{margin-left:auto;cursor:pointer}.scaleselector-container .topic-parent .name .topic-child-moreinformation .icon{vertical-align:middle}.scaleselector-container .topic-parent .topic-child{display:flex;align-items:baseline;gap:15px;margin-bottom:15px;margin-top:15px;cursor:pointer}.scaleselector-container .topic-parent .topic-child .topic-child-description{font-family:StevieSans,sans-serif;font-size:16px;font-weight:500}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags{gap:5px;margin-top:5px;display:flex}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag{padding:4px 8px;border-radius:16px;font-weight:600;font-size:11px;white-space:pre}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.recommended{background:#2f2f2f;color:#fff}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.stakeholder{background:#fff73f}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.teammember{background:#1f3f8f;color:#fff}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.supporter,.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.management{background:#ef4f9f}.scaleselector-container .topic-parent .topic-child .topic-child-moreinformation{margin-left:auto}.scaleselector-container .topic-parent .topic-child .topic-child-moreinformation .icon{vertical-align:middle;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: i7.SlugifyPipe, name: "slugify" }] }); }
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopicSelectorComponent, decorators: [{
216
+ type: Component,
217
+ args: [{ selector: 'topic-selector', providers: [
218
+ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => TopicSelectorComponent), }
219
+ ], template: "<form [formGroup]=\"form\">\n <div class=\"scaleselector-container\">\n <div class=\"scaleselector-metadata\">\n <div class=\"questionnaire-preset\">\n <mat-form-field class=\"questionnaire-preset-select\" appearance=\"fill\">\n <mat-label>Select predefined questionnaire</mat-label>\n <mat-select id=\"question-preset\" formControlName=\"preset\" (selectionChange)=\"selectPreset()\">\n <mat-option [value]=\"type.publicKey\" *ngFor=\"let type of presets\" class=\"select-option\">{{type.name}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"questionnaire-accuracy\">\n <div class=\"questionnaire-breakdown-label\">Accuracy</div>\n <div class=\"questionnaire-breakdown-bar-holder\">\n <div class=\"questionnaire-accuracy-bar\" [ngClass]=\"{'low': questionnaireAccuracy < 0.25, 'moderate' : questionnaireAccuracy < 0.5 && questionnaireAccuracy >= 0.25}\" [ngStyle]=\"{'width': (questionnaireAccuracy * 100) + '%' }\">{{questionnaireAccuracy * 100 | number:'1.0-0'}}%</div>\n </div>\n </div>\n <div class=\"questionnaire-segments\">\n <div class=\"questionnaire-segments-label\">Time investment</div>\n <div class=\"questionnaire-breakdowns\">\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Team members</div>\n <div class=\"progressbar progressbar-positive progressbar-teammember\">\n <div class=\"progressbar-bar\" *ngIf=\"questionsTeamMembers > 0\" [style.width]=\"((questionsTeamMembers / questionsTotal) * 100) + '%'\"></div>\n <div class=\"progressbar-score\">{{durationTeamMembers | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Stakeholders</div>\n <div class=\"progressbar progressbar-positive progressbar-stakeholder\">\n <div class=\"progressbar-bar\" *ngIf=\"questionsStakeholders > 0\" [style.width]=\"((questionsStakeholders / questionsTotal) * 100) + '%'\"></div>\n <div class=\"progressbar-score\">{{durationStakeholders | number:'1.0-0'}} min</div>\n </div>\n </div>\n <div class=\"questionnaire-breakdown\">\n <div class=\"questionnaire-breakdown-label\">Supporters</div>\n <div class=\"progressbar progressbar-positive progressbar-supporter\">\n <div class=\"progressbar-bar\" *ngIf=\"questionsSupporters > 0\" [style.width]=\"((questionsSupporters / questionsTotal) * 100) + '%'\"></div>\n <div class=\"progressbar-score\">{{durationSupporters | number:'1.0-0'}} min</div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"scaleselector-warnings\" *ngIf=\"warnings.length > 0\">\n <div class=\"scaleselector-warnings-warning\" *ngFor=\"let warning of warnings\">\n <span class=\"icon ph-info-fill\"></span>{{warning}}\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls.preset.value == 'custom'\">\n <div class=\"topic-parent\" formArrayName=\"topicsArray\" *ngFor=\"let topicGroup of topicsArray.controls; let i = index\">\n <div [formGroupName]=\"i\">\n <div class=\"name\">\n <h4>{{topicGroup.value.name}}</h4>\n <div class=\"helpers\">(<a href=\"#\" (click)=\"selectAll(topicGroup, $event)\">all</a> | <a href=\"#\" (click)=\"selectNone(topicGroup, $event)\">none</a>)</div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(topicGroup.value.publicKey, $event)\"></span>\n </div>\n </div>\n\n <div formArrayName=\"subTopicsArray\" *ngFor=\"let subTopicGroup of getSubTopicsArray(topicGroup); let j = index\">\n <div [formGroupName]=\"j\" class=\"topic-child\">\n <mat-checkbox class=\"topic-child-check\" formControlName=\"selected\" (click)=\"selectTopic(subTopicGroup)\" [id]=\"'topic-' + subTopicGroup.value.name | slugify\"></mat-checkbox>\n <div class=\"topic-child-description\">\n {{subTopicGroup.value.name}} ({{subTopicGroup.value.questionCount}} questions)\n <div class=\"tags\">\n <div class=\"tags-tag recommended\" *ngIf=\"subTopicGroup.value.recommended\">Recommended</div>\n <div class=\"tags-tag teammember\" *ngIf=\"subTopicGroup.value.forTeamMembers\">For team members</div>\n <div class=\"tags-tag stakeholder\" *ngIf=\"subTopicGroup.value.forStakeholders\">For stakeholders</div>\n <div class=\"tags-tag supporter\" *ngIf=\"subTopicGroup.value.forSupporters\">For supporters</div>\n </div>\n </div>\n <div class=\"topic-child-moreinformation\">\n <span class=\"icon ph-info-bold\" (click)=\"openFactorInformation(subTopicGroup.value.publicKey, $event)\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</form>\n", styles: [".smallTextUppercase{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;text-transform:uppercase;line-height:100%}.bigletteredbutton{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-decoration:none;background:#ffffff1a;margin-bottom:10px;display:flex;align-content:center;border-radius:20px;padding:15px;font-size:24px;border:2px solid #1F3F8F;border-bottom:6px solid #1F3F8F;color:#fff;align-items:center;cursor:pointer}.bigletteredbutton .free{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff73f;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton .plan{font-family:StevieSansThin,sans-serif;font-style:normal;font-weight:400;font-size:15px;line-height:140%;background:#fff;color:#2f2f2f;padding:3px 5px;margin-left:20px;border-radius:10px}.bigletteredbutton:hover,.bigletteredbutton.selected{border:2px solid #fff73f;border-bottom:6px solid #fff73f}.bigletteredbutton .button-letter{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f;margin-right:20px}.bigletteredbutton .button-letter .ph{color:#1f3f8f}.bigletteredbutton .button-letter:hover{background:#1f3f8f;color:#fff73f}.bigletteredbutton .button-letter:hover .ph{color:#fff73f}.roundicon-yellow{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;background:#fff73f;color:#1f3f8f}.roundicon-yellow .ph{color:#1f3f8f}.roundicon-yellow:hover{background:#1f3f8f;color:#fff73f}.roundicon-yellow:hover .ph{color:#fff73f}.roundicon{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;border-radius:30px;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center}.roundicon-large{-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;font-family:StevieSans,sans-serif;height:52px;width:52px;min-width:52px;min-height:52px;font-weight:900;font-size:30px;line-height:100%;display:flex;align-items:center;justify-content:center;border-radius:60px;height:120px;width:120px}.scaleselector-container .scaleselector-metadata{margin:30px 0;background:#f0f0f0;border-radius:20px;padding:30px;display:flex;column-gap:30px;flex-direction:column}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-preset .questionnaire-preset-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;margin-bottom:5px}.scaleselector-container .scaleselector-metadata .questionnaire-preset .questionnaire-preset-select{width:100%}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-segments-label{font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;margin-bottom:5px}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns{display:flex;gap:15px}@media only screen and (max-width: 992px){.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns{display:block}}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown{margin-bottom:15px;flex:auto}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .questionnaire-breakdown-label{font-size:14px;font-weight:700;font-family:StevieSans,sans-serif;margin-bottom:5px;margin-top:5px}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .questionnaire-breakdown-label .icon{color:#ef6f00;font-size:18px;vertical-align:middle;cursor:pointer}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar{margin:0;width:100%}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar.progressbar-teammember .progressbar-bar{background:#00af77}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar.progressbar-stakeholder .progressbar-bar{background:#fff73f}.scaleselector-container .scaleselector-metadata .questionnaire-segments .questionnaire-breakdowns .questionnaire-breakdown .progressbar.progressbar-supporter .progressbar-bar{background:#ef4f9f}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy{margin-bottom:15px}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-label{font-size:12px;font-weight:900;text-transform:uppercase;margin-bottom:5px;font-family:StevieSans,sans-serif}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder{margin-bottom:15px;background:#2f2f2f;height:20px;border-radius:15px;overflow:hidden}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar{flex:auto;min-width:50px;font-size:12px;font-weight:900;text-transform:uppercase;font-family:StevieSans,sans-serif;background:#00af77;height:100%;align-content:center;text-align:center}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.low{background:#ef6f00}.scaleselector-container .scaleselector-metadata .questionnaire-accuracy .questionnaire-breakdown-bar-holder .questionnaire-accuracy-bar.moderate{background:#fff73f}.scaleselector-container .scaleselector-warnings{margin-top:15px}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning{display:flex;align-items:center;font-size:12pt}.scaleselector-container .scaleselector-warnings .scaleselector-warnings-warning .icon{color:#1f3f8f;font-size:16px;cursor:pointer;margin-right:10px}.scaleselector-container .topic-parent{margin-bottom:60px;padding-left:30px}.scaleselector-container .topic-parent .name{display:flex;align-items:baseline;gap:15px}.scaleselector-container .topic-parent .name h4{font-weight:700!important;font-family:StevieSans,sans-serif!important;margin:0}.scaleselector-container .topic-parent .name .helpers{font-size:12pt}.scaleselector-container .topic-parent .name .helpers a{font-family:StevieSans,sans-serif}.scaleselector-container .topic-parent .name .topic-child-moreinformation{margin-left:auto;cursor:pointer}.scaleselector-container .topic-parent .name .topic-child-moreinformation .icon{vertical-align:middle}.scaleselector-container .topic-parent .topic-child{display:flex;align-items:baseline;gap:15px;margin-bottom:15px;margin-top:15px;cursor:pointer}.scaleselector-container .topic-parent .topic-child .topic-child-description{font-family:StevieSans,sans-serif;font-size:16px;font-weight:500}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags{gap:5px;margin-top:5px;display:flex}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag{padding:4px 8px;border-radius:16px;font-weight:600;font-size:11px;white-space:pre}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.recommended{background:#2f2f2f;color:#fff}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.stakeholder{background:#fff73f}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.teammember{background:#1f3f8f;color:#fff}.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.supporter,.scaleselector-container .topic-parent .topic-child .topic-child-description .tags .tags-tag.management{background:#ef4f9f}.scaleselector-container .topic-parent .topic-child .topic-child-moreinformation{margin-left:auto}.scaleselector-container .topic-parent .topic-child .topic-child-moreinformation .icon{vertical-align:middle;cursor:pointer}\n"] }]
220
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.MatDialog }], propDecorators: { topics: [{
221
+ type: Input
222
+ }], disabled: [{
223
+ type: Input
224
+ }], topicKeys: [{
225
+ type: Input
226
+ }], presets: [{
227
+ type: Input
228
+ }] } });
229
+ export class TopicSelectorDto {
230
+ constructor(presetKey, topicKeys) {
231
+ this.presetKey = presetKey;
232
+ this.topicKeys = topicKeys ?? [];
233
+ }
234
+ }
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2NvbXBvbmVudHMvdG9waWNzZWxlY3Rvci90b3BpYy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvY29tcG9uZW50cy90b3BpY3NlbGVjdG9yL3RvcGljLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXlDLFNBQVMsRUFBZSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3SCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUE0QyxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7O0FBVTdILE1BQU0sT0FBTyxzQkFBc0I7SUFpQmhDLFlBQW9CLFdBQXdCLEVBQVUsTUFBaUI7UUFBbkQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZmhFLGFBQVEsR0FBYSxFQUFFLENBQUE7UUFDdEIsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDL0IsMEJBQXFCLEdBQVcsQ0FBQyxDQUFDO1FBQ2xDLHlCQUFvQixHQUFXLENBQUMsQ0FBQztRQUNqQywwQkFBcUIsR0FBVyxDQUFDLENBQUM7UUFDbEMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO1FBQ2hDLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsdUJBQWtCLEdBQVcsQ0FBQyxDQUFDO1FBQy9CLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBRXpCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQTJCLEVBQUUsQ0FBQztRQThDOUMsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBNUN6QixDQUFDO0lBRUQsUUFBUTtRQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25DLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQXFCO1FBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBRXJCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUN4QyxHQUFHLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDM0MsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDNUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUM7YUFDdEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDOUIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU87UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQU87UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUtNLFlBQVk7UUFDaEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUUvQixJQUFJLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzVCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJHLElBQUksR0FBRyxHQUFHLElBQUksZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLFFBQVE7UUFDWixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNqRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDcEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFFBQWdCLEVBQUUsTUFBYTtRQUN6RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFFdkIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDM0MsWUFBWSxDQUFDLFVBQVUsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxZQUFZLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUMxQixZQUFZLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLFlBQVksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQUksV0FBVztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFjLENBQUM7SUFDcEQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFVBQWU7UUFDckMsT0FBUSxVQUFVLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFlLENBQUMsUUFBUSxDQUFDO0lBQ25FLENBQUM7SUFFTSxXQUFXLENBQUMsYUFBa0I7UUFDbEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sU0FBUyxDQUFDLGFBQWtCLEVBQUUsTUFBYTtRQUMvQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBYyxDQUFDO1FBQ25FLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxVQUFVLENBQUMsYUFBa0IsRUFBRSxNQUFhO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN2QixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFjLENBQUM7UUFDbkUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQXFCO1FBQzNDLElBQUksSUFBSSxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLENBQUM7UUFDRCxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUVPLFVBQVU7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO29CQUMzQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7b0JBQzFCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDaEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUNsQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7b0JBQ3ZELFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDLENBQUM7b0JBQ3RELGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztvQkFDcEcsZUFBZSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO29CQUN0RyxhQUFhLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7b0JBQ25HLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3RLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7NEJBQzNCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUzs0QkFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJOzRCQUNoQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7NEJBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVzs0QkFDOUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhOzRCQUNsQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7NEJBQzlCLGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQzs0QkFDcEcsZUFBZSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDOzRCQUN0RyxhQUFhLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7NEJBQ25HLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO3lCQUN6RCxDQUFDLENBQUM7b0JBQ04sQ0FBQyxDQUFDLENBQUM7aUJBQ0wsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQXdCO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHNHQUFzRztRQUN0RyxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdHLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1SCxJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoTCxJQUFJLENBQUMscUJBQXFCLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvSyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4TCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxTCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV2TCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFBQyxDQUFDO1FBQ25FLElBQUksSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUFDLENBQUM7UUFDckUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUVqRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDckUsQ0FBQzsrR0F0TlMsc0JBQXNCO21HQUF0QixzQkFBc0IseUlBSnJCO1lBQ1IsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEdBQUc7U0FDckcsMEJDWkosK2lMQW1GQTs7NEZEckVhLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRyxnQkFBZ0IsYUFHZjt3QkFDUixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLEdBQUc7cUJBQ3JHO3dHQWNRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLOztBQTBNVCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzFCLFlBQVksU0FBaUIsRUFBRSxTQUFtQjtRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUlIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZhY3RvclN0cnVjdHVyZUR0bywgUXVlc3Rpb25uYWlyZVR5cGVEdG8sIFNlZ21lbnRFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21vZGVsU3RydWN0dXJlRHRvJztcbmltcG9ydCB7IERpYWxvZ0ZhY3RvckluZm9ybWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9kaWFsb2ctZmFjdG9yaW5mb3JtYXRpb24vZGlhbG9nLWZhY3RvcmluZm9ybWF0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICd0b3BpYy1zZWxlY3RvcicsXG4gICB0ZW1wbGF0ZVVybDogJy4vdG9waWMtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgc3R5bGVVcmxzOiBbJy4vdG9waWMtc2VsZWN0b3IuY29tcG9uZW50Lmxlc3MnXSxcbiAgIHByb3ZpZGVyczogW1xuICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgbXVsdGk6IHRydWUsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvcGljU2VsZWN0b3JDb21wb25lbnQpLCB9XG4gICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvcGljU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICAgcHVibGljIHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdXG4gICBwcml2YXRlIHNlbGVjdGVkVG9waWNzOiBzdHJpbmdbXSA9IFtdO1xuICAgcHVibGljIHF1ZXN0aW9ubmFpcmVBY2N1cmFjeTogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBxdWVzdGlvbnNUZWFtTWVtYmVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBxdWVzdGlvbnNTdGFrZWhvbGRlcnM6IG51bWJlciA9IDA7XG4gICBwdWJsaWMgcXVlc3Rpb25zU3VwcG9ydGVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBkdXJhdGlvblRlYW1NZW1iZXJzOiBudW1iZXIgPSAwO1xuICAgcHVibGljIGR1cmF0aW9uU3Rha2Vob2xkZXJzOiBudW1iZXIgPSAwO1xuICAgcHVibGljIGR1cmF0aW9uU3VwcG9ydGVyczogbnVtYmVyID0gMDtcbiAgIHB1YmxpYyBxdWVzdGlvbnNUb3RhbDogbnVtYmVyID0gMDtcbiAgIEBJbnB1dCgpIHRvcGljczogRmFjdG9yU3RydWN0dXJlRHRvW107XG4gICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgQElucHV0KCkgdG9waWNLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICAgQElucHV0KCkgcHJlc2V0czogUXVlc3Rpb25uYWlyZVR5cGVEdG9bXSA9IFtdO1xuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge1xuICAgfVxuXG4gICBuZ09uSW5pdCgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgICAgIHRoaXMub25DaGFuZ2Uob3V0cHV0KTtcbiAgICAgICAgIHRoaXMudXBkYXRlTWV0YURhdGEob3V0cHV0KTtcbiAgICAgIH0pO1xuICAgfVxuXG4gICB3cml0ZVZhbHVlKGR0bzogVG9waWNTZWxlY3RvckR0byk6IHZvaWQge1xuICAgICAgaWYgKCFkdG8pIHsgcmV0dXJuOyB9XG5cbiAgICAgIHZhciBxdWVzdGlvbm5haXJlID0gdGhpcy5wcmVzZXRzLmZpbmQocCA9PiBwLnB1YmxpY0tleSA9PSBkdG8ucHJlc2V0S2V5KTtcblxuICAgICAgaWYgKCFxdWVzdGlvbm5haXJlKSB7XG4gICAgICAgICBxdWVzdGlvbm5haXJlID0gdGhpcy5wcmVzZXRzWzBdO1xuICAgICAgICAgZHRvLnRvcGljS2V5cyA9IHF1ZXN0aW9ubmFpcmUuc2NhbGVLZXlzO1xuICAgICAgICAgZHRvLnByZXNldEtleSA9IHF1ZXN0aW9ubmFpcmUucHVibGljS2V5O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkVG9waWNzID0gZHRvLnRvcGljS2V5cyA/PyBbXTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5wcmVzZXQuc2V0VmFsdWUoZHRvLnByZXNldEtleSk7XG5cbiAgICAgIHRoaXMuZ2V0QWxsRm9ybUdyb3Vwcyh0aGlzLmZvcm0pXG4gICAgICAgICAuZmlsdGVyKHAgPT4gcC5nZXQoJ3NlbGVjdGVkJykgIT0gbnVsbClcbiAgICAgICAgIC5mb3JFYWNoKHAgPT4gcC5nZXQoJ3NlbGVjdGVkJykuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFRvcGljcy5pbmNsdWRlcyhwLmdldCgncHVibGljS2V5JykudmFsdWUpKSk7XG4gICAgICB0aGlzLnVwZGF0ZU1ldGFEYXRhKGR0byk7XG4gICB9XG5cbiAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgfVxuXG4gICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICB9XG5cbiAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgIH1cblxuICAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcbiAgIG9uVG91Y2g6IGFueSA9ICgpID0+IHsgfTtcblxuICAgcHVibGljIHNlbGVjdFByZXNldCgpIHtcbiAgICAgIHZhciBxdWVzdGlvbm5haXJlID0gdGhpcy5wcmVzZXRzLmZpbmQocCA9PiBwLnB1YmxpY0tleSA9PSB0aGlzLmZvcm0uY29udHJvbHMucHJlc2V0LnZhbHVlKTtcbiAgICAgIGlmICghcXVlc3Rpb25uYWlyZSkgeyByZXR1cm47IH1cblxuICAgICAgdmFyIHRvcGljS2V5cyA9IHF1ZXN0aW9ubmFpcmUuc2NhbGVLZXlzO1xuICAgICAgaWYgKHRvcGljS2V5cy5sZW5ndGggPT0gMCkgeyB0b3BpY0tleXMgPSB0aGlzLnByZXNldHNbMF0uc2NhbGVLZXlzOyB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRUb3BpY3MgPSB0b3BpY0tleXMgPz8gW107XG4gICAgICB0aGlzLmdldEFsbEZvcm1Hcm91cHModGhpcy5mb3JtKVxuICAgICAgICAgLmZpbHRlcihwID0+IHAuZ2V0KCdzZWxlY3RlZCcpICE9IG51bGwpXG4gICAgICAgICAuZm9yRWFjaChwID0+IHAuZ2V0KCdzZWxlY3RlZCcpLnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRUb3BpY3MuaW5jbHVkZXMocC5nZXQoJ3B1YmxpY0tleScpLnZhbHVlKSkpO1xuXG4gICAgICB2YXIgZHRvID0gbmV3IFRvcGljU2VsZWN0b3JEdG8ocXVlc3Rpb25uYWlyZS5wdWJsaWNLZXksIHRvcGljS2V5cyk7XG4gICAgICB0aGlzLnVwZGF0ZU1ldGFEYXRhKGR0byk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKGR0byk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRWYWx1ZSgpOiBUb3BpY1NlbGVjdG9yRHRvIHtcbiAgICAgIHZhciBzZWxlY3RlZFRvcGljcyA9IHRoaXMuZ2V0QWxsRm9ybUdyb3Vwcyh0aGlzLmZvcm0pXG4gICAgICAgICAuZmlsdGVyKHAgPT4gcC52YWxpZCAmJiBwLmdldCgnc2VsZWN0ZWQnKSAmJiBwLmdldCgnc2VsZWN0ZWQnKS52YWx1ZSlcbiAgICAgICAgIC5tYXAocCA9PiBwLmdldCgncHVibGljS2V5JykudmFsdWUpO1xuXG4gICAgICB2YXIgcHJlc2V0S2V5ID0gdGhpcy5mb3JtLmNvbnRyb2xzLnByZXNldC52YWx1ZTtcbiAgICAgIHJldHVybiBuZXcgVG9waWNTZWxlY3RvckR0byhwcmVzZXRLZXksIHNlbGVjdGVkVG9waWNzKTtcbiAgIH1cblxuICAgcHVibGljIG9wZW5GYWN0b3JJbmZvcm1hdGlvbih0b3BpY0tleTogc3RyaW5nLCAkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICB2YXIgdG9waWMgPSB0aGlzLnRvcGljcy5maW5kKHAgPT4gcC5wdWJsaWNLZXkgPT0gdG9waWNLZXkpO1xuICAgICAgaWYgKCF0b3BpYykgeyByZXR1cm47IH1cblxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICAgIGRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID0gWydkaWFsb2cnLCAnZmFjdG9yJ107XG4gICAgICBkaWFsb2dDb25maWcuZGF0YSA9IHRvcGljO1xuICAgICAgZGlhbG9nQ29uZmlnLmVudGVyQW5pbWF0aW9uRHVyYXRpb24gPSAwO1xuICAgICAgZGlhbG9nQ29uZmlnLmV4aXRBbmltYXRpb25EdXJhdGlvbiA9IDA7XG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKERpYWxvZ0ZhY3RvckluZm9ybWF0aW9uQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgfVxuXG4gICBnZXQgdG9waWNzQXJyYXkoKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndG9waWNzQXJyYXknKSBhcyBGb3JtQXJyYXk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRTdWJUb3BpY3NBcnJheSh0b3BpY0dyb3VwOiBhbnkpIHtcbiAgICAgIHJldHVybiAodG9waWNHcm91cC5nZXQoJ3N1YlRvcGljc0FycmF5JykgYXMgRm9ybUFycmF5KS5jb250cm9scztcbiAgIH1cblxuICAgcHVibGljIHNlbGVjdFRvcGljKHN1YlRvcGljR3JvdXA6IGFueSkge1xuICAgICAgdmFyIG91dHB1dCA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICAgIHRoaXMub25DaGFuZ2Uob3V0cHV0KTtcbiAgICAgIHRoaXMudXBkYXRlTWV0YURhdGEob3V0cHV0KTtcbiAgIH1cblxuICAgcHVibGljIHNlbGVjdEFsbChzdWJUb3BpY0dyb3VwOiBhbnksICRldmVudDogRXZlbnQpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3Qgc3ViVG9waWNzID0gc3ViVG9waWNHcm91cC5nZXQoJ3N1YlRvcGljc0FycmF5JykgYXMgRm9ybUFycmF5O1xuICAgICAgc3ViVG9waWNzLmNvbnRyb2xzLmZvckVhY2gocCA9PiBwLmdldCgnc2VsZWN0ZWQnKS5zZXRWYWx1ZSh0cnVlKSk7XG4gICAgICB2YXIgZHRvID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZShkdG8pO1xuICAgICAgdGhpcy51cGRhdGVNZXRhRGF0YShkdG8pO1xuICAgfVxuXG4gICBwdWJsaWMgc2VsZWN0Tm9uZShzdWJUb3BpY0dyb3VwOiBhbnksICRldmVudDogRXZlbnQpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCBzdWJUb3BpY3MgPSBzdWJUb3BpY0dyb3VwLmdldCgnc3ViVG9waWNzQXJyYXknKSBhcyBGb3JtQXJyYXk7XG4gICAgICBzdWJUb3BpY3MuY29udHJvbHMuZm9yRWFjaChwID0+IHAuZ2V0KCdzZWxlY3RlZCcpLnNldFZhbHVlKGZhbHNlKSk7XG4gICAgICB2YXIgZHRvID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZShkdG8pO1xuICAgICAgdGhpcy51cGRhdGVNZXRhRGF0YShkdG8pO1xuICAgfVxuXG4gICBwcml2YXRlIGdldEFsbEZvcm1Hcm91cHMoZm9ybTogQWJzdHJhY3RDb250cm9sKTogRm9ybUdyb3VwW10ge1xuICAgICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgIHJldHVybiBbZm9ybSwgLi4uT2JqZWN0LnZhbHVlcyhmb3JtLmNvbnRyb2xzKS5mbGF0TWFwKGNvbnRyb2wgPT4gdGhpcy5nZXRBbGxGb3JtR3JvdXBzKGNvbnRyb2wpKV07XG4gICAgICB9XG4gICAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICAgcmV0dXJuIGZvcm0uY29udHJvbHMuZmxhdE1hcChjb250cm9sID0+IHRoaXMuZ2V0QWxsRm9ybUdyb3Vwcyhjb250cm9sKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW107XG4gICB9XG5cbiAgIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgcHJlc2V0OiBbbnVsbF0sXG4gICAgICAgICB0b3BpY3NBcnJheTogdGhpcy5mb3JtQnVpbGRlci5hcnJheSh0aGlzLnRvcGljcy5maWx0ZXIocCA9PiBwLnBhcmVudEtleSA9PSBudWxsKS5tYXAodG9waWMgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgICAgcHVibGljS2V5OiB0b3BpYy5wdWJsaWNLZXksXG4gICAgICAgICAgICAgICBuYW1lOiB0b3BpYy5uYW1lLFxuICAgICAgICAgICAgICAgcXVlc3Rpb25Db3VudDogdG9waWMucXVlc3Rpb25Db3VudCxcbiAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0b3BpYy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgIGF0dHJpYnV0aW9uOiB0b3BpYy5hdHRyaWJ1dGlvbixcbiAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkVG9waWNzLmluY2x1ZGVzKHRvcGljLnB1YmxpY0tleSksXG4gICAgICAgICAgICAgICByZWNvbW1lbmRlZDogdG9waWMucmVjb21tZW5kZWQsXG4gICAgICAgICAgICAgICBzZWdtZW50czogdG9waWMuc2VnbWVudHMubWFwKHAgPT4geyBuYW1lOiBwLnNlZ21lbnQgfSksXG4gICAgICAgICAgICAgICBmb3JUZWFtTWVtYmVyczogdG9waWMuc2VnbWVudHMuZmluZChwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5UZWFtTWVtYmVyICYmIHAucXVlc3Rpb25Db3VudCA+IDApLFxuICAgICAgICAgICAgICAgZm9yU3Rha2Vob2xkZXJzOiB0b3BpYy5zZWdtZW50cy5maW5kKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlN0YWtlaG9sZGVyICYmIHAucXVlc3Rpb25Db3VudCA+IDApLFxuICAgICAgICAgICAgICAgZm9yU3VwcG9ydGVyczogdG9waWMuc2VnbWVudHMuZmluZChwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5NYW5hZ2VtZW50ICYmIHAucXVlc3Rpb25Db3VudCA+IDApLFxuICAgICAgICAgICAgICAgc3ViVG9waWNzQXJyYXk6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkodGhpcy50b3BpY3MuZmlsdGVyKHAgPT4gcC5wYXJlbnRLZXkgPT0gdG9waWMucHVibGljS2V5KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpIH0pLm1hcCh0b3BpYyA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICAgICAgICAgICBwdWJsaWNLZXk6IHRvcGljLnB1YmxpY0tleSxcbiAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRvcGljLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdG9waWMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGlvbjogdG9waWMuYXR0cmlidXRpb24sXG4gICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbkNvdW50OiB0b3BpYy5xdWVzdGlvbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgcmVjb21tZW5kZWQ6IHRvcGljLnJlY29tbWVuZGVkLFxuICAgICAgICAgICAgICAgICAgICAgZm9yVGVhbU1lbWJlcnM6IHRvcGljLnNlZ21lbnRzLmZpbmQocCA9PiBwLnNlZ21lbnQgPT0gU2VnbWVudEVudW0uVGVhbU1lbWJlciAmJiBwLnF1ZXN0aW9uQ291bnQgPiAwKSxcbiAgICAgICAgICAgICAgICAgICAgIGZvclN0YWtlaG9sZGVyczogdG9waWMuc2VnbWVudHMuZmluZChwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5TdGFrZWhvbGRlciAmJiBwLnF1ZXN0aW9uQ291bnQgPiAwKSxcbiAgICAgICAgICAgICAgICAgICAgIGZvclN1cHBvcnRlcnM6IHRvcGljLnNlZ21lbnRzLmZpbmQocCA9PiBwLnNlZ21lbnQgPT0gU2VnbWVudEVudW0uTWFuYWdlbWVudCAmJiBwLnF1ZXN0aW9uQ291bnQgPiAwKSxcbiAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkVG9waWNzLmluY2x1ZGVzKHRvcGljLnB1YmxpY0tleSlcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgIH0pKVxuICAgICAgfSk7XG4gICB9XG5cbiAgIHByaXZhdGUgdXBkYXRlTWV0YURhdGEob3V0cHV0OiBUb3BpY1NlbGVjdG9yRHRvKSB7XG4gICAgICB0aGlzLndhcm5pbmdzID0gW107XG5cbiAgICAgIC8vIG9ubHkgd29yayB3aXRoIGxvd2VyLWxldmVsIGZhY3RvcnMsIGFzIGhpZ2hlci1sZXZlbCBjb250YWluIGFnZ3JlZ2F0ZWQgaGlnaGVyLWxldmVsIHF1ZXN0aW9uIGNvdW50c1xuICAgICAgdmFyIHNjYWxlc1RvSW5jbHVkZSA9IHRoaXMudG9waWNzLmZpbHRlcihwID0+IHAucGFyZW50S2V5ICE9IG51bGwgJiYgb3V0cHV0LnRvcGljS2V5cy5pbmNsdWRlcyhwLnB1YmxpY0tleSkpO1xuICAgICAgdmFyIHRvdGFsUXVlc3Rpb25zID0gdGhpcy50b3BpY3MuZmlsdGVyKHAgPT4gcC5wYXJlbnRLZXkgIT0gbnVsbCkucmVkdWNlKChzdW0sIGN1cnJlbnQpID0+IHN1bSArPSBjdXJyZW50LnF1ZXN0aW9uQ291bnQsIDApO1xuXG4gICAgICB0aGlzLnF1ZXN0aW9uc1RvdGFsID0gc2NhbGVzVG9JbmNsdWRlLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5xdWVzdGlvbkNvdW50LCAwKTtcbiAgICAgIHRoaXMucXVlc3Rpb25zVGVhbU1lbWJlcnMgPSBzY2FsZXNUb0luY2x1ZGUuZmxhdE1hcChwID0+IHAuc2VnbWVudHMpLmZpbHRlcihwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5UZWFtTWVtYmVyKS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQucXVlc3Rpb25Db3VudCwgMCk7XG4gICAgICB0aGlzLnF1ZXN0aW9uc1N0YWtlaG9sZGVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlN0YWtlaG9sZGVyKS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQucXVlc3Rpb25Db3VudCwgMCk7XG4gICAgICB0aGlzLnF1ZXN0aW9uc1N1cHBvcnRlcnMgPSBzY2FsZXNUb0luY2x1ZGUuZmxhdE1hcChwID0+IHAuc2VnbWVudHMpLmZpbHRlcihwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5NYW5hZ2VtZW50KS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQucXVlc3Rpb25Db3VudCwgMCk7XG5cbiAgICAgIHRoaXMuZHVyYXRpb25UZWFtTWVtYmVycyA9IHNjYWxlc1RvSW5jbHVkZS5mbGF0TWFwKHAgPT4gcC5zZWdtZW50cykuZmlsdGVyKHAgPT4gcC5zZWdtZW50ID09IFNlZ21lbnRFbnVtLlRlYW1NZW1iZXIpLnJlZHVjZSgoc3VtLCBjdXJyZW50KSA9PiBzdW0gKz0gY3VycmVudC5kdXJhdGlvbkluU2Vjb25kcywgMCkgLyA2MDtcbiAgICAgIHRoaXMuZHVyYXRpb25TdGFrZWhvbGRlcnMgPSBzY2FsZXNUb0luY2x1ZGUuZmxhdE1hcChwID0+IHAuc2VnbWVudHMpLmZpbHRlcihwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5TdGFrZWhvbGRlcikucmVkdWNlKChzdW0sIGN1cnJlbnQpID0+IHN1bSArPSBjdXJyZW50LmR1cmF0aW9uSW5TZWNvbmRzLCAwKSAvIDYwO1xuICAgICAgdGhpcy5kdXJhdGlvblN1cHBvcnRlcnMgPSBzY2FsZXNUb0luY2x1ZGUuZmxhdE1hcChwID0+IHAuc2VnbWVudHMpLmZpbHRlcihwID0+IHAuc2VnbWVudCA9PSBTZWdtZW50RW51bS5NYW5hZ2VtZW50KS5yZWR1Y2UoKHN1bSwgY3VycmVudCkgPT4gc3VtICs9IGN1cnJlbnQuZHVyYXRpb25JblNlY29uZHMsIDApIC8gNjA7XG5cbiAgICAgIGlmICh0aGlzLmR1cmF0aW9uVGVhbU1lbWJlcnMgPCAxKSB7IHRoaXMuZHVyYXRpb25UZWFtTWVtYmVycyA9IDE7IH1cbiAgICAgIGlmICh0aGlzLmR1cmF0aW9uU3Rha2Vob2xkZXJzIDwgMSkgeyB0aGlzLmR1cmF0aW9uU3Rha2Vob2xkZXJzID0gMTsgfVxuICAgICAgaWYgKHRoaXMuZHVyYXRpb25TdXBwb3J0ZXJzIDwgMSkgeyB0aGlzLmR1cmF0aW9uU3VwcG9ydGVycyA9IDE7IH1cblxuICAgICAgaWYgKHRoaXMucXVlc3Rpb25zU3Rha2Vob2xkZXJzID09IDApIHtcbiAgICAgICAgIHRoaXMud2FybmluZ3MucHVzaChcIlRoZSBzZWxlY3Rpb24gZG9lcyBub3QgaW5jbHVkZSB0b3BpY3MgZm9yIHN0YWtlaG9sZGVycy5cIik7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5xdWVzdGlvbnNTdXBwb3J0ZXJzID09IDApIHtcbiAgICAgICAgIHRoaXMud2FybmluZ3MucHVzaChcIlRoZSBzZWxlY3Rpb24gZG9lcyBub3QgaW5jbHVkZSB0b3BpY3MgZm9yIHN1cHBvcnRlcnMgLyBtYW5hZ2VtZW50LlwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uc1RlYW1NZW1iZXJzID09IDApIHtcbiAgICAgICAgIHRoaXMud2FybmluZ3MucHVzaChcIlRoZSBzZWxlY3Rpb24gZG9lcyBub3QgaW5jbHVkZSB0b3BpY3MgZm9yIHRlYW0gbWVtYmVycy5cIik7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5xdWVzdGlvbm5haXJlQWNjdXJhY3kgPCAwLjI1KSB7XG4gICAgICAgICB0aGlzLndhcm5pbmdzLnB1c2goXCJUaGUgc2VsZWN0aW9uIG1lYXN1cmVzIGZldyB0b3BpY3MsIHNvIGl0cyBvdmVyYWxsIGFjY3VyYWN5IGlzIGxvdy5cIik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucXVlc3Rpb25uYWlyZUFjY3VyYWN5ID0gdGhpcy5xdWVzdGlvbnNUb3RhbCAvIHRvdGFsUXVlc3Rpb25zO1xuICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVG9waWNTZWxlY3RvckR0byB7XG4gICBjb25zdHJ1Y3RvcihwcmVzZXRLZXk6IHN0cmluZywgdG9waWNLZXlzOiBzdHJpbmdbXSkge1xuICAgICAgdGhpcy5wcmVzZXRLZXkgPSBwcmVzZXRLZXk7XG4gICAgICB0aGlzLnRvcGljS2V5cyA9IHRvcGljS2V5cyA/PyBbXTtcbiAgIH1cblxuICAgcHJlc2V0S2V5OiBzdHJpbmc7XG4gICB0b3BpY0tleXM6IHN0cmluZ1tdO1xufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICA8ZGl2IGNsYXNzPVwic2NhbGVzZWxlY3Rvci1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLW1ldGFkYXRhXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1wcmVzZXRcIj5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtcHJlc2V0LXNlbGVjdFwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlbGVjdCBwcmVkZWZpbmVkIHF1ZXN0aW9ubmFpcmU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGlkPVwicXVlc3Rpb24tcHJlc2V0XCIgZm9ybUNvbnRyb2xOYW1lPVwicHJlc2V0XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3RQcmVzZXQoKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInR5cGUucHVibGljS2V5XCIgKm5nRm9yPVwibGV0IHR5cGUgb2YgcHJlc2V0c1wiIGNsYXNzPVwic2VsZWN0LW9wdGlvblwiPnt7dHlwZS5uYW1lfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgPC9kaXY+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1hY2N1cmFjeVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duLWxhYmVsXCI+QWNjdXJhY3k8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1iYXItaG9sZGVyXCI+XG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1hY2N1cmFjeS1iYXJcIiBbbmdDbGFzc109XCJ7J2xvdyc6IHF1ZXN0aW9ubmFpcmVBY2N1cmFjeSA8IDAuMjUsICdtb2RlcmF0ZScgOiBxdWVzdGlvbm5haXJlQWNjdXJhY3kgPCAwLjUgJiYgcXVlc3Rpb25uYWlyZUFjY3VyYWN5ID49IDAuMjV9XCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IChxdWVzdGlvbm5haXJlQWNjdXJhY3kgKiAxMDApICsgJyUnIH1cIj57e3F1ZXN0aW9ubmFpcmVBY2N1cmFjeSAqIDEwMCB8IG51bWJlcjonMS4wLTAnfX0lPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtc2VnbWVudHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLXNlZ21lbnRzLWxhYmVsXCI+VGltZSBpbnZlc3RtZW50PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd25zXCI+XG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd25cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1sYWJlbFwiPlRlYW0gbWVtYmVyczwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzYmFyIHByb2dyZXNzYmFyLXBvc2l0aXZlIHByb2dyZXNzYmFyLXRlYW1tZW1iZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc2Jhci1iYXJcIiAqbmdJZj1cInF1ZXN0aW9uc1RlYW1NZW1iZXJzID4gMFwiIFtzdHlsZS53aWR0aF09XCIoKHF1ZXN0aW9uc1RlYW1NZW1iZXJzIC8gcXVlc3Rpb25zVG90YWwpICogMTAwKSArICclJ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzYmFyLXNjb3JlXCI+e3tkdXJhdGlvblRlYW1NZW1iZXJzIHwgbnVtYmVyOicxLjAtMCd9fSBtaW48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd25cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbm5haXJlLWJyZWFrZG93bi1sYWJlbFwiPlN0YWtlaG9sZGVyczwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzYmFyIHByb2dyZXNzYmFyLXBvc2l0aXZlIHByb2dyZXNzYmFyLXN0YWtlaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NiYXItYmFyXCIgKm5nSWY9XCJxdWVzdGlvbnNTdGFrZWhvbGRlcnMgPiAwXCIgW3N0eWxlLndpZHRoXT1cIigocXVlc3Rpb25zU3Rha2Vob2xkZXJzIC8gcXVlc3Rpb25zVG90YWwpICogMTAwKSArICclJ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzYmFyLXNjb3JlXCI+e3tkdXJhdGlvblN0YWtlaG9sZGVycyB8IG51bWJlcjonMS4wLTAnfX0gbWluPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1ZXN0aW9ubmFpcmUtYnJlYWtkb3duXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25uYWlyZS1icmVha2Rvd24tbGFiZWxcIj5TdXBwb3J0ZXJzPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NiYXIgcHJvZ3Jlc3NiYXItcG9zaXRpdmUgcHJvZ3Jlc3NiYXItc3VwcG9ydGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NiYXItYmFyXCIgKm5nSWY9XCJxdWVzdGlvbnNTdXBwb3J0ZXJzID4gMFwiIFtzdHlsZS53aWR0aF09XCIoKHF1ZXN0aW9uc1N1cHBvcnRlcnMgLyBxdWVzdGlvbnNUb3RhbCkgKiAxMDApICsgJyUnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NiYXItc2NvcmVcIj57e2R1cmF0aW9uU3VwcG9ydGVycyB8IG51bWJlcjonMS4wLTAnfX0gbWluPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2FsZXNlbGVjdG9yLXdhcm5pbmdzXCIgKm5nSWY9XCJ3YXJuaW5ncy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NhbGVzZWxlY3Rvci13YXJuaW5ncy13YXJuaW5nXCIgKm5nRm9yPVwibGV0IHdhcm5pbmcgb2Ygd2FybmluZ3NcIj5cbiAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBwaC1pbmZvLWZpbGxcIj48L3NwYW4+e3t3YXJuaW5nfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uY29udHJvbHMucHJlc2V0LnZhbHVlID09ICdjdXN0b20nXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzPVwidG9waWMtcGFyZW50XCIgZm9ybUFycmF5TmFtZT1cInRvcGljc0FycmF5XCIgKm5nRm9yPVwibGV0IHRvcGljR3JvdXAgb2YgdG9waWNzQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgIDxoND57e3RvcGljR3JvdXAudmFsdWUubmFtZX19PC9oND5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwZXJzXCI+KDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cInNlbGVjdEFsbCh0b3BpY0dyb3VwLCAkZXZlbnQpXCI+YWxsPC9hPiB8IDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cInNlbGVjdE5vbmUodG9waWNHcm91cCwgJGV2ZW50KVwiPm5vbmU8L2E+KTwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcGljLWNoaWxkLW1vcmVpbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBoLWluZm8tYm9sZFwiIChjbGljayk9XCJvcGVuRmFjdG9ySW5mb3JtYXRpb24odG9waWNHcm91cC52YWx1ZS5wdWJsaWNLZXksICRldmVudClcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJzdWJUb3BpY3NBcnJheVwiICpuZ0Zvcj1cImxldCBzdWJUb3BpY0dyb3VwIG9mIGdldFN1YlRvcGljc0FycmF5KHRvcGljR3JvdXApOyBsZXQgaiA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IFtmb3JtR3JvdXBOYW1lXT1cImpcIiBjbGFzcz1cInRvcGljLWNoaWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwidG9waWMtY2hpbGQtY2hlY2tcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFwiIChjbGljayk9XCJzZWxlY3RUb3BpYyhzdWJUb3BpY0dyb3VwKVwiIFtpZF09XCIndG9waWMtJyArIHN1YlRvcGljR3JvdXAudmFsdWUubmFtZSB8IHNsdWdpZnlcIj48L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BpYy1jaGlsZC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tzdWJUb3BpY0dyb3VwLnZhbHVlLm5hbWV9fSAoe3tzdWJUb3BpY0dyb3VwLnZhbHVlLnF1ZXN0aW9uQ291bnR9fSBxdWVzdGlvbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3MtdGFnIHJlY29tbWVuZGVkXCIgKm5nSWY9XCJzdWJUb3BpY0dyb3VwLnZhbHVlLnJlY29tbWVuZGVkXCI+UmVjb21tZW5kZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLXRhZyB0ZWFtbWVtYmVyXCIgKm5nSWY9XCJzdWJUb3BpY0dyb3VwLnZhbHVlLmZvclRlYW1NZW1iZXJzXCI+Rm9yIHRlYW0gbWVtYmVyczwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZ3MtdGFnIHN0YWtlaG9sZGVyXCIgKm5nSWY9XCJzdWJUb3BpY0dyb3VwLnZhbHVlLmZvclN0YWtlaG9sZGVyc1wiPkZvciBzdGFrZWhvbGRlcnM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLXRhZyBzdXBwb3J0ZXJcIiAqbmdJZj1cInN1YlRvcGljR3JvdXAudmFsdWUuZm9yU3VwcG9ydGVyc1wiPkZvciBzdXBwb3J0ZXJzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvcGljLWNoaWxkLW1vcmVpbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIHBoLWluZm8tYm9sZFwiIChjbGljayk9XCJvcGVuRmFjdG9ySW5mb3JtYXRpb24oc3ViVG9waWNHcm91cC52YWx1ZS5wdWJsaWNLZXksICRldmVudClcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatFormFieldModule } from '@angular/material/form-field';
5
+ import { MatSelectModule } from '@angular/material/select';
6
+ import { TopicSelectorComponent } from './topic-selector.component';
7
+ import { SlugifyPipeModule } from '../../pipes/slugify/ngx-slugify.module';
8
+ import { FactorInformationDialogModule } from '../../dialogs/dialog-factorinformation/dialog-factorinformation.module';
9
+ import * as i0 from "@angular/core";
10
+ export class TopicSelectorModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopicSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: TopicSelectorModule, declarations: [TopicSelectorComponent], imports: [FormsModule,
13
+ MatFormFieldModule,
14
+ ReactiveFormsModule,
15
+ CommonModule,
16
+ MatSelectModule,
17
+ SlugifyPipeModule,
18
+ FactorInformationDialogModule], exports: [TopicSelectorComponent] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopicSelectorModule, imports: [FormsModule,
20
+ MatFormFieldModule,
21
+ ReactiveFormsModule,
22
+ CommonModule,
23
+ MatSelectModule,
24
+ SlugifyPipeModule,
25
+ FactorInformationDialogModule] }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopicSelectorModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ imports: [
31
+ FormsModule,
32
+ MatFormFieldModule,
33
+ ReactiveFormsModule,
34
+ CommonModule,
35
+ MatSelectModule,
36
+ SlugifyPipeModule,
37
+ FactorInformationDialogModule
38
+ ],
39
+ declarations: [
40
+ TopicSelectorComponent
41
+ ],
42
+ exports: [
43
+ TopicSelectorComponent
44
+ ]
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL2NvbXBvbmVudHMvdG9waWNzZWxlY3Rvci90b3BpYy1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7QUFpQnZILE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CLGlCQUoxQixzQkFBc0IsYUFUdEIsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsNkJBQTZCLGFBSzdCLHNCQUFzQjtnSEFFZixtQkFBbUIsWUFiMUIsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsNkJBQTZCOzs0RkFPdEIsbUJBQW1CO2tCQWYvQixRQUFRO21CQUFDO29CQUNQLE9BQU8sRUFBRTt3QkFDTixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQiw2QkFBNkI7cUJBQy9CO29CQUNELFlBQVksRUFBRTt3QkFDWCxzQkFBc0I7cUJBQUM7b0JBQzFCLE9BQU8sRUFBRTt3QkFDTixzQkFBc0I7cUJBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IFRvcGljU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL3RvcGljLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbHVnaWZ5UGlwZU1vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGVzL3NsdWdpZnkvbmd4LXNsdWdpZnkubW9kdWxlJztcbmltcG9ydCB7IEZhY3RvckluZm9ybWF0aW9uRGlhbG9nTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9kaWFsb2ctZmFjdG9yaW5mb3JtYXRpb24vZGlhbG9nLWZhY3RvcmluZm9ybWF0aW9uLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICBpbXBvcnRzOiBbXG4gICAgICBGb3Jtc01vZHVsZSxcbiAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICBDb21tb25Nb2R1bGUsXG4gICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICBTbHVnaWZ5UGlwZU1vZHVsZSxcbiAgICAgIEZhY3RvckluZm9ybWF0aW9uRGlhbG9nTW9kdWxlXG4gICBdLFxuICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICBUb3BpY1NlbGVjdG9yQ29tcG9uZW50XSxcbiAgIGV4cG9ydHM6IFtcbiAgICAgIFRvcGljU2VsZWN0b3JDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFRvcGljU2VsZWN0b3JNb2R1bGUgeyB9XG4iXX0=
@@ -43,4 +43,4 @@ export var SegmentEnum;
43
43
  SegmentEnum["Stakeholder"] = "Stakeholder";
44
44
  SegmentEnum["Management"] = "Supporter";
45
45
  })(SegmentEnum || (SegmentEnum = {}));
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxTdHJ1Y3R1cmVEdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvbW9kZWxzL21vZGVsU3RydWN0dXJlRHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7Q0FHN0I7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzVCO1FBQ0csSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBVUg7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQUczQjtBQUVELE1BQU0sT0FBTyxhQUFhO0NBR3pCO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FJckI7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzVCO1FBQ0csSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7SUFDekQsQ0FBQztDQWVIO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtDQUlyQztBQUNELE1BQU0sT0FBTyxlQUFlO0NBSzNCO0FBRUQsTUFBTSxPQUFPLDRCQUE0QjtJQUN0QztRQUNHLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FJSDtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFDOUIsWUFBWSxTQUFTLEVBQUUsSUFBSTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0NBTUg7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3BCLHdDQUF5QixDQUFBO0lBQ3pCLDBDQUEyQixDQUFBO0lBQzNCLHVDQUF3QixDQUFBO0FBQzNCLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNb2RlbFN0cnVjdHVyZUR0byB7XG4gICBkZWZpbml0aW9uOiBNb2RlbERlZmluaXRpb25EdG87XG4gICBtb2RlbHM6IE1vZGVsU3VtbWFyeUR0b1tdO1xufVxuXG5leHBvcnQgY2xhc3MgTW9kZWxEZWZpbml0aW9uRHRvIHtcbiAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhpcy5xdWVzdGlvbm5haXJlVHlwZXMgPSBbXTtcbiAgICAgIHRoaXMuZGVtb1VybHMgPSBbXTtcbiAgICAgIHRoaXMuZmFjdG9ycyA9IFtdO1xuICAgfVxuXG4gICBuYW1lOiBzdHJpbmc7XG4gICBwdWJsaWNLZXk6IHN0cmluZztcbiAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICBkZW1vVXJsczogTW9kZWxEZW1vVXJsRHRvW107XG4gICBhdHRyaWJ1dGlvbjogc3RyaW5nO1xuICAgcXVlc3Rpb25uYWlyZVR5cGVzOiBRdWVzdGlvbm5haXJlVHlwZUR0b1tdO1xuICAgZmFjdG9yczogRmFjdG9yU3RydWN0dXJlRHRvW107XG4gICBleHBsYWluZXJWaWRlb1VybDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTW9kZWxEZW1vVXJsRHRvIHtcbiAgIHR5cGU6IHN0cmluZztcbiAgIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGVmaW5pdGlvbkR0byB7XG4gICB0ZXJtOiBzdHJpbmc7XG4gICBkZWZpbml0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBFZmZlY3REdG8ge1xuICAgdG86IHN0cmluZztcbiAgIHN0YW5kYXJkaXplZEJldGE6IG51bWJlcjtcbiAgIHN0YW5kYXJkRXJyb3I6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEZhY3RvclN0cnVjdHVyZUR0byB7XG4gICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRoaXMubG93ZXIgPSBbXTtcbiAgICAgIHRoaXMuc2VnbWVudHMgPSBbXTtcbiAgICAgIHRoaXMuZWZmZWN0cyA9IFtdO1xuICAgICAgdGhpcy5jb25zdHJhaW50cyA9IG5ldyBGYWN0b3JTdHJ1Y3R1cmVDb25zdHJhaW50RHRvKCk7XG4gICB9XG5cbiAgIHB1YmxpY0tleTogc3RyaW5nO1xuICAgcGFyZW50S2V5OiBzdHJpbmc7XG4gICBuYW1lOiBzdHJpbmc7XG4gICBjb2xvcjogc3RyaW5nO1xuICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgIHF1ZXN0aW9uQ291bnQ6IG51bWJlcjtcbiAgIGV4cGxhaW5lclZpZGVvVXJsOiBzdHJpbmc7XG4gICBlZmZlY3RzOiBFZmZlY3REdG9bXTtcbiAgIHNlZ21lbnRzOiBGYWN0b3JTdHJ1Y3R1cmVTZWdtZW50RHRvW107XG4gICBjb25zdHJhaW50czogRmFjdG9yU3RydWN0dXJlQ29uc3RyYWludER0bztcbiAgIGxvd2VyOiBGYWN0b3JTdHJ1Y3R1cmVEdG9bXTtcbiAgIGF0dHJpYnV0aW9uOiBzdHJpbmc7XG4gICBhbnRlY2VkZW50czogRmFjdG9yU3RydWN0dXJlRHRvW107XG59XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3JTdHJ1Y3R1cmVTZWdtZW50RHRvIHtcbiAgIHF1ZXN0aW9uQ291bnQ6IG51bWJlcjtcbiAgIHNlZ21lbnQ6IFNlZ21lbnRFbnVtO1xuICAgZHVyYXRpb25JblNlY29uZHM6IG51bWJlcjtcbn1cbmV4cG9ydCBjbGFzcyBNb2RlbFN1bW1hcnlEdG8ge1xuICAgcHVibGljS2V5OiBzdHJpbmc7XG4gICBuYW1lOiBzdHJpbmc7XG4gICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgaXNJbkJldGE6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3JTdHJ1Y3R1cmVDb25zdHJhaW50RHRvIHtcbiAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhpcy5mb3JUZWFtVHlwZXMgPSBbXTtcbiAgICAgIHRoaXMuZm9yU2VnbWVudHMgPSBbXTtcbiAgIH1cblxuICAgZm9yVGVhbVR5cGVzOiBzdHJpbmdbXTtcbiAgIGZvclNlZ21lbnRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9ubmFpcmVUeXBlRHRvIHtcbiAgIGNvbnN0cnVjdG9yKHB1YmxpY0tleSwgbmFtZSkge1xuICAgICAgdGhpcy5wdWJsaWNLZXkgPSBwdWJsaWNLZXk7XG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgfVxuXG4gICBwdWJsaWNLZXk6IHN0cmluZztcbiAgIG5hbWU6IHN0cmluZztcbiAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICBzY2FsZUtleXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBTZWdtZW50RW51bSB7XG4gICBUZWFtTWVtYmVyID0gJ1RlYW1NZW1iZXInLFxuICAgU3Rha2Vob2xkZXIgPSAnU3Rha2Vob2xkZXInLFxuICAgTWFuYWdlbWVudCA9ICdTdXBwb3J0ZXInXG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxTdHJ1Y3R1cmVEdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2NydW10ZWFtc3VydmV5LXRvb2xzL3NyYy9saWIvbW9kZWxzL21vZGVsU3RydWN0dXJlRHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7Q0FHN0I7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzVCO1FBQ0csSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBVUg7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQUczQjtBQUVELE1BQU0sT0FBTyxhQUFhO0NBR3pCO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FJckI7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzVCO1FBQ0csSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7SUFDekQsQ0FBQztDQWdCSDtBQUVELE1BQU0sT0FBTyx5QkFBeUI7Q0FJckM7QUFDRCxNQUFNLE9BQU8sZUFBZTtDQUszQjtBQUVELE1BQU0sT0FBTyw0QkFBNEI7SUFDdEM7UUFDRyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBSUg7QUFFRCxNQUFNLE9BQU8sb0JBQW9CO0lBQzlCLFlBQVksU0FBUyxFQUFFLElBQUk7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztDQU1IO0FBRUQsTUFBTSxDQUFOLElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNwQix3Q0FBeUIsQ0FBQTtJQUN6QiwwQ0FBMkIsQ0FBQTtJQUMzQix1Q0FBd0IsQ0FBQTtBQUMzQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTW9kZWxTdHJ1Y3R1cmVEdG8ge1xuICAgZGVmaW5pdGlvbjogTW9kZWxEZWZpbml0aW9uRHRvO1xuICAgbW9kZWxzOiBNb2RlbFN1bW1hcnlEdG9bXTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsRGVmaW5pdGlvbkR0byB7XG4gICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRoaXMucXVlc3Rpb25uYWlyZVR5cGVzID0gW107XG4gICAgICB0aGlzLmRlbW9VcmxzID0gW107XG4gICAgICB0aGlzLmZhY3RvcnMgPSBbXTtcbiAgIH1cblxuICAgbmFtZTogc3RyaW5nO1xuICAgcHVibGljS2V5OiBzdHJpbmc7XG4gICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgZGVtb1VybHM6IE1vZGVsRGVtb1VybER0b1tdO1xuICAgYXR0cmlidXRpb246IHN0cmluZztcbiAgIHF1ZXN0aW9ubmFpcmVUeXBlczogUXVlc3Rpb25uYWlyZVR5cGVEdG9bXTtcbiAgIGZhY3RvcnM6IEZhY3RvclN0cnVjdHVyZUR0b1tdO1xuICAgZXhwbGFpbmVyVmlkZW9Vcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsRGVtb1VybER0byB7XG4gICB0eXBlOiBzdHJpbmc7XG4gICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERlZmluaXRpb25EdG8ge1xuICAgdGVybTogc3RyaW5nO1xuICAgZGVmaW5pdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRWZmZWN0RHRvIHtcbiAgIHRvOiBzdHJpbmc7XG4gICBzdGFuZGFyZGl6ZWRCZXRhOiBudW1iZXI7XG4gICBzdGFuZGFyZEVycm9yOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3JTdHJ1Y3R1cmVEdG8ge1xuICAgY29uc3RydWN0b3IoKSB7XG4gICAgICB0aGlzLmxvd2VyID0gW107XG4gICAgICB0aGlzLnNlZ21lbnRzID0gW107XG4gICAgICB0aGlzLmVmZmVjdHMgPSBbXTtcbiAgICAgIHRoaXMuY29uc3RyYWludHMgPSBuZXcgRmFjdG9yU3RydWN0dXJlQ29uc3RyYWludER0bygpO1xuICAgfVxuXG4gICBwdWJsaWNLZXk6IHN0cmluZztcbiAgIHBhcmVudEtleTogc3RyaW5nO1xuICAgbmFtZTogc3RyaW5nO1xuICAgY29sb3I6IHN0cmluZztcbiAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICBxdWVzdGlvbkNvdW50OiBudW1iZXI7XG4gICBleHBsYWluZXJWaWRlb1VybDogc3RyaW5nO1xuICAgZWZmZWN0czogRWZmZWN0RHRvW107XG4gICBzZWdtZW50czogRmFjdG9yU3RydWN0dXJlU2VnbWVudER0b1tdO1xuICAgY29uc3RyYWludHM6IEZhY3RvclN0cnVjdHVyZUNvbnN0cmFpbnREdG87XG4gICBsb3dlcjogRmFjdG9yU3RydWN0dXJlRHRvW107XG4gICBhdHRyaWJ1dGlvbjogc3RyaW5nO1xuICAgYW50ZWNlZGVudHM6IEZhY3RvclN0cnVjdHVyZUR0b1tdO1xuICAgcmVjb21tZW5kZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3JTdHJ1Y3R1cmVTZWdtZW50RHRvIHtcbiAgIHF1ZXN0aW9uQ291bnQ6IG51bWJlcjtcbiAgIHNlZ21lbnQ6IFNlZ21lbnRFbnVtO1xuICAgZHVyYXRpb25JblNlY29uZHM6IG51bWJlcjtcbn1cbmV4cG9ydCBjbGFzcyBNb2RlbFN1bW1hcnlEdG8ge1xuICAgcHVibGljS2V5OiBzdHJpbmc7XG4gICBuYW1lOiBzdHJpbmc7XG4gICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgaXNJbkJldGE6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBGYWN0b3JTdHJ1Y3R1cmVDb25zdHJhaW50RHRvIHtcbiAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhpcy5mb3JUZWFtVHlwZXMgPSBbXTtcbiAgICAgIHRoaXMuZm9yU2VnbWVudHMgPSBbXTtcbiAgIH1cblxuICAgZm9yVGVhbVR5cGVzOiBzdHJpbmdbXTtcbiAgIGZvclNlZ21lbnRzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9ubmFpcmVUeXBlRHRvIHtcbiAgIGNvbnN0cnVjdG9yKHB1YmxpY0tleSwgbmFtZSkge1xuICAgICAgdGhpcy5wdWJsaWNLZXkgPSBwdWJsaWNLZXk7XG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgfVxuXG4gICBwdWJsaWNLZXk6IHN0cmluZztcbiAgIG5hbWU6IHN0cmluZztcbiAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICBzY2FsZUtleXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBTZWdtZW50RW51bSB7XG4gICBUZWFtTWVtYmVyID0gJ1RlYW1NZW1iZXInLFxuICAgU3Rha2Vob2xkZXIgPSAnU3Rha2Vob2xkZXInLFxuICAgTWFuYWdlbWVudCA9ICdTdXBwb3J0ZXInXG59XG4iXX0=
@@ -6,8 +6,6 @@ export var SubscriptionTierEnum;
6
6
  SubscriptionTierEnum["Professional"] = "Professional";
7
7
  SubscriptionTierEnum["Enterprise"] = "Enterprise";
8
8
  })(SubscriptionTierEnum || (SubscriptionTierEnum = {}));
9
- export class TeamMetaDataImprovementGoalDto {
9
+ export class SelectListItemApiDto {
10
10
  }
11
- export class TeamMetaDataTeamTypeDto {
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbU1ldGFEYXRhRHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL3Jlc3VsdHMvbW9kZWxzL3RlYW1NZXRhRGF0YUR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sZUFBZTtDQWEzQjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDN0IsNkNBQXFCLENBQUE7SUFDckIscURBQTZCLENBQUE7SUFDN0IsaURBQXlCLENBQUE7QUFDNUIsQ0FBQyxFQUpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFJL0I7QUFFRCxNQUFNLE9BQU8sOEJBQThCO0NBSTFDO0FBRUQsTUFBTSxPQUFPLHVCQUF1QjtDQUluQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNsYXNzIFRlYW1NZXRhRGF0YUR0byB7XG4gICBuYW1lOiBzdHJpbmc7XG4gICBub3RpZmljYXRpb25FbWFpbDogc3RyaW5nO1xuICAgdGVhbUtleTogc3RyaW5nO1xuICAgaXNTdWJzY3JpYmVkOiBib29sZWFuO1xuICAgc3Vic2NyaXB0aW9uVGllcjogU3Vic2NyaXB0aW9uVGllckVudW07XG4gICBtYW5hZ2VtZW50VXJsOiBzdHJpbmc7XG4gICByZXRha2VVcmw6IHN0cmluZztcbiAgIGxvd1RydXN0TW9kZTogYm9vbGVhbjtcbiAgIHBpbmNvZGU6IHN0cmluZztcbiAgIGltcHJvdmVtZW50R29hbDogc3RyaW5nO1xuICAgaW1wcm92ZW1lbnRHb2FsczogVGVhbU1ldGFEYXRhSW1wcm92ZW1lbnRHb2FsRHRvW107XG4gICB0ZWFtVHlwZXM6IFRlYW1NZXRhRGF0YVRlYW1UeXBlRHRvW107XG59XG5cbmV4cG9ydCBlbnVtIFN1YnNjcmlwdGlvblRpZXJFbnVtIHtcbiAgIEZyZWVtaXVtID0gXCJGcmVlbWl1bVwiLFxuICAgUHJvZmVzc2lvbmFsID0gXCJQcm9mZXNzaW9uYWxcIixcbiAgIEVudGVycHJpc2UgPSBcIkVudGVycHJpc2VcIlxufVxuXG5leHBvcnQgY2xhc3MgVGVhbU1ldGFEYXRhSW1wcm92ZW1lbnRHb2FsRHRvIHtcbiAgIGtleTogc3RyaW5nO1xuICAgbmFtZTogc3RyaW5nO1xuICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBUZWFtTWV0YURhdGFUZWFtVHlwZUR0byB7XG4gICBrZXk6IHN0cmluZztcbiAgIG5hbWU6IHN0cmluZztcbiAgIHNlbGVjdGVkOiBib29sZWFuO1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbU1ldGFEYXRhRHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjcnVtdGVhbXN1cnZleS10b29scy9zcmMvbGliL3Jlc3VsdHMvbW9kZWxzL3RlYW1NZXRhRGF0YUR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sZUFBZTtDQWUzQjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDN0IsNkNBQXFCLENBQUE7SUFDckIscURBQTZCLENBQUE7SUFDN0IsaURBQXlCLENBQUE7QUFDNUIsQ0FBQyxFQUpXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFJL0I7QUFFRCxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNsYXNzIFRlYW1NZXRhRGF0YUR0byB7XG4gICBuYW1lOiBzdHJpbmc7XG4gICBub3RpZmljYXRpb25FbWFpbDogc3RyaW5nO1xuICAgdGVhbUtleTogc3RyaW5nO1xuICAgaXNTdWJzY3JpYmVkOiBib29sZWFuO1xuICAgc3Vic2NyaXB0aW9uVGllcjogU3Vic2NyaXB0aW9uVGllckVudW07XG4gICBtYW5hZ2VtZW50VXJsOiBzdHJpbmc7XG4gICByZXRha2VVcmw6IHN0cmluZztcbiAgIGxvd1RydXN0TW9kZTogYm9vbGVhbjtcbiAgIHBpbmNvZGU6IHN0cmluZztcbiAgIGltcHJvdmVtZW50R29hbDogc3RyaW5nO1xuICAgaW1wcm92ZW1lbnRHb2FsczogU2VsZWN0TGlzdEl0ZW1BcGlEdG9bXTtcbiAgIHRlYW1UeXBlczogU2VsZWN0TGlzdEl0ZW1BcGlEdG9bXTtcbiAgIHJlbWluZGVyRnJlcXVlbmNpZXM6IFNlbGVjdExpc3RJdGVtQXBpRHRvW107XG4gICByZW1pbmRlckRhdGU6IERhdGU7XG59XG5cbmV4cG9ydCBlbnVtIFN1YnNjcmlwdGlvblRpZXJFbnVtIHtcbiAgIEZyZWVtaXVtID0gXCJGcmVlbWl1bVwiLFxuICAgUHJvZmVzc2lvbmFsID0gXCJQcm9mZXNzaW9uYWxcIixcbiAgIEVudGVycHJpc2UgPSBcIkVudGVycHJpc2VcIlxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2VsZWN0TGlzdEl0ZW1BcGlEdG8ge1xuICAga2V5OiBzdHJpbmc7XG4gICBuYW1lOiBzdHJpbmc7XG4gICBzZWxlY3RlZDogYm9vbGVhbjtcbn1cbiJdfQ==