valtech-components 4.0.33 → 4.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.component.mjs +41 -4
  2. package/esm2022/lib/components/organisms/edit-org-modal/edit-org-modal.i18n.mjs +5 -1
  3. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +8 -5
  4. package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +18 -9
  5. package/esm2022/lib/services/org/types.mjs +1 -1
  6. package/esm2022/lib/version.mjs +2 -2
  7. package/fesm2022/valtech-components.mjs +69 -16
  8. package/fesm2022/valtech-components.mjs.map +1 -1
  9. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
  10. package/lib/components/atoms/text/text.component.d.ts +1 -1
  11. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
  12. package/lib/components/molecules/cta-card/cta-card.component.d.ts +1 -1
  13. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  14. package/lib/components/molecules/metric-card/metric-card.component.d.ts +1 -1
  15. package/lib/components/organisms/article/article.component.d.ts +6 -6
  16. package/lib/components/organisms/auth-cta/auth-cta.component.d.ts +1 -1
  17. package/lib/components/organisms/edit-org-modal/edit-org-modal.component.d.ts +2 -0
  18. package/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.d.ts +1 -1
  19. package/lib/components/organisms/organization-view/organization-view.component.d.ts +2 -0
  20. package/lib/components/organisms/switch-org-modal/switch-org-modal.component.d.ts +5 -0
  21. package/lib/services/org/types.d.ts +2 -0
  22. package/lib/version.d.ts +1 -1
  23. package/package.json +1 -1
  24. package/src/lib/services/firebase/firebase-messaging-sw.js +145 -0
@@ -33,6 +33,11 @@ addIcons({ businessOutline, checkmarkCircleOutline });
33
33
  * `Settings.SwitchOrg`.
34
34
  */
35
35
  export class SwitchOrgModalComponent {
36
+ onLogoError(orgId) {
37
+ const next = new Set(this.failedLogos());
38
+ next.add(orgId);
39
+ this.failedLogos.set(next);
40
+ }
36
41
  constructor() {
37
42
  this.i18n = inject(I18nService);
38
43
  this.auth = inject(AuthService);
@@ -46,6 +51,10 @@ export class SwitchOrgModalComponent {
46
51
  this.query = signal('');
47
52
  this.switchingId = signal(null);
48
53
  this.user = computed(() => this.auth.user());
54
+ /** Avatar de usuario que falló al cargar → cae a iniciales. */
55
+ this.userAvatarFailed = signal(false);
56
+ /** IDs de orgs cuyo logo falló al cargar → caen al ícono business-outline. */
57
+ this.failedLogos = signal(new Set());
49
58
  this.userInitials = computed(() => {
50
59
  const name = this.user()?.name ?? this.user()?.email ?? '?';
51
60
  return name.slice(0, 2).toUpperCase();
@@ -136,8 +145,8 @@ export class SwitchOrgModalComponent {
136
145
 
137
146
  <div class="user-strip">
138
147
  <div class="user-strip__avatar">
139
- @if (user()?.avatarUrl) {
140
- <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" />
148
+ @if (user()?.avatarUrl && !userAvatarFailed()) {
149
+ <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" (error)="userAvatarFailed.set(true)" />
141
150
  } @else {
142
151
  <span>{{ userInitials() }}</span>
143
152
  }
@@ -184,8 +193,8 @@ export class SwitchOrgModalComponent {
184
193
  (click)="onSelect(org)"
185
194
  >
186
195
  <div class="org-row__icon">
187
- @if (org.logoUrl) {
188
- <img [src]="org.logoUrl" [alt]="org.name" />
196
+ @if (org.logoUrl && !failedLogos().has(org.id)) {
197
+ <img [src]="org.logoUrl" [alt]="org.name" (error)="onLogoError(org.id)" />
189
198
  } @else {
190
199
  <ion-icon name="business-outline" />
191
200
  }
@@ -248,8 +257,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
248
257
 
249
258
  <div class="user-strip">
250
259
  <div class="user-strip__avatar">
251
- @if (user()?.avatarUrl) {
252
- <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" />
260
+ @if (user()?.avatarUrl && !userAvatarFailed()) {
261
+ <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" (error)="userAvatarFailed.set(true)" />
253
262
  } @else {
254
263
  <span>{{ userInitials() }}</span>
255
264
  }
@@ -296,8 +305,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
296
305
  (click)="onSelect(org)"
297
306
  >
298
307
  <div class="org-row__icon">
299
- @if (org.logoUrl) {
300
- <img [src]="org.logoUrl" [alt]="org.name" />
308
+ @if (org.logoUrl && !failedLogos().has(org.id)) {
309
+ <img [src]="org.logoUrl" [alt]="org.name" (error)="onLogoError(org.id)" />
301
310
  } @else {
302
311
  <ion-icon name="business-outline" />
303
312
  }
@@ -330,4 +339,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
330
339
  }], i18nNamespace: [{
331
340
  type: Input
332
341
  }] } });
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixF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d0JBQ1YsVUFBVTt3QkFDVixPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0dUO3dEQThLUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvblNwaW5uZXIsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcbmltcG9ydCB7IE9yZ1N3aXRjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFNXSVRDSF9PUkdfTU9EQUxfSTE4TiB9IGZyb20gJy4vc3dpdGNoLW9yZy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuU3dpdGNoT3JnJztcblxuYWRkSWNvbnMoeyBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1zd2l0Y2gtb3JnLW1vZGFsYCDigJQgbW9kYWwgZGUgY2FtYmlvIGRlIG9yZ2FuaXphY2nDs24gYWN0aXZhIChvcmdhbmlzbVxuICogY29tcGFydGlkbykuIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZXVzYWRvIHBvclxuICogbGEgdmlzdGEgQ3VlbnRhICh5IGZ1dHVyYXMgdmlzdGFzIG9yZy1hd2FyZSkuXG4gKlxuICogTGlzdGEgbGFzIG9yZ2FuaXphY2lvbmVzIGRlbCB1c2VyICh2w61hIGBPcmdTZXJ2aWNlLmxpc3RNeU9yZ3NgKSwgcGVybWl0ZSBidXNjYXJcbiAqIHBvciBub21icmUsIHkgY2FtYmlhIGxhIG9yZyBhY3RpdmEgY29uIGBPcmdTd2l0Y2hTZXJ2aWNlLnN3aXRjaFRvYC4gTGEgb3JnXG4gKiBhY3R1YWwgcXVlZGEgcHJpbWVyYSB5IGRlc2hhYmlsaXRhZGEuXG4gKlxuICogQWJpZXJ0byB2w61hIGBNb2RhbFNlcnZpY2VgIOKAlCByZWNpYmUgYF9tb2RhbFJlZmAgcG9yIGBjb21wb25lbnRQcm9wc2AgKyBjYWxsYmFja1xuICogYG9uU3VjY2Vzc2AuIEhlYWRlciBjYW7Ds25pY28gKFJlZ2xhICM1KTogc2luIGBpb24tdGl0bGVgLCBib3TDs24gQ2VycmFyIHRleHRvIGVuXG4gKiBgc2xvdD1lbmRgLCB0w610dWxvL3N1YnTDrXR1bG8gZW4gZWwgYm9keSBjb24gYHZhbC1kaXNwbGF5YC9gdmFsLXRpdGxlYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWwgbmFtZXNwYWNlXG4gKiBgU2V0dGluZ3MuU3dpdGNoT3JnYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN3aXRjaC1vcmctbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNlYXJjaGJhckNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgY29udGVudDogdCgnc3VidGl0bGUnKSxcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcF9fYXZhdGFyXCI+XG4gICAgICAgICAgQGlmICh1c2VyKCk/LmF2YXRhclVybCkge1xuICAgICAgICAgICAgPGltZyBbc3JjXT1cInVzZXIoKSEuYXZhdGFyVXJsIVwiIFthbHRdPVwidXNlcigpPy5uYW1lID8/ICcnXCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuPnt7IHVzZXJJbml0aWFscygpIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXN0cmlwX19pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXN0cmlwX19uYW1lXCI+e3sgdXNlcigpPy5uYW1lIHx8IHVzZXIoKT8uZW1haWwgfHwgJycgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXN0cmlwX19lbWFpbFwiPnt7IHVzZXIoKT8uZW1haWwgfHwgJycgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwidXNlci1zdHJpcF9fcHJvZmlsZS1idG5cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uUHJvZmlsZSgpXCI+XG4gICAgICAgICAge3sgdCgncHJvZmlsZScpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtc2VjdGlvblwiPlxuICAgICAgICA8dmFsLXNlYXJjaGJhclxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdCgnc2VhcmNoUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgIGRlYm91bmNlOiAyMDAsXG4gICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAnbmV2ZXInLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChmaWx0ZXJFdmVudCk9XCJvblF1ZXJ5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuXG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1zdGF0ZVwiPlxuICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKGZpbHRlcmVkT3JncygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHZhcmlhbnQ6ICdlbXB0eScsXG4gICAgICAgICAgICAgIHRpdGxlOiB0KCdub1Jlc3VsdHMnKSxcbiAgICAgICAgICAgICAgaWNvbjogJ2J1c2luZXNzLW91dGxpbmUnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZ3MtbGlzdFwiPlxuICAgICAgICAgICAgQGZvciAob3JnIG9mIGZpbHRlcmVkT3JncygpOyB0cmFjayBvcmcuaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwib3JnLXJvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLm9yZy1yb3ctLWFjdGl2ZV09XCJvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIXN3aXRjaGluZ0lkKCkgfHwgb3JnLmlkID09PSBhY3RpdmVPcmdJZCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3Qob3JnKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19faWNvblwiPlxuICAgICAgICAgICAgICAgICAgQGlmIChvcmcubG9nb1VybCkge1xuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwib3JnLmxvZ29VcmxcIiBbYWx0XT1cIm9yZy5uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImJ1c2luZXNzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19ib2R5XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX25hbWVcIj57eyBvcmcubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLXJvd19fdHlwZVwiPnt7IG9yZy50eXBlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19lbmRcIj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc3dpdGNoaW5nSWQoKSA9PT0gb3JnLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBjbGFzcz1cIm9yZy1yb3dfX3NwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAob3JnLmlkID09PSBhY3RpdmVPcmdJZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLXJvd19fY3VycmVudFwiPnt7IHQoJ2N1cnJlbnQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlLW91dGxpbmVcIiBjbGFzcz1cIm9yZy1yb3dfX2NoZWNrXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5zd2l0Y2gtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zd2l0Y2gtc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMjRweCAwO1xuICAgICAgfVxuICAgICAgLm9yZ3MtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICAgICAgICBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICAub3JnLXJvdzpub3QoOmRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgICAub3JnLXJvdzpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93LS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19pY29uIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjA4KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19ib2R5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X190eXBlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNyk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2N1cnJlbnQge1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNyk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fY2hlY2sge1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19zcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19pY29uIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAwIDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjEpO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2F2YXRhciB7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9faW5mbyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19lbWFpbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC42KTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fcHJvZmlsZS1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW4gc3dpdGNoIGV4aXRvc28gKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIENhbGxiYWNrIGFsIGhhY2VyIGNsaWMgZW4gXCJNaSBwZXJmaWxcIiAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25Qcm9maWxlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biBjb24gcXVlIGxhIHZpc3RhIHJlc3VlbHZlIHN1cyB0ZXh0b3MuICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICByZWFkb25seSBvcmdzID0gc2lnbmFsPE9yZ2FuaXphdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBxdWVyeSA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHN3aXRjaGluZ0lkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2VyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hdXRoLnVzZXIoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVzZXJJbml0aWFscyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy51c2VyKCk/Lm5hbWUgPz8gdGhpcy51c2VyKCk/LmVtYWlsID8/ICc/JztcbiAgICByZXR1cm4gbmFtZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpO1xuICB9KTtcblxuICByZWFkb25seSBhY3RpdmVPcmdJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7XG4gICAgICBhY3RpdmVPcmdJZD86IHN0cmluZztcbiAgICAgIGFjdGl2ZU9yZz86IHN0cmluZztcbiAgICB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9KTtcblxuICByZWFkb25seSBmaWx0ZXJlZE9yZ3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcSA9IHRoaXMucXVlcnkoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5vcmdzKCk7XG4gICAgaWYgKCFxKSByZXR1cm4gbGlzdDtcbiAgICByZXR1cm4gbGlzdC5maWx0ZXIobyA9PiBvLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShERUZBVUxUX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoREVGQVVMVF9OQU1FU1BBQ0UsIFNXSVRDSF9PUkdfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgfVxuXG4gIG9uUXVlcnlDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucXVlcnkuc2V0KHZhbHVlID8/ICcnKTtcbiAgfVxuXG4gIGFzeW5jIG9uU2VsZWN0KG9yZzogT3JnYW5pemF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc3dpdGNoaW5nSWQoKSB8fCBvcmcuaWQgPT09IHRoaXMuYWN0aXZlT3JnSWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuc3dpdGNoaW5nSWQuc2V0KG9yZy5pZCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMub3JnU3dpdGNoLnN3aXRjaFRvKG9yZy5pZCk7XG4gICAgICB0aGlzLm9uU3VjY2Vzcz8uKCk7XG4gICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ2FjY291bnQuc3dpdGNoT3JnJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzd2l0Y2hFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMuaTE4bk5hbWVzcGFjZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zd2l0Y2hpbmdJZC5zZXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3JncygpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmxpc3RNeU9yZ3MoKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBvcmdzID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICAgICAgICB0aGlzLm9yZ3Muc2V0KFsuLi5vcmdzXS5zb3J0KChhLCBiKSA9PiAoYS5pZCA9PT0gYWN0aXZlSWQgPyAtMSA6IGIuaWQgPT09IGFjdGl2ZUlkID8gMSA6IDApKSk7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSxcbiAgICAgIH0pO1xuICB9XG5cbiAgb25Qcm9maWxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIHRoaXMub25Qcm9maWxlQ2xpY2s/LigpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixF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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0dULCtrRkE1R0MsU0FBUyxvR0FDVCxVQUFVLG1GQUNWLFVBQVUsOEVBQ1YsU0FBUyxvUEFDVCxVQUFVLHdLQUNWLFVBQVUseUdBQ1YsT0FBTywySkFDUCxnQkFBZ0IsMkVBQ2hCLG1CQUFtQiwrRUFDbkIsa0JBQWtCLDRJQUNsQixjQUFjOzs0RkF3UUwsdUJBQXVCO2tCQXRSbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsY0FBYztxQkFDZixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnR1Q7d0RBOEtRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGJ1c2luZXNzT3V0bGluZSwgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgT3JnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9vcmcuc2VydmljZSc7XG5pbXBvcnQgeyBPcmdhbml6YXRpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvdHlwZXMnO1xuaW1wb3J0IHsgT3JnU3dpdGNoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvb3JnLXN3aXRjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgU1dJVENIX09SR19NT0RBTF9JMThOIH0gZnJvbSAnLi9zd2l0Y2gtb3JnLW1vZGFsLmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5Td2l0Y2hPcmcnO1xuXG5hZGRJY29ucyh7IGJ1c2luZXNzT3V0bGluZSwgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSB9KTtcblxuLyoqXG4gKiBgdmFsLXN3aXRjaC1vcmctbW9kYWxgIOKAlCBtb2RhbCBkZSBjYW1iaW8gZGUgb3JnYW5pemFjacOzbiBhY3RpdmEgKG9yZ2FuaXNtXG4gKiBjb21wYXJ0aWRvKS4gUHJvbW92aWRvIGRlc2RlIGBzaG93Y2FzZWAgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuIFJldXNhZG8gcG9yXG4gKiBsYSB2aXN0YSBDdWVudGEgKHkgZnV0dXJhcyB2aXN0YXMgb3JnLWF3YXJlKS5cbiAqXG4gKiBMaXN0YSBsYXMgb3JnYW5pemFjaW9uZXMgZGVsIHVzZXIgKHbDrWEgYE9yZ1NlcnZpY2UubGlzdE15T3Jnc2ApLCBwZXJtaXRlIGJ1c2NhclxuICogcG9yIG5vbWJyZSwgeSBjYW1iaWEgbGEgb3JnIGFjdGl2YSBjb24gYE9yZ1N3aXRjaFNlcnZpY2Uuc3dpdGNoVG9gLiBMYSBvcmdcbiAqIGFjdHVhbCBxdWVkYSBwcmltZXJhIHkgZGVzaGFiaWxpdGFkYS5cbiAqXG4gKiBBYmllcnRvIHbDrWEgYE1vZGFsU2VydmljZWAg4oCUIHJlY2liZSBgX21vZGFsUmVmYCBwb3IgYGNvbXBvbmVudFByb3BzYCArIGNhbGxiYWNrXG4gKiBgb25TdWNjZXNzYC4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpOiBzaW4gYGlvbi10aXRsZWAsIGJvdMOzbiBDZXJyYXIgdGV4dG8gZW5cbiAqIGBzbG90PWVuZGAsIHTDrXR1bG8vc3VidMOtdHVsbyBlbiBlbCBib2R5IGNvbiBgdmFsLWRpc3BsYXlgL2B2YWwtdGl0bGVgLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBzaSBlbCBjb25zdW1lciBubyBwcm92ZXnDsyBlbCBuYW1lc3BhY2VcbiAqIGBTZXR0aW5ncy5Td2l0Y2hPcmdgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc3dpdGNoLW9yZy1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBJb25IZWFkZXIsXG4gICAgSW9uVG9vbGJhcixcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25Db250ZW50LFxuICAgIElvblNwaW5uZXIsXG4gICAgSW9uSWNvbixcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgU2VhcmNoYmFyQ29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2Nsb3NlJykgfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L2lvbi10b29sYmFyPlxuICAgIDwvaW9uLWhlYWRlcj5cblxuICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogdCgndGl0bGUnKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiB0KCdzdWJ0aXRsZScpLFxuICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgY29sb3I6ICcnLFxuICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICB9XCJcbiAgICAgIC8+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXN0cmlwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXN0cmlwX19hdmF0YXJcIj5cbiAgICAgICAgICBAaWYgKHVzZXIoKT8uYXZhdGFyVXJsICYmICF1c2VyQXZhdGFyRmFpbGVkKCkpIHtcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJ1c2VyKCkhLmF2YXRhclVybCFcIiBbYWx0XT1cInVzZXIoKT8ubmFtZSA/PyAnJ1wiIChlcnJvcik9XCJ1c2VyQXZhdGFyRmFpbGVkLnNldCh0cnVlKVwiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8c3Bhbj57eyB1c2VySW5pdGlhbHMoKSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcF9faW5mb1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1zdHJpcF9fbmFtZVwiPnt7IHVzZXIoKT8ubmFtZSB8fCB1c2VyKCk/LmVtYWlsIHx8ICcnIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1zdHJpcF9fZW1haWxcIj57eyB1c2VyKCk/LmVtYWlsIHx8ICcnIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInVzZXItc3RyaXBfX3Byb2ZpbGUtYnRuXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblByb2ZpbGUoKVwiPlxuICAgICAgICAgIHt7IHQoJ3Byb2ZpbGUnKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXNlY3Rpb25cIj5cbiAgICAgICAgPHZhbC1zZWFyY2hiYXJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHQoJ3NlYXJjaFBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICBkZWJvdW5jZTogMjAwLFxuICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogJ25ldmVyJyxcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoZmlsdGVyRXZlbnQpPVwib25RdWVyeUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cblxuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtc3RhdGVcIj5cbiAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChmaWx0ZXJlZE9yZ3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICB2YXJpYW50OiAnZW1wdHknLFxuICAgICAgICAgICAgICB0aXRsZTogdCgnbm9SZXN1bHRzJyksXG4gICAgICAgICAgICAgIGljb246ICdidXNpbmVzcy1vdXRsaW5lJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdzLWxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKG9yZyBvZiBmaWx0ZXJlZE9yZ3MoKTsgdHJhY2sgb3JnLmlkKSB7XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm9yZy1yb3dcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5vcmctcm93LS1hY3RpdmVdPVwib3JnLmlkID09PSBhY3RpdmVPcmdJZCgpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFzd2l0Y2hpbmdJZCgpIHx8IG9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG9yZylcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1yb3dfX2ljb25cIj5cbiAgICAgICAgICAgICAgICAgIEBpZiAob3JnLmxvZ29VcmwgJiYgIWZhaWxlZExvZ29zKCkuaGFzKG9yZy5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIm9yZy5sb2dvVXJsXCIgW2FsdF09XCJvcmcubmFtZVwiIChlcnJvcik9XCJvbkxvZ29FcnJvcihvcmcuaWQpXCIgLz5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImJ1c2luZXNzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19ib2R5XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX25hbWVcIj57eyBvcmcubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLXJvd19fdHlwZVwiPnt7IG9yZy50eXBlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19lbmRcIj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc3dpdGNoaW5nSWQoKSA9PT0gb3JnLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBjbGFzcz1cIm9yZy1yb3dfX3NwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAob3JnLmlkID09PSBhY3RpdmVPcmdJZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLXJvd19fY3VycmVudFwiPnt7IHQoJ2N1cnJlbnQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlLW91dGxpbmVcIiBjbGFzcz1cIm9yZy1yb3dfX2NoZWNrXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5zd2l0Y2gtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zd2l0Y2gtc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMjRweCAwO1xuICAgICAgfVxuICAgICAgLm9yZ3MtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICAgICAgICBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICAub3JnLXJvdzpub3QoOmRpc2FibGVkKTphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG4gICAgICAub3JnLXJvdzpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93LS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19pY29uIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjA4KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19ib2R5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X190eXBlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNyk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2N1cnJlbnQge1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNyk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fY2hlY2sge1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19zcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19pY29uIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAwIDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjEpO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2F2YXRhciB7XG4gICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9faW5mbyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19lbWFpbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC42KTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fcHJvZmlsZS1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDZweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW4gc3dpdGNoIGV4aXRvc28gKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIENhbGxiYWNrIGFsIGhhY2VyIGNsaWMgZW4gXCJNaSBwZXJmaWxcIiAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25Qcm9maWxlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biBjb24gcXVlIGxhIHZpc3RhIHJlc3VlbHZlIHN1cyB0ZXh0b3MuICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICByZWFkb25seSBvcmdzID0gc2lnbmFsPE9yZ2FuaXphdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBxdWVyeSA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHN3aXRjaGluZ0lkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2VyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hdXRoLnVzZXIoKSk7XG5cbiAgLyoqIEF2YXRhciBkZSB1c3VhcmlvIHF1ZSBmYWxsw7MgYWwgY2FyZ2FyIOKGkiBjYWUgYSBpbmljaWFsZXMuICovXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2VyQXZhdGFyRmFpbGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogSURzIGRlIG9yZ3MgY3V5byBsb2dvIGZhbGzDsyBhbCBjYXJnYXIg4oaSIGNhZW4gYWwgw61jb25vIGJ1c2luZXNzLW91dGxpbmUuICovXG4gIHByb3RlY3RlZCByZWFkb25seSBmYWlsZWRMb2dvcyA9IHNpZ25hbDxTZXQ8c3RyaW5nPj4obmV3IFNldCgpKTtcblxuICBwcm90ZWN0ZWQgb25Mb2dvRXJyb3Iob3JnSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHRoaXMuZmFpbGVkTG9nb3MoKSk7XG4gICAgbmV4dC5hZGQob3JnSWQpO1xuICAgIHRoaXMuZmFpbGVkTG9nb3Muc2V0KG5leHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVzZXJJbml0aWFscyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy51c2VyKCk/Lm5hbWUgPz8gdGhpcy51c2VyKCk/LmVtYWlsID8/ICc/JztcbiAgICByZXR1cm4gbmFtZS5zbGljZSgwLCAyKS50b1VwcGVyQ2FzZSgpO1xuICB9KTtcblxuICByZWFkb25seSBhY3RpdmVPcmdJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7XG4gICAgICBhY3RpdmVPcmdJZD86IHN0cmluZztcbiAgICAgIGFjdGl2ZU9yZz86IHN0cmluZztcbiAgICB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9KTtcblxuICByZWFkb25seSBmaWx0ZXJlZE9yZ3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcSA9IHRoaXMucXVlcnkoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5vcmdzKCk7XG4gICAgaWYgKCFxKSByZXR1cm4gbGlzdDtcbiAgICByZXR1cm4gbGlzdC5maWx0ZXIobyA9PiBvLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShERUZBVUxUX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoREVGQVVMVF9OQU1FU1BBQ0UsIFNXSVRDSF9PUkdfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgfVxuXG4gIG9uUXVlcnlDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucXVlcnkuc2V0KHZhbHVlID8/ICcnKTtcbiAgfVxuXG4gIGFzeW5jIG9uU2VsZWN0KG9yZzogT3JnYW5pemF0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc3dpdGNoaW5nSWQoKSB8fCBvcmcuaWQgPT09IHRoaXMuYWN0aXZlT3JnSWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuc3dpdGNoaW5nSWQuc2V0KG9yZy5pZCk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMub3JnU3dpdGNoLnN3aXRjaFRvKG9yZy5pZCk7XG4gICAgICB0aGlzLm9uU3VjY2Vzcz8uKCk7XG4gICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ2FjY291bnQuc3dpdGNoT3JnJyxcbiAgICAgICAgZmFsbGJhY2tLZXk6ICdzd2l0Y2hFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMuaTE4bk5hbWVzcGFjZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zd2l0Y2hpbmdJZC5zZXQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3JncygpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmxpc3RNeU9yZ3MoKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBvcmdzID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICAgICAgICB0aGlzLm9yZ3Muc2V0KFsuLi5vcmdzXS5zb3J0KChhLCBiKSA9PiAoYS5pZCA9PT0gYWN0aXZlSWQgPyAtMSA6IGIuaWQgPT09IGFjdGl2ZUlkID8gMSA6IDApKSk7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSxcbiAgICAgIH0pO1xuICB9XG5cbiAgb25Qcm9maWxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIHRoaXMub25Qcm9maWxlQ2xpY2s/LigpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
@@ -67,4 +67,4 @@ export const SYSTEM_ROLE_DEFAULTS = [
67
67
  displayName: { es: 'Operador', en: 'Operator' },
68
68
  },
69
69
  ];
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL29yZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyR0E7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQWEsRUFBRSxJQUFZO0lBQzFELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9GLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDNUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsWUFBb0IsRUFDcEIsS0FBZ0IsRUFDaEIsSUFBWTtJQUVaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBQ2hGLElBQUksS0FBSztRQUFFLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELDJGQUEyRjtJQUMzRixPQUFPLFlBQVk7U0FDaEIsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFjO0lBQzdDO1FBQ0UsRUFBRSxFQUFFLFFBQVE7UUFDWixJQUFJLEVBQUUsUUFBUTtRQUNkLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQ2xEO0lBQ0QsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUM3RjtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsSUFBSSxFQUFFLE9BQU87UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRTtLQUMxRDtJQUNEO1FBQ0UsRUFBRSxFQUFFLGFBQWE7UUFDakIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUU7S0FDdEQ7SUFDRDtRQUNFLEVBQUUsRUFBRSxnQkFBZ0I7UUFDcEIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtLQUNqRDtJQUNEO1FBQ0UsRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFO0tBQ2xEO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsZ0JBQWdCO1FBQ3BCLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7S0FDaEQ7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3JnVHlwZSA9ICdQUklWQVRFJyB8ICdQVUJMSUMnIHwgJ1BFUlNPTkFMJyB8ICdCVVNJTkVTUyc7XG5leHBvcnQgdHlwZSBPcmdQbGFuID0gJ2ZyZWUnIHwgJ3BybycgfCAnZW50ZXJwcmlzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgcGxhbjogT3JnUGxhbjtcbiAgb3duZXJJZDogc3RyaW5nO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbiAgbG9nb1VybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TXlPcmdzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBvcmdhbml6YXRpb25zOiBPcmdhbml6YXRpb25bXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgb3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb2dvVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludml0ZVVzZXJSZXF1ZXN0IHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52aXRlVXNlclJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaW52aXRlVXJsOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlYXZlT3JnUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGxlZnRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ01lbWJlciB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBhc3NpZ25lZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RPcmdNZW1iZXJzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBtZW1iZXJzOiBPcmdNZW1iZXJbXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xuICAvKiogQmFja2VuZCBTU09UIHBhcmEgbGFiZWxzIGRlIHJvbGVzIGVuIGxhIHJlc3B1ZXN0YSAoQURSLTAyNCBQaGFzZSAyKS4gKi9cbiAgcm9sZURpc3BsYXlOYW1lcz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlbmRpbmdJbnZpdGF0aW9uIHtcbiAgb3JnSWQ6IHN0cmluZztcbiAgb3JnTmFtZTogc3RyaW5nO1xuICByb2xlSWQ6IHN0cmluZztcbiAgaW52aXRlcklkOiBzdHJpbmc7XG4gIGludml0ZXJOYW1lOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQZW5kaW5nSW52aXRhdGlvbnNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGl0ZW1zOiBQZW5kaW5nSW52aXRhdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VwdEludml0YXRpb25SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIG9yZ05hbWU6IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnUm9sZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGlzU3lzdGVtPzogYm9vbGVhbjtcbiAgLyoqIE5vbWJyZSBsZWdpYmxlIHBvciBpZGlvbWEuIEJhY2tlbmQgYXV0b3JpdGF0aXZvIChBRFItMDI0KS4gbmlsIHBhcmEgcm9sZXMgY3VzdG9tLiAqL1xuICBkaXNwbGF5TmFtZT86IHsgZXM/OiBzdHJpbmc7IGVuPzogc3RyaW5nOyBbbGFuZzogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG59XG5cbi8qKlxuICogUmVzdWVsdmUgZWwgbGFiZWwgbGVnaWJsZSBkZSB1biByb2wgcGFyYSBlbCBpZGlvbWEgZGFkby5cbiAqIEZhbGxiYWNrOiBkaXNwbGF5TmFtZSBlbiBvdHJvIGlkaW9tYSDihpIgcm9sZS5uYW1lIChzbmFrZV9jYXNlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVSb2xlTGFiZWwocm9sZTogT3JnUm9sZSwgbGFuZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGFiZWwgPSByb2xlLmRpc3BsYXlOYW1lPy5bbGFuZ10gPz8gcm9sZS5kaXNwbGF5TmFtZT8uWydlcyddID8/IHJvbGUuZGlzcGxheU5hbWU/LlsnZW4nXTtcbiAgcmV0dXJuIGxhYmVsID8/IHJvbGUubmFtZTtcbn1cblxuLyoqXG4gKiBSZXN1ZWx2ZSBlbCBsYWJlbCBkZSB1biByb2wgYSBwYXJ0aXIgZGUgdW5hIGxpc3RhIGRlIHJvbGVzIGRpc3BvbmlibGVzLlxuICogQnVzY2EgcG9yIGlkIG8gbmFtZSDihpIgdXNhIHJlc29sdmVSb2xlTGFiZWwg4oaSIGZhbGxiYWNrOiBodW1hbml6YSBlbCBuYW1lLlxuICpcbiAqIEZ1bmNpw7NuIGNhbsOzbmljYSBkZSByZXNvbHVjacOzbi4gUmVlbXBsYXphIGxvcyBrZXlNYXBzIG1hbnVhbGVzIGVuIG9yZy12aWV3IHlcbiAqIG1lbWJlci1kZXRhaWwtbW9kYWwuIEN1YnJlIHJvbGVzIGRlbCBzaXN0ZW1hIFkgcm9sZXMgY3VzdG9tIGRlIGFwcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVSb2xlTGFiZWxGcm9tTGlzdChcbiAgcm9sZUlkT3JOYW1lOiBzdHJpbmcsXG4gIHJvbGVzOiBPcmdSb2xlW10sXG4gIGxhbmc6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgZm91bmQgPSByb2xlcy5maW5kKHIgPT4gci5pZCA9PT0gcm9sZUlkT3JOYW1lIHx8IHIubmFtZSA9PT0gcm9sZUlkT3JOYW1lKTtcbiAgaWYgKGZvdW5kKSByZXR1cm4gcmVzb2x2ZVJvbGVMYWJlbChmb3VuZCwgbGFuZyk7XG4gIC8vIEh1bWFuaXphIGVsIG5vbWJyZSB0w6ljbmljbyBjb21vIMO6bHRpbW8gcmVjdXJzbyAoZWouIFwiYmluZ29fdGFxdWlsbGFcIiDihpIgXCJCaW5nbyBUYXF1aWxsYVwiKVxuICByZXR1cm4gcm9sZUlkT3JOYW1lXG4gICAgLnNwbGl0KC9bXy1dLylcbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLm1hcCh3ID0+IHcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3LnNsaWNlKDEpKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogUm9sZXMgZGVsIHNpc3RlbWEgY29uIGRpc3BsYXlOYW1lIChlcy9lbikuIEVzcGVqbyBkZSBTeXN0ZW1Sb2xlTGFiZWxzIChiYWNrZW5kIEdvKS5cbiAqIEJhY2tlbmQgZXMgYXV0b3JpdGF0aXZvIOKAlCBlc3RvIGVzIHVuIHNlZWQgcGFyYSByZW5kZXJzIHByZXZpb3MgYSBsYSBjYXJnYSBkZSBsYSBBUEkuXG4gKi9cbmV4cG9ydCBjb25zdCBTWVNURU1fUk9MRV9ERUZBVUxUUzogT3JnUm9sZVtdID0gW1xuICB7XG4gICAgaWQ6ICd2aWV3ZXInLFxuICAgIG5hbWU6ICd2aWV3ZXInLFxuICAgIGlzU3lzdGVtOiB0cnVlLFxuICAgIGRpc3BsYXlOYW1lOiB7IGVzOiAnVmlzdWFsaXphZG9yJywgZW46ICdWaWV3ZXInIH0sXG4gIH0sXG4gIHsgaWQ6ICdlZGl0b3InLCBuYW1lOiAnZWRpdG9yJywgaXNTeXN0ZW06IHRydWUsIGRpc3BsYXlOYW1lOiB7IGVzOiAnRWRpdG9yJywgZW46ICdFZGl0b3InIH0gfSxcbiAge1xuICAgIGlkOiAnYWRtaW4nLFxuICAgIG5hbWU6ICdhZG1pbicsXG4gICAgaXNTeXN0ZW06IHRydWUsXG4gICAgZGlzcGxheU5hbWU6IHsgZXM6ICdBZG1pbmlzdHJhZG9yJywgZW46ICdBZG1pbmlzdHJhdG9yJyB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdiaW5nb19hZG1pbicsXG4gICAgbmFtZTogJ2JpbmdvX2FkbWluJyxcbiAgICBpc1N5c3RlbTogdHJ1ZSxcbiAgICBkaXNwbGF5TmFtZTogeyBlczogJ0FkbWluIEJpbmdvJywgZW46ICdCaW5nbyBBZG1pbicgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnYmluZ29fdGVzb3Jlcm8nLFxuICAgIG5hbWU6ICdiaW5nb190ZXNvcmVybycsXG4gICAgaXNTeXN0ZW06IHRydWUsXG4gICAgZGlzcGxheU5hbWU6IHsgZXM6ICdUZXNvcmVybycsIGVuOiAnVHJlYXN1cmVyJyB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdiaW5nb190YXF1aWxsYScsXG4gICAgbmFtZTogJ2JpbmdvX3RhcXVpbGxhJyxcbiAgICBpc1N5c3RlbTogdHJ1ZSxcbiAgICBkaXNwbGF5TmFtZTogeyBlczogJ1RhcXVpbGxhJywgZW46ICdCb3ggT2ZmaWNlJyB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdiaW5nb19vcGVyYXRvcicsXG4gICAgbmFtZTogJ2JpbmdvX29wZXJhdG9yJyxcbiAgICBpc1N5c3RlbTogdHJ1ZSxcbiAgICBkaXNwbGF5TmFtZTogeyBlczogJ09wZXJhZG9yJywgZW46ICdPcGVyYXRvcicgfSxcbiAgfSxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdE9yZ1JvbGVzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICByb2xlczogT3JnUm9sZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZU1lbWJlclJvbGVSZXF1ZXN0IHtcbiAgcm9sZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlTWVtYmVyUm9sZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIHJvbGVJZDogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVtYmVyIGltcG9ydCAoQURSLTAyMykg4oCUIGNyZWFjacOzbiBkZSB1c3VhcmlvcyBwb3Igb3JnLCBzaW5nbGUgKyBidWxrLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgSW1wb3J0T25Db25mbGljdCA9ICdhc3NpZ25Sb2xlJyB8ICdza2lwJyB8ICdlcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0VXNlclJvdyB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJvbGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0TWVtYmVyc1JlcXVlc3Qge1xuICB1c2VyczogSW1wb3J0VXNlclJvd1tdO1xuICBvbkNvbmZsaWN0PzogSW1wb3J0T25Db25mbGljdDtcbiAgc2VuZEFjdGl2YXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBJbXBvcnRSb3dTdGF0dXMgPSAnY3JlYXRlZCcgfCAnYXNzaWduZWQnIHwgJ3NraXBwZWQnIHwgJ2Vycm9yJztcblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRSb3dSZXN1bHQge1xuICBlbWFpbDogc3RyaW5nO1xuICBzdGF0dXM6IEltcG9ydFJvd1N0YXR1cztcbiAgdXNlcklkPzogc3RyaW5nO1xuICBhY3RpdmF0aW9uPzogJ3NlbnQnIHwgJ3BlbmRpbmcnO1xuICByZWFzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0U3VtbWFyeSB7XG4gIGNyZWF0ZWQ6IG51bWJlcjtcbiAgYXNzaWduZWQ6IG51bWJlcjtcbiAgc2tpcHBlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRNZW1iZXJzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdW1tYXJ5OiBJbXBvcnRTdW1tYXJ5O1xuICByZXN1bHRzOiBJbXBvcnRSb3dSZXN1bHRbXTtcbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL29yZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2R0E7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQWEsRUFBRSxJQUFZO0lBQzFELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9GLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDNUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsWUFBb0IsRUFDcEIsS0FBZ0IsRUFDaEIsSUFBWTtJQUVaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBQ2hGLElBQUksS0FBSztRQUFFLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELDJGQUEyRjtJQUMzRixPQUFPLFlBQVk7U0FDaEIsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFjO0lBQzdDO1FBQ0UsRUFBRSxFQUFFLFFBQVE7UUFDWixJQUFJLEVBQUUsUUFBUTtRQUNkLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQ2xEO0lBQ0QsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUM3RjtRQUNFLEVBQUUsRUFBRSxPQUFPO1FBQ1gsSUFBSSxFQUFFLE9BQU87UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRTtLQUMxRDtJQUNEO1FBQ0UsRUFBRSxFQUFFLGFBQWE7UUFDakIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUU7S0FDdEQ7SUFDRDtRQUNFLEVBQUUsRUFBRSxnQkFBZ0I7UUFDcEIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtLQUNqRDtJQUNEO1FBQ0UsRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFO0tBQ2xEO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsZ0JBQWdCO1FBQ3BCLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7S0FDaEQ7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3JnVHlwZSA9ICdQUklWQVRFJyB8ICdQVUJMSUMnIHwgJ1BFUlNPTkFMJyB8ICdCVVNJTkVTUyc7XG5leHBvcnQgdHlwZSBPcmdQbGFuID0gJ2ZyZWUnIHwgJ3BybycgfCAnZW50ZXJwcmlzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5pemF0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgcGxhbjogT3JnUGxhbjtcbiAgb3duZXJJZDogc3RyaW5nO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbiAgbG9nb1VybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0TXlPcmdzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBvcmdhbml6YXRpb25zOiBPcmdhbml6YXRpb25bXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgb3JnYW5pemF0aW9uOiBPcmdhbml6YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogT3JnVHlwZTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlT3JnUmVxdWVzdCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsb2dvVXJsPzogc3RyaW5nO1xuICAvKiogQm9ycmEgZWwgbG9nbyBkZSBsYSBvcmcuIERpc3RpbnRvIGRlIGxvZ29VcmwgdmFjw61vICg9IFwibm8gY2FtYmlhclwiKS4gKi9cbiAgY2xlYXJMb2dvPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZpdGVVc2VyUmVxdWVzdCB7XG4gIGVtYWlsPzogc3RyaW5nO1xuICB1c2VySWQ/OiBzdHJpbmc7XG4gIHJvbGVJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludml0ZVVzZXJSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGludml0ZVVybDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWF2ZU9yZ1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBsZWZ0QXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmdNZW1iZXIge1xuICB1c2VySWQ6IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJvbGVzOiBzdHJpbmdbXTtcbiAgYXNzaWduZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0T3JnTWVtYmVyc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgbWVtYmVyczogT3JnTWVtYmVyW107XG4gIG5leHRUb2tlbj86IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbiAgLyoqIEJhY2tlbmQgU1NPVCBwYXJhIGxhYmVscyBkZSByb2xlcyBlbiBsYSByZXNwdWVzdGEgKEFEUi0wMjQgUGhhc2UgMikuICovXG4gIHJvbGVEaXNwbGF5TmFtZXM/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZW5kaW5nSW52aXRhdGlvbiB7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIG9yZ05hbWU6IHN0cmluZztcbiAgcm9sZUlkOiBzdHJpbmc7XG4gIGludml0ZXJJZDogc3RyaW5nO1xuICBpbnZpdGVyTmFtZTogc3RyaW5nO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UGVuZGluZ0ludml0YXRpb25zUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBpdGVtczogUGVuZGluZ0ludml0YXRpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NlcHRJbnZpdGF0aW9uUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBvcmdOYW1lOiBzdHJpbmc7XG4gIHJvbGVJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ1JvbGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICBpc1N5c3RlbT86IGJvb2xlYW47XG4gIC8qKiBOb21icmUgbGVnaWJsZSBwb3IgaWRpb21hLiBCYWNrZW5kIGF1dG9yaXRhdGl2byAoQURSLTAyNCkuIG5pbCBwYXJhIHJvbGVzIGN1c3RvbS4gKi9cbiAgZGlzcGxheU5hbWU/OiB7IGVzPzogc3RyaW5nOyBlbj86IHN0cmluZzsgW2xhbmc6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9O1xufVxuXG4vKipcbiAqIFJlc3VlbHZlIGVsIGxhYmVsIGxlZ2libGUgZGUgdW4gcm9sIHBhcmEgZWwgaWRpb21hIGRhZG8uXG4gKiBGYWxsYmFjazogZGlzcGxheU5hbWUgZW4gb3RybyBpZGlvbWEg4oaSIHJvbGUubmFtZSAoc25ha2VfY2FzZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUm9sZUxhYmVsKHJvbGU6IE9yZ1JvbGUsIGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxhYmVsID0gcm9sZS5kaXNwbGF5TmFtZT8uW2xhbmddID8/IHJvbGUuZGlzcGxheU5hbWU/LlsnZXMnXSA/PyByb2xlLmRpc3BsYXlOYW1lPy5bJ2VuJ107XG4gIHJldHVybiBsYWJlbCA/PyByb2xlLm5hbWU7XG59XG5cbi8qKlxuICogUmVzdWVsdmUgZWwgbGFiZWwgZGUgdW4gcm9sIGEgcGFydGlyIGRlIHVuYSBsaXN0YSBkZSByb2xlcyBkaXNwb25pYmxlcy5cbiAqIEJ1c2NhIHBvciBpZCBvIG5hbWUg4oaSIHVzYSByZXNvbHZlUm9sZUxhYmVsIOKGkiBmYWxsYmFjazogaHVtYW5pemEgZWwgbmFtZS5cbiAqXG4gKiBGdW5jacOzbiBjYW7Ds25pY2EgZGUgcmVzb2x1Y2nDs24uIFJlZW1wbGF6YSBsb3Mga2V5TWFwcyBtYW51YWxlcyBlbiBvcmctdmlldyB5XG4gKiBtZW1iZXItZGV0YWlsLW1vZGFsLiBDdWJyZSByb2xlcyBkZWwgc2lzdGVtYSBZIHJvbGVzIGN1c3RvbSBkZSBhcHAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUm9sZUxhYmVsRnJvbUxpc3QoXG4gIHJvbGVJZE9yTmFtZTogc3RyaW5nLFxuICByb2xlczogT3JnUm9sZVtdLFxuICBsYW5nOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IGZvdW5kID0gcm9sZXMuZmluZChyID0+IHIuaWQgPT09IHJvbGVJZE9yTmFtZSB8fCByLm5hbWUgPT09IHJvbGVJZE9yTmFtZSk7XG4gIGlmIChmb3VuZCkgcmV0dXJuIHJlc29sdmVSb2xlTGFiZWwoZm91bmQsIGxhbmcpO1xuICAvLyBIdW1hbml6YSBlbCBub21icmUgdMOpY25pY28gY29tbyDDumx0aW1vIHJlY3Vyc28gKGVqLiBcImJpbmdvX3RhcXVpbGxhXCIg4oaSIFwiQmluZ28gVGFxdWlsbGFcIilcbiAgcmV0dXJuIHJvbGVJZE9yTmFtZVxuICAgIC5zcGxpdCgvW18tXS8pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5tYXAodyA9PiB3LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKSlcbiAgICAuam9pbignICcpO1xufVxuXG4vKipcbiAqIFJvbGVzIGRlbCBzaXN0ZW1hIGNvbiBkaXNwbGF5TmFtZSAoZXMvZW4pLiBFc3Blam8gZGUgU3lzdGVtUm9sZUxhYmVscyAoYmFja2VuZCBHbykuXG4gKiBCYWNrZW5kIGVzIGF1dG9yaXRhdGl2byDigJQgZXN0byBlcyB1biBzZWVkIHBhcmEgcmVuZGVycyBwcmV2aW9zIGEgbGEgY2FyZ2EgZGUgbGEgQVBJLlxuICovXG5leHBvcnQgY29uc3QgU1lTVEVNX1JPTEVfREVGQVVMVFM6IE9yZ1JvbGVbXSA9IFtcbiAge1xuICAgIGlkOiAndmlld2VyJyxcbiAgICBuYW1lOiAndmlld2VyJyxcbiAgICBpc1N5c3RlbTogdHJ1ZSxcbiAgICBkaXNwbGF5TmFtZTogeyBlczogJ1Zpc3VhbGl6YWRvcicsIGVuOiAnVmlld2VyJyB9LFxuICB9LFxuICB7IGlkOiAnZWRpdG9yJywgbmFtZTogJ2VkaXRvcicsIGlzU3lzdGVtOiB0cnVlLCBkaXNwbGF5TmFtZTogeyBlczogJ0VkaXRvcicsIGVuOiAnRWRpdG9yJyB9IH0sXG4gIHtcbiAgICBpZDogJ2FkbWluJyxcbiAgICBuYW1lOiAnYWRtaW4nLFxuICAgIGlzU3lzdGVtOiB0cnVlLFxuICAgIGRpc3BsYXlOYW1lOiB7IGVzOiAnQWRtaW5pc3RyYWRvcicsIGVuOiAnQWRtaW5pc3RyYXRvcicgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnYmluZ29fYWRtaW4nLFxuICAgIG5hbWU6ICdiaW5nb19hZG1pbicsXG4gICAgaXNTeXN0ZW06IHRydWUsXG4gICAgZGlzcGxheU5hbWU6IHsgZXM6ICdBZG1pbiBCaW5nbycsIGVuOiAnQmluZ28gQWRtaW4nIH0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ2JpbmdvX3Rlc29yZXJvJyxcbiAgICBuYW1lOiAnYmluZ29fdGVzb3Jlcm8nLFxuICAgIGlzU3lzdGVtOiB0cnVlLFxuICAgIGRpc3BsYXlOYW1lOiB7IGVzOiAnVGVzb3Jlcm8nLCBlbjogJ1RyZWFzdXJlcicgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnYmluZ29fdGFxdWlsbGEnLFxuICAgIG5hbWU6ICdiaW5nb190YXF1aWxsYScsXG4gICAgaXNTeXN0ZW06IHRydWUsXG4gICAgZGlzcGxheU5hbWU6IHsgZXM6ICdUYXF1aWxsYScsIGVuOiAnQm94IE9mZmljZScgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnYmluZ29fb3BlcmF0b3InLFxuICAgIG5hbWU6ICdiaW5nb19vcGVyYXRvcicsXG4gICAgaXNTeXN0ZW06IHRydWUsXG4gICAgZGlzcGxheU5hbWU6IHsgZXM6ICdPcGVyYWRvcicsIGVuOiAnT3BlcmF0b3InIH0sXG4gIH0sXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RPcmdSb2xlc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgcm9sZXM6IE9yZ1JvbGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VNZW1iZXJSb2xlUmVxdWVzdCB7XG4gIHJvbGVJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZU1lbWJlclJvbGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICByb2xlSWQ6IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1lbWJlciBpbXBvcnQgKEFEUi0wMjMpIOKAlCBjcmVhY2nDs24gZGUgdXN1YXJpb3MgcG9yIG9yZywgc2luZ2xlICsgYnVsay5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEltcG9ydE9uQ29uZmxpY3QgPSAnYXNzaWduUm9sZScgfCAnc2tpcCcgfCAnZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFVzZXJSb3cge1xuICBlbWFpbDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICByb2xlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydE1lbWJlcnNSZXF1ZXN0IHtcbiAgdXNlcnM6IEltcG9ydFVzZXJSb3dbXTtcbiAgb25Db25mbGljdD86IEltcG9ydE9uQ29uZmxpY3Q7XG4gIHNlbmRBY3RpdmF0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgSW1wb3J0Um93U3RhdHVzID0gJ2NyZWF0ZWQnIHwgJ2Fzc2lnbmVkJyB8ICdza2lwcGVkJyB8ICdlcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0Um93UmVzdWx0IHtcbiAgZW1haWw6IHN0cmluZztcbiAgc3RhdHVzOiBJbXBvcnRSb3dTdGF0dXM7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgYWN0aXZhdGlvbj86ICdzZW50JyB8ICdwZW5kaW5nJztcbiAgcmVhc29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFN1bW1hcnkge1xuICBjcmVhdGVkOiBudW1iZXI7XG4gIGFzc2lnbmVkOiBudW1iZXI7XG4gIHNraXBwZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0TWVtYmVyc1Jlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VtbWFyeTogSW1wb3J0U3VtbWFyeTtcbiAgcmVzdWx0czogSW1wb3J0Um93UmVzdWx0W107XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.33';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4zMyc7XG4iXX0=
5
+ export const VERSION = '4.0.34';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4zNCc7XG4iXX0=
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.33';
59
+ const VERSION = '4.0.34';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -47559,6 +47559,11 @@ addIcons({ businessOutline, checkmarkCircleOutline });
47559
47559
  * `Settings.SwitchOrg`.
47560
47560
  */
47561
47561
  class SwitchOrgModalComponent {
47562
+ onLogoError(orgId) {
47563
+ const next = new Set(this.failedLogos());
47564
+ next.add(orgId);
47565
+ this.failedLogos.set(next);
47566
+ }
47562
47567
  constructor() {
47563
47568
  this.i18n = inject(I18nService);
47564
47569
  this.auth = inject(AuthService);
@@ -47572,6 +47577,10 @@ class SwitchOrgModalComponent {
47572
47577
  this.query = signal('');
47573
47578
  this.switchingId = signal(null);
47574
47579
  this.user = computed(() => this.auth.user());
47580
+ /** Avatar de usuario que falló al cargar → cae a iniciales. */
47581
+ this.userAvatarFailed = signal(false);
47582
+ /** IDs de orgs cuyo logo falló al cargar → caen al ícono business-outline. */
47583
+ this.failedLogos = signal(new Set());
47575
47584
  this.userInitials = computed(() => {
47576
47585
  const name = this.user()?.name ?? this.user()?.email ?? '?';
47577
47586
  return name.slice(0, 2).toUpperCase();
@@ -47662,8 +47671,8 @@ class SwitchOrgModalComponent {
47662
47671
 
47663
47672
  <div class="user-strip">
47664
47673
  <div class="user-strip__avatar">
47665
- @if (user()?.avatarUrl) {
47666
- <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" />
47674
+ @if (user()?.avatarUrl && !userAvatarFailed()) {
47675
+ <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" (error)="userAvatarFailed.set(true)" />
47667
47676
  } @else {
47668
47677
  <span>{{ userInitials() }}</span>
47669
47678
  }
@@ -47710,8 +47719,8 @@ class SwitchOrgModalComponent {
47710
47719
  (click)="onSelect(org)"
47711
47720
  >
47712
47721
  <div class="org-row__icon">
47713
- @if (org.logoUrl) {
47714
- <img [src]="org.logoUrl" [alt]="org.name" />
47722
+ @if (org.logoUrl && !failedLogos().has(org.id)) {
47723
+ <img [src]="org.logoUrl" [alt]="org.name" (error)="onLogoError(org.id)" />
47715
47724
  } @else {
47716
47725
  <ion-icon name="business-outline" />
47717
47726
  }
@@ -47774,8 +47783,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
47774
47783
 
47775
47784
  <div class="user-strip">
47776
47785
  <div class="user-strip__avatar">
47777
- @if (user()?.avatarUrl) {
47778
- <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" />
47786
+ @if (user()?.avatarUrl && !userAvatarFailed()) {
47787
+ <img [src]="user()!.avatarUrl!" [alt]="user()?.name ?? ''" (error)="userAvatarFailed.set(true)" />
47779
47788
  } @else {
47780
47789
  <span>{{ userInitials() }}</span>
47781
47790
  }
@@ -47822,8 +47831,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
47822
47831
  (click)="onSelect(org)"
47823
47832
  >
47824
47833
  <div class="org-row__icon">
47825
- @if (org.logoUrl) {
47826
- <img [src]="org.logoUrl" [alt]="org.name" />
47834
+ @if (org.logoUrl && !failedLogos().has(org.id)) {
47835
+ <img [src]="org.logoUrl" [alt]="org.name" (error)="onLogoError(org.id)" />
47827
47836
  } @else {
47828
47837
  <ion-icon name="business-outline" />
47829
47838
  }
@@ -48768,6 +48777,8 @@ const EDIT_ORG_MODAL_I18N = {
48768
48777
  saveSuccess: 'Organización actualizada.',
48769
48778
  saveError: 'No se pudo guardar. Intenta de nuevo.',
48770
48779
  fillRequired: 'Completa todos los campos requeridos.',
48780
+ removeLogo: 'Quitar logo',
48781
+ removeLogoSuccess: 'Logo eliminado.',
48771
48782
  },
48772
48783
  en: {
48773
48784
  title: 'Edit organization',
@@ -48783,6 +48794,8 @@ const EDIT_ORG_MODAL_I18N = {
48783
48794
  saveSuccess: 'Organization updated.',
48784
48795
  saveError: 'Could not save. Please try again.',
48785
48796
  fillRequired: 'Please fill in all required fields.',
48797
+ removeLogo: 'Remove logo',
48798
+ removeLogoSuccess: 'Logo removed.',
48786
48799
  },
48787
48800
  };
48788
48801
 
@@ -48816,6 +48829,7 @@ class EditOrgModalComponent {
48816
48829
  this.i18nNamespace = DEFAULT_NAMESPACE$c;
48817
48830
  this.saving = signal(false);
48818
48831
  this.logoUrl = signal(null);
48832
+ this.removingLogo = signal(false);
48819
48833
  this.orgInitials = computed(() => {
48820
48834
  const name = this.org?.name ?? '';
48821
48835
  return name.slice(0, 2).toUpperCase() || '?';
@@ -48952,6 +48966,28 @@ class EditOrgModalComponent {
48952
48966
  });
48953
48967
  }
48954
48968
  }
48969
+ async onRemoveLogo() {
48970
+ const orgId = this.org?.id ?? this.activeOrgId;
48971
+ if (!orgId || this.removingLogo())
48972
+ return;
48973
+ this.removingLogo.set(true);
48974
+ try {
48975
+ const updated = await firstValueFrom(this.orgService.updateOrg(orgId, { clearLogo: true }));
48976
+ this.logoUrl.set(null);
48977
+ this.toast.show({ message: this.t('removeLogoSuccess'), color: 'dark', duration: 3000 });
48978
+ this.onSuccess?.(updated);
48979
+ }
48980
+ catch (err) {
48981
+ this.errors.handle(err, {
48982
+ context: 'editOrgModal.removeLogo',
48983
+ fallbackKey: 'saveError',
48984
+ i18nNamespace: this.i18nNamespace,
48985
+ });
48986
+ }
48987
+ finally {
48988
+ this.removingLogo.set(false);
48989
+ }
48990
+ }
48955
48991
  dismiss() {
48956
48992
  this._modalRef?.dismiss(null, 'cancel');
48957
48993
  }
@@ -48959,7 +48995,7 @@ class EditOrgModalComponent {
48959
48995
  return this.i18n.t(key, this.i18nNamespace);
48960
48996
  }
48961
48997
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditOrgModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48962
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EditOrgModalComponent, isStandalone: true, selector: "val-edit-org-modal", inputs: { _modalRef: "_modalRef", org: "org", onSuccess: "onSuccess", i18nNamespace: "i18nNamespace" }, ngImport: i0, template: `
48998
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EditOrgModalComponent, isStandalone: true, selector: "val-edit-org-modal", inputs: { _modalRef: "_modalRef", org: "org", onSuccess: "onSuccess", i18nNamespace: "i18nNamespace" }, ngImport: i0, template: `
48963
48999
  <ion-header>
48964
49000
  <ion-toolbar>
48965
49001
  <ion-buttons slot="end">
@@ -48979,6 +49015,13 @@ class EditOrgModalComponent {
48979
49015
  (uploaded)="onLogoUploaded($event)"
48980
49016
  />
48981
49017
  </div>
49018
+ @if (logoUrl()) {
49019
+ <div class="logo-remove">
49020
+ <ion-button fill="clear" size="small" color="dark" [disabled]="removingLogo()" (click)="onRemoveLogo()">
49021
+ {{ t('removeLogo') }}
49022
+ </ion-button>
49023
+ </div>
49024
+ }
48982
49025
  <val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
48983
49026
  <val-title
48984
49027
  [props]="{
@@ -48995,7 +49038,7 @@ class EditOrgModalComponent {
48995
49038
  </ion-button>
48996
49039
  </div>
48997
49040
  </ion-content>
48998
- `, isInline: true, styles: [".modal-close-bottom{margin-top:16px}.logo-upload-wrapper{display:flex;justify-content:center;padding:8px 0 16px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: AvatarUploadComponent, selector: "val-avatar-upload", inputs: ["props", "customPath", "customThumbPath", "skipBackendSync"], outputs: ["uploaded", "error", "uploadStart"] }] }); }
49041
+ `, isInline: true, styles: [".modal-close-bottom{margin-top:16px}.logo-upload-wrapper{display:flex;justify-content:center;padding:8px 0 4px}.logo-remove{display:flex;justify-content:center;margin-bottom:12px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: AvatarUploadComponent, selector: "val-avatar-upload", inputs: ["props", "customPath", "customThumbPath", "skipBackendSync"], outputs: ["uploaded", "error", "uploadStart"] }] }); }
48999
49042
  }
49000
49043
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EditOrgModalComponent, decorators: [{
49001
49044
  type: Component,
@@ -49029,6 +49072,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
49029
49072
  (uploaded)="onLogoUploaded($event)"
49030
49073
  />
49031
49074
  </div>
49075
+ @if (logoUrl()) {
49076
+ <div class="logo-remove">
49077
+ <ion-button fill="clear" size="small" color="dark" [disabled]="removingLogo()" (click)="onRemoveLogo()">
49078
+ {{ t('removeLogo') }}
49079
+ </ion-button>
49080
+ </div>
49081
+ }
49032
49082
  <val-display [props]="{ content: t('title'), size: 'small', color: 'dark' }" />
49033
49083
  <val-title
49034
49084
  [props]="{
@@ -49045,7 +49095,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
49045
49095
  </ion-button>
49046
49096
  </div>
49047
49097
  </ion-content>
49048
- `, styles: [".modal-close-bottom{margin-top:16px}.logo-upload-wrapper{display:flex;justify-content:center;padding:8px 0 16px}\n"] }]
49098
+ `, styles: [".modal-close-bottom{margin-top:16px}.logo-upload-wrapper{display:flex;justify-content:center;padding:8px 0 4px}.logo-remove{display:flex;justify-content:center;margin-bottom:12px}\n"] }]
49049
49099
  }], ctorParameters: () => [], propDecorators: { _modalRef: [{
49050
49100
  type: Input
49051
49101
  }], org: [{
@@ -51952,6 +52002,8 @@ class OrganizationViewComponent {
51952
52002
  };
51953
52003
  });
51954
52004
  this.org = signal(null);
52005
+ /** Logo de org que falló al cargar → oculta el bloque (cae a la card sin logo). */
52006
+ this.logoFailed = signal(false);
51955
52007
  this.loading = signal(false);
51956
52008
  this.leaving = signal(false);
51957
52009
  this.permissionsOpen = signal(false);
@@ -52323,6 +52375,7 @@ class OrganizationViewComponent {
52323
52375
  return new Promise(resolve => {
52324
52376
  this.orgService.getOrg(orgId).subscribe({
52325
52377
  next: org => {
52378
+ this.logoFailed.set(false);
52326
52379
  this.org.set(org);
52327
52380
  this.loading.set(false);
52328
52381
  resolve();
@@ -52495,9 +52548,9 @@ class OrganizationViewComponent {
52495
52548
  } @else {
52496
52549
  @if (org(); as o) {
52497
52550
  <div class="org-info-card">
52498
- @if (o.logoUrl) {
52551
+ @if (o.logoUrl && !logoFailed()) {
52499
52552
  <div class="org-info-logo">
52500
- <img class="org-logo-img" [src]="o.logoUrl" [alt]="o.name" />
52553
+ <img class="org-logo-img" [src]="o.logoUrl" [alt]="o.name" (error)="logoFailed.set(true)" />
52501
52554
  </div>
52502
52555
  }
52503
52556
  <div class="org-info-field">
@@ -52803,9 +52856,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
52803
52856
  } @else {
52804
52857
  @if (org(); as o) {
52805
52858
  <div class="org-info-card">
52806
- @if (o.logoUrl) {
52859
+ @if (o.logoUrl && !logoFailed()) {
52807
52860
  <div class="org-info-logo">
52808
- <img class="org-logo-img" [src]="o.logoUrl" [alt]="o.name" />
52861
+ <img class="org-logo-img" [src]="o.logoUrl" [alt]="o.name" (error)="logoFailed.set(true)" />
52809
52862
  </div>
52810
52863
  }
52811
52864
  <div class="org-info-field">