@senior-gestao-relacionamento/angular-components 2.0.0-master-961a1e59 → 2.0.0-master-d6f488bf

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.
@@ -8,10 +8,11 @@ import { DividerModule } from 'primeng/divider';
8
8
  import { TooltipModule } from 'primeng/tooltip';
9
9
  import { ConfirmDialogModule } from 'primeng/confirmdialog';
10
10
  import { ConfirmationService } from 'primeng/api';
11
- import { ScheduleTranslatePipe } from '../../../services/translation/translate.pipe';
11
+ // Components AI
12
+ import { TranslatePipe } from '@seniorsistemas/components-ai';
12
13
  import { SchedulePriority } from '../models/schedule.enums';
13
14
  import * as i0 from "@angular/core";
14
- import * as i1 from "../../../services/translation/translation.service";
15
+ import * as i1 from "@seniorsistemas/components-ai";
15
16
  import * as i2 from "primeng/api";
16
17
  import * as i3 from "@angular/common";
17
18
  import * as i4 from "primeng/dialog";
@@ -20,7 +21,7 @@ import * as i6 from "primeng/tag";
20
21
  import * as i7 from "primeng/divider";
21
22
  import * as i8 from "primeng/confirmdialog";
22
23
  export class ScheduleDetailComponent {
23
- translationService;
24
+ t;
24
25
  confirmationService;
25
26
  visible = false;
26
27
  schedule = null;
@@ -32,12 +33,12 @@ export class ScheduleDetailComponent {
32
33
  visibleChange = new EventEmitter();
33
34
  onAction = new EventEmitter();
34
35
  onClose = new EventEmitter();
35
- constructor(translationService, confirmationService) {
36
- this.translationService = translationService;
36
+ constructor(t, confirmationService) {
37
+ this.t = t;
37
38
  this.confirmationService = confirmationService;
38
39
  }
39
40
  get dialogHeader() {
40
- return this.schedule?.name ?? this.translationService.translate('sr.schedule.schedule_details');
41
+ return this.schedule?.name ?? this.t.translate('sr.schedule.schedule_details');
41
42
  }
42
43
  closeDialog() {
43
44
  this.visible = false;
@@ -52,97 +53,64 @@ export class ScheduleDetailComponent {
52
53
  acceptSchedule() {
53
54
  if (!this.schedule)
54
55
  return;
55
- this.confirmationService.confirm({
56
- message: this.translationService.translate('sr.schedule.confirm_accept'),
57
- header: this.translationService.translate('sr.schedule.confirmation'),
58
- icon: 'pi pi-question-circle',
59
- acceptLabel: this.translationService.translate('sr.schedule.yes'),
60
- rejectLabel: this.translationService.translate('sr.schedule.no'),
61
- accept: () => {
62
- if (this.schedule) {
63
- this.onAction.emit({ type: 'accept', schedule: this.schedule });
64
- }
65
- }
66
- });
56
+ this.confirmAction('sr.schedule.confirm_accept', 'pi pi-question-circle', 'accept');
67
57
  }
68
58
  rejectSchedule() {
69
59
  if (!this.schedule)
70
60
  return;
71
- this.confirmationService.confirm({
72
- message: this.translationService.translate('sr.schedule.confirm_reject'),
73
- header: this.translationService.translate('sr.schedule.confirmation'),
74
- icon: 'pi pi-exclamation-triangle',
75
- acceptLabel: this.translationService.translate('sr.schedule.yes'),
76
- rejectLabel: this.translationService.translate('sr.schedule.no'),
77
- accept: () => {
78
- if (this.schedule) {
79
- this.onAction.emit({ type: 'reject', schedule: this.schedule });
80
- }
81
- }
82
- });
61
+ this.confirmAction('sr.schedule.confirm_reject', 'pi pi-exclamation-triangle', 'reject');
83
62
  }
84
63
  cancelSchedule() {
85
64
  if (!this.schedule)
86
65
  return;
87
- this.confirmationService.confirm({
88
- message: this.translationService.translate('sr.schedule.confirm_cancel'),
89
- header: this.translationService.translate('sr.schedule.confirmation'),
90
- icon: 'pi pi-exclamation-triangle',
91
- acceptLabel: this.translationService.translate('sr.schedule.yes'),
92
- rejectLabel: this.translationService.translate('sr.schedule.no'),
93
- accept: () => {
94
- if (this.schedule) {
95
- this.onAction.emit({ type: 'cancel', schedule: this.schedule });
96
- }
97
- }
98
- });
66
+ this.confirmAction('sr.schedule.confirm_cancel', 'pi pi-exclamation-triangle', 'cancel');
99
67
  }
100
68
  deleteSchedule() {
101
69
  if (!this.schedule)
102
70
  return;
71
+ this.confirmAction('sr.schedule.confirm_delete', 'pi pi-exclamation-triangle', 'delete');
72
+ }
73
+ confirmAction(messageKey, icon, type) {
103
74
  this.confirmationService.confirm({
104
- message: this.translationService.translate('sr.schedule.confirm_delete'),
105
- header: this.translationService.translate('sr.schedule.confirmation'),
106
- icon: 'pi pi-exclamation-triangle',
107
- acceptLabel: this.translationService.translate('sr.schedule.yes'),
108
- rejectLabel: this.translationService.translate('sr.schedule.no'),
75
+ message: this.t.translate(messageKey),
76
+ header: this.t.translate('sr.schedule.confirmation'),
77
+ icon,
78
+ acceptLabel: this.t.translate('sr.schedule.yes'),
79
+ rejectLabel: this.t.translate('sr.schedule.no'),
109
80
  accept: () => {
110
81
  if (this.schedule) {
111
- this.onAction.emit({ type: 'delete', schedule: this.schedule });
82
+ this.onAction.emit({ type, schedule: this.schedule });
112
83
  }
113
84
  }
114
85
  });
115
86
  }
116
87
  formatDate(date) {
117
88
  if (!date) {
118
- return this.translationService.translate('sr.schedule.not_informed');
89
+ return this.t.translate('sr.schedule.not_informed');
119
90
  }
120
91
  try {
121
92
  const dateObj = new Date(date);
122
93
  if (isNaN(dateObj.getTime())) {
123
- return this.translationService.translate('sr.schedule.invalid_date');
94
+ return this.t.translate('sr.schedule.invalid_date');
124
95
  }
125
96
  return dateObj.toLocaleString('pt-BR', {
126
- day: '2-digit',
127
- month: '2-digit',
128
- year: 'numeric',
129
- hour: '2-digit',
130
- minute: '2-digit'
97
+ day: '2-digit', month: '2-digit', year: 'numeric',
98
+ hour: '2-digit', minute: '2-digit'
131
99
  });
132
100
  }
133
101
  catch {
134
- return this.translationService.translate('sr.schedule.invalid_date');
102
+ return this.t.translate('sr.schedule.invalid_date');
135
103
  }
136
104
  }
137
105
  getPriorityLabel(priority) {
138
106
  if (!priority) {
139
- return this.translationService.translate('sr.schedule.not_informed');
107
+ return this.t.translate('sr.schedule.not_informed');
140
108
  }
141
109
  const labels = {
142
- [SchedulePriority.Low]: this.translationService.translate('sr.schedule.priority_low'),
143
- [SchedulePriority.Medium]: this.translationService.translate('sr.schedule.priority_medium'),
144
- [SchedulePriority.High]: this.translationService.translate('sr.schedule.priority_high'),
145
- [SchedulePriority.Critical]: this.translationService.translate('sr.schedule.priority_critical')
110
+ [SchedulePriority.Low]: this.t.translate('sr.schedule.priority_low'),
111
+ [SchedulePriority.Medium]: this.t.translate('sr.schedule.priority_medium'),
112
+ [SchedulePriority.High]: this.t.translate('sr.schedule.priority_high'),
113
+ [SchedulePriority.Critical]: this.t.translate('sr.schedule.priority_critical')
146
114
  };
147
115
  return labels[priority] ?? priority;
148
116
  }
@@ -160,21 +128,21 @@ export class ScheduleDetailComponent {
160
128
  }
161
129
  getRecurrenceLabel(recurrence) {
162
130
  if (!recurrence) {
163
- return this.translationService.translate('sr.schedule.recurrence_none');
131
+ return this.t.translate('sr.schedule.recurrence_none');
164
132
  }
165
133
  const labels = {
166
- 'NONE': this.translationService.translate('sr.schedule.recurrence_none'),
167
- 'DAILY': this.translationService.translate('sr.schedule.recurrence_daily'),
168
- 'WEEKLY': this.translationService.translate('sr.schedule.recurrence_weekly'),
169
- 'MONTHLY': this.translationService.translate('sr.schedule.recurrence_monthly'),
170
- 'YEARLY': this.translationService.translate('sr.schedule.recurrence_yearly'),
171
- 'CUSTOM': this.translationService.translate('sr.schedule.recurrence_custom')
134
+ 'NONE': this.t.translate('sr.schedule.recurrence_none'),
135
+ 'DAILY': this.t.translate('sr.schedule.recurrence_daily'),
136
+ 'WEEKLY': this.t.translate('sr.schedule.recurrence_weekly'),
137
+ 'MONTHLY': this.t.translate('sr.schedule.recurrence_monthly'),
138
+ 'YEARLY': this.t.translate('sr.schedule.recurrence_yearly'),
139
+ 'CUSTOM': this.t.translate('sr.schedule.recurrence_custom')
172
140
  };
173
141
  return labels[recurrence] ?? recurrence;
174
142
  }
175
143
  getOrganizerName() {
176
144
  const organizer = this.schedule?.participants?.find((p) => p.organizer);
177
- return organizer?.collaborator?.name ?? this.translationService.translate('sr.schedule.not_informed');
145
+ return organizer?.collaborator?.name ?? this.t.translate('sr.schedule.not_informed');
178
146
  }
179
147
  getParticipantsCount() {
180
148
  return this.schedule?.participants?.filter((p) => !p.organizer).length ?? 0;
@@ -182,45 +150,37 @@ export class ScheduleDetailComponent {
182
150
  getParticipantsList() {
183
151
  const participants = this.schedule?.participants?.filter((p) => !p.organizer) ?? [];
184
152
  if (participants.length === 0) {
185
- return this.translationService.translate('sr.schedule.no_participants');
153
+ return this.t.translate('sr.schedule.no_participants');
186
154
  }
187
- return participants.map((p) => p.collaborator?.name ?? this.translationService.translate('sr.schedule.no_name')).join(', ');
155
+ return participants.map((p) => p.collaborator?.name ?? this.t.translate('sr.schedule.no_name')).join(', ');
188
156
  }
189
157
  getConfirmationLabel(confirmation) {
190
158
  if (!confirmation) {
191
159
  return '';
192
160
  }
193
- if (confirmation === 'CONFIRMED') {
194
- return this.translationService.translate('sr.schedule.status_accepted');
195
- }
196
- else if (confirmation === 'DECLINED') {
197
- return this.translationService.translate('sr.schedule.status_rejected');
198
- }
199
- else {
200
- return this.translationService.translate('sr.schedule.status_pending');
201
- }
161
+ const labels = {
162
+ 'CONFIRMED': this.t.translate('sr.schedule.status_accepted'),
163
+ 'DECLINED': this.t.translate('sr.schedule.status_rejected')
164
+ };
165
+ return labels[confirmation] ?? this.t.translate('sr.schedule.status_pending');
202
166
  }
203
167
  getConfirmationSeverity(confirmation) {
204
- if (confirmation === 'CONFIRMED') {
205
- return 'success';
206
- }
207
- else if (confirmation === 'DECLINED') {
208
- return 'danger';
209
- }
210
- else {
211
- return 'warn';
212
- }
168
+ const severities = {
169
+ 'CONFIRMED': 'success',
170
+ 'DECLINED': 'danger'
171
+ };
172
+ return severities[confirmation ?? ''] ?? 'warn';
213
173
  }
214
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, deps: [{ token: i1.ScheduleTranslationService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
215
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible", schedule: "schedule", showAcceptButton: "showAcceptButton", showRejectButton: "showRejectButton", showCancelButton: "showCancelButton", showEditButton: "showEditButton", showDeleteButton: "showDeleteButton" }, outputs: { visibleChange: "visibleChange", onAction: "onAction", onClose: "onClose" }, providers: [ConfirmationService], ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | scheduleTranslate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | scheduleTranslate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | scheduleTranslate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | scheduleTranslate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | scheduleTranslate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | scheduleTranslate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | scheduleTranslate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | scheduleTranslate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | scheduleTranslate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | scheduleTranslate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.delete' | scheduleTranslate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.reject' | scheduleTranslate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.cancel' | scheduleTranslate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.accept' | scheduleTranslate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | scheduleTranslate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton \n type=\"button\" \n [label]=\"'sr.schedule.close' | scheduleTranslate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem}::ng-deep .schedule-detail-dialog{width:600px}::ng-deep .p-dialog .p-dialog-header{padding:1.25rem}::ng-deep .p-dialog .p-dialog-content{padding:0 1.25rem 1.25rem}::ng-deep .p-dialog .p-dialog-footer{padding:1rem 1.25rem;border-top:1px solid var(--surface-border)}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i6.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "pipe", type: ScheduleTranslatePipe, name: "scheduleTranslate" }] });
174
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, deps: [{ token: i1.TranslationService }, { token: i2.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
175
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible", schedule: "schedule", showAcceptButton: "showAcceptButton", showRejectButton: "showRejectButton", showCancelButton: "showCancelButton", showEditButton: "showEditButton", showDeleteButton: "showDeleteButton" }, outputs: { visibleChange: "visibleChange", onAction: "onAction", onClose: "onClose" }, providers: [ConfirmationService], ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | translate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | translate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | translate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | translate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | translate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | translate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | translate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | translate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.delete' | translate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.reject' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.cancel' | translate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.accept' | translate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | translate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton type=\"button\" \n [label]=\"'sr.schedule.close' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}:host ::ng-deep .schedule-detail-dialog{width:600px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i6.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog, p-confirmdialog, p-confirm-dialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
216
176
  }
217
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, decorators: [{
218
178
  type: Component,
219
179
  args: [{ selector: 's-schedule-detail', standalone: true, imports: [
220
180
  CommonModule, DialogModule, ButtonModule, TagModule,
221
- DividerModule, TooltipModule, ConfirmDialogModule, ScheduleTranslatePipe
222
- ], providers: [ConfirmationService], template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | scheduleTranslate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | scheduleTranslate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | scheduleTranslate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | scheduleTranslate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | scheduleTranslate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | scheduleTranslate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | scheduleTranslate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | scheduleTranslate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | scheduleTranslate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | scheduleTranslate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | scheduleTranslate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.delete' | scheduleTranslate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.reject' | scheduleTranslate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.cancel' | scheduleTranslate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.accept' | scheduleTranslate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton \n type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | scheduleTranslate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton \n type=\"button\" \n [label]=\"'sr.schedule.close' | scheduleTranslate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem}::ng-deep .schedule-detail-dialog{width:600px}::ng-deep .p-dialog .p-dialog-header{padding:1.25rem}::ng-deep .p-dialog .p-dialog-content{padding:0 1.25rem 1.25rem}::ng-deep .p-dialog .p-dialog-footer{padding:1rem 1.25rem;border-top:1px solid var(--surface-border)}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}\n"] }]
223
- }], ctorParameters: () => [{ type: i1.ScheduleTranslationService }, { type: i2.ConfirmationService }], propDecorators: { visible: [{
181
+ DividerModule, TooltipModule, ConfirmDialogModule, TranslatePipe
182
+ ], providers: [ConfirmationService], template: "<p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [styleClass]=\"'schedule-detail-dialog'\"\n [header]=\"dialogHeader\"\n (onHide)=\"closeDialog()\">\n \n <ng-template pTemplate=\"header\">\n <div class=\"dialog-header\">\n <h3>{{ dialogHeader }}</h3>\n <p-tag \n *ngIf=\"schedule?.priority\"\n [severity]=\"getPrioritySeverity(schedule?.priority)\"\n [value]=\"getPriorityLabel(schedule?.priority)\">\n </p-tag>\n </div>\n </ng-template>\n\n <div class=\"schedule-detail-content\" *ngIf=\"schedule\">\n \n <!-- Informa\u00E7\u00F5es B\u00E1sicas -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.basic_info' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-calendar\"></i>\n {{ 'sr.schedule.type' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.type?.name ?? ('sr.schedule.not_informed' | translate) }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-clock\"></i>\n {{ 'sr.schedule.when_occurs' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.whenOccurs }}</span>\n </div>\n\n <div class=\"detail-row\" *ngIf=\"schedule.duration\">\n <span class=\"detail-label\">\n <i class=\"pi pi-hourglass\"></i>\n {{ 'sr.schedule.duration' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.duration }} {{ 'sr.schedule.minutes' | translate }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-refresh\"></i>\n {{ 'sr.schedule.recurrence' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getRecurrenceLabel(schedule.recurrence) }}</span>\n </div>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Descri\u00E7\u00E3o -->\n <div class=\"detail-section\" *ngIf=\"schedule.description\">\n <h4 class=\"section-title\">{{ 'sr.schedule.description' | translate }}</h4>\n <p class=\"description-text\">{{ schedule.description }}</p>\n </div>\n\n <p-divider *ngIf=\"schedule.description\"></p-divider>\n\n <!-- Participantes -->\n <div class=\"detail-section\">\n <h4 class=\"section-title\">{{ 'sr.schedule.participants' | translate }}</h4>\n \n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-user\"></i>\n {{ 'sr.schedule.organizer' | translate }}:\n </span>\n <span class=\"detail-value\">{{ getOrganizerName() }}</span>\n </div>\n\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-users\"></i>\n {{ 'sr.schedule.participants' | translate }} ({{ getParticipantsCount() }}):\n </span>\n </div>\n \n <div class=\"participants-list\" *ngIf=\"getParticipantsCount() > 0\">\n <div class=\"participant-item\" *ngFor=\"let participant of schedule.participants\">\n <ng-container *ngIf=\"!participant.organizer\">\n <i class=\"pi pi-user\"></i>\n <span>{{ participant.collaborator?.name ?? ('sr.schedule.no_name' | translate) }}</span>\n <p-tag \n *ngIf=\"participant.confirmation\"\n [severity]=\"getConfirmationSeverity(participant.confirmation)\"\n [value]=\"getConfirmationLabel(participant.confirmation)\"\n styleClass=\"participant-status\">\n </p-tag>\n </ng-container>\n </div>\n </div>\n <p class=\"no-participants\" *ngIf=\"getParticipantsCount() === 0\">\n {{ 'sr.schedule.no_participants_besides_organizer' | translate }}\n </p>\n </div>\n\n <p-divider></p-divider>\n\n <!-- Local -->\n <div class=\"detail-section\" *ngIf=\"schedule.location\">\n <h4 class=\"section-title\">{{ 'sr.schedule.location' | translate }}</h4>\n <div class=\"detail-row\">\n <span class=\"detail-label\">\n <i class=\"pi pi-map-marker\"></i>\n {{ 'sr.schedule.address' | translate }}:\n </span>\n <span class=\"detail-value\">{{ schedule.location }}</span>\n </div>\n </div>\n\n <!-- Observa\u00E7\u00F5es -->\n <div class=\"detail-section\" *ngIf=\"schedule.observations\">\n <h4 class=\"section-title\">{{ 'sr.schedule.notes' | translate }}</h4>\n <p class=\"observations-text\">{{ schedule.observations }}</p>\n </div>\n\n </div>\n\n <ng-template pTemplate=\"footer\">\n <div class=\"dialog-footer\">\n <div class=\"footer-left\">\n <button \n *ngIf=\"showDeleteButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.delete' | translate\" \n icon=\"pi pi-trash\"\n class=\"p-button-danger p-button-text\"\n (click)=\"deleteSchedule()\">\n </button>\n </div>\n <div class=\"footer-right\">\n <button \n *ngIf=\"showRejectButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.reject' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-warning\"\n (click)=\"rejectSchedule()\">\n </button>\n <button \n *ngIf=\"showCancelButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.cancel' | translate\" \n icon=\"pi pi-ban\"\n class=\"p-button-secondary\"\n (click)=\"cancelSchedule()\">\n </button>\n <button \n *ngIf=\"showAcceptButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.accept' | translate\" \n icon=\"pi pi-check\"\n class=\"p-button-success\"\n (click)=\"acceptSchedule()\">\n </button>\n <button \n *ngIf=\"showEditButton\"\n pButton type=\"button\" \n [label]=\"'sr.schedule.edit_schedule' | translate\" \n icon=\"pi pi-pencil\"\n (click)=\"editSchedule()\">\n </button>\n <button \n pButton type=\"button\" \n [label]=\"'sr.schedule.close' | translate\" \n icon=\"pi pi-times\"\n class=\"p-button-text\"\n (click)=\"closeDialog()\">\n </button>\n </div>\n </div>\n </ng-template>\n\n</p-dialog>\n\n<p-confirmDialog></p-confirmDialog>\n", styles: [".dialog-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.dialog-header h3{margin:0;font-size:1.25rem;font-weight:600;flex:1}.schedule-detail-content{padding:.5rem 0}.detail-section{margin-bottom:1rem}.detail-section .section-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-color)}.detail-section .detail-row{display:flex;align-items:flex-start;margin-bottom:.75rem;gap:.5rem}.detail-section .detail-row .detail-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-color-secondary);min-width:140px;flex-shrink:0}.detail-section .detail-row .detail-label i{font-size:.875rem}.detail-section .detail-row .detail-value{color:var(--text-color);flex:1}.detail-section .description-text,.detail-section .observations-text{color:var(--text-color);line-height:1.6;margin:0;white-space:pre-wrap}.detail-section .participants-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-section .participants-list .participant-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-50);border-radius:4px}.detail-section .participants-list .participant-item i{color:var(--text-color-secondary);font-size:.875rem}.detail-section .participants-list .participant-item span{flex:1;color:var(--text-color)}.detail-section .participants-list .participant-item .participant-status{font-size:.75rem}.detail-section .no-participants{color:var(--text-color-secondary);font-style:italic;margin:.5rem 0 0}.dialog-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.dialog-footer .footer-left{display:flex;gap:.5rem}.dialog-footer .footer-right{display:flex;gap:.5rem;margin-left:auto}:host ::ng-deep .schedule-detail-dialog{width:600px}\n"] }]
183
+ }], ctorParameters: () => [{ type: i1.TranslationService }, { type: i2.ConfirmationService }], propDecorators: { visible: [{
224
184
  type: Input
225
185
  }], schedule: [{
226
186
  type: Input
@@ -241,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
241
201
  }], onClose: [{
242
202
  type: Output
243
203
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvY29tcG9uZW50cy9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9jb21wb25lbnRzL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBNEI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBY2Y7SUFDQTtJQWRWLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsUUFBUSxHQUFvQyxJQUFJLENBQUM7SUFDakQsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFeEIsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFDNUMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO0lBQ3BELE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTdDLFlBQ21CLGtCQUE4QyxFQUM5QyxtQkFBd0M7UUFEeEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUE0QjtRQUM5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQ3hELENBQUM7SUFFSixJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQztZQUN4RSxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQztZQUNyRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO1lBQ2pFLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1lBQ2hFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUM7WUFDeEUsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUM7WUFDckUsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztZQUNqRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNoRSxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUUzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDO1lBQ3hFLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDO1lBQ3JFLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7WUFDakUsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7WUFDaEUsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQztZQUN4RSxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQztZQUNyRSxJQUFJLEVBQUUsNEJBQTRCO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO1lBQ2pFLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1lBQ2hFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUErQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDdkUsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JDLEdBQUcsRUFBRSxTQUFTO2dCQUNkLEtBQUssRUFBRSxTQUFTO2dCQUNoQixJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsU0FBUztnQkFDZixNQUFNLEVBQUUsU0FBUzthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUErQztRQUM5RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQTJCO1lBQ3JDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQztZQUNyRixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUM7WUFDM0YsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDO1lBQ3ZGLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztTQUNoRyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUErQztRQUNqRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQXFDO1lBQ25ELENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTTtZQUM5QixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVM7WUFDcEMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO1lBQy9CLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUTtTQUN0QyxDQUFDO1FBQ0YsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxVQUE4QjtRQUMvQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUEyQjtZQUNyQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQztZQUN4RSxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQztZQUMxRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztZQUM1RSxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxnQ0FBZ0MsQ0FBQztZQUM5RSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztZQUM1RSxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztTQUM3RSxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0YsT0FBTyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekcsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkosQ0FBQztJQUVELG9CQUFvQixDQUFDLFlBQWdDO1FBQ25ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMxRSxDQUFDO2FBQU0sSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDMUUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QixDQUFDLFlBQWdDO1FBQ3RELElBQUksWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLFlBQVksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO3dHQTFNVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qix1WUFKdkIsQ0FBQyxtQkFBbUIsQ0FBQywwQkN4Q2xDLG9yTkFpTUEseWtFRDVKSSxZQUFZLCtQQUFFLFlBQVksMGdDQUFFLFlBQVksb1FBQUUsU0FBUywrSkFDbkQsYUFBYSwwSkFBRSxhQUFhLDhCQUFFLG1CQUFtQixtb0JBQUUscUJBQXFCOzs0RkFNL0QsdUJBQXVCO2tCQVhuQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUzt3QkFDbkQsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUI7cUJBQ3pFLGFBQ1UsQ0FBQyxtQkFBbUIsQ0FBQztpSUFLdkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gUHJpbWVOR1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuLy8gTG9jYWxcbmltcG9ydCB7IFNjaGVkdWxlVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY2hlZHVsZVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBTY2hlZHVsZSwgU2NoZWR1bGVQYXJ0aWNpcGFudCB9IGZyb20gJy4uL21vZGVscy9zY2hlZHVsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2NoZWR1bGVQcmlvcml0eSB9IGZyb20gJy4uL21vZGVscy9zY2hlZHVsZS5lbnVtcyc7XG5cbnR5cGUgUHJpb3JpdHlTZXZlcml0eSA9ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50cyBleHRlbmRzIFNjaGVkdWxlIHtcbiAgcGFydGljaXBhbnRzPzogU2NoZWR1bGVQYXJ0aWNpcGFudFtdO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICBvYnNlcnZhdGlvbnM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVEZXRhaWxBY3Rpb24ge1xuICB0eXBlOiAnYWNjZXB0JyB8ICdyZWplY3QnIHwgJ2NhbmNlbCcgfCAnZWRpdCcgfCAnZGVsZXRlJztcbiAgc2NoZWR1bGU6IFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50cztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy1zY2hlZHVsZS1kZXRhaWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVGFnTW9kdWxlLFxuICAgIERpdmlkZXJNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIENvbmZpcm1EaWFsb2dNb2R1bGUsIFNjaGVkdWxlVHJhbnNsYXRlUGlwZVxuICBdLFxuICBwcm92aWRlcnM6IFtDb25maXJtYXRpb25TZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlRGV0YWlsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmlzaWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzY2hlZHVsZTogU2NoZWR1bGVXaXRoUGFydGljaXBhbnRzIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNob3dBY2NlcHRCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1JlamVjdEJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93Q2FuY2VsQnV0dG9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUJ1dHRvbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgb25BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFNjaGVkdWxlRGV0YWlsQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZTogU2NoZWR1bGVUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBnZXQgZGlhbG9nSGVhZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZWR1bGU/Lm5hbWUgPz8gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5zY2hlZHVsZV9kZXRhaWxzJyk7XG4gIH1cblxuICBjbG9zZURpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIGVkaXRTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgdGhpcy5vbkFjdGlvbi5lbWl0KHsgdHlwZTogJ2VkaXQnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICB9XG4gIH1cblxuICBhY2NlcHRTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NoZWR1bGUpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1fYWNjZXB0JyksXG4gICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuY29uZmlybWF0aW9uJyksXG4gICAgICBpY29uOiAncGkgcGktcXVlc3Rpb24tY2lyY2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdhY2NlcHQnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVqZWN0U2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5jb25maXJtX3JlamVjdCcpLFxuICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1hdGlvbicpLFxuICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdyZWplY3QnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2FuY2VsU2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5jb25maXJtX2NhbmNlbCcpLFxuICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1hdGlvbicpLFxuICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdjYW5jZWwnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlU2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5jb25maXJtX2RlbGV0ZScpLFxuICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmNvbmZpcm1hdGlvbicpLFxuICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm8nKSxcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zY2hlZHVsZSkge1xuICAgICAgICAgIHRoaXMub25BY3Rpb24uZW1pdCh7IHR5cGU6ICdkZWxldGUnLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vdF9pbmZvcm1lZCcpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0ZU9iaiA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgaWYgKGlzTmFOKGRhdGVPYmouZ2V0VGltZSgpKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5pbnZhbGlkX2RhdGUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlT2JqLnRvTG9jYWxlU3RyaW5nKCdwdC1CUicsIHtcbiAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICBtaW51dGU6ICcyLWRpZ2l0J1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5pbnZhbGlkX2RhdGUnKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBzdHJpbmcgfCBTY2hlZHVsZVByaW9yaXR5IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXByaW9yaXR5KSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5ub3RfaW5mb3JtZWQnKTtcbiAgICB9XG4gICAgY29uc3QgbGFiZWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuTG93XTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5wcmlvcml0eV9sb3cnKSxcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lk1lZGl1bV06IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfbWVkaXVtJyksXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5IaWdoXTogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5wcmlvcml0eV9oaWdoJyksXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5Dcml0aWNhbF06IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfY3JpdGljYWwnKVxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1twcmlvcml0eV0gPz8gcHJpb3JpdHk7XG4gIH1cblxuICBnZXRQcmlvcml0eVNldmVyaXR5KHByaW9yaXR5OiBzdHJpbmcgfCBTY2hlZHVsZVByaW9yaXR5IHwgdW5kZWZpbmVkKTogUHJpb3JpdHlTZXZlcml0eSB7XG4gICAgaWYgKCFwcmlvcml0eSkge1xuICAgICAgcmV0dXJuICdpbmZvJztcbiAgICB9XG4gICAgY29uc3Qgc2V2ZXJpdGllczogUmVjb3JkPHN0cmluZywgUHJpb3JpdHlTZXZlcml0eT4gPSB7XG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5Mb3ddOiAnaW5mbycsXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5NZWRpdW1dOiAnc3VjY2VzcycsXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5IaWdoXTogJ3dhcm4nLFxuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuQ3JpdGljYWxdOiAnZGFuZ2VyJ1xuICAgIH07XG4gICAgcmV0dXJuIHNldmVyaXRpZXNbcHJpb3JpdHldID8/ICdpbmZvJztcbiAgfVxuXG4gIGdldFJlY3VycmVuY2VMYWJlbChyZWN1cnJlbmNlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghcmVjdXJyZW5jZSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9ub25lJyk7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdOT05FJzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX25vbmUnKSxcbiAgICAgICdEQUlMWSc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9kYWlseScpLFxuICAgICAgJ1dFRUtMWSc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV93ZWVrbHknKSxcbiAgICAgICdNT05USExZJzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX21vbnRobHknKSxcbiAgICAgICdZRUFSTFknOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnJlY3VycmVuY2VfeWVhcmx5JyksXG4gICAgICAnQ1VTVE9NJzogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX2N1c3RvbScpXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3JlY3VycmVuY2VdID8/IHJlY3VycmVuY2U7XG4gIH1cblxuICBnZXRPcmdhbml6ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgb3JnYW5pemVyID0gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maW5kKChwOiBTY2hlZHVsZVBhcnRpY2lwYW50KSA9PiBwLm9yZ2FuaXplcik7XG4gICAgcmV0dXJuIG9yZ2FuaXplcj8uY29sbGFib3JhdG9yPy5uYW1lID8/IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm90X2luZm9ybWVkJyk7XG4gIH1cblxuICBnZXRQYXJ0aWNpcGFudHNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNjaGVkdWxlPy5wYXJ0aWNpcGFudHM/LmZpbHRlcigocDogU2NoZWR1bGVQYXJ0aWNpcGFudCkgPT4gIXAub3JnYW5pemVyKS5sZW5ndGggPz8gMDtcbiAgfVxuXG4gIGdldFBhcnRpY2lwYW50c0xpc3QoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0aWNpcGFudHMgPSB0aGlzLnNjaGVkdWxlPy5wYXJ0aWNpcGFudHM/LmZpbHRlcigocDogU2NoZWR1bGVQYXJ0aWNpcGFudCkgPT4gIXAub3JnYW5pemVyKSA/PyBbXTtcbiAgICBpZiAocGFydGljaXBhbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm9fcGFydGljaXBhbnRzJyk7XG4gICAgfVxuICAgIHJldHVybiBwYXJ0aWNpcGFudHMubWFwKChwOiBTY2hlZHVsZVBhcnRpY2lwYW50KSA9PiBwLmNvbGxhYm9yYXRvcj8ubmFtZSA/PyB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vX25hbWUnKSkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldENvbmZpcm1hdGlvbkxhYmVsKGNvbmZpcm1hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpcm1hdGlvbikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAoY29uZmlybWF0aW9uID09PSAnQ09ORklSTUVEJykge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuc3RhdHVzX2FjY2VwdGVkJyk7XG4gICAgfSBlbHNlIGlmIChjb25maXJtYXRpb24gPT09ICdERUNMSU5FRCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnN0YXR1c19yZWplY3RlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5zdGF0dXNfcGVuZGluZycpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbmZpcm1hdGlvblNldmVyaXR5KGNvbmZpcm1hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2Fybicge1xuICAgIGlmIChjb25maXJtYXRpb24gPT09ICdDT05GSVJNRUQnKSB7XG4gICAgICByZXR1cm4gJ3N1Y2Nlc3MnO1xuICAgIH0gZWxzZSBpZiAoY29uZmlybWF0aW9uID09PSAnREVDTElORUQnKSB7XG4gICAgICByZXR1cm4gJ2Rhbmdlcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnd2Fybic7XG4gICAgfVxuICB9XG59XG4iLCI8cC1kaWFsb2dcbiAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcbiAgW21vZGFsXT1cInRydWVcIlxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgW3Jlc2l6YWJsZV09XCJmYWxzZVwiXG4gIFtzdHlsZUNsYXNzXT1cIidzY2hlZHVsZS1kZXRhaWwtZGlhbG9nJ1wiXG4gIFtoZWFkZXJdPVwiZGlhbG9nSGVhZGVyXCJcbiAgKG9uSGlkZSk9XCJjbG9zZURpYWxvZygpXCI+XG4gIFxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICAgIDxoMz57eyBkaWFsb2dIZWFkZXIgfX08L2gzPlxuICAgICAgPHAtdGFnIFxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlPy5wcmlvcml0eVwiXG4gICAgICAgIFtzZXZlcml0eV09XCJnZXRQcmlvcml0eVNldmVyaXR5KHNjaGVkdWxlPy5wcmlvcml0eSlcIlxuICAgICAgICBbdmFsdWVdPVwiZ2V0UHJpb3JpdHlMYWJlbChzY2hlZHVsZT8ucHJpb3JpdHkpXCI+XG4gICAgICA8L3AtdGFnPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1kZXRhaWwtY29udGVudFwiICpuZ0lmPVwic2NoZWR1bGVcIj5cbiAgICBcbiAgICA8IS0tIEluZm9ybWHDp8O1ZXMgQsOhc2ljYXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCI+XG4gICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+e3sgJ3NyLnNjaGVkdWxlLmJhc2ljX2luZm8nIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2FsZW5kYXJcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLnR5cGUnIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX06XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57eyBzY2hlZHVsZS50eXBlPy5uYW1lID8/ICgnc3Iuc2NoZWR1bGUubm90X2luZm9ybWVkJyB8IHNjaGVkdWxlVHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2xvY2tcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLndoZW5fb2NjdXJzJyB8IHNjaGVkdWxlVHJhbnNsYXRlIH19OlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLXZhbHVlXCI+e3sgc2NoZWR1bGUud2hlbk9jY3VycyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiICpuZ0lmPVwic2NoZWR1bGUuZHVyYXRpb25cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWhvdXJnbGFzc1wiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUuZHVyYXRpb24nIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX06XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57eyBzY2hlZHVsZS5kdXJhdGlvbiB9fSB7eyAnc3Iuc2NoZWR1bGUubWludXRlcycgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktcmVmcmVzaFwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZScgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IGdldFJlY3VycmVuY2VMYWJlbChzY2hlZHVsZS5yZWN1cnJlbmNlKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cblxuICAgIDwhLS0gRGVzY3Jpw6fDo28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5kZXNjcmlwdGlvblwiPlxuICAgICAgPGg0IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPnt7ICdzci5zY2hlZHVsZS5kZXNjcmlwdGlvbicgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTwvaDQ+XG4gICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uLXRleHRcIj57eyBzY2hlZHVsZS5kZXNjcmlwdGlvbiB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWRpdmlkZXIgKm5nSWY9XCJzY2hlZHVsZS5kZXNjcmlwdGlvblwiPjwvcC1kaXZpZGVyPlxuXG4gICAgPCEtLSBQYXJ0aWNpcGFudGVzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvblwiPlxuICAgICAgPGg0IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPnt7ICdzci5zY2hlZHVsZS5wYXJ0aWNpcGFudHMnIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUub3JnYW5pemVyJyB8IHNjaGVkdWxlVHJhbnNsYXRlIH19OlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLXZhbHVlXCI+e3sgZ2V0T3JnYW5pemVyTmFtZSgpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2Vyc1wiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUucGFydGljaXBhbnRzJyB8IHNjaGVkdWxlVHJhbnNsYXRlIH19ICh7eyBnZXRQYXJ0aWNpcGFudHNDb3VudCgpIH19KTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJwYXJ0aWNpcGFudHMtbGlzdFwiICpuZ0lmPVwiZ2V0UGFydGljaXBhbnRzQ291bnQoKSA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYW50LWl0ZW1cIiAqbmdGb3I9XCJsZXQgcGFydGljaXBhbnQgb2Ygc2NoZWR1bGUucGFydGljaXBhbnRzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwYXJ0aWNpcGFudC5vcmdhbml6ZXJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuPnt7IHBhcnRpY2lwYW50LmNvbGxhYm9yYXRvcj8ubmFtZSA/PyAoJ3NyLnNjaGVkdWxlLm5vX25hbWUnIHwgc2NoZWR1bGVUcmFuc2xhdGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHAtdGFnIFxuICAgICAgICAgICAgICAqbmdJZj1cInBhcnRpY2lwYW50LmNvbmZpcm1hdGlvblwiXG4gICAgICAgICAgICAgIFtzZXZlcml0eV09XCJnZXRDb25maXJtYXRpb25TZXZlcml0eShwYXJ0aWNpcGFudC5jb25maXJtYXRpb24pXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldENvbmZpcm1hdGlvbkxhYmVsKHBhcnRpY2lwYW50LmNvbmZpcm1hdGlvbilcIlxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicGFydGljaXBhbnQtc3RhdHVzXCI+XG4gICAgICAgICAgICA8L3AtdGFnPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgY2xhc3M9XCJuby1wYXJ0aWNpcGFudHNcIiAqbmdJZj1cImdldFBhcnRpY2lwYW50c0NvdW50KCkgPT09IDBcIj5cbiAgICAgICAge3sgJ3NyLnNjaGVkdWxlLm5vX3BhcnRpY2lwYW50c19iZXNpZGVzX29yZ2FuaXplcicgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cblxuICAgIDwhLS0gTG9jYWwgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5sb2NhdGlvblwiPlxuICAgICAgPGg0IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPnt7ICdzci5zY2hlZHVsZS5sb2NhdGlvbicgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTwvaDQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktbWFwLW1hcmtlclwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUuYWRkcmVzcycgfCBzY2hlZHVsZVRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLmxvY2F0aW9uIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE9ic2VydmHDp8O1ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5vYnNlcnZhdGlvbnNcIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUubm90ZXMnIHwgc2NoZWR1bGVUcmFuc2xhdGUgfX08L2g0PlxuICAgICAgPHAgY2xhc3M9XCJvYnNlcnZhdGlvbnMtdGV4dFwiPnt7IHNjaGVkdWxlLm9ic2VydmF0aW9ucyB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItbGVmdFwiPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICpuZ0lmPVwic2hvd0RlbGV0ZUJ1dHRvblwiXG4gICAgICAgICAgcEJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgW2xhYmVsXT1cIidzci5zY2hlZHVsZS5kZWxldGUnIHwgc2NoZWR1bGVUcmFuc2xhdGVcIiBcbiAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tZGFuZ2VyIHAtYnV0dG9uLXRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLXJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gXG4gICAgICAgICAgKm5nSWY9XCJzaG93UmVqZWN0QnV0dG9uXCJcbiAgICAgICAgICBwQnV0dG9uIFxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICBbbGFiZWxdPVwiJ3NyLnNjaGVkdWxlLnJlamVjdCcgfCBzY2hlZHVsZVRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS10aW1lc1wiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi13YXJuaW5nXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVqZWN0U2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2FuY2VsJyB8IHNjaGVkdWxlVHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLWJhblwiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zZWNvbmRhcnlcIlxuICAgICAgICAgIChjbGljayk9XCJjYW5jZWxTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICpuZ0lmPVwic2hvd0FjY2VwdEJ1dHRvblwiXG4gICAgICAgICAgcEJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgW2xhYmVsXT1cIidzci5zY2hlZHVsZS5hY2NlcHQnIHwgc2NoZWR1bGVUcmFuc2xhdGVcIiBcbiAgICAgICAgICBpY29uPVwicGkgcGktY2hlY2tcIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc3VjY2Vzc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImFjY2VwdFNjaGVkdWxlKClcIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gXG4gICAgICAgICAgKm5nSWY9XCJzaG93RWRpdEJ1dHRvblwiXG4gICAgICAgICAgcEJ1dHRvbiBcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgW2xhYmVsXT1cIidzci5zY2hlZHVsZS5lZGl0X3NjaGVkdWxlJyB8IHNjaGVkdWxlVHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLXBlbmNpbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIHBCdXR0b24gXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2xvc2UnIHwgc2NoZWR1bGVUcmFuc2xhdGVcIiBcbiAgICAgICAgICBpY29uPVwicGkgcGktdGltZXNcIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9wLWRpYWxvZz5cblxuPHAtY29uZmlybURpYWxvZz48L3AtY29uZmlybURpYWxvZz5cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvY29tcG9uZW50cy9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zY2hlZHVsZS9jb21wb25lbnRzL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGdCQUFnQjtBQUNoQixPQUFPLEVBQXNCLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBNEI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBY2Y7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LFlBQVksRUFBRSxTQUFTO3dCQUNuRCxhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGFBQWE7cUJBQ2pFLGFBQ1UsQ0FBQyxtQkFBbUIsQ0FBQzt5SEFLdkIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gUHJpbWVOR1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuLy8gQ29tcG9uZW50cyBBSVxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2NvbXBvbmVudHMtYWknO1xuXG4vLyBMb2NhbFxuaW1wb3J0IHsgU2NoZWR1bGUsIFNjaGVkdWxlUGFydGljaXBhbnQgfSBmcm9tICcuLi9tb2RlbHMvc2NoZWR1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNjaGVkdWxlUHJpb3JpdHkgfSBmcm9tICcuLi9tb2RlbHMvc2NoZWR1bGUuZW51bXMnO1xuXG50eXBlIFByaW9yaXR5U2V2ZXJpdHkgPSAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZVdpdGhQYXJ0aWNpcGFudHMgZXh0ZW5kcyBTY2hlZHVsZSB7XG4gIHBhcnRpY2lwYW50cz86IFNjaGVkdWxlUGFydGljaXBhbnRbXTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgb2JzZXJ2YXRpb25zPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlRGV0YWlsQWN0aW9uIHtcbiAgdHlwZTogJ2FjY2VwdCcgfCAncmVqZWN0JyB8ICdjYW5jZWwnIHwgJ2VkaXQnIHwgJ2RlbGV0ZSc7XG4gIHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhQYXJ0aWNpcGFudHM7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Mtc2NoZWR1bGUtZGV0YWlsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSwgRGlhbG9nTW9kdWxlLCBCdXR0b25Nb2R1bGUsIFRhZ01vZHVsZSxcbiAgICBEaXZpZGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBDb25maXJtRGlhbG9nTW9kdWxlLCBUcmFuc2xhdGVQaXBlXG4gIF0sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNjaGVkdWxlOiBTY2hlZHVsZVdpdGhQYXJ0aWNpcGFudHMgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2hvd0FjY2VwdEJ1dHRvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UmVqZWN0QnV0dG9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dDYW5jZWxCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0VkaXRCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RGVsZXRlQnV0dG9uID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBvbkFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NoZWR1bGVEZXRhaWxBY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdDogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgZ2V0IGRpYWxvZ0hlYWRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNjaGVkdWxlPy5uYW1lID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnNjaGVkdWxlX2RldGFpbHMnKTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgZWRpdFNjaGVkdWxlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNjaGVkdWxlKSB7XG4gICAgICB0aGlzLm9uQWN0aW9uLmVtaXQoeyB0eXBlOiAnZWRpdCcsIHNjaGVkdWxlOiB0aGlzLnNjaGVkdWxlIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFjY2VwdFNjaGVkdWxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY2hlZHVsZSkgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlybUFjdGlvbignc3Iuc2NoZWR1bGUuY29uZmlybV9hY2NlcHQnLCAncGkgcGktcXVlc3Rpb24tY2lyY2xlJywgJ2FjY2VwdCcpO1xuICB9XG5cbiAgcmVqZWN0U2NoZWR1bGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjaGVkdWxlKSByZXR1cm47XG4gICAgdGhpcy5jb25maXJtQWN0aW9uKCdzci5zY2hlZHVsZS5jb25maXJtX3JlamVjdCcsICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZScsICdyZWplY3QnKTtcbiAgfVxuXG4gIGNhbmNlbFNjaGVkdWxlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY2hlZHVsZSkgcmV0dXJuO1xuICAgIHRoaXMuY29uZmlybUFjdGlvbignc3Iuc2NoZWR1bGUuY29uZmlybV9jYW5jZWwnLCAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnLCAnY2FuY2VsJyk7XG4gIH1cblxuICBkZWxldGVTY2hlZHVsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NoZWR1bGUpIHJldHVybjtcbiAgICB0aGlzLmNvbmZpcm1BY3Rpb24oJ3NyLnNjaGVkdWxlLmNvbmZpcm1fZGVsZXRlJywgJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJywgJ2RlbGV0ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maXJtQWN0aW9uKG1lc3NhZ2VLZXk6IHN0cmluZywgaWNvbjogc3RyaW5nLCB0eXBlOiBTY2hlZHVsZURldGFpbEFjdGlvblsndHlwZSddKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgbWVzc2FnZTogdGhpcy50LnRyYW5zbGF0ZShtZXNzYWdlS2V5KSxcbiAgICAgIGhlYWRlcjogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuY29uZmlybWF0aW9uJyksXG4gICAgICBpY29uLFxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnllcycpLFxuICAgICAgcmVqZWN0TGFiZWw6IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vJyksXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2NoZWR1bGUpIHtcbiAgICAgICAgICB0aGlzLm9uQWN0aW9uLmVtaXQoeyB0eXBlLCBzY2hlZHVsZTogdGhpcy5zY2hlZHVsZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5ub3RfaW5mb3JtZWQnKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlKTtcbiAgICAgIGlmIChpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLmludmFsaWRfZGF0ZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGVPYmoudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJywge1xuICAgICAgICBkYXk6ICcyLWRpZ2l0JywgbW9udGg6ICcyLWRpZ2l0JywgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5pbnZhbGlkX2RhdGUnKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmlvcml0eUxhYmVsKHByaW9yaXR5OiBzdHJpbmcgfCBTY2hlZHVsZVByaW9yaXR5IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXByaW9yaXR5KSB7XG4gICAgICByZXR1cm4gdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUubm90X2luZm9ybWVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lkxvd106IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnByaW9yaXR5X2xvdycpLFxuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuTWVkaXVtXTogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfbWVkaXVtJyksXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5IaWdoXTogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucHJpb3JpdHlfaGlnaCcpLFxuICAgICAgW1NjaGVkdWxlUHJpb3JpdHkuQ3JpdGljYWxdOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5wcmlvcml0eV9jcml0aWNhbCcpXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3ByaW9yaXR5XSA/PyBwcmlvcml0eTtcbiAgfVxuXG4gIGdldFByaW9yaXR5U2V2ZXJpdHkocHJpb3JpdHk6IHN0cmluZyB8IFNjaGVkdWxlUHJpb3JpdHkgfCB1bmRlZmluZWQpOiBQcmlvcml0eVNldmVyaXR5IHtcbiAgICBpZiAoIXByaW9yaXR5KSB7IHJldHVybiAnaW5mbyc7IH1cbiAgICBjb25zdCBzZXZlcml0aWVzOiBSZWNvcmQ8c3RyaW5nLCBQcmlvcml0eVNldmVyaXR5PiA9IHtcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lkxvd106ICdpbmZvJyxcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5Lk1lZGl1bV06ICdzdWNjZXNzJyxcbiAgICAgIFtTY2hlZHVsZVByaW9yaXR5LkhpZ2hdOiAnd2FybicsXG4gICAgICBbU2NoZWR1bGVQcmlvcml0eS5Dcml0aWNhbF06ICdkYW5nZXInXG4gICAgfTtcbiAgICByZXR1cm4gc2V2ZXJpdGllc1twcmlvcml0eV0gPz8gJ2luZm8nO1xuICB9XG5cbiAgZ2V0UmVjdXJyZW5jZUxhYmVsKHJlY3VycmVuY2U6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCFyZWN1cnJlbmNlKSB7XG4gICAgICByZXR1cm4gdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9ub25lJyk7XG4gICAgfVxuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdOT05FJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9ub25lJyksXG4gICAgICAnREFJTFknOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX2RhaWx5JyksXG4gICAgICAnV0VFS0xZJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV93ZWVrbHknKSxcbiAgICAgICdNT05USExZJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV9tb250aGx5JyksXG4gICAgICAnWUVBUkxZJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZV95ZWFybHknKSxcbiAgICAgICdDVVNUT00nOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5yZWN1cnJlbmNlX2N1c3RvbScpXG4gICAgfTtcbiAgICByZXR1cm4gbGFiZWxzW3JlY3VycmVuY2VdID8/IHJlY3VycmVuY2U7XG4gIH1cblxuICBnZXRPcmdhbml6ZXJOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgb3JnYW5pemVyID0gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maW5kKChwOiBTY2hlZHVsZVBhcnRpY2lwYW50KSA9PiBwLm9yZ2FuaXplcik7XG4gICAgcmV0dXJuIG9yZ2FuaXplcj8uY29sbGFib3JhdG9yPy5uYW1lID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vdF9pbmZvcm1lZCcpO1xuICB9XG5cbiAgZ2V0UGFydGljaXBhbnRzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maWx0ZXIoKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpID0+ICFwLm9yZ2FuaXplcikubGVuZ3RoID8/IDA7XG4gIH1cblxuICBnZXRQYXJ0aWNpcGFudHNMaXN0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydGljaXBhbnRzID0gdGhpcy5zY2hlZHVsZT8ucGFydGljaXBhbnRzPy5maWx0ZXIoKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpID0+ICFwLm9yZ2FuaXplcikgPz8gW107XG4gICAgaWYgKHBhcnRpY2lwYW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5ub19wYXJ0aWNpcGFudHMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnRpY2lwYW50cy5tYXAoKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpID0+IHAuY29sbGFib3JhdG9yPy5uYW1lID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLm5vX25hbWUnKSkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldENvbmZpcm1hdGlvbkxhYmVsKGNvbmZpcm1hdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpcm1hdGlvbikgeyByZXR1cm4gJyc7IH1cbiAgICBjb25zdCBsYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnQ09ORklSTUVEJzogdGhpcy50LnRyYW5zbGF0ZSgnc3Iuc2NoZWR1bGUuc3RhdHVzX2FjY2VwdGVkJyksXG4gICAgICAnREVDTElORUQnOiB0aGlzLnQudHJhbnNsYXRlKCdzci5zY2hlZHVsZS5zdGF0dXNfcmVqZWN0ZWQnKVxuICAgIH07XG4gICAgcmV0dXJuIGxhYmVsc1tjb25maXJtYXRpb25dID8/IHRoaXMudC50cmFuc2xhdGUoJ3NyLnNjaGVkdWxlLnN0YXR1c19wZW5kaW5nJyk7XG4gIH1cblxuICBnZXRDb25maXJtYXRpb25TZXZlcml0eShjb25maXJtYXRpb246IHN0cmluZyB8IHVuZGVmaW5lZCk6ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm4nIHtcbiAgICBjb25zdCBzZXZlcml0aWVzOiBSZWNvcmQ8c3RyaW5nLCAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuJz4gPSB7XG4gICAgICAnQ09ORklSTUVEJzogJ3N1Y2Nlc3MnLFxuICAgICAgJ0RFQ0xJTkVEJzogJ2RhbmdlcidcbiAgICB9O1xuICAgIHJldHVybiBzZXZlcml0aWVzW2NvbmZpcm1hdGlvbiA/PyAnJ10gPz8gJ3dhcm4nO1xuICB9XG59XG4iLCI8cC1kaWFsb2dcbiAgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcbiAgW21vZGFsXT1cInRydWVcIlxuICBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgW3Jlc2l6YWJsZV09XCJmYWxzZVwiXG4gIFtzdHlsZUNsYXNzXT1cIidzY2hlZHVsZS1kZXRhaWwtZGlhbG9nJ1wiXG4gIFtoZWFkZXJdPVwiZGlhbG9nSGVhZGVyXCJcbiAgKG9uSGlkZSk9XCJjbG9zZURpYWxvZygpXCI+XG4gIFxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICAgIDxoMz57eyBkaWFsb2dIZWFkZXIgfX08L2gzPlxuICAgICAgPHAtdGFnIFxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlPy5wcmlvcml0eVwiXG4gICAgICAgIFtzZXZlcml0eV09XCJnZXRQcmlvcml0eVNldmVyaXR5KHNjaGVkdWxlPy5wcmlvcml0eSlcIlxuICAgICAgICBbdmFsdWVdPVwiZ2V0UHJpb3JpdHlMYWJlbChzY2hlZHVsZT8ucHJpb3JpdHkpXCI+XG4gICAgICA8L3AtdGFnPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxkaXYgY2xhc3M9XCJzY2hlZHVsZS1kZXRhaWwtY29udGVudFwiICpuZ0lmPVwic2NoZWR1bGVcIj5cbiAgICBcbiAgICA8IS0tIEluZm9ybWHDp8O1ZXMgQsOhc2ljYXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCI+XG4gICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+e3sgJ3NyLnNjaGVkdWxlLmJhc2ljX2luZm8nIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNhbGVuZGFyXCI+PC9pPlxuICAgICAgICAgIHt7ICdzci5zY2hlZHVsZS50eXBlJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLnR5cGU/Lm5hbWUgPz8gKCdzci5zY2hlZHVsZS5ub3RfaW5mb3JtZWQnIHwgdHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY2xvY2tcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLndoZW5fb2NjdXJzJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLndoZW5PY2N1cnMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1yb3dcIiAqbmdJZj1cInNjaGVkdWxlLmR1cmF0aW9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1ob3VyZ2xhc3NcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLmR1cmF0aW9uJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLmR1cmF0aW9uIH19IHt7ICdzci5zY2hlZHVsZS5taW51dGVzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktcmVmcmVzaFwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUucmVjdXJyZW5jZScgfCB0cmFuc2xhdGUgfX06XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57eyBnZXRSZWN1cnJlbmNlTGFiZWwoc2NoZWR1bGUucmVjdXJyZW5jZSkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XG5cbiAgICA8IS0tIERlc2NyacOnw6NvIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvblwiICpuZ0lmPVwic2NoZWR1bGUuZGVzY3JpcHRpb25cIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIDxwIGNsYXNzPVwiZGVzY3JpcHRpb24tdGV4dFwiPnt7IHNjaGVkdWxlLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHAtZGl2aWRlciAqbmdJZj1cInNjaGVkdWxlLmRlc2NyaXB0aW9uXCI+PC9wLWRpdmlkZXI+XG5cbiAgICA8IS0tIFBhcnRpY2lwYW50ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCI+XG4gICAgICA8aDQgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+e3sgJ3NyLnNjaGVkdWxlLnBhcnRpY2lwYW50cycgfCB0cmFuc2xhdGUgfX08L2g0PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlclwiPjwvaT5cbiAgICAgICAgICB7eyAnc3Iuc2NoZWR1bGUub3JnYW5pemVyJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IGdldE9yZ2FuaXplck5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlcnNcIj48L2k+XG4gICAgICAgICAge3sgJ3NyLnNjaGVkdWxlLnBhcnRpY2lwYW50cycgfCB0cmFuc2xhdGUgfX0gKHt7IGdldFBhcnRpY2lwYW50c0NvdW50KCkgfX0pOlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYW50cy1saXN0XCIgKm5nSWY9XCJnZXRQYXJ0aWNpcGFudHNDb3VudCgpID4gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhbnQtaXRlbVwiICpuZ0Zvcj1cImxldCBwYXJ0aWNpcGFudCBvZiBzY2hlZHVsZS5wYXJ0aWNpcGFudHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhcnRpY2lwYW50Lm9yZ2FuaXplclwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2VyXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4+e3sgcGFydGljaXBhbnQuY29sbGFib3JhdG9yPy5uYW1lID8/ICgnc3Iuc2NoZWR1bGUubm9fbmFtZScgfCB0cmFuc2xhdGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHAtdGFnIFxuICAgICAgICAgICAgICAqbmdJZj1cInBhcnRpY2lwYW50LmNvbmZpcm1hdGlvblwiXG4gICAgICAgICAgICAgIFtzZXZlcml0eV09XCJnZXRDb25maXJtYXRpb25TZXZlcml0eShwYXJ0aWNpcGFudC5jb25maXJtYXRpb24pXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldENvbmZpcm1hdGlvbkxhYmVsKHBhcnRpY2lwYW50LmNvbmZpcm1hdGlvbilcIlxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicGFydGljaXBhbnQtc3RhdHVzXCI+XG4gICAgICAgICAgICA8L3AtdGFnPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgY2xhc3M9XCJuby1wYXJ0aWNpcGFudHNcIiAqbmdJZj1cImdldFBhcnRpY2lwYW50c0NvdW50KCkgPT09IDBcIj5cbiAgICAgICAge3sgJ3NyLnNjaGVkdWxlLm5vX3BhcnRpY2lwYW50c19iZXNpZGVzX29yZ2FuaXplcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XG5cbiAgICA8IS0tIExvY2FsIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvblwiICpuZ0lmPVwic2NoZWR1bGUubG9jYXRpb25cIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUubG9jYXRpb24nIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXAtbWFya2VyXCI+PC9pPlxuICAgICAgICAgIHt7ICdzci5zY2hlZHVsZS5hZGRyZXNzJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7IHNjaGVkdWxlLmxvY2F0aW9uIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE9ic2VydmHDp8O1ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldGFpbC1zZWN0aW9uXCIgKm5nSWY9XCJzY2hlZHVsZS5vYnNlcnZhdGlvbnNcIj5cbiAgICAgIDxoNCBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj57eyAnc3Iuc2NoZWR1bGUubm90ZXMnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICAgIDxwIGNsYXNzPVwib2JzZXJ2YXRpb25zLXRleHRcIj57eyBzY2hlZHVsZS5vYnNlcnZhdGlvbnMgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWxlZnRcIj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dEZWxldGVCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuZGVsZXRlJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS10cmFzaFwiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1kYW5nZXIgcC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNjaGVkdWxlKClcIj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItcmlnaHRcIj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dSZWplY3RCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUucmVqZWN0JyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS10aW1lc1wiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi13YXJuaW5nXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVqZWN0U2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dDYW5jZWxCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2FuY2VsJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS1iYW5cIlxuICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsU2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dBY2NlcHRCdXR0b25cIlxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuYWNjZXB0JyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgIGljb249XCJwaSBwaS1jaGVja1wiXG4gICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zdWNjZXNzXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWNjZXB0U2NoZWR1bGUoKVwiPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAqbmdJZj1cInNob3dFZGl0QnV0dG9uXCJcbiAgICAgICAgICBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICBbbGFiZWxdPVwiJ3NyLnNjaGVkdWxlLmVkaXRfc2NoZWR1bGUnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLXBlbmNpbFwiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRTY2hlZHVsZSgpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIFxuICAgICAgICAgIFtsYWJlbF09XCInc3Iuc2NoZWR1bGUuY2xvc2UnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgaWNvbj1cInBpIHBpLXRpbWVzXCJcbiAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbjwvcC1kaWFsb2c+XG5cbjxwLWNvbmZpcm1EaWFsb2c+PC9wLWNvbmZpcm1EaWFsb2c+XG4iXX0=
@@ -2,8 +2,5 @@
2
2
  export { ScheduleFormComponent, ScheduleDetailComponent } from './components';
3
3
  // Services
4
4
  export { ScheduleService, ScheduleTypeService } from './services';
5
- // Translation
6
- export { ScheduleTranslationService } from '../../services/translation/translation.service';
7
- export { ScheduleTranslatePipe } from '../../services/translation/translate.pipe';
8
5
  export { SchedulePriority, ScheduleRecurrence, WeekDay, Month, RepeatWhen, OrdinalWeekDay, ParticipantConfirmation } from './models';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDYixPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUUsV0FBVztBQUNYLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbEUsY0FBYztBQUNkLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBVWxGLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCx1QkFBdUIsRUFDeEIsTUFBTSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb21wb25lbnRzXG5leHBvcnQgeyBTY2hlZHVsZUZvcm1Db21wb25lbnQsIFNjaGVkdWxlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmV4cG9ydCB0eXBlIHsgU2NoZWR1bGVEZXRhaWxBY3Rpb24sIFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50cyB9IGZyb20gJy4vY29tcG9uZW50cy9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50JztcblxuLy8gU2VydmljZXNcbmV4cG9ydCB7IFNjaGVkdWxlU2VydmljZSwgU2NoZWR1bGVUeXBlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG4vLyBUcmFuc2xhdGlvblxuZXhwb3J0IHsgU2NoZWR1bGVUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IFNjaGVkdWxlVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0ZS5waXBlJztcblxuLy8gTW9kZWxzIChpbnRlcmZhY2VzLCBlbnVtcywgdHlwZXMpXG5leHBvcnQgdHlwZSB7IFxuICBTY2hlZHVsZSwgXG4gIFNjaGVkdWxlVHlwZSwgXG4gIFNjaGVkdWxlUGFydGljaXBhbnQsIFxuICBQYXJ0aWNpcGFudExvb2t1cCwgXG4gIFBhcnRpY2lwYW50T3JpZ2luXG59IGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCB7IFxuICBTY2hlZHVsZVByaW9yaXR5LCBcbiAgU2NoZWR1bGVSZWN1cnJlbmNlLCBcbiAgV2Vla0RheSwgXG4gIE1vbnRoLCBcbiAgUmVwZWF0V2hlbiwgXG4gIE9yZGluYWxXZWVrRGF5LCBcbiAgUGFydGljaXBhbnRDb25maXJtYXRpb24gXG59IGZyb20gJy4vbW9kZWxzJztcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDYixPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUUsV0FBVztBQUNYLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFVbEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsT0FBTyxFQUNQLEtBQUssRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLHVCQUF1QixFQUN4QixNQUFNLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudHNcbmV4cG9ydCB7IFNjaGVkdWxlRm9ybUNvbXBvbmVudCwgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0IHR5cGUgeyBTY2hlZHVsZURldGFpbEFjdGlvbiwgU2NoZWR1bGVXaXRoUGFydGljaXBhbnRzIH0gZnJvbSAnLi9jb21wb25lbnRzL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQnO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0IHsgU2NoZWR1bGVTZXJ2aWNlLCBTY2hlZHVsZVR5cGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5cbi8vIE1vZGVscyAoaW50ZXJmYWNlcywgZW51bXMsIHR5cGVzKVxuZXhwb3J0IHR5cGUgeyBcbiAgU2NoZWR1bGUsIFxuICBTY2hlZHVsZVR5cGUsIFxuICBTY2hlZHVsZVBhcnRpY2lwYW50LCBcbiAgUGFydGljaXBhbnRMb29rdXAsIFxuICBQYXJ0aWNpcGFudE9yaWdpblxufSBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgeyBcbiAgU2NoZWR1bGVQcmlvcml0eSwgXG4gIFNjaGVkdWxlUmVjdXJyZW5jZSwgXG4gIFdlZWtEYXksIFxuICBNb250aCwgXG4gIFJlcGVhdFdoZW4sIFxuICBPcmRpbmFsV2Vla0RheSwgXG4gIFBhcnRpY2lwYW50Q29uZmlybWF0aW9uIFxufSBmcm9tICcuL21vZGVscyc7XG4iXX0=
@@ -7,7 +7,6 @@ export { StorageService } from './lib/services/storage/storage.service';
7
7
  export { CurrentCollaboratorService } from './lib/services/current-collaborator/current-collaborator.service';
8
8
  // Schedule Package (componentes + serviços + models + enums)
9
9
  export { ScheduleFormComponent, ScheduleDetailComponent } from './lib/components/schedule';
10
- export { ScheduleService, ScheduleTypeService, ScheduleTranslationService } from './lib/components/schedule';
11
- export { ScheduleTranslatePipe } from './lib/components/schedule';
10
+ export { ScheduleService, ScheduleTypeService } from './lib/components/schedule';
12
11
  export { SchedulePriority, ScheduleRecurrence, WeekDay, Month, RepeatWhen, OrdinalWeekDay, ParticipantConfirmation } from './lib/components/schedule';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFZOUcsNkRBQTZEO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUM7QUFPbkMsT0FBTyxFQUNMLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzNCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDJCQUEyQixDQUFDO0FBVW5DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCx1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgQHNlbmlvci1nZXN0YW8tcmVsYWNpb25hbWVudG8vYW5ndWxhci1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICcuL2xpYi9hbmd1bGFyLWNvbXBvbmVudHMubW9kdWxlJztcblxuLy8gU2VydmljZXNcbmV4cG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ3VycmVudENvbGxhYm9yYXRvclNlcnZpY2UgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jdXJyZW50LWNvbGxhYm9yYXRvci9jdXJyZW50LWNvbGxhYm9yYXRvci5zZXJ2aWNlJztcblxuLy8gTW9kZWxzXG5leHBvcnQgdHlwZSB7XG4gIENvbGxhYm9yYXRvcixcbiAgQ29sbGFib3JhdG9yTGVhZGVyLFxuICBDb2xsYWJvcmF0b3JCcmFuY2gsXG4gIEJyYW5jaCxcbiAgQ29tcGFueSxcbiAgSm9iVGl0bGVcbn0gZnJvbSAnLi9saWIvc2VydmljZXMvY3VycmVudC1jb2xsYWJvcmF0b3IvbW9kZWxzL2NvbGxhYm9yYXRvci5tb2RlbCc7XG5cbi8vIFNjaGVkdWxlIFBhY2thZ2UgKGNvbXBvbmVudGVzICsgc2VydmnDp29zICsgbW9kZWxzICsgZW51bXMpXG5leHBvcnQgeyBcbiAgU2NoZWR1bGVGb3JtQ29tcG9uZW50LFxuICBTY2hlZHVsZURldGFpbENvbXBvbmVudFxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHR5cGUge1xuICBTY2hlZHVsZURldGFpbEFjdGlvbixcbiAgU2NoZWR1bGVXaXRoUGFydGljaXBhbnRzXG59IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2NoZWR1bGUnO1xuXG5leHBvcnQgeyBcbiAgU2NoZWR1bGVTZXJ2aWNlLFxuICBTY2hlZHVsZVR5cGVTZXJ2aWNlLFxuICBTY2hlZHVsZVRyYW5zbGF0aW9uU2VydmljZVxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHtcbiAgU2NoZWR1bGVUcmFuc2xhdGVQaXBlXG59IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2NoZWR1bGUnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFNjaGVkdWxlLFxuICBTY2hlZHVsZVR5cGUsXG4gIFNjaGVkdWxlUGFydGljaXBhbnQsXG4gIFBhcnRpY2lwYW50TG9va3VwLFxuICBQYXJ0aWNpcGFudE9yaWdpblxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHtcbiAgU2NoZWR1bGVQcmlvcml0eSxcbiAgU2NoZWR1bGVSZWN1cnJlbmNlLFxuICBXZWVrRGF5LFxuICBNb250aCxcbiAgUmVwZWF0V2hlbixcbiAgT3JkaW5hbFdlZWtEYXksXG4gIFBhcnRpY2lwYW50Q29uZmlybWF0aW9uXG59IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2NoZWR1bGUnO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFZOUcsNkRBQTZEO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUM7QUFPbkMsT0FBTyxFQUNMLGVBQWUsRUFDZixtQkFBbUIsRUFDcEIsTUFBTSwyQkFBMkIsQ0FBQztBQVVuQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsdUJBQXVCLEVBQ3hCLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBzZW5pb3ItZ2VzdGFvLXJlbGFjaW9uYW1lbnRvL2FuZ3VsYXItY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi9saWIvYW5ndWxhci1jb21wb25lbnRzLm1vZHVsZSc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEN1cnJlbnRDb2xsYWJvcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvY3VycmVudC1jb2xsYWJvcmF0b3IvY3VycmVudC1jb2xsYWJvcmF0b3Iuc2VydmljZSc7XG5cbi8vIE1vZGVsc1xuZXhwb3J0IHR5cGUge1xuICBDb2xsYWJvcmF0b3IsXG4gIENvbGxhYm9yYXRvckxlYWRlcixcbiAgQ29sbGFib3JhdG9yQnJhbmNoLFxuICBCcmFuY2gsXG4gIENvbXBhbnksXG4gIEpvYlRpdGxlXG59IGZyb20gJy4vbGliL3NlcnZpY2VzL2N1cnJlbnQtY29sbGFib3JhdG9yL21vZGVscy9jb2xsYWJvcmF0b3IubW9kZWwnO1xuXG4vLyBTY2hlZHVsZSBQYWNrYWdlIChjb21wb25lbnRlcyArIHNlcnZpw6dvcyArIG1vZGVscyArIGVudW1zKVxuZXhwb3J0IHsgXG4gIFNjaGVkdWxlRm9ybUNvbXBvbmVudCxcbiAgU2NoZWR1bGVEZXRhaWxDb21wb25lbnRcbn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zY2hlZHVsZSc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgU2NoZWR1bGVEZXRhaWxBY3Rpb24sXG4gIFNjaGVkdWxlV2l0aFBhcnRpY2lwYW50c1xufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHsgXG4gIFNjaGVkdWxlU2VydmljZSxcbiAgU2NoZWR1bGVUeXBlU2VydmljZVxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcblxuZXhwb3J0IHR5cGUge1xuICBTY2hlZHVsZSxcbiAgU2NoZWR1bGVUeXBlLFxuICBTY2hlZHVsZVBhcnRpY2lwYW50LFxuICBQYXJ0aWNpcGFudExvb2t1cCxcbiAgUGFydGljaXBhbnRPcmlnaW5cbn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zY2hlZHVsZSc7XG5cbmV4cG9ydCB7XG4gIFNjaGVkdWxlUHJpb3JpdHksXG4gIFNjaGVkdWxlUmVjdXJyZW5jZSxcbiAgV2Vla0RheSxcbiAgTW9udGgsXG4gIFJlcGVhdFdoZW4sXG4gIE9yZGluYWxXZWVrRGF5LFxuICBQYXJ0aWNpcGFudENvbmZpcm1hdGlvblxufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlJztcbiJdfQ==