@sumaris-net/ngx-components 18.23.50 → 18.23.52

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 (35) hide show
  1. package/esm2022/src/app/admin/users/users.mjs +3 -3
  2. package/esm2022/src/app/core/account/new-token.form.mjs +3 -3
  3. package/esm2022/src/app/core/account/token.table.mjs +3 -3
  4. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +3 -3
  5. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +3 -3
  6. package/esm2022/src/app/core/form/list/list.form.mjs +3 -3
  7. package/esm2022/src/app/core/form/properties/properties.form.mjs +3 -3
  8. package/esm2022/src/app/core/form/properties/properties.table.mjs +3 -3
  9. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +3 -3
  10. package/esm2022/src/app/core/home/home.mjs +3 -3
  11. package/esm2022/src/app/core/menu/menu.component.mjs +3 -3
  12. package/esm2022/src/app/core/settings/settings.page.mjs +3 -3
  13. package/esm2022/src/app/core/table/column/actions-column.component.mjs +3 -3
  14. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +3 -3
  15. package/esm2022/src/app/core/table/testing/table.testing.mjs +3 -3
  16. package/esm2022/src/app/core/table/testing/table2.testing.mjs +3 -3
  17. package/esm2022/src/app/shared/constants.mjs +2 -2
  18. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  19. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +3 -3
  20. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  21. package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
  22. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +3 -3
  23. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +3 -3
  24. package/esm2022/src/app/social/feed/feed.component.mjs +3 -3
  25. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  26. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +3 -3
  27. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  28. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +3 -3
  29. package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +3 -3
  30. package/fesm2022/sumaris-net.ngx-components.mjs +30 -30
  31. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  32. package/package.json +1 -1
  33. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  34. package/src/app/shared/constants.d.ts +1 -1
  35. package/src/assets/manifest.json +1 -1
@@ -5,7 +5,7 @@ import { UserEventNotificationList } from './user-event-notification.list';
5
5
  import { map, tap } from 'rxjs/operators';
6
6
  import { isNil, toBoolean } from '../../../shared/functions';
7
7
  import { UserEventNotificationModal } from './user-event-notification.modal';
8
- import { SHOW_TOOLTIP } from '../../../shared/constants';
8
+ import { APP_SHOW_TOOLTIP } from '../../../shared/constants';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../../../core/services/account.service";
11
11
  import * as i2 from "@ionic/angular";
@@ -44,7 +44,7 @@ export class UserEventNotificationIcon {
44
44
  listStyle;
45
45
  debug = false;
46
46
  onShowList = new EventEmitter();
47
- showTooltip = inject(SHOW_TOOLTIP);
47
+ showTooltip = inject(APP_SHOW_TOOLTIP, { optional: true });
48
48
  constructor(userEventService, accountService, popoverController, modalController, settings, cd) {
49
49
  this.userEventService = userEventService;
50
50
  this.accountService = accountService;
@@ -188,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
188
188
  type: Output,
189
189
  args: ['showList']
190
190
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5pY29uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsc0JBQXNCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFvQyxNQUFNLGdDQUFnQyxDQUFDO0FBRzdHLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQTJCaUI7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDRjtJQS9CRixVQUFVLEdBQUcsNEJBQTRCLENBQUM7SUFDMUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBQ2pELFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIs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QW5KVSx5QkFBeUIsa0JBMkJkLHNCQUFzQjs0RkEzQmpDLHlCQUF5QixtWkNqQ3RDLDhoREFtREE7OzRGRGxCYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNOzswQkE2QjVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCO3VNQW5CbkMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFYyxVQUFVO3NCQUE3QixNQUFNO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQVBQX1VTRVJfRVZFTlRfU0VSVklDRSwgSVVzZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdCwgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnMgfSBmcm9tICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QnO1xuaW1wb3J0IHsgSVVzZXJFdmVudCwgSVVzZXJFdmVudEFjdGlvbiwgSVVzZXJFdmVudEZpbHRlciB9IGZyb20gJy4uL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzTmlsLCB0b0Jvb2xlYW4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEFwcENvbG9ycyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnROb3RpZmljYXRpb25Nb2RhbCB9IGZyb20gJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubW9kYWwnO1xuXG5pbXBvcnQgeyBTSE9XX1RPT0xUSVAgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbi5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbi5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnROb3RpZmljYXRpb25JY29uIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9sb2dQcmVmaXggPSAnW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uXSAnO1xuICBwcml2YXRlIF9yZWFkRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPElVc2VyRXZlbnQ8YW55Pj4oKTtcbiAgcHJpdmF0ZSBfcmVhZEV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8SVVzZXJFdmVudDxhbnk+W10+KCk7XG5cbiAgcHJvdGVjdGVkIHZpc2libGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCByZWFkb25seSBjb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBASW5wdXQoKSB0aXRsZUkxOG4gPSAnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlRJVExFJztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZmlsdGVyOiBhbnkgPSBudWxsO1xuICBASW5wdXQoKSBhdXRvSGlkZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoZWFkZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIGZvb3RlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgc3R5bGU6ICdtYXQtYnV0dG9uJyB8ICdpb24tYnV0dG9uJyA9ICdtYXQtYnV0dG9uJztcbiAgQElucHV0KCkgY29sb3I6IEFwcENvbG9ycztcbiAgQElucHV0KCkgdW5yZWFkQ29sb3I6IEFwcENvbG9ycztcbiAgQElucHV0KCkgZmlsbDogJ2NsZWFyJyB8ICdvdXRsaW5lJyB8ICdzb2xpZCc7XG4gIEBJbnB1dCgpIG1vYmlsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbGlzdFN0eWxlOiAncG9wb3ZlcicgfCAnbW9kYWwnO1xuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoJ3Nob3dMaXN0Jykgb25TaG93TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgc2hvd1Rvb2x0aXAgPSBpbmplY3QoU0hPV19UT09MVElQKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0UpIHB1YmxpYyB1c2VyRXZlbnRTZXJ2aWNlOiBJVXNlckV2ZW50U2VydmljZTxJVXNlckV2ZW50PGFueT4sIElVc2VyRXZlbnRGaWx0ZXI8YW55Pj4sXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBtb2RhbENvbnRyb2xsZXI6IE1vZGFsQ29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMubW9iaWxlID0gc2V0dGluZ3MubW9iaWxlO1xuICAgIHRoaXMubGlzdFN0eWxlID0gdGhpcy5tb2JpbGUgPyAnbW9kYWwnIDogJ3BvcG92ZXInO1xuICAgIHRoaXMuY291bnQkID0gIXRoaXMudXNlckV2ZW50U2VydmljZVxuICAgICAgPyBvZigpXG4gICAgICA6IHRoaXMudXNlckV2ZW50U2VydmljZS5jb3VudFN1YmplY3QucGlwZShcbiAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2aXNpYmxlID0gIXRoaXMuYXV0b0hpZGUgfHwgdmFsdWUgPiAwO1xuICAgICAgICAgICAgdGhpcy5zZXRWaXNpYmxlKHZpc2libGUpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgodmFsdWUpID0+ICh2YWx1ZSA9PT0gMCA/IHVuZGVmaW5lZCA6IHZhbHVlKSlcbiAgICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIC8vIFNlcnZpY2UgaXMgbWlzc2luZzogZmFsbGJhY2tcbiAgICBpZiAoaXNOaWwodGhpcy51c2VyRXZlbnRTZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkYCk7XG4gICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXNlciBldmVudCBzZXJ2aWNlIGV4aXN0c1xuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZXRWaXNpYmxlKHRvQm9vbGVhbih0aGlzLnZpc2libGUsICF0aGlzLmF1dG9IaWRlKSk7XG5cbiAgICAgIC8vIFdhaXQgc2VydmljZVxuICAgICAgYXdhaXQgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLnJlYWR5KCk7XG5cbiAgICAgIC8vIFN1YnNjcmliZSB0byByZWFkIGV2ZW50XG4gICAgICB0aGlzLl9yZWFkRXZlbnQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgIC8vIGRlZmF1bHQ6IG1hcmsgZXZlbnQgYXMgcmVhZFxuICAgICAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UubWFya0FsbEFzUmVhZChbaXRlbV0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9yZWFkRXZlbnRzLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLm1hcmtBbGxBc1JlYWQoaXRlbXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fURlc3Ryb3lpbmdgKTtcbiAgICB9XG4gICAgdGhpcy5fcmVhZEV2ZW50LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVhZEV2ZW50cy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgc2hvd0xpc3QoXG4gICAgZXZlbnQ6IEV2ZW50ID0gdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM/OiBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0T3B0aW9ucyAmIHtcbiAgICAgIHN0eWxlOiAnbW9kYWwnIHwgJ3BvcG92ZXInO1xuICAgIH1cbiAgKSB7XG4gICAgaWYgKHRoaXMub25TaG93TGlzdC5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5vblNob3dMaXN0LmVtaXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBSZXNldCBjb3VudCAoaWYgbm90IGF1dG8gaGlkZS4gZWxzZSBpdCB3aWxsIGJlIGhpZGRlbiBiZWxsb3cpXG4gICAgaWYgKCF0aGlzLmF1dG9IaWRlKSB7XG4gICAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UucmVzZXRDb3VudCgpO1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICBkZWJ1ZzogdGhpcy5kZWJ1ZyxcbiAgICAgIHRpdGxlSTE4bjogdGhpcy50aXRsZUkxOG4sXG4gICAgICByZWFkRXZlbnQ6IHRoaXMuX3JlYWRFdmVudCxcbiAgICAgIHJlYWRFdmVudHM6IHRoaXMuX3JlYWRFdmVudHMsXG4gICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyLFxuICAgICAgaGVhZGVyQWN0aW9uczogdGhpcy5oZWFkZXJBY3Rpb25zLFxuICAgICAgZm9vdGVyQWN0aW9uczogdGhpcy5mb290ZXJBY3Rpb25zLFxuICAgICAgc2hvd1Rvb2x0aXA6IHRoaXMuc2hvd1Rvb2x0aXAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBPcGVuIHVzaW5nIG1vZGFsXG4gICAgY29uc3QgbGlzdFN0eWxlID0gb3B0aW9ucz8uc3R5bGUgfHwgdGhpcy5saXN0U3R5bGU7XG4gICAgaWYgKGxpc3RTdHlsZSA9PT0gJ21vZGFsJykge1xuICAgICAgY29uc3QgbW9kYWwgPSBhd2FpdCB0aGlzLm1vZGFsQ29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgICBjb21wb25lbnQ6IFVzZXJFdmVudE5vdGlmaWNhdGlvbk1vZGFsLFxuICAgICAgICBjb21wb25lbnRQcm9wczogb3B0aW9ucyxcbiAgICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAgICBrZXlib2FyZENsb3NlOiB0cnVlLFxuICAgICAgICBjc3NDbGFzczogJ21vZGFsLW5vdGlmaWNhdGlvbnMnLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCBtb2RhbC5wcmVzZW50KCk7XG4gICAgfVxuXG4gICAgLy8gT3BlbiB1c2luZyBwb3BvdmVyXG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgICBjb21wb25lbnQ6IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QsXG4gICAgICAgIGNvbXBvbmVudFByb3BzOiBvcHRpb25zLFxuICAgICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICAgIGtleWJvYXJkQ2xvc2U6IHRydWUsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgICAgY3NzQ2xhc3M6ICdwb3BvdmVyLWxhcmdlIHBvcG92ZXItbm90aWZpY2F0aW9ucycsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGNvdW50IChpZiBhdXRvIGhpZGUgLSBhZnRlciBsaXN0IGhhcyBiZWVuIG9wZW5lZClcbiAgICBpZiAodGhpcy5hdXRvSGlkZSkge1xuICAgICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLnJlc2V0Q291bnQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0VmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLnZpc2libGUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCJAbGV0IGNvdW50ID0gY291bnQkIHwgYXN5bmM7XG5AaWYgKHZpc2libGUpIHtcbiAgQHN3aXRjaCAoc3R5bGUpIHtcbiAgICA8IS0tIG1hdCBpY29uIGJ1dHRvbiAoZS5nLiBmb3IgaG9tZSB0b29sYmFyKSAtLT5cbiAgICBAY2FzZSAoJ21hdC1idXR0b24nKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbY29sb3JdPVwiKGNvdW50ICYmIHVucmVhZENvbG9yKSB8fCBjb2xvciB8IG1hdENvbG9yXCJcbiAgICAgICAgW3RpdGxlXT1cIiFzaG93VG9vbHRpcCA/ICh0aXRsZUkxOG4gfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJzaG93VG9vbHRpcCA/ICh0aXRsZUkxOG4gfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwic2hvd0xpc3QoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFttYXRCYWRnZV09XCJjb3VudCB8IGJhZGdlTnVtYmVyXCJcbiAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiIWNvdW50XCJcbiAgICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFib3ZlIGFmdGVyXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIG5vdGlmaWNhdGlvbnNcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIDwhLS0gaW9uIGJ1dHRvbiAoZS5nLiBmb3IgaG9tZSB0b29sYmFyKSAtLT5cbiAgICBAY2FzZSAoJ2lvbi1idXR0b24nKSB7XG4gICAgICA8aW9uLWJ1dHRvblxuICAgICAgICBbZmlsbF09XCJmaWxsXCJcbiAgICAgICAgW2NvbG9yXT1cIihjb3VudCAmJiB1bnJlYWRDb2xvcikgfHwgY29sb3JcIlxuICAgICAgICBbdGl0bGVdPVwiIXNob3dUb29sdGlwID8gKHRpdGxlSTE4biB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKHRpdGxlSTE4biB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJzaG93TGlzdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgc2xvdD1cImljb24tb25seVwiXG4gICAgICAgICAgW21hdEJhZGdlXT1cImNvdW50IHwgYmFkZ2VOdW1iZXJcIlxuICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhY291bnRcIlxuICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWJvdmUgYWZ0ZXJcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgbm90aWZpY2F0aW9uc1xuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIH1cbiAgfVxufVxuIl19
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmljb24udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5pY29uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsc0JBQXNCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFvQyxNQUFNLGdDQUFnQyxDQUFDO0FBRzdHLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE3RCxNQUFNLE9BQU8seUJBQXlCO0lBMkJpQjtJQUN6QztJQUNBO0lBQ0E7SUFDQTtJQUNGO0lBL0JGLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztJQUMxQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFDakQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFx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LEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzt3R0FuSlUseUJBQXlCLGtCQTJCZCxzQkFBc0I7NEZBM0JqQyx5QkFBeUIsbVpDakN0Qyw4aERBbURBOzs0RkRsQmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBNkI1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQjt1TUFuQm5DLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRWMsVUFBVTtzQkFBN0IsTUFBTTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0UsIElVc2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QsIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zIH0gZnJvbSAnLi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0JztcbmltcG9ydCB7IElVc2VyRXZlbnQsIElVc2VyRXZlbnRBY3Rpb24sIElVc2VyRXZlbnRGaWx0ZXIgfSBmcm9tICcuLi91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc05pbCwgdG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBBcHBDb2xvcnMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckV2ZW50Tm90aWZpY2F0aW9uTW9kYWwgfSBmcm9tICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLm1vZGFsJztcblxuaW1wb3J0IHsgQVBQX1NIT1dfVE9PTFRJUCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5pY29uLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5pY29uLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudE5vdGlmaWNhdGlvbkljb24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xvZ1ByZWZpeCA9ICdbdXNlci1ldmVudC1ub3RpZmljYXRpb25dICc7XG4gIHByaXZhdGUgX3JlYWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8SVVzZXJFdmVudDxhbnk+PigpO1xuICBwcml2YXRlIF9yZWFkRXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjxJVXNlckV2ZW50PGFueT5bXT4oKTtcblxuICBwcm90ZWN0ZWQgdmlzaWJsZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIEBJbnB1dCgpIHRpdGxlSTE4biA9ICdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uVElUTEUnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXI6IGFueSA9IG51bGw7XG4gIEBJbnB1dCgpIGF1dG9IaWRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhlYWRlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgZm9vdGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuICBASW5wdXQoKSBzdHlsZTogJ21hdC1idXR0b24nIHwgJ2lvbi1idXR0b24nID0gJ21hdC1idXR0b24nO1xuICBASW5wdXQoKSBjb2xvcjogQXBwQ29sb3JzO1xuICBASW5wdXQoKSB1bnJlYWRDb2xvcjogQXBwQ29sb3JzO1xuICBASW5wdXQoKSBmaWxsOiAnY2xlYXInIHwgJ291dGxpbmUnIHwgJ3NvbGlkJztcbiAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xuICBASW5wdXQoKSBsaXN0U3R5bGU6ICdwb3BvdmVyJyB8ICdtb2RhbCc7XG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG5cbiAgQE91dHB1dCgnc2hvd0xpc3QnKSBvblNob3dMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBzaG93VG9vbHRpcCA9IGluamVjdChBUFBfU0hPV19UT09MVElQLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1VTRVJfRVZFTlRfU0VSVklDRSkgcHVibGljIHVzZXJFdmVudFNlcnZpY2U6IElVc2VyRXZlbnRTZXJ2aWNlPElVc2VyRXZlbnQ8YW55PiwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PixcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIG1vZGFsQ29udHJvbGxlcjogTW9kYWxDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5tb2JpbGUgPSBzZXR0aW5ncy5tb2JpbGU7XG4gICAgdGhpcy5saXN0U3R5bGUgPSB0aGlzLm1vYmlsZSA/ICdtb2RhbCcgOiAncG9wb3Zlcic7XG4gICAgdGhpcy5jb3VudCQgPSAhdGhpcy51c2VyRXZlbnRTZXJ2aWNlXG4gICAgICA/IG9mKClcbiAgICAgIDogdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmNvdW50U3ViamVjdC5waXBlKFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2libGUgPSAhdGhpcy5hdXRvSGlkZSB8fCB2YWx1ZSA+IDA7XG4gICAgICAgICAgICB0aGlzLnNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gKHZhbHVlID09PSAwID8gdW5kZWZpbmVkIDogdmFsdWUpKVxuICAgICAgICApO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgLy8gU2VydmljZSBpcyBtaXNzaW5nOiBmYWxsYmFja1xuICAgIGlmIChpc05pbCh0aGlzLnVzZXJFdmVudFNlcnZpY2UpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7dGhpcy5fbG9nUHJlZml4fU5vIHNlcnZpY2UgaW5qZWN0ZWRgKTtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZXRWaXNpYmxlKGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVc2VyIGV2ZW50IHNlcnZpY2UgZXhpc3RzXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnNldFZpc2libGUodG9Cb29sZWFuKHRoaXMudmlzaWJsZSwgIXRoaXMuYXV0b0hpZGUpKTtcblxuICAgICAgLy8gV2FpdCBzZXJ2aWNlXG4gICAgICBhd2FpdCB0aGlzLnVzZXJFdmVudFNlcnZpY2UucmVhZHkoKTtcblxuICAgICAgLy8gU3Vic2NyaWJlIHRvIHJlYWQgZXZlbnRcbiAgICAgIHRoaXMuX3JlYWRFdmVudC5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgICAgLy8gZGVmYXVsdDogbWFyayBldmVudCBhcyByZWFkXG4gICAgICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5tYXJrQWxsQXNSZWFkKFtpdGVtXSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3JlYWRFdmVudHMuc3Vic2NyaWJlKChpdGVtcykgPT4ge1xuICAgICAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UubWFya0FsbEFzUmVhZChpdGVtcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9RGVzdHJveWluZ2ApO1xuICAgIH1cbiAgICB0aGlzLl9yZWFkRXZlbnQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9yZWFkRXZlbnRzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBhc3luYyBzaG93TGlzdChcbiAgICBldmVudDogRXZlbnQgPSB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zICYge1xuICAgICAgc3R5bGU6ICdtb2RhbCcgfCAncG9wb3Zlcic7XG4gICAgfVxuICApIHtcbiAgICBpZiAodGhpcy5vblNob3dMaXN0Lm9ic2VydmVkKSB7XG4gICAgICB0aGlzLm9uU2hvd0xpc3QuZW1pdChldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFJlc2V0IGNvdW50IChpZiBub3QgYXV0byBoaWRlLiBlbHNlIGl0IHdpbGwgYmUgaGlkZGVuIGJlbGxvdylcbiAgICBpZiAoIXRoaXMuYXV0b0hpZGUpIHtcbiAgICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5yZXNldENvdW50KCk7XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIGRlYnVnOiB0aGlzLmRlYnVnLFxuICAgICAgdGl0bGVJMThuOiB0aGlzLnRpdGxlSTE4bixcbiAgICAgIHJlYWRFdmVudDogdGhpcy5fcmVhZEV2ZW50LFxuICAgICAgcmVhZEV2ZW50czogdGhpcy5fcmVhZEV2ZW50cyxcbiAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXIsXG4gICAgICBoZWFkZXJBY3Rpb25zOiB0aGlzLmhlYWRlckFjdGlvbnMsXG4gICAgICBmb290ZXJBY3Rpb25zOiB0aGlzLmZvb3RlckFjdGlvbnMsXG4gICAgICBzaG93VG9vbHRpcDogdGhpcy5zaG93VG9vbHRpcCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIE9wZW4gdXNpbmcgbW9kYWxcbiAgICBjb25zdCBsaXN0U3R5bGUgPSBvcHRpb25zPy5zdHlsZSB8fCB0aGlzLmxpc3RTdHlsZTtcbiAgICBpZiAobGlzdFN0eWxlID09PSAnbW9kYWwnKSB7XG4gICAgICBjb25zdCBtb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICAgIGNvbXBvbmVudDogVXNlckV2ZW50Tm90aWZpY2F0aW9uTW9kYWwsXG4gICAgICAgIGNvbXBvbmVudFByb3BzOiBvcHRpb25zLFxuICAgICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICAgIGtleWJvYXJkQ2xvc2U6IHRydWUsXG4gICAgICAgIGNzc0NsYXNzOiAnbW9kYWwtbm90aWZpY2F0aW9ucycsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IG1vZGFsLnByZXNlbnQoKTtcbiAgICB9XG5cbiAgICAvLyBPcGVuIHVzaW5nIHBvcG92ZXJcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICAgIGNvbXBvbmVudDogVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdCxcbiAgICAgICAgY29tcG9uZW50UHJvcHM6IG9wdGlvbnMsXG4gICAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgICAga2V5Ym9hcmRDbG9zZTogdHJ1ZSxcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgICBjc3NDbGFzczogJ3BvcG92ZXItbGFyZ2UgcG9wb3Zlci1ub3RpZmljYXRpb25zJyxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXQgY291bnQgKGlmIGF1dG8gaGlkZSAtIGFmdGVyIGxpc3QgaGFzIGJlZW4gb3BlbmVkKVxuICAgIGlmICh0aGlzLmF1dG9IaWRlKSB7XG4gICAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UucmVzZXRDb3VudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMudmlzaWJsZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBsZXQgY291bnQgPSBjb3VudCQgfCBhc3luYztcbkBpZiAodmlzaWJsZSkge1xuICBAc3dpdGNoIChzdHlsZSkge1xuICAgIDwhLS0gbWF0IGljb24gYnV0dG9uIChlLmcuIGZvciBob21lIHRvb2xiYXIpIC0tPlxuICAgIEBjYXNlICgnbWF0LWJ1dHRvbicpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtjb2xvcl09XCIoY291bnQgJiYgdW5yZWFkQ29sb3IpIHx8IGNvbG9yIHwgbWF0Q29sb3JcIlxuICAgICAgICBbdGl0bGVdPVwiIXNob3dUb29sdGlwID8gKHRpdGxlSTE4biB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKHRpdGxlSTE4biB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJzaG93TGlzdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgW21hdEJhZGdlXT1cImNvdW50IHwgYmFkZ2VOdW1iZXJcIlxuICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhY291bnRcIlxuICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWJvdmUgYWZ0ZXJcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgbm90aWZpY2F0aW9uc1xuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgPCEtLSBpb24gYnV0dG9uIChlLmcuIGZvciBob21lIHRvb2xiYXIpIC0tPlxuICAgIEBjYXNlICgnaW9uLWJ1dHRvbicpIHtcbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIFtmaWxsXT1cImZpbGxcIlxuICAgICAgICBbY29sb3JdPVwiKGNvdW50ICYmIHVucmVhZENvbG9yKSB8fCBjb2xvclwiXG4gICAgICAgIFt0aXRsZV09XCIhc2hvd1Rvb2x0aXAgPyAodGl0bGVJMThuIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwic2hvd1Rvb2x0aXAgPyAodGl0bGVJMThuIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dMaXN0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBzbG90PVwiaWNvbi1vbmx5XCJcbiAgICAgICAgICBbbWF0QmFkZ2VdPVwiY291bnQgfCBiYWRnZU51bWJlclwiXG4gICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiFjb3VudFwiXG4gICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhYm92ZSBhZnRlclwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICBub3RpZmljYXRpb25zXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -6,7 +6,7 @@ import { isNotEmptyArray, removeDuplicatesFromArray } from '../../../shared/func
6
6
  import { fromScrollEndEvent } from '../../../shared/events';
7
7
  import { waitFor } from '../../../shared/observables';
8
8
  import { debounceTime, distinctUntilChanged, filter, first, map, switchMap } from 'rxjs/operators';
9
- import { SHOW_TOOLTIP } from '../../../shared/constants';
9
+ import { APP_SHOW_TOOLTIP } from '../../../shared/constants';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ionic/angular";
12
12
  import * as i2 from "../../../core/services/local-settings.service";
@@ -67,7 +67,7 @@ export class UserEventNotificationList {
67
67
  get canFetchMore() {
68
68
  return this.enableInfiniteScroll && !!this._fetchMoreFn;
69
69
  }
70
- showTooltip = inject(SHOW_TOOLTIP);
70
+ showTooltip = inject(APP_SHOW_TOOLTIP, { optional: true });
71
71
  constructor(cd, popoverController, settings, userEventService, infiniteScrollThresholdFromToken) {
72
72
  this.cd = cd;
73
73
  this.popoverController = popoverController;
@@ -277,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
277
277
  type: ViewChildren,
278
278
  args: [IonItem]
279
279
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFekQsTUFBTSxDQUFDLE1B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Qzt5Q0FqRDFELFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBa0JJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUVnQixVQUFVO3NCQUFoQyxTQUFTO3VCQUFDLFVBQVU7Z0JBQ0UsUUFBUTtzQkFBOUIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVVzZXJFdmVudCwgSVVzZXJFdmVudEFjdGlvbiwgSVVzZXJFdmVudEZpbHRlciB9IGZyb20gJy4uL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElvbkNvbnRlbnQsIElvbkl0ZW0sIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQVBQX1VTRVJfRVZFTlRfU0VSVklDRSwgSVVzZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2hNb3JlRm4sIExvYWRSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgaXNOb3RFbXB0eUFycmF5LCByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBmcm9tU2Nyb2xsRW5kRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZXZlbnRzJztcbmltcG9ydCB7IHdhaXRGb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNIT1dfVE9PTFRJUCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgQVBQX1VTRVJfRVZFTlRfTElTVF9JTkZJTklURV9TQ1JPTExfVEhSRVNIT0xEID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ2luZmluaXRlU2Nyb2xsVGhyZXNob2xkJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnM8XG4gIEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sXG4gIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT4sXG4+IHtcbiAgZGVidWc/OiBib29sZWFuO1xuICB0aXRsZUkxOG4/OiBzdHJpbmc7XG4gIHJlYWRFdmVudD86IEV2ZW50RW1pdHRlcjxFPjtcbiAgcmVhZEV2ZW50cz86IEV2ZW50RW1pdHRlcjxFW10+O1xuICBmaWx0ZXI/OiBQYXJ0aWFsPEY+O1xuICBoZWFkZXJBY3Rpb25zPzogSVVzZXJFdmVudEFjdGlvbltdO1xuICBmb290ZXJBY3Rpb25zPzogSVVzZXJFdmVudEFjdGlvbltdO1xuICBzaG93VG9vbHRpcD86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3Quc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdDxFIGV4dGVuZHMgSVVzZXJFdmVudDxhbnk+ID0gSVVzZXJFdmVudDxhbnk+LCBGIGV4dGVuZHMgSVVzZXJFdmVudEZpbHRlcjxhbnk+ID0gSVVzZXJFdmVudEZpbHRlcjxhbnk+PlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0T3B0aW9uczxFLCBGPlxue1xuICBwcm90ZWN0ZWQgZmV0Y2hpbmdNb3JlID0gZmFsc2U7XG4gIHByb3RlY3RlZCAkaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVbXT4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcm90ZWN0ZWQgX2ZldGNoTW9yZUZuOiBGZXRjaE1vcmVGbjxMb2FkUmVzdWx0PEU+PjtcbiAgcHJvdGVjdGVkIF9mZXRjaE1vcmVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIF8kcGFnZVNpemUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMjApO1xuICBwcm90ZWN0ZWQgX3BhbmVsRWxlbWVudDogSFRNTEVsZW1lbnQgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHRpdGxlSTE4bjogc3RyaW5nID0gJ1NPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5USVRMRSc7XG4gIEBJbnB1dCgpIHNvcnRCeSA9ICdjcmVhdGlvbkRhdGUnO1xuICBASW5wdXQoKSBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICBASW5wdXQoKSBmaWx0ZXI6IFBhcnRpYWw8Rj47XG4gIEBJbnB1dCgpIGVuYWJsZUluZmluaXRlU2Nyb2xsID0gdHJ1ZTtcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQ6IHN0cmluZztcbiAgQElucHV0KCkgaGVhZGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuICBASW5wdXQoKSBmb290ZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Rm9vdGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgbW9iaWxlOiBib29sZWFuO1xuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBwYWdlU2l6ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID4gMCAmJiB2YWx1ZSAhPT0gdGhpcy5fJHBhZ2VTaXplLnZhbHVlKSB0aGlzLl8kcGFnZVNpemUubmV4dCh2YWx1ZSk7XG4gIH1cblxuICAkaXRlbUNvdW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KHVuZGVmaW5lZCk7XG5cbiAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuXyRwYWdlU2l6ZS52YWx1ZTtcbiAgfVxuXG4gIGdldCBoYXNJdGVtJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4kaXRlbXMucGlwZShtYXAoaXNOb3RFbXB0eUFycmF5KSk7XG4gIH1cblxuICBnZXQgaXRlbUNvdW50JCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLiRpdGVtQ291bnQucGlwZShtYXAoKHZhbHVlKSA9PiB2YWx1ZSA/PyAwKSk7XG4gIH1cblxuICBAT3V0cHV0KCkgcmVhZEV2ZW50OiBFdmVudEVtaXR0ZXI8RT47XG4gIEBPdXRwdXQoKSByZWFkRXZlbnRzOiBFdmVudEVtaXR0ZXI8RVtdPjtcbiAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoSW9uQ29udGVudCkgaW9uQ29udGVudDogSW9uQ29udGVudDtcbiAgQFZpZXdDaGlsZHJlbihJb25JdGVtKSBpb25JdGVtczogUXVlcnlMaXN0PElvbkl0ZW0+O1xuXG4gIGdldCBjYW5GZXRjaE1vcmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlSW5maW5pdGVTY3JvbGwgJiYgISF0aGlzLl9mZXRjaE1vcmVGbjtcbiAgfVxuXG4gIHNob3dUb29sdGlwID0gaW5qZWN0KFNIT1dfVE9PTFRJUCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfVVNFUl9FVkVOVF9TRVJWSUNFKSBwdWJsaWMgdXNlckV2ZW50U2VydmljZTogSVVzZXJFdmVudFNlcnZpY2U8RSwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9VU0VSX0VWRU5UX0xJU1RfSU5GSU5JVEVfU0NST0xMX1RIUkVTSE9MRCkgcHVibGljIGluZmluaXRlU2Nyb2xsVGhyZXNob2xkRnJvbVRva2VuOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzPy5tb2JpbGUgfHwgZmFsc2U7XG4gICAgdGhpcy5pbmZpbml0ZVNjcm9sbFRocmVzaG9sZCA9IGluZmluaXRlU2Nyb2xsVGhyZXNob2xkRnJvbVRva2VuO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gV2F0Y2ggYWxsIHVzZXIgZXZlbnRzXG4gICAgaWYgKHRoaXMudXNlckV2ZW50U2VydmljZSkge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMuXyRwYWdlU2l6ZVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgocGFnZVNpemUpID0+IHRoaXMudXNlckV2ZW50U2VydmljZS53YXRjaEFsbCgwLCBwYWdlU2l6ZSwgdGhpcy5zb3J0QnksIHRoaXMuc29ydERpcmVjdGlvbiwgdGhpcy5maWx0ZXIpKSxcbiAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3RdIFJlY2VpdmluZyAke3Jlc3VsdC50b3RhbH0gdXNlciBldmVudHNgLCByZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICB0aGlzLiRpdGVtcy5uZXh0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuJGl0ZW1Db3VudC5uZXh0KHJlc3VsdC50b3RhbCA/PyByZXN1bHQuZGF0YT8ubGVuZ3RoID8/IDApO1xuICAgICAgICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSByZXN1bHQuZmV0Y2hNb3JlO1xuICAgICAgICAgICAgdGhpcy5mZXRjaGluZ01vcmUgPSBmYWxzZTsgLy8gQWxsb3cgdG8gcmVmZXRjaCBtb3JlXG4gICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICAvLyBMaXN0ZW4gY2hhbmdlc1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMudXNlckV2ZW50U2VydmljZVxuICAgICAgICAgIC5saXN0ZW5BbGxDaGFuZ2VzKHRoaXMuZmlsdGVyKVxuICAgICAgICAgIC5waXBlKGZpbHRlcihpc05vdEVtcHR5QXJyYXkpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gUmVjZWl2aW5nICR7ZGF0YS5sZW5ndGh9IG5ldyB1c2VyIGV2ZW50cyAoYnkgV1MpYCwgZGF0YSk7XG4gICAgICAgICAgICBjb25zdCBvbGRJdGVtc0NvdW50ID0gdGhpcy4kaXRlbUNvdW50LnZhbHVlIHx8IDA7XG4gICAgICAgICAgICBjb25zdCBpdGVtcyA9IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkoWy4uLmRhdGEsIC4uLih0aGlzLiRpdGVtcy52YWx1ZSB8fCBbXSldLCAnaWQnKTtcblxuICAgICAgICAgICAgLy8gQ29tcHV0ZSBkZWx0YSBjb3VudFxuICAgICAgICAgICAgLy8gV2hlbiBhbiBleGlzdGluZyBldmVudCBpcyB1cGRhdGUsIHRoZSBkZWx0YSBjb3VudCBzaG91bGQgYmUgPSAwXG4gICAgICAgICAgICBjb25zdCBkZWx0YUNvdW50ID0gaXRlbXMubGVuZ3RoIC0gb2xkSXRlbXNDb3VudDtcblxuICAgICAgICAgICAgLy8gVXBkYXRlIG9ic2VydmFibGVzXG4gICAgICAgICAgICB0aGlzLiRpdGVtcy5uZXh0KGl0ZW1zKTtcbiAgICAgICAgICAgIGlmIChkZWx0YUNvdW50ICE9PSAwKSB0aGlzLiRpdGVtQ291bnQubmV4dChvbGRJdGVtc0NvdW50ICsgZGVsdGFDb3VudCk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLmVuYWJsZUluZmluaXRlU2Nyb2xsKSB0aGlzLmluaXRJbmZpbml0ZVNjcm9sbCh0aGlzLmluZmluaXRlU2Nyb2xsVGhyZXNob2xkKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4kaXRlbXMuY29tcGxldGUoKTtcbiAgICB0aGlzLiRpdGVtQ291bnQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFzeW5jIGNsaWNrKGV2ZW50OiBFdmVudCwgdXNlckV2ZW50OiBFKSB7XG4gICAgaWYgKCF1c2VyRXZlbnQpIHJldHVybjsgLy8gU2tpcFxuXG4gICAgLy8gTWFya0FzUmVhZFxuICAgIHRoaXMubWFya0FzUmVhZChldmVudCwgdXNlckV2ZW50KTtcblxuICAgIC8vIEdldCB0aGUgZGVmYXVsdCBhY3Rpb24gKGlmIGFueSlcbiAgICBjb25zdCBkZWZhdWx0QWN0aW9uID0gKHVzZXJFdmVudD8uYWN0aW9ucyB8fCBbXSkuZmluZCgoYSkgPT4gYS5kZWZhdWx0KTtcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uKSB7XG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBY3Rpb24oZXZlbnQsIGRlZmF1bHRBY3Rpb24sIHVzZXJFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgaXNEZWZhdWx0QWN0aW9uKGFjdGlvbjogSVVzZXJFdmVudEFjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoYWN0aW9uICYmIGFjdGlvbi5kZWZhdWx0KSB8fCBmYWxzZTtcbiAgfVxuXG4gIG1hcmtBc1JlYWQoZXZlbnQ6IEV2ZW50LCB1c2VyRXZlbnQ6IEUpIHtcbiAgICBpZiAodXNlckV2ZW50Py5yZWFkRGF0ZSkgcmV0dXJuO1xuICAgIHRoaXMucmVhZEV2ZW50Py5lbWl0KHVzZXJFdmVudCk7XG4gIH1cblxuICBtYXJrQWxsQXNSZWFkKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHVucmVhZFVzZXJFdmVudHMgPSAodGhpcy4kaXRlbXMudmFsdWUgfHwgW10pLmZpbHRlcigodmFsdWUpID0+ICF2YWx1ZS5yZWFkRGF0ZSk7XG4gICAgaWYgKCF1bnJlYWRVc2VyRXZlbnRzLmxlbmd0aCkgcmV0dXJuO1xuICAgIHRoaXMucmVhZEV2ZW50cz8uZW1pdCh1bnJlYWRVc2VyRXZlbnRzKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVBY3Rpb24oZXZlbnQ6IEV2ZW50LCBhY3Rpb246IElVc2VyRXZlbnRBY3Rpb24sIHVzZXJFdmVudDogSVVzZXJFdmVudDxhbnk+KSB7XG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47IC8vIFNraXAgaWYgcHJldmVudGVkXG5cbiAgICAvLyBEaXNhYmxlIGRlZmF1bHQgYWN0aW9uICguZS5nIGF2b2lkIHRvIGNhbGwgY2xpY2soKSBmdW5jdGlvbilcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZW4gY2xvc2UgcG9wb3ZlclxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhY3Rpb24uZXhlY3V0ZUFjdGlvbih1c2VyRXZlbnQpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpIGF3YWl0IHJlcztcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5kaXNtaXNzLm9ic2VydmVkKSB7XG4gICAgICB0aGlzLmRpc21pc3MuZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBjb3VudGVyIChuZWVkIGlmIGV2ZW50IGhhcyBiZWVuIHJlY2VpdmVkIHdoaWxlIHBvcG92ZXIgaWYgb3BlbilcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2U/LnJlc2V0Q291bnQoKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoTW9yZShldmVudD86IEN1c3RvbUV2ZW50ICYgeyB0YXJnZXQ/OiBFdmVudFRhcmdldCAmIHsgY29tcGxldGU/OiAoKSA9PiB2b2lkIH0gfSkge1xuICAgIGlmICghdGhpcy5fZmV0Y2hNb3JlRm4gfHwgdGhpcy5mZXRjaGluZ01vcmUpIHJldHVybjtcblxuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSBGZXRjaGluZyBtb3JlIG5vdGlmaWNhdGlvbnMuLi4nLCBldmVudCk7XG4gICAgdGhpcy5mZXRjaGluZ01vcmUgPSB0cnVlO1xuICAgIGNvbnN0IGZldGNoTW9yZUZuID0gdGhpcy5fZmV0Y2hNb3JlRm47XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hNb3JlRm4oKTtcbiAgICAgIGxldCBkYXRhID0gWy4uLih0aGlzLiRpdGVtcy52YWx1ZSB8fCBbXSksIC4uLnJlc3VsdC5kYXRhXTtcblxuICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0aW9uIChlLmcuIHdoZW4gbmV3IHVzZXIgZXZlbnQgd2FzIGFkZGVkIGJ5IHN1YnNjcmlwdGlvbilcbiAgICAgIGRhdGEgPSByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5KGRhdGEsICdpZCcpO1xuXG4gICAgICAvLyBmZXRjaCBtb3JlIGNoYW5nZXMgKGUuZy4gaWYgd2F0Y2hBbGwgb2JzZXJ2YWJsZSBhcyBiZWVuIHJlZnJlc2hlZClcbiAgICAgIGlmIChmZXRjaE1vcmVGbiAhPT0gdGhpcy5fZmV0Y2hNb3JlRm4pIHJldHVybjsgLy8gU2tpcFxuXG4gICAgICB0aGlzLiRpdGVtcy5uZXh0KGRhdGEpO1xuICAgICAgdGhpcy4kaXRlbUNvdW50Lm5leHQocmVzdWx0LnRvdGFsID8/IHJlc3VsdC5kYXRhPy5sZW5ndGggPz8gMCk7XG4gICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHJlc3VsdC5mZXRjaE1vcmU7XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgcGFnZSBzaXplLCB0byBrZWVwIHNhbWUgc2Nyb2xsIGhlaWdodCwgYWZ0ZXIgdGhlIG5leHQgcmVmcmVzaFxuICAgICAgLy90aGlzLnBhZ2VTaXplID0gTWF0aC5tYXgodGhpcy5wYWdlU2l6ZSwgZGF0YS5sZW5ndGgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSB1bmRlZmluZWQ7IC8vIEZvcmdldCB0aGUgZnVuY3Rpb25cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuZmV0Y2hpbmdNb3JlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluaXRJbmZpbml0ZVNjcm9sbCh0aHJlc2hvbGQ/OiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gSW5pdCBpbmZpbml0ZSBsb29wJyk7XG4gICAgaWYgKHRoaXMuX2ZldGNoTW9yZVN1YnNjcmlwdGlvbikgdGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgKHRoaXMubW9iaWxlID8gJzE1JScgOiAnMiUnKTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+ICEhdGhpcy5pb25Db250ZW50LCB7IGR1ZVRpbWU6IDI1MCwgdGltZW91dDogMTAwMCB9KTtcbiAgICBjb25zdCBwYW5lbCA9IGF3YWl0IHRoaXMuZ2V0UGFuZWxFbGVtZW50KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZldGNoIG1vcmUsIGVuZCBlbmQgc2Nyb2xsIHJlYWNoZWRcbiAgICB0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24gPSB0aGlzLiRpdGVtc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5jYW5GZXRjaE1vcmUpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbVNjcm9sbEVuZEV2ZW50KHBhbmVsLCB0aHJlc2hvbGQsIDI1MCAvKmZvcmNlIHRvIGNoZWNrIHdoZW4gbm8gc2Nyb2xsYmFyIC0gZS5nLiBpbiBsYXJnZSBzY3JlZW4qLykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmV0Y2hNb3JlKCkpO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXRQYW5lbEVsZW1lbnQoKTogUHJvbWlzZTxIVE1MRWxlbWVudD4ge1xuICAgIGlmICghdGhpcy5fcGFuZWxFbGVtZW50KSB7XG4gICAgICB0aGlzLl9wYW5lbEVsZW1lbnQgPSBhd2FpdCB0aGlzLmlvbkNvbnRlbnQuZ2V0U2Nyb2xsRWxlbWVudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGFuZWxFbGVtZW50O1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQ+XG4gIDxpb24tbGlzdCBjbGFzcz1cImlvbi1saXN0LXBvcG92ZXJcIj5cbiAgICA8IS0tIGhlYWRlciAtLT5cbiAgICBAaWYgKHNob3dIZWFkZXIpIHtcbiAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWxpc3QtaGVhZGVyIGNvbHVtblwiPlxuICAgICAgICA8aW9uLWNvbD5cbiAgICAgICAgICBAaWYgKHRpdGxlSTE4bikge1xuICAgICAgICAgICAgPGlvbi1sYWJlbD57eyB0aXRsZUkxOG4gfCB0cmFuc2xhdGUgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiBjbGFzcz1cImhlYWRlci1hY3Rpb25cIiAqbmdJZj1cIiRpdGVtcyB8IGFzeW5jIHwgaXNOb3RFbXB0eUFycmF5XCI+XG4gICAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm1hcmtBbGxBc1JlYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCIhc2hvd1Rvb2x0aXAgPyAoJ1NPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5SRUFEX0FMTCcgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzaG93VG9vbHRpcCA/ICgnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlJFQURfQUxMJyB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uUkVBRF9BTEwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaGVhZGVyLWFjdGlvblwiPlxuICAgICAgICAgIDxpb24tdGV4dCAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGhlYWRlckFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChjbGljayk9XCJleGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCB1bmRlZmluZWQpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIiFzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICB9XG5cbiAgICBAZm9yIChpdGVtIG9mICRpdGVtcyB8IGFzeW5jOyB0cmFjayBpdGVtLmlkOyBsZXQgbGFzdCA9ICRsYXN0KSB7XG4gICAgICA8aW9uLWl0ZW1cbiAgICAgICAgW2xpbmVzXT1cImxhc3QgPyAnbm9uZScgOiB1bmRlZmluZWRcIlxuICAgICAgICBbY2xhc3MudW5yZWFkXT1cIiFpdGVtLnJlYWREYXRlXCJcbiAgICAgICAgW2NsYXNzLnRhcHBhYmxlXT1cIml0ZW0uYWN0aW9ucyB8IGFycmF5RmlsdGVyOiBpc0RlZmF1bHRBY3Rpb24gfCBpc05vdEVtcHR5QXJyYXlcIlxuICAgICAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDxpb24tYXZhdGFyIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgICAgIDxpb24taW1nICpuZ0lmPVwiaXRlbS5hdmF0YXI7IGVsc2UgYXZhdGFySWNvblwiIFtzcmNdPVwiaXRlbS5hdmF0YXJcIiAvPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNhdmF0YXJJY29uPlxuICAgICAgICAgICAgPGFwcC1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5hdmF0YXJJY29uOyBlbHNlIGdlbmVyYXRlSWNvblwiXG4gICAgICAgICAgICAgIFtyZWZdPVwiaXRlbS5hdmF0YXJJY29uXCJcbiAgICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjQwXCJcbiAgICAgICAgICAgID48L2FwcC1pY29uPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYXRlSWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIiAqbmdJZj1cIml0ZW0uYXZhdGFySmRlbnRpY29uXCI+XG4gICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIHdpZHRoPVwiNDBcIiBbZGF0YS1qZGVudGljb24tdmFsdWVdPVwiaXRlbS5hdmF0YXJKZGVudGljb25cIj48L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvaW9uLWF2YXRhcj5cblxuICAgICAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tbm8tbWFyZ2luIGlvbi1uby1wYWRkaW5nIG1lc3NhZ2VcIj5cbiAgICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+XG4gICAgICAgICAgICAgICAgPHAgW2NsYXNzLnVucmVhZF09XCIhaXRlbS5yZWFkRGF0ZVwiIFtpbm5lckhUTUxdPVwiaXRlbS5tZXNzYWdlXCI+PC9wPlxuICAgICAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgIDwvaW9uLXJvdz5cblxuICAgICAgICAgIDwhLS0gZGF0ZSAtLT5cbiAgICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgICA8YXBwLWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgW3JlZl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBzdWI7IG1hcmdpbi1yaWdodDogM3B4XCJcbiAgICAgICAgICAgICAgPjwvYXBwLWljb24+XG4gICAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmNyZWF0aW9uRGF0ZSB8IGRhdGVGcm9tTm93IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IGdyYXlcIj57eyAnIHwgJyArIChpdGVtLmNyZWF0aW9uRGF0ZSB8IGRhdGVGb3JtYXQ6IHsgdGltZTogdHJ1ZSB9KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgICA8IS0tIGFjdGlvbnMgLS0+XG4gICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpdGVtLmFjdGlvbnMgfCBpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgICAgIDxpb24tY29sPjwvaW9uLWNvbD5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpdGVtLmFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYWN0aW9uLmRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIhc2hvd1Rvb2x0aXAgPyAoYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGFwcC1pY29uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLmljb25SZWZcIlxuICAgICAgICAgICAgICAgICAgICBzbG90PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICBbcmVmXT1cImFjdGlvbi5pY29uUmVmXCJcbiAgICAgICAgICAgICAgICAgID48L2FwcC1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICA8L2lvbi1yb3c+XG4gICAgICAgIDwvaW9uLWdyaWQ+XG5cbiAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJlbmRcIiAqbmdJZj1cIml0ZW0uYWN0aW9ucyB8IGFycmF5RmlsdGVyOiBpc0RlZmF1bHRBY3Rpb24gfCBpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgICBjaGV2cm9uX3JpZ2h0XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2lvbi1pdGVtPlxuICAgIH1cbiAgICA8IS0tIGxvYWRpbmcgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIigkaXRlbXMgfCBhc3luYykgPT09IHVuZGVmaW5lZDsgZWxzZSBub3RMb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ0l0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZz5cbiAgICAgIDwhLS0gbm8gcmVzdWx0IC0tPlxuICAgICAgPGlvbi1pdGVtICpuZ0lmPVwiJGl0ZW1zIHwgYXN5bmMgfCBpc0VtcHR5QXJyYXlcIiBsaW5lcz1cIm5vbmVcIj5cbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwiZGFya1wiIGNsYXNzPVwidGV4dC1pdGFsaWNcIj57eyAnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLkVNUFRZJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLXRleHQ+XG4gICAgICA8L2lvbi1pdGVtPlxuXG4gICAgICA8IS0tIEZldGNoaW5nIG1vcmUgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmV0Y2hpbmdNb3JlOyBlbHNlIGluZmluaXRlTG9vcFwiIGxpbmVzPVwibm9uZVwiIGRpc2FibGVkPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ0l0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIEluZmluaXRlIGxvb3AgLS0+XG4gICAgICA8bmctdGVtcGxhdGUgI2luZmluaXRlTG9vcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbkZldGNoTW9yZVwiIGxpbmVzPVwibm9uZVwiIGRpc2FibGVkIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvYWRpbmdJdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tIGZvb3RlciAtLT5cbiAgICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWxpc3QtZm9vdGVyIGNvbHVtblwiPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiZm9vdGVyLWFjdGlvblwiPlxuICAgICAgICAgIDxpb24tdGV4dCAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGZvb3RlckFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChjbGljayk9XCJleGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCB1bmRlZmluZWQpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIiFzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2w+XG4gICAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwiJGl0ZW1Db3VudCB8IGFzeW5jOyBsZXQgY291bnRcIiBjbGFzcz1cImlvbi1mbG9hdC1lbmQgaW9uLXBhZGRpbmctZW5kXCI+XG4gICAgICAgICAgICA8aT57eyAnQ09NTU9OLlJFU1VMVF9DT1VOVCcgfCB0cmFuc2xhdGU6IHsgY291bnQ6IGNvdW50IH0gfX08L2k+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgIH1cbiAgPC9pb24tbGlzdD5cbjwvaW9uLWNvbnRlbnQ+XG5cbjwhLS0gbG9hZGluZyAtLT5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0l0ZW0+XG4gIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBbZGlzYWJsZWRdPlxuICAgIDxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwidHJ1ZVwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICA8L2lvbi1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBR2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUU3RCxNQUFNLENBQUMs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QkFDekMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2Q0FBNkM7eUNBakQxRCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFTyxRQUFRO3NCQUFwQixLQUFLO2dCQWtCSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFFZ0IsVUFBVTtzQkFBaEMsU0FBUzt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQTlCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElVc2VyRXZlbnQsIElVc2VyRXZlbnRBY3Rpb24sIElVc2VyRXZlbnRGaWx0ZXIgfSBmcm9tICcuLi91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJb25Db250ZW50LCBJb25JdGVtLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0UsIElVc2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEZldGNoTW9yZUZuLCBMb2FkUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IGlzTm90RW1wdHlBcnJheSwgcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgZnJvbVNjcm9sbEVuZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2V2ZW50cyc7XG5pbXBvcnQgeyB3YWl0Rm9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmFibGVzJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBUFBfU0hPV19UT09MVElQIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfVVNFUl9FVkVOVF9MSVNUX0lORklOSVRFX1NDUk9MTF9USFJFU0hPTEQgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQnKTtcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0T3B0aW9uczxcbiAgRSBleHRlbmRzIElVc2VyRXZlbnQ8YW55PiA9IElVc2VyRXZlbnQ8YW55PixcbiAgRiBleHRlbmRzIElVc2VyRXZlbnRGaWx0ZXI8YW55PiA9IElVc2VyRXZlbnRGaWx0ZXI8YW55Pixcbj4ge1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIHRpdGxlSTE4bj86IHN0cmluZztcbiAgcmVhZEV2ZW50PzogRXZlbnRFbWl0dGVyPEU+O1xuICByZWFkRXZlbnRzPzogRXZlbnRFbWl0dGVyPEVbXT47XG4gIGZpbHRlcj86IFBhcnRpYWw8Rj47XG4gIGhlYWRlckFjdGlvbnM/OiBJVXNlckV2ZW50QWN0aW9uW107XG4gIGZvb3RlckFjdGlvbnM/OiBJVXNlckV2ZW50QWN0aW9uW107XG4gIHNob3dUb29sdGlwPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0PEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT4+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zPEUsIEY+XG57XG4gIHByb3RlY3RlZCBmZXRjaGluZ01vcmUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkICRpdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RVtdPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByb3RlY3RlZCBfZmV0Y2hNb3JlRm46IEZldGNoTW9yZUZuPExvYWRSZXN1bHQ8RT4+O1xuICBwcm90ZWN0ZWQgX2ZldGNoTW9yZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgXyRwYWdlU2l6ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigyMCk7XG4gIHByb3RlY3RlZCBfcGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgQElucHV0KCkgdGl0bGVJMThuOiBzdHJpbmcgPSAnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlRJVExFJztcbiAgQElucHV0KCkgc29ydEJ5ID0gJ2NyZWF0aW9uRGF0ZSc7XG4gIEBJbnB1dCgpIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XG4gIEBJbnB1dCgpIGZpbHRlcjogUGFydGlhbDxGPjtcbiAgQElucHV0KCkgZW5hYmxlSW5maW5pdGVTY3JvbGwgPSB0cnVlO1xuICBASW5wdXQoKSBpbmZpbml0ZVNjcm9sbFRocmVzaG9sZDogc3RyaW5nO1xuICBASW5wdXQoKSBoZWFkZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIGZvb3RlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgc2hvd0hlYWRlciA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dGb290ZXIgPSB0cnVlO1xuICBASW5wdXQoKSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPiAwICYmIHZhbHVlICE9PSB0aGlzLl8kcGFnZVNpemUudmFsdWUpIHRoaXMuXyRwYWdlU2l6ZS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gICRpdGVtQ291bnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcblxuICBnZXQgcGFnZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fJHBhZ2VTaXplLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGhhc0l0ZW0kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLiRpdGVtcy5waXBlKG1hcChpc05vdEVtcHR5QXJyYXkpKTtcbiAgfVxuXG4gIGdldCBpdGVtQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuJGl0ZW1Db3VudC5waXBlKG1hcCgodmFsdWUpID0+IHZhbHVlID8/IDApKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkRXZlbnQ6IEV2ZW50RW1pdHRlcjxFPjtcbiAgQE91dHB1dCgpIHJlYWRFdmVudHM6IEV2ZW50RW1pdHRlcjxFW10+O1xuICBAT3V0cHV0KCkgZGlzbWlzcyA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZChJb25Db250ZW50KSBpb25Db250ZW50OiBJb25Db250ZW50O1xuICBAVmlld0NoaWxkcmVuKElvbkl0ZW0pIGlvbkl0ZW1zOiBRdWVyeUxpc3Q8SW9uSXRlbT47XG5cbiAgZ2V0IGNhbkZldGNoTW9yZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVJbmZpbml0ZVNjcm9sbCAmJiAhIXRoaXMuX2ZldGNoTW9yZUZuO1xuICB9XG5cbiAgc2hvd1Rvb2x0aXAgPSBpbmplY3QoQVBQX1NIT1dfVE9PTFRJUCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBwb3BvdmVyQ29udHJvbGxlcjogUG9wb3ZlckNvbnRyb2xsZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0UpIHB1YmxpYyB1c2VyRXZlbnRTZXJ2aWNlOiBJVXNlckV2ZW50U2VydmljZTxFLCBJVXNlckV2ZW50RmlsdGVyPGFueT4+LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1VTRVJfRVZFTlRfTElTVF9JTkZJTklURV9TQ1JPTExfVEhSRVNIT0xEKSBwdWJsaWMgaW5maW5pdGVTY3JvbGxUaHJlc2hvbGRGcm9tVG9rZW46IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2V0dGluZ3M/Lm1vYmlsZSB8fCBmYWxzZTtcbiAgICB0aGlzLmluZmluaXRlU2Nyb2xsVGhyZXNob2xkID0gaW5maW5pdGVTY3JvbGxUaHJlc2hvbGRGcm9tVG9rZW47XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXYXRjaCBhbGwgdXNlciBldmVudHNcbiAgICBpZiAodGhpcy51c2VyRXZlbnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy5fJHBhZ2VTaXplXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChwYWdlU2l6ZSkgPT4gdGhpcy51c2VyRXZlbnRTZXJ2aWNlLndhdGNoQWxsKDAsIHBhZ2VTaXplLCB0aGlzLnNvcnRCeSwgdGhpcy5zb3J0RGlyZWN0aW9uLCB0aGlzLmZpbHRlcikpLFxuICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gUmVjZWl2aW5nICR7cmVzdWx0LnRvdGFsfSB1c2VyIGV2ZW50c2AsIHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuJGl0ZW1zLm5leHQocmVzdWx0LmRhdGEpO1xuICAgICAgICAgICAgdGhpcy4kaXRlbUNvdW50Lm5leHQocmVzdWx0LnRvdGFsID8/IHJlc3VsdC5kYXRhPy5sZW5ndGggPz8gMCk7XG4gICAgICAgICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHJlc3VsdC5mZXRjaE1vcmU7XG4gICAgICAgICAgICB0aGlzLmZldGNoaW5nTW9yZSA9IGZhbHNlOyAvLyBBbGxvdyB0byByZWZldGNoIG1vcmVcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIC8vIExpc3RlbiBjaGFuZ2VzXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlXG4gICAgICAgICAgLmxpc3RlbkFsbENoYW5nZXModGhpcy5maWx0ZXIpXG4gICAgICAgICAgLnBpcGUoZmlsdGVyKGlzTm90RW1wdHlBcnJheSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYFt1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSBSZWNlaXZpbmcgJHtkYXRhLmxlbmd0aH0gbmV3IHVzZXIgZXZlbnRzIChieSBXUylgLCBkYXRhKTtcbiAgICAgICAgICAgIGNvbnN0IG9sZEl0ZW1zQ291bnQgPSB0aGlzLiRpdGVtQ291bnQudmFsdWUgfHwgMDtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheShbLi4uZGF0YSwgLi4uKHRoaXMuJGl0ZW1zLnZhbHVlIHx8IFtdKV0sICdpZCcpO1xuXG4gICAgICAgICAgICAvLyBDb21wdXRlIGRlbHRhIGNvdW50XG4gICAgICAgICAgICAvLyBXaGVuIGFuIGV4aXN0aW5nIGV2ZW50IGlzIHVwZGF0ZSwgdGhlIGRlbHRhIGNvdW50IHNob3VsZCBiZSA9IDBcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhQ291bnQgPSBpdGVtcy5sZW5ndGggLSBvbGRJdGVtc0NvdW50O1xuXG4gICAgICAgICAgICAvLyBVcGRhdGUgb2JzZXJ2YWJsZXNcbiAgICAgICAgICAgIHRoaXMuJGl0ZW1zLm5leHQoaXRlbXMpO1xuICAgICAgICAgICAgaWYgKGRlbHRhQ291bnQgIT09IDApIHRoaXMuJGl0ZW1Db3VudC5uZXh0KG9sZEl0ZW1zQ291bnQgKyBkZWx0YUNvdW50KTtcbiAgICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMuZW5hYmxlSW5maW5pdGVTY3JvbGwpIHRoaXMuaW5pdEluZmluaXRlU2Nyb2xsKHRoaXMuaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLiRpdGVtcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuJGl0ZW1Db3VudC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgY2xpY2soZXZlbnQ6IEV2ZW50LCB1c2VyRXZlbnQ6IEUpIHtcbiAgICBpZiAoIXVzZXJFdmVudCkgcmV0dXJuOyAvLyBTa2lwXG5cbiAgICAvLyBNYXJrQXNSZWFkXG4gICAgdGhpcy5tYXJrQXNSZWFkKGV2ZW50LCB1c2VyRXZlbnQpO1xuXG4gICAgLy8gR2V0IHRoZSBkZWZhdWx0IGFjdGlvbiAoaWYgYW55KVxuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb24gPSAodXNlckV2ZW50Py5hY3Rpb25zIHx8IFtdKS5maW5kKChhKSA9PiBhLmRlZmF1bHQpO1xuXG4gICAgaWYgKGRlZmF1bHRBY3Rpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUFjdGlvbihldmVudCwgZGVmYXVsdEFjdGlvbiwgdXNlckV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBpc0RlZmF1bHRBY3Rpb24oYWN0aW9uOiBJVXNlckV2ZW50QWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChhY3Rpb24gJiYgYWN0aW9uLmRlZmF1bHQpIHx8IGZhbHNlO1xuICB9XG5cbiAgbWFya0FzUmVhZChldmVudDogRXZlbnQsIHVzZXJFdmVudDogRSkge1xuICAgIGlmICh1c2VyRXZlbnQ/LnJlYWREYXRlKSByZXR1cm47XG4gICAgdGhpcy5yZWFkRXZlbnQ/LmVtaXQodXNlckV2ZW50KTtcbiAgfVxuXG4gIG1hcmtBbGxBc1JlYWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgdW5yZWFkVXNlckV2ZW50cyA9ICh0aGlzLiRpdGVtcy52YWx1ZSB8fCBbXSkuZmlsdGVyKCh2YWx1ZSkgPT4gIXZhbHVlLnJlYWREYXRlKTtcbiAgICBpZiAoIXVucmVhZFVzZXJFdmVudHMubGVuZ3RoKSByZXR1cm47XG4gICAgdGhpcy5yZWFkRXZlbnRzPy5lbWl0KHVucmVhZFVzZXJFdmVudHMpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUFjdGlvbihldmVudDogRXZlbnQsIGFjdGlvbjogSVVzZXJFdmVudEFjdGlvbiwgdXNlckV2ZW50OiBJVXNlckV2ZW50PGFueT4pIHtcbiAgICBpZiAoZXZlbnQ/LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjsgLy8gU2tpcCBpZiBwcmV2ZW50ZWRcblxuICAgIC8vIERpc2FibGUgZGVmYXVsdCBhY3Rpb24gKC5lLmcgYXZvaWQgdG8gY2FsbCBjbGljaygpIGZ1bmN0aW9uKVxuICAgIGlmIChldmVudCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlbiBjbG9zZSBwb3BvdmVyXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGFjdGlvbi5leGVjdXRlQWN0aW9uKHVzZXJFdmVudCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICBpZiAocmVzIGluc3RhbmNlb2YgUHJvbWlzZSkgYXdhaXQgcmVzO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmRpc21pc3Mub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMuZGlzbWlzcy5lbWl0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcygpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IGNvdW50ZXIgKG5lZWQgaWYgZXZlbnQgaGFzIGJlZW4gcmVjZWl2ZWQgd2hpbGUgcG9wb3ZlciBpZiBvcGVuKVxuICAgIHRoaXMudXNlckV2ZW50U2VydmljZT8ucmVzZXRDb3VudCgpO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hNb3JlKGV2ZW50PzogQ3VzdG9tRXZlbnQgJiB7IHRhcmdldD86IEV2ZW50VGFyZ2V0ICYgeyBjb21wbGV0ZT86ICgpID0+IHZvaWQgfSB9KSB7XG4gICAgaWYgKCF0aGlzLl9mZXRjaE1vcmVGbiB8fCB0aGlzLmZldGNoaW5nTW9yZSkgcmV0dXJuO1xuXG4gICAgY29uc29sZS5kZWJ1ZygnW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3RdIEZldGNoaW5nIG1vcmUgbm90aWZpY2F0aW9ucy4uLicsIGV2ZW50KTtcbiAgICB0aGlzLmZldGNoaW5nTW9yZSA9IHRydWU7XG4gICAgY29uc3QgZmV0Y2hNb3JlRm4gPSB0aGlzLl9mZXRjaE1vcmVGbjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaE1vcmVGbigpO1xuICAgICAgbGV0IGRhdGEgPSBbLi4uKHRoaXMuJGl0ZW1zLnZhbHVlIHx8IFtdKSwgLi4ucmVzdWx0LmRhdGFdO1xuXG4gICAgICAvLyBSZW1vdmUgZHVwbGljYXRpb24gKGUuZy4gd2hlbiBuZXcgdXNlciBldmVudCB3YXMgYWRkZWQgYnkgc3Vic2NyaXB0aW9uKVxuICAgICAgZGF0YSA9IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkoZGF0YSwgJ2lkJyk7XG5cbiAgICAgIC8vIGZldGNoIG1vcmUgY2hhbmdlcyAoZS5nLiBpZiB3YXRjaEFsbCBvYnNlcnZhYmxlIGFzIGJlZW4gcmVmcmVzaGVkKVxuICAgICAgaWYgKGZldGNoTW9yZUZuICE9PSB0aGlzLl9mZXRjaE1vcmVGbikgcmV0dXJuOyAvLyBTa2lwXG5cbiAgICAgIHRoaXMuJGl0ZW1zLm5leHQoZGF0YSk7XG4gICAgICB0aGlzLiRpdGVtQ291bnQubmV4dChyZXN1bHQudG90YWwgPz8gcmVzdWx0LmRhdGE/Lmxlbmd0aCA/PyAwKTtcbiAgICAgIHRoaXMuX2ZldGNoTW9yZUZuID0gcmVzdWx0LmZldGNoTW9yZTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSBwYWdlIHNpemUsIHRvIGtlZXAgc2FtZSBzY3JvbGwgaGVpZ2h0LCBhZnRlciB0aGUgbmV4dCByZWZyZXNoXG4gICAgICAvL3RoaXMucGFnZVNpemUgPSBNYXRoLm1heCh0aGlzLnBhZ2VTaXplLCBkYXRhLmxlbmd0aCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHVuZGVmaW5lZDsgLy8gRm9yZ2V0IHRoZSBmdW5jdGlvblxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5mZXRjaGluZ01vcmUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5pdEluZmluaXRlU2Nyb2xsKHRocmVzaG9sZD86IHN0cmluZykge1xuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSBJbml0IGluZmluaXRlIGxvb3AnKTtcbiAgICBpZiAodGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uKSB0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIHRocmVzaG9sZCA9IHRocmVzaG9sZCB8fCAodGhpcy5tb2JpbGUgPyAnMTUlJyA6ICcyJScpO1xuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4gISF0aGlzLmlvbkNvbnRlbnQsIHsgZHVlVGltZTogMjUwLCB0aW1lb3V0OiAxMDAwIH0pO1xuICAgIGNvbnN0IHBhbmVsID0gYXdhaXQgdGhpcy5nZXRQYW5lbEVsZW1lbnQoKTtcblxuICAgIC8vIFRyaWdnZXIgZmV0Y2ggbW9yZSwgZW5kIGVuZCBzY3JvbGwgcmVhY2hlZFxuICAgIHRoaXMuX2ZldGNoTW9yZVN1YnNjcmlwdGlvbiA9IHRoaXMuJGl0ZW1zXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1MCksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmNhbkZldGNoTW9yZSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tU2Nyb2xsRW5kRXZlbnQocGFuZWwsIHRocmVzaG9sZCwgMjUwIC8qZm9yY2UgdG8gY2hlY2sgd2hlbiBubyBzY3JvbGxiYXIgLSBlLmcuIGluIGxhcmdlIHNjcmVlbiovKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5mZXRjaE1vcmUoKSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldFBhbmVsRWxlbWVudCgpOiBQcm9taXNlPEhUTUxFbGVtZW50PiB7XG4gICAgaWYgKCF0aGlzLl9wYW5lbEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3BhbmVsRWxlbWVudCA9IGF3YWl0IHRoaXMuaW9uQ29udGVudC5nZXRTY3JvbGxFbGVtZW50KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGlvbi1saXN0IGNsYXNzPVwiaW9uLWxpc3QtcG9wb3ZlclwiPlxuICAgIDwhLS0gaGVhZGVyIC0tPlxuICAgIEBpZiAoc2hvd0hlYWRlcikge1xuICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1oZWFkZXIgY29sdW1uXCI+XG4gICAgICAgIDxpb24tY29sPlxuICAgICAgICAgIEBpZiAodGl0bGVJMThuKSB7XG4gICAgICAgICAgICA8aW9uLWxhYmVsPnt7IHRpdGxlSTE4biB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiIGNsYXNzPVwiaGVhZGVyLWFjdGlvblwiICpuZ0lmPVwiJGl0ZW1zIHwgYXN5bmMgfCBpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAoY2xpY2spPVwibWFya0FsbEFzUmVhZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIiFzaG93VG9vbHRpcCA/ICgnU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlJFQURfQUxMJyB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKCdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uUkVBRF9BTEwnIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ1NPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5SRUFEX0FMTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgY2xhc3M9XCJoZWFkZXItYWN0aW9uXCI+XG4gICAgICAgICAgPGlvbi10ZXh0ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgaGVhZGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIHVuZGVmaW5lZClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiIXNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuICAgIH1cblxuICAgIEBmb3IgKGl0ZW0gb2YgJGl0ZW1zIHwgYXN5bmM7IHRyYWNrIGl0ZW0uaWQ7IGxldCBsYXN0ID0gJGxhc3QpIHtcbiAgICAgIDxpb24taXRlbVxuICAgICAgICBbbGluZXNdPVwibGFzdCA/ICdub25lJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgIFtjbGFzcy51bnJlYWRdPVwiIWl0ZW0ucmVhZERhdGVcIlxuICAgICAgICBbY2xhc3MudGFwcGFibGVdPVwiaXRlbS5hY3Rpb25zIHwgYXJyYXlGaWx0ZXI6IGlzRGVmYXVsdEFjdGlvbiB8IGlzTm90RW1wdHlBcnJheVwiXG4gICAgICAgIChjbGljayk9XCJjbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGlvbi1hdmF0YXIgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgPGlvbi1pbWcgKm5nSWY9XCJpdGVtLmF2YXRhcjsgZWxzZSBhdmF0YXJJY29uXCIgW3NyY109XCJpdGVtLmF2YXRhclwiIC8+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2F2YXRhckljb24+XG4gICAgICAgICAgICA8YXBwLWljb25cbiAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmF2YXRhckljb247IGVsc2UgZ2VuZXJhdGVJY29uXCJcbiAgICAgICAgICAgICAgW3JlZl09XCJpdGVtLmF2YXRhckljb25cIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCI0MFwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiNDBcIlxuICAgICAgICAgICAgPjwvYXBwLWljb24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJhdGVJY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiICpuZ0lmPVwiaXRlbS5hdmF0YXJKZGVudGljb25cIj5cbiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgd2lkdGg9XCI0MFwiIFtkYXRhLWpkZW50aWNvbi12YWx1ZV09XCJpdGVtLmF2YXRhckpkZW50aWNvblwiPjwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9pb24tYXZhdGFyPlxuXG4gICAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1tYXJnaW4gaW9uLW5vLXBhZGRpbmcgbWVzc2FnZVwiPlxuICAgICAgICAgIDxpb24tcm93PlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCI+XG4gICAgICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj5cbiAgICAgICAgICAgICAgICA8cCBbY2xhc3MudW5yZWFkXT1cIiFpdGVtLnJlYWREYXRlXCIgW2lubmVySFRNTF09XCJpdGVtLm1lc3NhZ2VcIj48L3A+XG4gICAgICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPC9pb24tcm93PlxuXG4gICAgICAgICAgPCEtLSBkYXRlIC0tPlxuICAgICAgICAgIDxpb24tcm93PlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCI+XG4gICAgICAgICAgICAgIDxhcHAtaWNvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICBbcmVmXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwidmVydGljYWwtYWxpZ246IHN1YjsgbWFyZ2luLXJpZ2h0OiAzcHhcIlxuICAgICAgICAgICAgICA+PC9hcHAtaWNvbj5cbiAgICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0uY3JlYXRpb25EYXRlIHwgZGF0ZUZyb21Ob3cgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogZ3JheVwiPnt7ICcgfCAnICsgKGl0ZW0uY3JlYXRpb25EYXRlIHwgZGF0ZUZvcm1hdDogeyB0aW1lOiB0cnVlIH0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgIDwvaW9uLXJvdz5cblxuICAgICAgICAgIDwhLS0gYWN0aW9ucyAtLT5cbiAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIml0ZW0uYWN0aW9ucyB8IGlzTm90RW1wdHlBcnJheVwiPlxuICAgICAgICAgICAgPGlvbi1jb2w+PC9pb24tY29sPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGl0ZW0uYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFhY3Rpb24uZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbigkZXZlbnQsIGFjdGlvbiwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIiFzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwic2hvd1Rvb2x0aXAgPyAoYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YXBwLWljb25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24uaWNvblJlZlwiXG4gICAgICAgICAgICAgICAgICAgIHNsb3Q9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWZdPVwiYWN0aW9uLmljb25SZWZcIlxuICAgICAgICAgICAgICAgICAgPjwvYXBwLWljb24+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgPC9pb24tZ3JpZD5cblxuICAgICAgICA8bWF0LWljb24gc2xvdD1cImVuZFwiICpuZ0lmPVwiaXRlbS5hY3Rpb25zIHwgYXJyYXlGaWx0ZXI6IGlzRGVmYXVsdEFjdGlvbiB8IGlzTm90RW1wdHlBcnJheVwiPlxuICAgICAgICAgIGNoZXZyb25fcmlnaHRcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgfVxuICAgIDwhLS0gbG9hZGluZyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKCRpdGVtcyB8IGFzeW5jKSA9PT0gdW5kZWZpbmVkOyBlbHNlIG5vdExvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nSXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nPlxuICAgICAgPCEtLSBubyByZXN1bHQgLS0+XG4gICAgICA8aW9uLWl0ZW0gKm5nSWY9XCIkaXRlbXMgfCBhc3luYyB8IGlzRW1wdHlBcnJheVwiIGxpbmVzPVwibm9uZVwiPlxuICAgICAgICA8aW9uLXRleHQgY29sb3I9XCJkYXJrXCIgY2xhc3M9XCJ0ZXh0LWl0YWxpY1wiPnt7ICdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uRU1QVFknIHwgdHJhbnNsYXRlIH19PC9pb24tdGV4dD5cbiAgICAgIDwvaW9uLWl0ZW0+XG5cbiAgICAgIDwhLS0gRmV0Y2hpbmcgbW9yZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZXRjaGluZ01vcmU7IGVsc2UgaW5maW5pdGVMb29wXCIgbGluZXM9XCJub25lXCIgZGlzYWJsZWQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nSXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gSW5maW5pdGUgbG9vcCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5maW5pdGVMb29wPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuRmV0Y2hNb3JlXCIgbGluZXM9XCJub25lXCIgZGlzYWJsZWQgW25nVGVtcGxhdGVPdXRsZXRdPVwibG9hZGluZ0l0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS0gZm9vdGVyIC0tPlxuICAgIEBpZiAoc2hvd0Zvb3Rlcikge1xuICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1mb290ZXIgY29sdW1uXCI+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgY2xhc3M9XCJmb290ZXItYWN0aW9uXCI+XG4gICAgICAgICAgPGlvbi10ZXh0ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZm9vdGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oJGV2ZW50LCBhY3Rpb24sIHVuZGVmaW5lZClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiIXNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbD5cbiAgICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCIkaXRlbUNvdW50IHwgYXN5bmM7IGxldCBjb3VudFwiIGNsYXNzPVwiaW9uLWZsb2F0LWVuZCBpb24tcGFkZGluZy1lbmRcIj5cbiAgICAgICAgICAgIDxpPnt7ICdDT01NT04uUkVTVUxUX0NPVU5UJyB8IHRyYW5zbGF0ZTogeyBjb3VudDogY291bnQgfSB9fTwvaT5cbiAgICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgfVxuICA8L2lvbi1saXN0PlxuPC9pb24tY29udGVudD5cblxuPCEtLSBsb2FkaW5nIC0tPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nSXRlbT5cbiAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIFtkaXNhYmxlZF0+XG4gICAgPGlvbi1za2VsZXRvbi10ZXh0IFthbmltYXRlZF09XCJ0cnVlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gIDwvaW9uLWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, inject, Inject, Input, Optional, ViewChild } from '@angular/core';
2
2
  import { APP_USER_EVENT_SERVICE } from '../user-event.service';
3
- import { SHOW_TOOLTIP } from '../../../shared/constants';
3
+ import { APP_SHOW_TOOLTIP } from '../../../shared/constants';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../../core/services/local-settings.service";
6
6
  import * as i2 from "@ionic/angular";
@@ -26,7 +26,7 @@ export class UserEventNotificationModal {
26
26
  mobile;
27
27
  debug = false;
28
28
  list;
29
- showTooltip = inject(SHOW_TOOLTIP);
29
+ showTooltip = inject(APP_SHOW_TOOLTIP, { optional: true });
30
30
  constructor(cd, settings, modalController, userEventService) {
31
31
  this.cd = cd;
32
32
  this.settings = settings;
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
81
81
  type: ViewChild,
82
82
  args: ['list', { static: true }]
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLm1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxSSxPQUFPLEVBQUUsc0JBQXNCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQVl6RCxNQUFNLE9BQU8sMEJBQTBCO0lBc0J6QjtJQUNBO0lBQ0E7SUFDeUM7SUF0QjNDLFVBQVUsQ0FBcUI7SUFFaEMsU0FBUyxHQUFXLHNDQUFzQyxDQUFDO0lBQzNELE1BQU0sR0FBRyxjQUFjLENBQUM7SUFDeEIsYUFBYSxHQUFrQixNQUFNLENBQUM7SUFDdEMsTUFBTSxDQUFhO0lBQ25CLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUM1Qix1QkFBdUIsQ0FBUztJQUNoQyxhQUFhLENBQXFCO0lBQ2xDLGFBQWEsQ0FBcUI7SUFDbEMsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBVTtJQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWMsSUFBSSxDQUFrQztJQUUzRSxXQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRW5DLFlBQ1ksRUFBcUIsRUFDckIsUUFBOEIsRUFDOUIsZUFBZ0MsRUFDUyxnQkFBNkQ7UUFIdEcsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ1MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE2QztRQUVoSCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFUyxLQUFLO1FBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXpDVSwwQkFBMEIsc0hBeUJmLHNCQUFzQjs0RkF6QmpDLDBCQUEwQix1ZkNyQnZDLGk4RUE2RUE7OzRGRHhEYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsbUNBQW1DLG1CQUU1Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQjVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCO3lDQXBCbkMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUUrQixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElVc2VyRXZlbnQsIElVc2VyRXZlbnRBY3Rpb24sIElVc2VyRXZlbnRGaWx0ZXIgfSBmcm9tICcuLi91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3QsIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zIH0gZnJvbSAnLi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0JztcbmltcG9ydCB7IEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0UsIElVc2VyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU0hPV19UT09MVElQIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckV2ZW50Tm90aWZpY2F0aW9uTW9kYWxPcHRpb25zPFxuICBFIGV4dGVuZHMgSVVzZXJFdmVudDxhbnk+ID0gSVVzZXJFdmVudDxhbnk+LFxuICBGIGV4dGVuZHMgSVVzZXJFdmVudEZpbHRlcjxhbnk+ID0gSVVzZXJFdmVudEZpbHRlcjxhbnk+LFxuPiBleHRlbmRzIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zPEUsIEY+IHt9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5tb2RhbC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudE5vdGlmaWNhdGlvbk1vZGFsPEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT4+XG4gIGltcGxlbWVudHMgVXNlckV2ZW50Tm90aWZpY2F0aW9uTW9kYWxPcHRpb25zPEUsIEY+LCBPbkluaXRcbntcbiAgcHJvdGVjdGVkIGl0ZW1Db3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICBASW5wdXQoKSB0aXRsZUkxOG46IHN0cmluZyA9ICdTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uVElUTEUnO1xuICBASW5wdXQoKSBzb3J0QnkgPSAnY3JlYXRpb25EYXRlJztcbiAgQElucHV0KCkgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdkZXNjJztcbiAgQElucHV0KCkgZmlsdGVyOiBQYXJ0aWFsPEY+O1xuICBASW5wdXQoKSBlbmFibGVJbmZpbml0ZVNjcm9sbCA9IHRydWU7XG4gIEBJbnB1dCgpIGluZmluaXRlU2Nyb2xsVGhyZXNob2xkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlYWRlckFjdGlvbnM6IElVc2VyRXZlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgZm9vdGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyO1xuICBASW5wdXQoKSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnbGlzdCcsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3Q6IFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3Q8RSwgRj47XG5cbiAgc2hvd1Rvb2x0aXAgPSBpbmplY3QoU0hPV19UT09MVElQKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1vZGFsQ29udHJvbGxlcjogTW9kYWxDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1VTRVJfRVZFTlRfU0VSVklDRSkgcHVibGljIHVzZXJFdmVudFNlcnZpY2U6IElVc2VyRXZlbnRTZXJ2aWNlPEUsIElVc2VyRXZlbnRGaWx0ZXI8YW55Pj5cbiAgKSB7XG4gICAgdGhpcy5tb2JpbGUgPSBzZXR0aW5ncy5tb2JpbGU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLml0ZW1Db3VudCQgPSB0aGlzLmxpc3QuaXRlbUNvdW50JDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZSgpIHtcbiAgICB0aGlzLm1vZGFsQ29udHJvbGxlci5kaXNtaXNzKCk7XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlPy5yZXNldENvdW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJzZWNvbmRhcnlcIj5cbiAgICBAaWYgKG1vYmlsZSkge1xuICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIHZpc2libGUteHMgdmlzaWJsZS1zbT5cbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICB9XG5cbiAgICA8aW9uLXRpdGxlPlxuICAgICAge3sgdGl0bGVJMThuIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKGl0ZW1Db3VudCQgfCBhc3luYzsgYXMgY291bnQpIHtcbiAgICAgICAgPGk+KHt7IGNvdW50IH19KTwvaT5cbiAgICAgIH1cbiAgICA8L2lvbi10aXRsZT5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICBAZm9yIChhY3Rpb24gb2YgaGVhZGVyQWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cImxpc3QuZXhlY3V0ZUFjdGlvbigkZXZlbnQsIGFjdGlvbiwgdW5kZWZpbmVkKVwiXG4gICAgICAgICAgW3RpdGxlXT1cIiFzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICB9XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLW5vdC1wYWRkaW5nXCI+XG4gIDxhcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdFxuICAgICNsaXN0XG4gICAgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIlxuICAgIFtzaG93Rm9vdGVyXT1cImZhbHNlXCJcbiAgICBbc29ydEJ5XT1cInNvcnRCeVwiXG4gICAgW3NvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvblwiXG4gICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxuICAgIFtlbmFibGVJbmZpbml0ZVNjcm9sbF09XCJlbmFibGVJbmZpbml0ZVNjcm9sbFwiXG4gICAgW2luZmluaXRlU2Nyb2xsVGhyZXNob2xkXT1cImluZmluaXRlU2Nyb2xsVGhyZXNob2xkXCJcbiAgICBbbW9iaWxlXT1cIm1vYmlsZVwiXG4gICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICAoZGlzbWlzcyk9XCJjbG9zZSgpXCJcbiAgPjwvYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3Q+XG48L2lvbi1jb250ZW50PlxuXG48aW9uLWZvb3Rlcj5cbiAgPGlvbi10b29sYmFyPlxuICAgIDxpb24tcm93PlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIEBpZiAobGlzdC5oYXNJdGVtJCB8IGFzeW5jKSB7XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImxpc3QubWFya0FsbEFzUmVhZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5TT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uUkVBRF9BTEw8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoYWN0aW9uIG9mIGZvb3RlckFjdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImxpc3QuZXhlY3V0ZUFjdGlvbigkZXZlbnQsIGFjdGlvbiwgdW5kZWZpbmVkKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiIXNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzaG93VG9vbHRpcCA/IChhY3Rpb24udGl0bGUgfHwgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICBAaWYgKCFtb2JpbGUpIHtcbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwic29saWRcIiBjb2xvcj1cInRlcnRpYXJ5XCIgKGNsaWNrKT1cImNsb3NlKClcIiBoaWRkZW4teHMgaGlkZGVuLXNtPlxuICAgICAgICAgICAge3sgJ0NPTU1PTi5CVE5fQ0xPU0UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICB9XG4gICAgPC9pb24tcm93PlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24tZm9vdGVyPlxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLm1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsxSSxPQUFPLEVBQUUsc0JBQXNCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBWTdELE1BQU0sT0FBTywwQkFBMEI7SUFzQnpCO0lBQ0E7SUFDQTtJQUN5QztJQXRCM0MsVUFBVSxDQUFxQjtJQUVoQyxTQUFTLEdBQVcsc0NBQXNDLENBQUM7SUFDM0QsTUFBTSxHQUFHLGNBQWMsQ0FBQztJQUN4QixhQUFhLEdBQWtCLE1BQU0sQ0FBQztJQUN0QyxNQUFNLENBQWE7SUFDbkIsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQzVCLHVCQUF1QixDQUFTO0lBQ2hDLGFBQWEsQ0FBcUI7SUFDbEMsYUFBYSxDQUFxQjtJQUNsQyxRQUFRLENBQVM7SUFDakIsTUFBTSxDQUFVO0lBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFYyxJQUFJLENBQWtDO0lBRTNFLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUzRCxZQUNZLEVBQXFCLEVBQ3JCLFFBQThCLEVBQzlCLGVBQWdDLEVBQ1MsZ0JBQTZEO1FBSHRHLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNTLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkM7UUFFaEgsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRVMsS0FBSztRQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0F6Q1UsMEJBQTBCLHNIQXlCZixzQkFBc0I7NEZBekJqQywwQkFBMEIsdWZDckJ2QyxpOEVBNkVBOzs0RkR4RGEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLG1DQUFtQyxtQkFFNUIsdUJBQXVCLENBQUMsTUFBTTs7MEJBMkI1QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQjt5Q0FwQm5DLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFK0IsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVXNlckV2ZW50LCBJVXNlckV2ZW50QWN0aW9uLCBJVXNlckV2ZW50RmlsdGVyIH0gZnJvbSAnLi4vdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0LCBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0T3B0aW9ucyB9IGZyb20gJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdCc7XG5pbXBvcnQgeyBBUFBfVVNFUl9FVkVOVF9TRVJWSUNFLCBJVXNlckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3VzZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2NhbFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFQUF9TSE9XX1RPT0xUSVAgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRXZlbnROb3RpZmljYXRpb25Nb2RhbE9wdGlvbnM8XG4gIEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sXG4gIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT4sXG4+IGV4dGVuZHMgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnM8RSwgRj4ge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLm1vZGFsLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckV2ZW50Tm90aWZpY2F0aW9uTW9kYWw8RSBleHRlbmRzIElVc2VyRXZlbnQ8YW55PiA9IElVc2VyRXZlbnQ8YW55PiwgRiBleHRlbmRzIElVc2VyRXZlbnRGaWx0ZXI8YW55PiA9IElVc2VyRXZlbnRGaWx0ZXI8YW55Pj5cbiAgaW1wbGVtZW50cyBVc2VyRXZlbnROb3RpZmljYXRpb25Nb2RhbE9wdGlvbnM8RSwgRj4sIE9uSW5pdFxue1xuICBwcm90ZWN0ZWQgaXRlbUNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIEBJbnB1dCgpIHRpdGxlSTE4bjogc3RyaW5nID0gJ1NPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5USVRMRSc7XG4gIEBJbnB1dCgpIHNvcnRCeSA9ICdjcmVhdGlvbkRhdGUnO1xuICBASW5wdXQoKSBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICBASW5wdXQoKSBmaWx0ZXI6IFBhcnRpYWw8Rj47XG4gIEBJbnB1dCgpIGVuYWJsZUluZmluaXRlU2Nyb2xsID0gdHJ1ZTtcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQ6IHN0cmluZztcbiAgQElucHV0KCkgaGVhZGVyQWN0aW9uczogSVVzZXJFdmVudEFjdGlvbltdO1xuICBASW5wdXQoKSBmb290ZXJBY3Rpb25zOiBJVXNlckV2ZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1vYmlsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVidWcgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdsaXN0JywgeyBzdGF0aWM6IHRydWUgfSkgbGlzdDogVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdDxFLCBGPjtcblxuICBzaG93VG9vbHRpcCA9IGluamVjdChBUFBfU0hPV19UT09MVElQLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfVVNFUl9FVkVOVF9TRVJWSUNFKSBwdWJsaWMgdXNlckV2ZW50U2VydmljZTogSVVzZXJFdmVudFNlcnZpY2U8RSwgSVVzZXJFdmVudEZpbHRlcjxhbnk+PlxuICApIHtcbiAgICB0aGlzLm1vYmlsZSA9IHNldHRpbmdzLm1vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXRlbUNvdW50JCA9IHRoaXMubGlzdC5pdGVtQ291bnQkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlKCkge1xuICAgIHRoaXMubW9kYWxDb250cm9sbGVyLmRpc21pc3MoKTtcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2U/LnJlc2V0Q291bnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXJrRm9yQ2hlY2soKSB7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cInNlY29uZGFyeVwiPlxuICAgIEBpZiAobW9iaWxlKSB7XG4gICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgdmlzaWJsZS14cyB2aXNpYmxlLXNtPlxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImFycm93LWJhY2tcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1idXR0b25zPlxuICAgIH1cblxuICAgIDxpb24tdGl0bGU+XG4gICAgICB7eyB0aXRsZUkxOG4gfCB0cmFuc2xhdGUgfX1cbiAgICAgIEBpZiAoaXRlbUNvdW50JCB8IGFzeW5jOyBhcyBjb3VudCkge1xuICAgICAgICA8aT4oe3sgY291bnQgfX0pPC9pPlxuICAgICAgfVxuICAgIDwvaW9uLXRpdGxlPlxuXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgIEBmb3IgKGFjdGlvbiBvZiBoZWFkZXJBY3Rpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwibGlzdC5leGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCB1bmRlZmluZWQpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiIXNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwic2hvd1Rvb2x0aXAgPyAoYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2lvbi1idXR0b25zPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tbm90LXBhZGRpbmdcIj5cbiAgPGFwcC11c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XG4gICAgI2xpc3RcbiAgICBbc2hvd0hlYWRlcl09XCJmYWxzZVwiXG4gICAgW3Nob3dGb290ZXJdPVwiZmFsc2VcIlxuICAgIFtzb3J0QnldPVwic29ydEJ5XCJcbiAgICBbc29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCJcbiAgICBbZmlsdGVyXT1cImZpbHRlclwiXG4gICAgW2VuYWJsZUluZmluaXRlU2Nyb2xsXT1cImVuYWJsZUluZmluaXRlU2Nyb2xsXCJcbiAgICBbaW5maW5pdGVTY3JvbGxUaHJlc2hvbGRdPVwiaW5maW5pdGVTY3JvbGxUaHJlc2hvbGRcIlxuICAgIFttb2JpbGVdPVwibW9iaWxlXCJcbiAgICBbZGVidWddPVwiZGVidWdcIlxuICAgIChkaXNtaXNzKT1cImNsb3NlKClcIlxuICA+PC9hcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdD5cbjwvaW9uLWNvbnRlbnQ+XG5cbjxpb24tZm9vdGVyPlxuICA8aW9uLXRvb2xiYXI+XG4gICAgPGlvbi1yb3c+XG4gICAgICA8aW9uLWNvbD5cbiAgICAgICAgQGlmIChsaXN0Lmhhc0l0ZW0kIHwgYXN5bmMpIHtcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiAoY2xpY2spPVwibGlzdC5tYXJrQWxsQXNSZWFkKCRldmVudClcIj5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPlNPQ0lBTC5VU0VSX0VWRU5ULk5PVElGSUNBVElPTi5SRUFEX0FMTDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChhY3Rpb24gb2YgZm9vdGVyQWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAoY2xpY2spPVwibGlzdC5leGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCB1bmRlZmluZWQpXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIhc2hvd1Rvb2x0aXAgPyAoYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIEBpZiAoIW1vYmlsZSkge1xuICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJzb2xpZFwiIGNvbG9yPVwidGVydGlhcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiIGhpZGRlbi14cyBoaWRkZW4tc20+XG4gICAgICAgICAgICB7eyAnQ09NTU9OLkJUTl9DTE9TRScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIH1cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=