@hmcts/ccd-case-ui-toolkit 5.0.19-angular11-upgrade → 5.0.24-angular11-upgrade

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 (81) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +7505 -7287
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +6 -6
  6. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +4 -1
  7. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +32 -60
  8. package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +15 -23
  9. package/esm2015/lib/shared/components/event-start/event-guard/event-start.guard.js +20 -13
  10. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +5 -2
  11. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +1 -1
  12. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +69 -43
  13. package/esm2015/lib/shared/components/palette/complex/read-complex-field.component.js +5 -3
  14. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +41 -47
  15. package/esm2015/lib/shared/components/palette/index.js +2 -1
  16. package/esm2015/lib/shared/components/palette/judicial-user/index.js +3 -0
  17. package/esm2015/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.js +48 -0
  18. package/esm2015/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.js +127 -0
  19. package/esm2015/lib/shared/components/palette/palette.module.js +18 -7
  20. package/esm2015/lib/shared/components/palette/palette.service.js +5 -1
  21. package/esm2015/lib/shared/components/palette/utils/is-compound.pipe.js +2 -2
  22. package/esm2015/lib/shared/components/palette/utils/utils.module.js +7 -2
  23. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +2 -6
  24. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +7 -3
  25. package/esm2015/lib/shared/components/search-result/search-result.component.js +101 -120
  26. package/esm2015/lib/shared/components/search-result/search-result.module.js +8 -4
  27. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  28. package/esm2015/lib/shared/domain/jurisdiction/index.js +2 -0
  29. package/esm2015/lib/shared/domain/jurisdiction/judicial-user.model.js +2 -0
  30. package/esm2015/lib/shared/services/case-fields/index.js +2 -1
  31. package/esm2015/lib/shared/services/form/form-value.service.js +6 -2
  32. package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +14 -5
  33. package/esm2015/public-api.js +1 -2
  34. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +6597 -6413
  35. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  36. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  37. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  38. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +10 -19
  39. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  40. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +4 -4
  41. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  42. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  43. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  44. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  45. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +5 -4
  46. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  47. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -1
  48. package/lib/shared/components/palette/index.d.ts +1 -0
  49. package/lib/shared/components/palette/index.d.ts.map +1 -1
  50. package/lib/shared/components/palette/judicial-user/index.d.ts +3 -0
  51. package/lib/shared/components/palette/judicial-user/index.d.ts.map +1 -0
  52. package/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.d.ts +17 -0
  53. package/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.d.ts.map +1 -0
  54. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts +32 -0
  55. package/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.d.ts.map +1 -0
  56. package/lib/shared/components/palette/palette.module.d.ts +62 -59
  57. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  58. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  59. package/lib/shared/components/palette/utils/utils.module.d.ts.map +1 -1
  60. package/lib/shared/components/search-result/search-result.component.d.ts +14 -29
  61. package/lib/shared/components/search-result/search-result.component.d.ts.map +1 -1
  62. package/lib/shared/components/search-result/search-result.module.d.ts +2 -1
  63. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  64. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  65. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  66. package/lib/shared/domain/jurisdiction/index.d.ts +2 -0
  67. package/lib/shared/domain/jurisdiction/index.d.ts.map +1 -0
  68. package/lib/shared/domain/jurisdiction/judicial-user.model.d.ts +13 -0
  69. package/lib/shared/domain/jurisdiction/judicial-user.model.d.ts.map +1 -0
  70. package/lib/shared/services/case-fields/index.d.ts +1 -0
  71. package/lib/shared/services/case-fields/index.d.ts.map +1 -1
  72. package/lib/shared/services/form/form-value.service.d.ts +1 -1
  73. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  74. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts +10 -4
  75. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  76. package/package.json +1 -1
  77. package/public-api.d.ts +0 -1
  78. package/public-api.d.ts.map +1 -1
  79. package/esm2015/lib/case-ui-toolkit.module.js +0 -15
  80. package/lib/case-ui-toolkit.module.d.ts +0 -7
  81. package/lib/case-ui-toolkit.module.d.ts.map +0 -1
@@ -18,21 +18,28 @@ export class EventStartGuard {
18
18
  this.sessionStorageService = sessionStorageService;
19
19
  }
20
20
  canActivate(route) {
21
- const caseId = route.params['cid'];
22
- const eventId = route.params['eid'];
23
- const taskId = route.queryParams['tid'];
24
- // TODO: NavigationExtras should be used once Angular upgrade changes have been incorporated
25
- const isComplete = route.queryParams['isComplete'];
26
- const caseInfoStr = this.sessionStorageService.getItem('caseInfo');
27
- if (caseInfoStr) {
28
- const caseInfo = JSON.parse(caseInfoStr);
29
- if (caseInfo && caseInfo.cid === caseId) {
30
- if (isComplete) {
31
- return of(true);
21
+ // Checks must be performed only for Work Allocation 2
22
+ if (this.appConfig.getWorkAllocationApiUrl().toLowerCase() === 'workallocation2') {
23
+ const caseId = route.params['cid'];
24
+ const eventId = route.params['eid'];
25
+ const taskId = route.queryParams['tid'];
26
+ // TODO: NavigationExtras should be used once Angular upgrade changes have been incorporated
27
+ const isComplete = route.queryParams['isComplete'];
28
+ const caseInfoStr = this.sessionStorageService.getItem('caseInfo');
29
+ if (caseInfoStr) {
30
+ const caseInfo = JSON.parse(caseInfoStr);
31
+ if (caseInfo && caseInfo.cid === caseId) {
32
+ if (isComplete) {
33
+ return of(true);
34
+ }
35
+ return this.workAllocationService.getTasksByCaseIdAndEventId(eventId, caseId, caseInfo.caseType, caseInfo.jurisdiction).pipe(switchMap((payload) => this.checkForTasks(payload, caseId, eventId, taskId)));
32
36
  }
33
- return this.workAllocationService.getTasksByCaseIdAndEventId(eventId, caseId, caseInfo.caseType, caseInfo.jurisdiction).pipe(switchMap((payload) => this.checkForTasks(payload, caseId, eventId, taskId)));
34
37
  }
35
38
  }
39
+ else {
40
+ // Checks not required, return true by default for Work Allocation 1
41
+ return of(true);
42
+ }
36
43
  return of(false);
37
44
  }
38
45
  checkTaskInEventNotRequired(payload, caseId, taskId) {
@@ -94,4 +101,4 @@ EventStartGuard.ɵprov = i0.ɵɵdefineInjectable({ token: EventStartGuard, facto
94
101
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventStartGuard, [{
95
102
  type: Injectable
96
103
  }], function () { return [{ type: i1.WorkAllocationService }, { type: i2.Router }, { type: i3.AbstractAppConfig }, { type: i4.SessionStorageService }]; }, null); })();
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvZXZlbnQtZ3VhcmQvZXZlbnQtc3RhcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7QUFHM0YsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBNkIscUJBQTRDLEVBQ3RELE1BQWMsRUFDZCxTQUE0QixFQUM1QixxQkFBNEM7UUFIbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUN0RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUMvRCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQTZCO1FBQzlDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsV0FBVyxD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SUFFTyxhQUFhLENBQUMsT0FBb0IsRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLE1BQWM7UUFDekYsb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV4RCxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTtZQUNuQyx1RkFBdUY7WUFDdkYsOENBQThDO1lBQzlDLG9HQUFvRztZQUNwRywrQ0FBK0M7WUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDN0UsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakI7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHVCQUF1QixNQUFNLGNBQWMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEgsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEI7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDOzs4RUFuRlUsZUFBZTt1REFBZixlQUFlLFdBQWYsZUFBZTt1RkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgVGFza1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vd29yay1hbGxvY2F0aW9uL1Rhc2tQYXlsb2FkJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24vc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya0FsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvd29yay1hbGxvY2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRTdGFydEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd29ya0FsbG9jYXRpb25TZXJ2aWNlOiBXb3JrQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSkge1xuICB9XG5cbiAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2FzZUlkID0gcm91dGUucGFyYW1zWydjaWQnXTtcbiAgICBjb25zdCBldmVudElkID0gcm91dGUucGFyYW1zWydlaWQnXTtcbiAgICBjb25zdCB0YXNrSWQgPSByb3V0ZS5xdWVyeVBhcmFtc1sndGlkJ107XG5cbiAgICAvLyBUT0RPOiBOYXZpZ2F0aW9uRXh0cmFzIHNob3VsZCBiZSB1c2VkIG9uY2UgQW5ndWxhciB1cGdyYWRlIGNoYW5nZXMgaGF2ZSBiZWVuIGluY29ycG9yYXRlZFxuICAgIGNvbnN0IGlzQ29tcGxldGUgPSByb3V0ZS5xdWVyeVBhcmFtc1snaXNDb21wbGV0ZSddO1xuICAgIGNvbnN0IGNhc2VJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnY2FzZUluZm8nKTtcbiAgICBpZiAoY2FzZUluZm9TdHIpIHtcbiAgICAgIGNvbnN0IGNhc2VJbmZvID0gSlNPTi5wYXJzZShjYXNlSW5mb1N0cik7XG4gICAgICBpZiAoY2FzZUluZm8gJiYgY2FzZUluZm8uY2lkID09PSBjYXNlSWQpIHtcbiAgICAgICAgaWYgKGlzQ29tcGxldGUpIHtcbiAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmdldFRhc2tzQnlDYXNlSWRBbmRFdmVudElkKGV2ZW50SWQsIGNhc2VJZCwgY2FzZUluZm8uY2FzZVR5cGUsIGNhc2VJbmZvLmp1cmlzZGljdGlvbikucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKHBheWxvYWQ6IFRhc2tQYXlsb2FkKSA9PiB0aGlzLmNoZWNrRm9yVGFza3MocGF5bG9hZCwgY2FzZUlkLCBldmVudElkLCB0YXNrSWQpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2YoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGNoZWNrVGFza0luRXZlbnROb3RSZXF1aXJlZChwYXlsb2FkOiBUYXNrUGF5bG9hZCwgY2FzZUlkOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFwYXlsb2FkIHx8ICFwYXlsb2FkLnRhc2tzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFza051bWJlciA9IHBheWxvYWQudGFza3MubGVuZ3RoO1xuICAgIGlmICh0YXNrTnVtYmVyID09PSAwKSB7XG4gICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gdGFza3MganVzdCBjYXJyeSBvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIEdldCBudW1iZXIgb2YgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgIGNvbnN0IHRhc2tzQXNzaWduZWRUb1VzZXIgPSBwYXlsb2FkLnRhc2tzLmZpbHRlcih4ID0+XG4gICAgICB4LnRhc2tfc3RhdGUgIT09ICd1bmFzc2lnbmVkJyAmJiB4LmFzc2lnbmVlID09PSB1c2VySW5mby5pZCB8fCB4LmFzc2lnbmVlID09PSB1c2VySW5mby51aWRcbiAgICApO1xuXG4gICAgaWYgKHRhc2tzQXNzaWduZWRUb1VzZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBubyB0YXNrcyBhc3NpZ25lZCB0byB1c2VyIGNhcnJ5IG9uXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRhc2tzQXNzaWduZWRUb1VzZXIubGVuZ3RoID4gMSAmJiAhdGFza0lkKSB7XG4gICAgICAvLyBpZiBtb3JlIHRoYW4gb25lIHRhc2sgYXNzaWduZWQgdG8gdGhlIHVzZXIgdGhlbiBnaXZlIG11bHRpcGxlIHRhc2tzIGVycm9yXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjYXNlSWR9L211bHRpcGxlLXRhc2tzLWV4aXN0YF0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGFzazogYW55O1xuICAgICAgaWYgKHRhc2tJZCkge1xuICAgICAgICB0YXNrID0gcGF5bG9hZC50YXNrcy5maW5kKHggPT4geC5pZCA9PT0gdGFza0lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhc2sgPSB0YXNrc0Fzc2lnbmVkVG9Vc2VyWzBdO1xuICAgICAgfVxuICAgICAgLy8gaWYgb25lIHRhc2sgYXNzaWduZWQgdG8gdXNlciwgYWxsb3cgdXNlciB0byBjb21wbGV0ZSBldmVudFxuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndGFza1RvQ29tcGxldGUnLCBKU09OLnN0cmluZ2lmeSh0YXNrKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yVGFza3MocGF5bG9hZDogVGFza1BheWxvYWQsIGNhc2VJZDogc3RyaW5nLCBldmVudElkOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgLy8gQ2xlYXIgdGFza1RvQ29tcGxldGUgZnJvbSBzZXNzaW9uIGFzIHdlIHdpbGwgYmUgc3RhcnRpbmcgdGhlIHByb2Nlc3MgZm9yIG5ldyB0YXNrXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndGFza1RvQ29tcGxldGUnKTtcblxuICAgIGlmIChwYXlsb2FkLnRhc2tfcmVxdWlyZWRfZm9yX2V2ZW50KSB7XG4gICAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZXMgaW4gRXZlbnRUcmlnZ2VyUmVzb2x2ZXIvQ2FzZVNlcnZpY2UgYW5kL29yIENDRCBmb3Igc29tZSBldmVudHNcbiAgICAgIC8vIHdoaWNoIHRyaWdnZXJzIHRoZSBDYW5BY3RpdmF0ZSBndWFyZCBhZ2Fpbi5cbiAgICAgIC8vIElmIGV2ZW50IHN0YXJ0IGlzIGluaXRpYXRlZCBhZ2FpbiwgdGhlbiB3ZSBkbyBub3QgbmVlZCB0byBwZXJmb3JtIHN0YXRlIG1hY2hpbmUgcHJvY2Vzc2luZyBhZ2Fpbi5cbiAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaG1jdHMubmV0L2ppcmEvYnJvd3NlL0VVSS01NDg5XG4gICAgICBpZiAodGhpcy5yb3V0ZXIgJiYgdGhpcy5yb3V0ZXIudXJsICYmIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnZXZlbnQtc3RhcnQnKSkge1xuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjYXNlSWR9L2V2ZW50LXN0YXJ0YF0sIHsgcXVlcnlQYXJhbXM6IHsgY2FzZUlkLCBldmVudElkLCB0YXNrSWQgfSB9KTtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNoZWNrVGFza0luRXZlbnROb3RSZXF1aXJlZChwYXlsb2FkLCBjYXNlSWQsIHRhc2tJZCkpO1xuICAgIH1cbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvZXZlbnQtZ3VhcmQvZXZlbnQtc3RhcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7QUFHM0YsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBNkIscUJBQTRDLEVBQ3RELE1BQWMsRUFDZCxTQUE0QixFQUM1QixxQkFBNEM7UUFIbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUN0RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUMvRCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQTZCO1FBQzlDLHNEQUFzRDtRQUN0RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxpQkFBaUIsRUFBRTtZQUNoRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25D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YW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBUYXNrUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFza1BheWxvYWQnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2Vzc2lvbi9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy93b3JrLWFsbG9jYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFdmVudFN0YXJ0R3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAvLyBDaGVja3MgbXVzdCBiZSBwZXJmb3JtZWQgb25seSBmb3IgV29yayBBbGxvY2F0aW9uIDJcbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0V29ya0FsbG9jYXRpb25BcGlVcmwoKS50b0xvd2VyQ2FzZSgpID09PSAnd29ya2FsbG9jYXRpb24yJykge1xuICAgICAgY29uc3QgY2FzZUlkID0gcm91dGUucGFyYW1zWydjaWQnXTtcbiAgICAgIGNvbnN0IGV2ZW50SWQgPSByb3V0ZS5wYXJhbXNbJ2VpZCddO1xuICAgICAgY29uc3QgdGFza0lkID0gcm91dGUucXVlcnlQYXJhbXNbJ3RpZCddO1xuXG4gICAgICAvLyBUT0RPOiBOYXZpZ2F0aW9uRXh0cmFzIHNob3VsZCBiZSB1c2VkIG9uY2UgQW5ndWxhciB1cGdyYWRlIGNoYW5nZXMgaGF2ZSBiZWVuIGluY29ycG9yYXRlZFxuICAgICAgY29uc3QgaXNDb21wbGV0ZSA9IHJvdXRlLnF1ZXJ5UGFyYW1zWydpc0NvbXBsZXRlJ107XG4gICAgICBjb25zdCBjYXNlSW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Nhc2VJbmZvJyk7XG4gICAgICBpZiAoY2FzZUluZm9TdHIpIHtcbiAgICAgICAgY29uc3QgY2FzZUluZm8gPSBKU09OLnBhcnNlKGNhc2VJbmZvU3RyKTtcbiAgICAgICAgaWYgKGNhc2VJbmZvICYmIGNhc2VJbmZvLmNpZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgICAgaWYgKGlzQ29tcGxldGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmdldFRhc2tzQnlDYXNlSWRBbmRFdmVudElkKGV2ZW50SWQsIGNhc2VJZCwgY2FzZUluZm8uY2FzZVR5cGUsIGNhc2VJbmZvLmp1cmlzZGljdGlvbikucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgocGF5bG9hZDogVGFza1BheWxvYWQpID0+IHRoaXMuY2hlY2tGb3JUYXNrcyhwYXlsb2FkLCBjYXNlSWQsIGV2ZW50SWQsIHRhc2tJZCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDaGVja3Mgbm90IHJlcXVpcmVkLCByZXR1cm4gdHJ1ZSBieSBkZWZhdWx0IGZvciBXb3JrIEFsbG9jYXRpb24gMVxuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gb2YoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGNoZWNrVGFza0luRXZlbnROb3RSZXF1aXJlZChwYXlsb2FkOiBUYXNrUGF5bG9hZCwgY2FzZUlkOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFwYXlsb2FkIHx8ICFwYXlsb2FkLnRhc2tzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFza051bWJlciA9IHBheWxvYWQudGFza3MubGVuZ3RoO1xuICAgIGlmICh0YXNrTnVtYmVyID09PSAwKSB7XG4gICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gdGFza3MganVzdCBjYXJyeSBvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIEdldCBudW1iZXIgb2YgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgIGNvbnN0IHRhc2tzQXNzaWduZWRUb1VzZXIgPSBwYXlsb2FkLnRhc2tzLmZpbHRlcih4ID0+XG4gICAgICB4LnRhc2tfc3RhdGUgIT09ICd1bmFzc2lnbmVkJyAmJiB4LmFzc2lnbmVlID09PSB1c2VySW5mby5pZCB8fCB4LmFzc2lnbmVlID09PSB1c2VySW5mby51aWRcbiAgICApO1xuXG4gICAgaWYgKHRhc2tzQXNzaWduZWRUb1VzZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBubyB0YXNrcyBhc3NpZ25lZCB0byB1c2VyIGNhcnJ5IG9uXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRhc2tzQXNzaWduZWRUb1VzZXIubGVuZ3RoID4gMSAmJiAhdGFza0lkKSB7XG4gICAgICAvLyBpZiBtb3JlIHRoYW4gb25lIHRhc2sgYXNzaWduZWQgdG8gdGhlIHVzZXIgdGhlbiBnaXZlIG11bHRpcGxlIHRhc2tzIGVycm9yXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjYXNlSWR9L211bHRpcGxlLXRhc2tzLWV4aXN0YF0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGFzazogYW55O1xuICAgICAgaWYgKHRhc2tJZCkge1xuICAgICAgICB0YXNrID0gcGF5bG9hZC50YXNrcy5maW5kKHggPT4geC5pZCA9PT0gdGFza0lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhc2sgPSB0YXNrc0Fzc2lnbmVkVG9Vc2VyWzBdO1xuICAgICAgfVxuICAgICAgLy8gaWYgb25lIHRhc2sgYXNzaWduZWQgdG8gdXNlciwgYWxsb3cgdXNlciB0byBjb21wbGV0ZSBldmVudFxuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndGFza1RvQ29tcGxldGUnLCBKU09OLnN0cmluZ2lmeSh0YXNrKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yVGFza3MocGF5bG9hZDogVGFza1BheWxvYWQsIGNhc2VJZDogc3RyaW5nLCBldmVudElkOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgLy8gQ2xlYXIgdGFza1RvQ29tcGxldGUgZnJvbSBzZXNzaW9uIGFzIHdlIHdpbGwgYmUgc3RhcnRpbmcgdGhlIHByb2Nlc3MgZm9yIG5ldyB0YXNrXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndGFza1RvQ29tcGxldGUnKTtcblxuICAgIGlmIChwYXlsb2FkLnRhc2tfcmVxdWlyZWRfZm9yX2V2ZW50KSB7XG4gICAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZXMgaW4gRXZlbnRUcmlnZ2VyUmVzb2x2ZXIvQ2FzZVNlcnZpY2UgYW5kL29yIENDRCBmb3Igc29tZSBldmVudHNcbiAgICAgIC8vIHdoaWNoIHRyaWdnZXJzIHRoZSBDYW5BY3RpdmF0ZSBndWFyZCBhZ2Fpbi5cbiAgICAgIC8vIElmIGV2ZW50IHN0YXJ0IGlzIGluaXRpYXRlZCBhZ2FpbiwgdGhlbiB3ZSBkbyBub3QgbmVlZCB0byBwZXJmb3JtIHN0YXRlIG1hY2hpbmUgcHJvY2Vzc2luZyBhZ2Fpbi5cbiAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaG1jdHMubmV0L2ppcmEvYnJvd3NlL0VVSS01NDg5XG4gICAgICBpZiAodGhpcy5yb3V0ZXIgJiYgdGhpcy5yb3V0ZXIudXJsICYmIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnZXZlbnQtc3RhcnQnKSkge1xuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjYXNlSWR9L2V2ZW50LXN0YXJ0YF0sIHsgcXVlcnlQYXJhbXM6IHsgY2FzZUlkLCBldmVudElkLCB0YXNrSWQgfSB9KTtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNoZWNrVGFza0luRXZlbnROb3RSZXF1aXJlZChwYXlsb2FkLCBjYXNlSWQsIHRhc2tJZCkpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -23,7 +23,10 @@ export class FieldReadComponent extends AbstractFieldReadComponent {
23
23
  // Ensure all field values are resolved by label interpolation before the component is fully initialised.
24
24
  Promise.resolve(null).then(() => {
25
25
  const componentClass = this.paletteService.getFieldComponentClass(this.caseField, false);
26
- const injector = Injector.create([], this.fieldContainer.parentInjector);
26
+ const injector = Injector.create({
27
+ providers: [],
28
+ parent: this.fieldContainer.injector
29
+ });
27
30
  const component = this.resolver.resolveComponentFactory(componentClass).create(injector);
28
31
  // Provide component @Inputs
29
32
  // Only Fixed list use plainToClassFromExist
@@ -82,4 +85,4 @@ FieldReadComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldReadComponent, se
82
85
  type: ViewChild,
83
86
  args: ['fieldContainer', { static: false, read: ViewContainerRef }]
84
87
  }] }); })();
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtcmVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2ZpZWxkLXJlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYmFzZS1maWVsZC9maWVsZC1yZWFkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBRTdFLE1BQU0saUJBQWlCLEdBQUcsQ0FBRSxXQUFXLEVBQUUsYUFBYSxDQUFFLENBQUM7QUFNekQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLDBCQUEwQjtJQWlCaEUsWUFBNkIsUUFBa0MsRUFBbUIsY0FBOEI7UUFDOUcsS0FBSyxFQUFFLENBQUM7UUFEbUIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFBbUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZHpHLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsY0FBUyxHQUFjLElBQUksU0FB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzRnJvbUV4aXN0IH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFBhbGV0dGVTZXJ2aWNlIH0gZnJvbSAnLi4vcGFsZXR0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5cbmNvbnN0IEZJWF9DQVNFRklFTERfRk9SID0gWyAnRml4ZWRMaXN0JywgJ0R5bmFtaWNMaXN0JyBdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtZmllbGQtcmVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1yZWFkLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkUmVhZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgd2l0aExhYmVsID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGluaz86IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnZmllbGRDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgcHVibGljIGZpZWxkQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgcHJpdmF0ZSByZWFkb25seSBwYWxldHRlU2VydmljZTogUGFsZXR0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEVuc3VyZSBhbGwgZmllbGQgdmFsdWVzIGFyZSByZXNvbHZlZCBieSBsYWJlbCBpbnRlcnBvbGF0aW9uIGJlZm9yZSB0aGUgY29tcG9uZW50IGlzIGZ1bGx5IGluaXRpYWxpc2VkLlxuICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudENsYXNzID0gdGhpcy5wYWxldHRlU2VydmljZS5nZXRGaWVsZENvbXBvbmVudENsYXNzKHRoaXMuY2FzZUZpZWxkLCBmYWxzZSk7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbXSwgdGhpcy5maWVsZENvbnRhaW5lci5wYXJlbnRJbmplY3Rvcik7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKS5jcmVhdGUoaW5qZWN0b3IpO1xuXG4gICAgICAvLyBQcm92aWRlIGNvbXBvbmVudCBASW5wdXRzXG4gICAgICAvLyBPbmx5IEZpeGVkIGxpc3QgdXNlIHBsYWluVG9DbGFzc0Zyb21FeGlzdFxuICAgICAgLy8gQmV0dGVyIHBlcmZvcm1hbmNlXG4gICAgICAvLyBUT0RPIEFXIDMwLzEyLzIwIGZpZ3VyZSBvdXQgd2h5IEZpeGVkTGlzdHMgbmVlZCBwbGFpblRvQ2xhc3NGcm9tRXhpc3RcbiAgICAgIC8vIEFkZGVkIGEgY2hlY2sgdG8gbWFrZSBzdXJlIGl0J3MgTk9UIGFscmVhZHkgYSBDYXNlRmllbGQgYW5kIHRoZW5cbiAgICAgIC8vIGFzc2lnbmluZyBpdCBiYWNrIHRvIHRoaXMuY2FzZUZpZWxkIHNvIHdlIGRvbid0IGNyZWF0ZSBzZXBhcmF0aW9uLlxuICAgICAgaWYgKEZJWF9DQVNFRklFTERfRk9SLmluZGV4T2YodGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS50eXBlKSA+IC0xICYmICEodGhpcy5jYXNlRmllbGQgaW5zdGFuY2VvZiBDYXNlRmllbGQpKSB7XG4gICAgICAgIHRoaXMuY2FzZUZpZWxkID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBDYXNlRmllbGQoKSwgdGhpcy5jYXNlRmllbGQpO1xuICAgICAgfVxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydjYXNlRmllbGQnXSA9ICB0aGlzLmNhc2VGaWVsZDtcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnY2FzZUZpZWxkcyddID0gdGhpcy5jYXNlRmllbGRzO1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydmb3JtR3JvdXAnXSA9IHRoaXMuZm9ybUdyb3VwO1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWyd0b3BMZXZlbEZvcm1Hcm91cCddID0gdGhpcy50b3BMZXZlbEZvcm1Hcm91cDtcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnaWRQcmVmaXgnXSA9IHRoaXMuaWRQcmVmaXg7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ3BhcmVudCddID0gdGhpcy5wYXJlbnQ7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2Nhc2VSZWZlcmVuY2UnXSA9IHRoaXMuY2FzZVJlZmVyZW5jZTtcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnY29udGV4dCddID0gdGhpcy5jb250ZXh0O1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydtYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbmsnXSA9IHRoaXMubWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rO1xuXG4gICAgICB0aGlzLmZpZWxkQ29udGFpbmVyLmluc2VydChjb21wb25lbnQuaG9zdFZpZXcpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IFtoaWRkZW5dPVwiY2FzZUZpZWxkLmhpZGRlblwiPlxuICA8Y2NkLWZpZWxkLXJlYWQtbGFiZWwgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwidG9wTGV2ZWxGb3JtR3JvdXBcIiBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiIFt3aXRoTGFiZWxdPVwid2l0aExhYmVsXCIgW21hcmtkb3duVXNlSHJlZkFzUm91dGVyTGlua109XCJtYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbmtcIj5cbiAgICA8bmctY29udGFpbmVyICNmaWVsZENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbiAgPC9jY2QtZmllbGQtcmVhZC1sYWJlbD5cbjwvZGl2PlxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtcmVhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2ZpZWxkLXJlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYmFzZS1maWVsZC9maWVsZC1yZWFkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBRTdFLE1BQU0saUJBQWlCLEdBQUcsQ0FBRSxXQUFXLEVBQUUsYUFBYSxDQUFFLENBQUM7QUFNekQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLDBCQUEwQjtJQWlCaEUsWUFBNkIsUUFBa0MsRUFBbUIsY0FBOEI7UUFDOUcsS0FBSyxFQUFFLENBQUM7UUFEbUIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFBbUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZHpHLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsY0FBUyxHQUFjLElBQUksU0FB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QUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzRnJvbUV4aXN0IH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFBhbGV0dGVTZXJ2aWNlIH0gZnJvbSAnLi4vcGFsZXR0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5cbmNvbnN0IEZJWF9DQVNFRklFTERfRk9SID0gWyAnRml4ZWRMaXN0JywgJ0R5bmFtaWNMaXN0JyBdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtZmllbGQtcmVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1yZWFkLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkUmVhZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgd2l0aExhYmVsID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGluaz86IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnZmllbGRDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgcHVibGljIGZpZWxkQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgcHJpdmF0ZSByZWFkb25seSBwYWxldHRlU2VydmljZTogUGFsZXR0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEVuc3VyZSBhbGwgZmllbGQgdmFsdWVzIGFyZSByZXNvbHZlZCBieSBsYWJlbCBpbnRlcnBvbGF0aW9uIGJlZm9yZSB0aGUgY29tcG9uZW50IGlzIGZ1bGx5IGluaXRpYWxpc2VkLlxuICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudENsYXNzID0gdGhpcy5wYWxldHRlU2VydmljZS5nZXRGaWVsZENvbXBvbmVudENsYXNzKHRoaXMuY2FzZUZpZWxkLCBmYWxzZSk7XG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW10sXG4gICAgICAgIHBhcmVudDogdGhpcy5maWVsZENvbnRhaW5lci5pbmplY3RvclxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50Q2xhc3MpLmNyZWF0ZShpbmplY3Rvcik7XG5cbiAgICAgIC8vIFByb3ZpZGUgY29tcG9uZW50IEBJbnB1dHNcbiAgICAgIC8vIE9ubHkgRml4ZWQgbGlzdCB1c2UgcGxhaW5Ub0NsYXNzRnJvbUV4aXN0XG4gICAgICAvLyBCZXR0ZXIgcGVyZm9ybWFuY2VcbiAgICAgIC8vIFRPRE8gQVcgMzAvMTIvMjAgZmlndXJlIG91dCB3aHkgRml4ZWRMaXN0cyBuZWVkIHBsYWluVG9DbGFzc0Zyb21FeGlzdFxuICAgICAgLy8gQWRkZWQgYSBjaGVjayB0byBtYWtlIHN1cmUgaXQncyBOT1QgYWxyZWFkeSBhIENhc2VGaWVsZCBhbmQgdGhlblxuICAgICAgLy8gYXNzaWduaW5nIGl0IGJhY2sgdG8gdGhpcy5jYXNlRmllbGQgc28gd2UgZG9uJ3QgY3JlYXRlIHNlcGFyYXRpb24uXG4gICAgICBpZiAoRklYX0NBU0VGSUVMRF9GT1IuaW5kZXhPZih0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpID4gLTEgJiYgISh0aGlzLmNhc2VGaWVsZCBpbnN0YW5jZW9mIENhc2VGaWVsZCkpIHtcbiAgICAgICAgdGhpcy5jYXNlRmllbGQgPSBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCB0aGlzLmNhc2VGaWVsZCk7XG4gICAgICB9XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2Nhc2VGaWVsZCddID0gIHRoaXMuY2FzZUZpZWxkO1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydjYXNlRmllbGRzJ10gPSB0aGlzLmNhc2VGaWVsZHM7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2Zvcm1Hcm91cCddID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ3RvcExldmVsRm9ybUdyb3VwJ10gPSB0aGlzLnRvcExldmVsRm9ybUdyb3VwO1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydpZFByZWZpeCddID0gdGhpcy5pZFByZWZpeDtcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZVsncGFyZW50J10gPSB0aGlzLnBhcmVudDtcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnY2FzZVJlZmVyZW5jZSddID0gdGhpcy5jYXNlUmVmZXJlbmNlO1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydjb250ZXh0J10gPSB0aGlzLmNvbnRleHQ7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ21hcmtkb3duVXNlSHJlZkFzUm91dGVyTGluayddID0gdGhpcy5tYXJrZG93blVzZUhyZWZBc1JvdXRlckxpbms7XG5cbiAgICAgIHRoaXMuZmllbGRDb250YWluZXIuaW5zZXJ0KGNvbXBvbmVudC5ob3N0Vmlldyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCJjYXNlRmllbGQuaGlkZGVuXCI+XG4gIDxjY2QtZmllbGQtcmVhZC1sYWJlbCBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJ0b3BMZXZlbEZvcm1Hcm91cFwiIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCIgW3dpdGhMYWJlbF09XCJ3aXRoTGFiZWxcIiBbbWFya2Rvd25Vc2VIcmVmQXNSb3V0ZXJMaW5rXT1cIm1hcmtkb3duVXNlSHJlZkFzUm91dGVyTGlua1wiPlxuICAgIDxuZy1jb250YWluZXIgI2ZpZWxkQ29udGFpbmVyPjwvbmctY29udGFpbmVyPlxuICA8L2NjZC1maWVsZC1yZWFkLWxhYmVsPlxuPC9kaXY+XG4iXX0=
@@ -81,4 +81,4 @@ FieldWriteComponent.ɵcmp = i0.ɵɵdefineComponent({ type: FieldWriteComponent,
81
81
  type: ViewChild,
82
82
  args: ['fieldContainer', { static: true, read: ViewContainerRef }]
83
83
  }] }); })();
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtd3JpdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYmFzZS1maWVsZC9maWVsZC13cml0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2ZpZWxkLXdyaXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUUvRSxNQUFNLGlCQUFpQixHQUFHLENBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBRSxDQUFDO0FBT3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwyQkFBMkI7SUFXbEUsWUFBNkIsUUFBa0MsRUFDbEMsY0FBOEI7UUFDekQsS0FBSyxFQUFFLENBQUM7UUFGbUIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVjNELDhEQUE4RDtRQUN2RCxtQkFBYyxHQUFHLEtBQUssQ0FB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QUU7YUFDOUM7d0dBT1EsVUFBVTtrQkFEaEIsS0FBSztZQUlDLGNBQWM7a0JBRHBCLFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbGlkYXRvcnMuc2VydmljZSc7XG5pbXBvcnQgeyBQYWxldHRlU2VydmljZSB9IGZyb20gJy4uL3BhbGV0dGUuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbmNvbnN0IEZJWF9DQVNFRklFTERfRk9SID0gWyAnRml4ZWRMaXN0JywgJ0R5bmFtaWNMaXN0JyBdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtZmllbGQtd3JpdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtd3JpdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZmllbGQtd3JpdGUuY29tcG9uZW50LnNjc3MnIF1cbn0pXG5leHBvcnQgY2xhc3MgRmllbGRXcml0ZUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8gRVVJLTMyNjcuIEZsYWcgZm9yIHdoZXRoZXIgb3Igbm90IHRoaXMgY2FuIGhhdmUgYSBncmV5IGJhci5cbiAgcHVibGljIGNhbkhhdmVHcmV5QmFyID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgQFZpZXdDaGlsZCgnZmllbGRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICBwdWJsaWMgZmllbGRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBhbGV0dGVTZXJ2aWNlOiBQYWxldHRlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50Q2xhc3MgPSB0aGlzLnBhbGV0dGVTZXJ2aWNlLmdldEZpZWxkQ29tcG9uZW50Q2xhc3ModGhpcy5jYXNlRmllbGQsIHRydWUpO1xuICAgIGNvbnN0IGluamVjdG9yT3B0aW9ucyA9IHtcbiAgICAgIHByb3ZpZGVyczogW10sXG4gICAgICBwYXJlbnQ6IHRoaXMuZmllbGRDb250YWluZXI/LmluamVjdG9yXG4gICAgfTtcblxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKGluamVjdG9yT3B0aW9ucyk7XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRDbGFzcyk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5maWVsZENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSwgMCwgaW5qZWN0b3IpO1xuXG4gICAgLy8gT25seSBGaXhlZCBsaXN0IHVzZSBwbGFpblRvQ2xhc3NGcm9tRXhpc3RcbiAgICAvLyBCZXR0ZXIgcGVyZm9ybWFuY2VcbiAgICAvLyBUT0RPIEFXIDMwLzEyLzIwIGZpZ3VyZSBvdXQgd2h5IEZpeGVkTGlzdHMgbmVlZCBwbGFpblRvQ2xhc3NGcm9tRXhpc3RcbiAgICAvLyBBZGRlZCBhIGNoZWNrIHRvIG1ha2Ugc3VyZSBpdCdzIE5PVCBhbHJlYWR5IGEgQ2FzZUZpZWxkIGFuZCB0aGVuXG4gICAgLy8gYXNzaWduaW5nIGl0IGJhY2sgdG8gdGhpcy5jYXNlRmllbGQgc28gd2UgZG9uJ3QgY3JlYXRlIHNlcGFyYXRpb24uXG4gICAgaWYgKEZJWF9DQVNFRklFTERfRk9SLmluZGV4T2YodGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS50eXBlKSA+IC0xICYmICEodGhpcy5jYXNlRmllbGQgaW5zdGFuY2VvZiBDYXNlRmllbGQpKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZCA9IHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHRoaXMuY2FzZUZpZWxkKTtcbiAgICB9XG4gICAgY29tcG9uZW50Lmluc3RhbmNlWydjYXNlRmllbGQnXSA9ICB0aGlzLmNhc2VGaWVsZDtcbiAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2Nhc2VGaWVsZHMnXSA9IHRoaXMuY2FzZUZpZWxkcztcbiAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2Zvcm1Hcm91cCddID0gdGhpcy5mb3JtR3JvdXA7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlWydwYXJlbnQnXSA9IHRoaXMucGFyZW50O1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnaWRQcmVmaXgnXSA9IHRoaXMuaWRQcmVmaXg7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuaWQgPT09ICdBZGRyZXNzR2xvYmFsJykge1xuICAgICAgY29tcG9uZW50Lmluc3RhbmNlWydpZ25vcmVNYW5kYXRvcnknXSA9IHRydWU7XG4gICAgfVxuICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnaXNFeHBhbmRlZCddID0gdGhpcy5pc0V4cGFuZGVkO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnaXNJblNlYXJjaEJsb2NrJ10gPSB0aGlzLmlzSW5TZWFyY2hCbG9jaztcbiAgICB0aGlzLmZpZWxkQ29udGFpbmVyLmluc2VydChjb21wb25lbnQuaG9zdFZpZXcpO1xuXG4gICAgLy8gRVVJLTMyNjcuXG4gICAgLy8gU2V0IHVwIHRoZSBmbGFnIGZvciB3aGV0aGVyIHRoaXMgY2FuIGhhdmUgYSBncmV5IGJhci5cbiAgICB0aGlzLmNhbkhhdmVHcmV5QmFyID0gdGhpcy5jYXNlRmllbGQuc2hvd19jb25kaXRpb24gJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS50eXBlICE9PSAnQ29sbGVjdGlvbic7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkVmFsaWRhdG9ycyhjYXNlRmllbGQ6IENhc2VGaWVsZCwgY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XG4gICAgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZFZhbGlkYXRvcnMoY2FzZUZpZWxkLCBjb250cm9sKTtcbiAgfVxufVxuIiwiPGRpdiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiBbY2xhc3MuZ3JleS1iYXJdPVwiY2FuSGF2ZUdyZXlCYXIgJiYgIWNhc2VGaWVsZC5oaWRkZW5DYW5ub3RDaGFuZ2VcIj5cbiAgPG5nLWNvbnRhaW5lciAjZmllbGRDb250YWluZXI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtd3JpdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYmFzZS1maWVsZC9maWVsZC13cml0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2ZpZWxkLXdyaXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUUvRSxNQUFNLGlCQUFpQixHQUFHLENBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBRSxDQUFDO0FBT3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSwyQkFBMkI7SUFXbEUsWUFBNkIsUUFBa0MsRUFDbEMsY0FBOEI7UUFDekQsS0FBSyxFQUFFLENBQUM7UUFGbUIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVjNELDhEQUE4RDtRQUN2RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUd2QixlQUFVLEdBQWdCLEVBQUUsQ0FBQztJQVFwQyxDQUFDO0lBRU0sUUFBUTs7UUFDYixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEYsTUFBTSxlQUFlLEdBQUc7WUFDdEIsU0FBUyxFQUFFLEVBQUU7WUFDYixNQUFNLFFBQUUsSUFBSSxDQUFDLGNBQWMsMENBQUUsUUFBUTtTQUN0QyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUUsNENBQTRDO1FBQzVDLHFCQUFxQjtRQUNyQix3RUFBd0U7UUFDeEUsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsWUFBWSxTQUFTLENBQUMsRUFBRTtZQUM1RyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLElBQUksU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuRCxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxlQUFlLEVBQUU7WUFDcEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUM5QztRQUNELFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuRCxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0MsWUFBWTtRQUNaLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUM7SUFDekcsQ0FBQztJQUVTLGFBQWEsQ0FBQyxTQUFvQixFQUFFLE9BQXdCO1FBQ3BFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7c0ZBckRVLG1CQUFtQjt3REFBbkIsbUJBQW1COytCQVFxQixnQkFBZ0I7Ozs7O1FDeEJyRSw4QkFBb0c7UUFDbEcsaUNBQTZDO1FBQy9DLGlCQUFNOztRQUYyQixtRkFBa0U7UUFBOUYsNkNBQTJCOzt1RkRnQm5CLG1CQUFtQjtjQUwvQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjtnQkFDM0MsU0FBUyxFQUFFLENBQUUsOEJBQThCLENBQUU7YUFDOUM7d0dBT1EsVUFBVTtrQkFEaEIsS0FBSztZQUlDLGNBQWM7a0JBRHBCLFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbGlkYXRvcnMuc2VydmljZSc7XG5pbXBvcnQgeyBQYWxldHRlU2VydmljZSB9IGZyb20gJy4uL3BhbGV0dGUuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbmNvbnN0IEZJWF9DQVNFRklFTERfRk9SID0gWyAnRml4ZWRMaXN0JywgJ0R5bmFtaWNMaXN0JyBdO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtZmllbGQtd3JpdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtd3JpdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZmllbGQtd3JpdGUuY29tcG9uZW50LnNjc3MnIF1cbn0pXG5leHBvcnQgY2xhc3MgRmllbGRXcml0ZUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLy8gRVVJLTMyNjcuIEZsYWcgZm9yIHdoZXRoZXIgb3Igbm90IHRoaXMgY2FuIGhhdmUgYSBncmV5IGJhci5cbiAgcHVibGljIGNhbkhhdmVHcmV5QmFyID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgQFZpZXdDaGlsZCgnZmllbGRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICBwdWJsaWMgZmllbGRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBhbGV0dGVTZXJ2aWNlOiBQYWxldHRlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50Q2xhc3MgPSB0aGlzLnBhbGV0dGVTZXJ2aWNlLmdldEZpZWxkQ29tcG9uZW50Q2xhc3ModGhpcy5jYXNlRmllbGQsIHRydWUpO1xuICAgIGNvbnN0IGluamVjdG9yT3B0aW9ucyA9IHtcbiAgICAgIHByb3ZpZGVyczogW10sXG4gICAgICBwYXJlbnQ6IHRoaXMuZmllbGRDb250YWluZXI/LmluamVjdG9yXG4gICAgfTtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShpbmplY3Rvck9wdGlvbnMpO1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmZpZWxkQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5LCAwLCBpbmplY3Rvcik7XG5cbiAgICAvLyBPbmx5IEZpeGVkIGxpc3QgdXNlIHBsYWluVG9DbGFzc0Zyb21FeGlzdFxuICAgIC8vIEJldHRlciBwZXJmb3JtYW5jZVxuICAgIC8vIFRPRE8gQVcgMzAvMTIvMjAgZmlndXJlIG91dCB3aHkgRml4ZWRMaXN0cyBuZWVkIHBsYWluVG9DbGFzc0Zyb21FeGlzdFxuICAgIC8vIEFkZGVkIGEgY2hlY2sgdG8gbWFrZSBzdXJlIGl0J3MgTk9UIGFscmVhZHkgYSBDYXNlRmllbGQgYW5kIHRoZW5cbiAgICAvLyBhc3NpZ25pbmcgaXQgYmFjayB0byB0aGlzLmNhc2VGaWVsZCBzbyB3ZSBkb24ndCBjcmVhdGUgc2VwYXJhdGlvbi5cbiAgICBpZiAoRklYX0NBU0VGSUVMRF9GT1IuaW5kZXhPZih0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpID4gLTEgJiYgISh0aGlzLmNhc2VGaWVsZCBpbnN0YW5jZW9mIENhc2VGaWVsZCkpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBDYXNlRmllbGQoKSwgdGhpcy5jYXNlRmllbGQpO1xuICAgIH1cbiAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2Nhc2VGaWVsZCddID0gIHRoaXMuY2FzZUZpZWxkO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnY2FzZUZpZWxkcyddID0gdGhpcy5jYXNlRmllbGRzO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZVsnZm9ybUdyb3VwJ10gPSB0aGlzLmZvcm1Hcm91cDtcbiAgICBjb21wb25lbnQuaW5zdGFuY2VbJ3BhcmVudCddID0gdGhpcy5wYXJlbnQ7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlWydpZFByZWZpeCddID0gdGhpcy5pZFByZWZpeDtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5pZCA9PT0gJ0FkZHJlc3NHbG9iYWwnKSB7XG4gICAgICBjb21wb25lbnQuaW5zdGFuY2VbJ2lnbm9yZU1hbmRhdG9yeSddID0gdHJ1ZTtcbiAgICB9XG4gICAgY29tcG9uZW50Lmluc3RhbmNlWydpc0V4cGFuZGVkJ10gPSB0aGlzLmlzRXhwYW5kZWQ7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlWydpc0luU2VhcmNoQmxvY2snXSA9IHRoaXMuaXNJblNlYXJjaEJsb2NrO1xuICAgIHRoaXMuZmllbGRDb250YWluZXIuaW5zZXJ0KGNvbXBvbmVudC5ob3N0Vmlldyk7XG5cbiAgICAvLyBFVUktMzI2Ny5cbiAgICAvLyBTZXQgdXAgdGhlIGZsYWcgZm9yIHdoZXRoZXIgdGhpcyBjYW4gaGF2ZSBhIGdyZXkgYmFyLlxuICAgIHRoaXMuY2FuSGF2ZUdyZXlCYXIgPSB0aGlzLmNhc2VGaWVsZC5zaG93X2NvbmRpdGlvbiAmJiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgIT09ICdDb2xsZWN0aW9uJztcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRWYWxpZGF0b3JzKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyhjYXNlRmllbGQsIGNvbnRyb2wpO1xuICB9XG59XG4iLCI8ZGl2IFtoaWRkZW5dPVwiY2FzZUZpZWxkLmhpZGRlblwiIFtjbGFzcy5ncmV5LWJhcl09XCJjYW5IYXZlR3JleUJhciAmJiAhY2FzZUZpZWxkLmhpZGRlbkNhbm5vdENoYW5nZVwiPlxuICA8bmctY29udGFpbmVyICNmaWVsZENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -3,7 +3,7 @@ import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
3
  import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
4
4
  import { ScrollToService } from '@nicky-lenaers/ngx-scroll-to';
5
5
  import { plainToClassFromExist } from 'class-transformer';
6
- import { finalize, take } from 'rxjs/operators';
6
+ import { finalize } from 'rxjs/operators';
7
7
  import { FieldType } from '../../../domain/definition/field-type.model';
8
8
  import { CaseField } from '../../../domain/definition/case-field.model';
9
9
  import { FieldsUtils } from '../../../services/fields/fields.utils';
@@ -245,6 +245,71 @@ export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
245
245
  setTimeout(() => this.focusLastItem());
246
246
  }
247
247
  }
248
+ newCaseField(id, item, index, isNew = false) {
249
+ const isNotAuthorisedToUpdate = !isNew && this.isNotAuthorisedToUpdate(index);
250
+ const fieldType = plainToClassFromExist(new FieldType(), this.caseField.field_type.collection_field_type);
251
+ if (fieldType.complex_fields) {
252
+ fieldType.complex_fields
253
+ .filter((cf) => !!cf.show_condition)
254
+ .map((cf) => cf.hidden = true);
255
+ }
256
+ // Remove the bit setting the hidden flag here as it's an item in the array and
257
+ // its hidden state isn't independently re-evaluated when the form is changed.
258
+ return plainToClassFromExist(new CaseField(), {
259
+ id,
260
+ field_type: fieldType,
261
+ display_context: isNotAuthorisedToUpdate ? 'READONLY' : this.caseField.display_context,
262
+ value: item.value,
263
+ label: null,
264
+ acls: this.caseField.acls
265
+ });
266
+ }
267
+ getContainer(index) {
268
+ const value = this.formArray.at(index).get('value');
269
+ if (value instanceof FormGroup) {
270
+ return value;
271
+ }
272
+ else {
273
+ return this.formArray.at(index);
274
+ }
275
+ }
276
+ focusLastItem() {
277
+ const item = this.items.last.nativeElement.querySelector('.form-control');
278
+ if (item) {
279
+ item.focus();
280
+ }
281
+ }
282
+ removeItem(index) {
283
+ this.collItems.splice(index, 1);
284
+ this.resetIds(index);
285
+ this.caseField.value.splice(index, 1);
286
+ this.formArray.removeAt(index);
287
+ }
288
+ resetIds(index) {
289
+ for (let i = index; i < this.collItems.length; i++) {
290
+ const counter = i + 1;
291
+ if (this.collItems[i].index && this.collItems[i].index === counter) {
292
+ this.collItems[i].index = i;
293
+ }
294
+ if (this.collItems[i].caseField && this.collItems[i].caseField.id
295
+ && this.collItems[i].caseField.id === counter.toString()) {
296
+ this.collItems[i].caseField.id = i.toString();
297
+ }
298
+ const idPrefix1 = this.collItems[i].prefix ? this.collItems[i].prefix.replace('_' + counter.toString(), '_' + i.toString()) : '';
299
+ const idPrefix1Current = idPrefix1.replace('_' + i.toString(), '_' + counter.toString());
300
+ if (this.collItems[i].prefix && this.collItems[i].prefix === idPrefix1Current) {
301
+ this.collItems[i].prefix = idPrefix1;
302
+ }
303
+ const idPrefixAvailable = this.collItems[i].container && this.collItems[i].container['component']
304
+ && this.collItems[i].container['component'].idPrefix ? true : false;
305
+ const idPrefix2 = idPrefixAvailable ?
306
+ this.collItems[i].container['component'].idPrefix.replace('_' + counter.toString(), '_' + i.toString()) : '';
307
+ const idPrefix2current = idPrefix2.replace('_' + i.toString(), '_' + counter.toString());
308
+ if (idPrefixAvailable && this.collItems[i].container['component'].idPrefix === idPrefix2current) {
309
+ this.collItems[i].container['component'].idPrefix = idPrefix2;
310
+ }
311
+ }
312
+ }
248
313
  itemLabel(index) {
249
314
  if (index) {
250
315
  return `${this.caseField.label} ${index + 1}`;
@@ -298,54 +363,15 @@ export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
298
363
  dialogConfig.panelClass = 'dialog';
299
364
  dialogConfig.closeOnNavigation = false;
300
365
  dialogConfig.position = {
301
- top: window.innerHeight / 2 - 110 + 'px', left: window.innerWidth / 2 - 275 + 'px'
366
+ top: `${window.innerHeight / 2 - 110}px`, left: `${window.innerWidth / 2 - 275}px`
302
367
  };
303
368
  const dialogRef = this.dialog.open(RemoveDialogComponent, dialogConfig);
304
- dialogRef.afterClosed().pipe(take(1)).subscribe(result => {
369
+ dialogRef.afterClosed().subscribe(result => {
305
370
  if (result === 'Remove') {
306
371
  this.removeItem(i);
307
372
  }
308
373
  });
309
374
  }
310
- newCaseField(id, item, index, isNew = false) {
311
- const isNotAuthorisedToUpdate = !isNew && this.isNotAuthorisedToUpdate(index);
312
- const fieldType = plainToClassFromExist(new FieldType(), this.caseField.field_type.collection_field_type);
313
- if (fieldType.complex_fields) {
314
- fieldType.complex_fields
315
- .filter((cf) => !!cf.show_condition)
316
- .map((cf) => cf.hidden = true);
317
- }
318
- // Remove the bit setting the hidden flag here as it's an item in the array and
319
- // its hidden state isn't independently re-evaluated when the form is changed.
320
- return plainToClassFromExist(new CaseField(), {
321
- id,
322
- field_type: fieldType,
323
- display_context: isNotAuthorisedToUpdate ? 'READONLY' : this.caseField.display_context,
324
- value: item.value,
325
- label: null,
326
- acls: this.caseField.acls
327
- });
328
- }
329
- getContainer(index) {
330
- const value = this.formArray.at(index).get('value');
331
- if (value instanceof FormGroup) {
332
- return value;
333
- }
334
- else {
335
- return this.formArray.at(index);
336
- }
337
- }
338
- focusLastItem() {
339
- const item = this.items.last.nativeElement.querySelector('.form-control');
340
- if (item) {
341
- item.focus();
342
- }
343
- }
344
- removeItem(index) {
345
- this.collItems.splice(index, 1);
346
- this.caseField.value.splice(index, 1);
347
- this.formArray.removeAt(index);
348
- }
349
375
  /**
350
376
  * Applied full solution as part of EUI-3505
351
377
  */
@@ -411,4 +437,4 @@ WriteCollectionFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCollec
411
437
  type: ViewChildren,
412
438
  args: ['collectionItem']
413
439
  }] }); })();
414
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFF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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICdAbmlja3ktbGVuYWVycy9uZ3gtc2Nyb2xsLXRvJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLm1vZGVsJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBQcm9maWxlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3Byb2ZpbGUvcHJvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbGlkYXRvcnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlTm90aWZpZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9maWxlL3Byb2ZpbGUubm90aWZpZXInO1xuaW1wb3J0IHsgUmVtb3ZlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9yZW1vdmUtZGlhbG9nL3JlbW92ZS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcblxudHlwZSBDb2xsZWN0aW9uSXRlbSA9IHtcbiAgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG4gIGl0ZW06IGFueTtcbiAgcHJlZml4OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIGNvbnRhaW5lcjogRm9ybUdyb3VwO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNvbGxlY3Rpb24tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtY29sbGVjdGlvbi1maWVsZC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sbGVjdGlvbi1maWVsZC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVDb2xsZWN0aW9uRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGRzOiBDYXNlRmllbGRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZm9ybUFycmF5OiBGb3JtQXJyYXk7XG5cbiAgcHVibGljIHByb2ZpbGU6IFByb2ZpbGU7XG4gIHB1YmxpYyBwcm9maWxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZHJlbignY29sbGVjdGlvbkl0ZW0nKVxuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIHB1YmxpYyByZWFkb25seSBjb2xsSXRlbXM6IENvbGxlY3Rpb25JdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFRvU2VydmljZTogU2Nyb2xsVG9TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByb2ZpbGVOb3RpZmllcjogUHJvZmlsZU5vdGlmaWVyXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRXhwYW5kZWQpIHsgLy8gbWVhbmluZyBJIGFtIG5vdCByZW5kZXJlZCBvbiB0aGUgc2VhcmNoL3dvcmtiYXNrZXQgaW5wdXQgZmlsdGVyXG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24gPSB0aGlzLnByb2ZpbGVOb3RpZmllci5wcm9maWxlLnN1YnNjcmliZShfID0+IHRoaXMucHJvZmlsZSA9IF8pO1xuICAgIH1cbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlIHx8IFtdO1xuICAgIHRoaXMuZm9ybUFycmF5ID0gdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1BcnJheShbXSksIHRydWUpIGFzIEZvcm1BcnJheTtcbiAgICB0aGlzLmZvcm1BcnJheVsnY2FzZUZpZWxkJ10gPSB0aGlzLmNhc2VGaWVsZDtcbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeDogc3RyaW5nID0gdGhpcy5idWlsZElkUHJlZml4KGluZGV4KTtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZCA9IHRoaXMuYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXgpO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXIoaW5kZXgpO1xuICAgICAgaWYgKHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtcy5sZW5ndGggPSBpbmRleCArIDE7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbGxJdGVtc1tpbmRleF0gPSB7IGNhc2VGaWVsZCwgaXRlbSwgcHJlZml4LCBpbmRleCwgY29udGFpbmVyIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ2FzZUZpZWxkKGl0ZW0sIGluZGV4OiBudW1iZXIsIGlzTmV3ID0gZmFsc2UpOiBDYXNlRmllbGQge1xuICAgIC8qKlxuICAgICAqIFdoYXQgZm9sbG93IGlzIGNvZGUgdGhhdCBtYWtlcyBtZSB3YW50IHRvIGdvIGp1bXAgaW4gdGhlIHNob3dlciFcbiAgICAgKiBCYXNpY2FsbHksIHdlIGxhbmQgaW4gaGVyZSByZXBlYXRlZGx5IGJlY2F1c2Ugb2YgdGhlIGJpbmRpbmcsIGFuZFxuICAgICAqIHRoaXMgaXMgd2hhdCBhcHBlYXJzIHRvIGJlIGhhcHBlbmluZzpcbiAgICAgKiAgIDEuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIG5vIGNvbnRyb2xzIGF0IGFsbC5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW107XG4gICAgICogICAyLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyBhIEZvcm1Hcm91cCwgd2hpY2ggY29udGFpbnMgYSBzaW5nbGVcbiAgICAgKiAgICAgIEZvcm1Db250cm9sIHdpdGggdGhlIGlkICdjb2RlJy5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW3sgY29kZTogbnVsbCB9XVxuICAgICAqICAgMy4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgd2hhdCBpcyBiZWluZyBzZXQgdXAgYmVsb3cuXG4gICAgICogICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZSA9IFt7IGNvZGU6IG51bGwsIGlkOiBudWxsLCB2YWx1ZTogeyBjb2RlOiBudWxsIH0gfV1cbiAgICAgKiAgIDQsIDUsIDYsIGV0YyAtIHRoZSBzYW1lIGFzIDMuXG4gICAgICovXG4gICAgbGV0IGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgaWYgKHRoaXMuZm9ybUFycmF5ICYmIChpbmRleCA8IHRoaXMuZm9ybUFycmF5Lmxlbmd0aCkpIHtcbiAgICAgIGdyb3VwID0gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgaWYgKHRoaXMuaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKHRoaXMuY2FzZUZpZWxkKSkge1xuICAgICAgdmFsdWUgPSBncm91cC5nZXQoJ3ZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IEZvcm1Db250cm9sKGl0ZW0udmFsdWUpO1xuICAgICAgICAvLyBOb3cgYWRkIHRoZSB2YWx1ZSBGb3JtQ29udHJvbCB0byB0aGUgb3V0ZXIgZ3JvdXAuXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IGdyb3VwLmdldCgndmFsdWUnKSBhcyBGb3JtR3JvdXA7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGdyb3VwLmNvbnRyb2xzKSkge1xuICAgICAgICAgIHZhbHVlLmFkZENvbnRyb2woa2V5LCBncm91cC5nZXQoa2V5KSk7XG4gICAgICAgICAgLy8gRE9OJ1QgcmVtb3ZlIHRoZSBjb250cm9sIGZvciB0aGlzIGtleSBmcm9tIHRoZSBvdXRlciBncm91cCBvciBpdFxuICAgICAgICAgIC8vIGdvZXMgYXdyeS4gU28gRE9OJ1QgdW5jb21tZW50IHRoZSBiZWxvdyBsaW5lIVxuICAgICAgICAgIC8vIGdyb3VwLnJlbW92ZUNvbnRyb2woa2V5KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb3cgYWRkIHRoZSB2YWx1ZSBGb3JtR3JvdXAgdG8gdGhlIG91dGVyIGdyb3VwLlxuICAgICAgICBncm91cC5hZGRDb250cm9sKCd2YWx1ZScsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGlkID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIC8vIElmIHdlJ3JlIG5vdCBpbiBzY2VuYXJpbyAzLCBhYm92ZSwgd2UgbmVlZCB0byBkbyBzb21lIGppZ2dlcnkgcG9rZXJ5XG4gICAgLy8gYW5kIHNldCB1cCB0aGUgaWQgYW5kIHZhbHVlIGNvbnRyb2xzLlxuICAgIC8vIEFsc28gc2V0IHVwIGFuIGlkIGNvbnRyb2wgaWYgaXQgZG9lc24ndCB5ZXQgZXhpc3QuXG4gICAgaWYgKCFpZCkge1xuICAgICAgaWQgPSBuZXcgRm9ybUNvbnRyb2woaXRlbS5pZCk7XG4gICAgICBncm91cC5hZGRDb250cm9sKCdpZCcsIGlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZ2FpbiwgdmVyeSBzb3JyeS4gSSd2ZSBub3QgZm91bmQgYSBiZXR0ZXIgd2F5IHRvIHByb2R1Y2UgdGhlXG4gICAgICogb3V0cHV0IG5lZWRlZCBmb3Igd2hhdCBuZWVkcyB0byBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIgeWV0LlxuICAgICAqL1xuXG4gICAgLy8gTm93LCBhZGQgdGhlIG91dGVyIGdyb3VwIHRvIHRoZSBhcnJheSAob3IgcmVwbGFjZSBpdCkuXG4gICAgaWYgKGluZGV4IDwgdGhpcy5mb3JtQXJyYXkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZvcm1BcnJheS5zZXRDb250cm9sKGluZGV4LCBncm91cCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUFycmF5LnB1c2goZ3JvdXApO1xuICAgIH1cblxuICAgIC8vIE5vdyBzZXQgdXAgdGhlIENhc2VGaWVsZCBhbmQgdmFsaWRhdGlvbi5cbiAgICBsZXQgY2ZpZDogc3RyaW5nO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICBjZmlkID0gJ3ZhbHVlJztcbiAgICB9IGVsc2Uge1xuICAgICAgY2ZpZCA9IGluZGV4LnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gaXNOZXc6XG4gICAgY29uc3QgY2Y6IENhc2VGaWVsZCA9IHRoaXMubmV3Q2FzZUZpZWxkKGNmaWQsIGl0ZW0sIGluZGV4LCBpc05ldyk7XG4gICAgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZFZhbGlkYXRvcnMoY2YsIHZhbHVlKTtcbiAgICBGaWVsZHNVdGlscy5hZGRDYXNlRmllbGRBbmRDb21wb25lbnRSZWZlcmVuY2VzKHZhbHVlLCBjZiwgdGhpcyk7XG4gICAgcmV0dXJuIGNmO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkSWRQcmVmaXgoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4ID0gYCR7dGhpcy5pZFByZWZpeH0ke3RoaXMuY2FzZUZpZWxkLmlkfV9gO1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcpIHtcbiAgICAgIHJldHVybiBgJHtwcmVmaXh9JHtpbmRleH1fYDtcbiAgICB9XG4gICAgcmV0dXJuIHByZWZpeDtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlYXJjaEZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luU2VhcmNoQmxvY2sgJiYgdGhpcy5jb2xsSXRlbXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRJdGVtKGRvU2Nyb2xsOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gTWFudWFsbHkgcmVzZXR0aW5nIGVycm9ycyBpcyByZXF1aXJlZCB0byBwcmV2ZW50IGBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yYFxuICAgIHRoaXMuZm9ybUFycmF5LnNldEVycm9ycyhudWxsKTtcbiAgICBjb25zdCBpdGVtID0geyB2YWx1ZTogbnVsbCB9O1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnB1c2goaXRlbSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNhc2VGaWVsZC52YWx1ZS5sZW5ndGggLSAxO1xuICAgIGNvbnN0IGNhc2VGaWVsZDogQ2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCwgdHJ1ZSk7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5idWlsZElkUHJlZml4KGluZGV4KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgdGhpcy5jb2xsSXRlbXMucHVzaCh7IGNhc2VGaWVsZCwgaXRlbSwgaW5kZXgsIHByZWZpeCwgY29udGFpbmVyIH0pO1xuXG4gICAgLy8gVGltZW91dCBpcyByZXF1aXJlZCBmb3IgdGhlIGNvbGxlY3Rpb24gaXRlbSB0byBiZSByZW5kZXJlZCBiZWZvcmUgaXQgY2FuIGJlIHNjcm9sbGVkIHRvIG9yIGZvY3VzZWQuXG4gICAgaWYgKGRvU2Nyb2xsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb1NlcnZpY2Uuc2Nyb2xsVG8oe1xuICAgICAgICAgIHRhcmdldDogYCR7dGhpcy5idWlsZElkUHJlZml4KGluZGV4KX0ke2luZGV4fWAsXG4gICAgICAgICAgZHVyYXRpb246IDEwMDAsXG4gICAgICAgICAgb2Zmc2V0OiAtMTUwLFxuICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZm9jdXNMYXN0SXRlbSgpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHt9LCBjb25zb2xlLmVycm9yKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNMYXN0SXRlbSgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXRlbUxhYmVsKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNhc2VGaWVsZC5sYWJlbH0gJHtpbmRleCArIDF9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZpZWxkLmxhYmVsO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkge1xuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICF0aGlzLmdldENvbGxlY3Rpb25QZXJtaXNzaW9uKHRoaXMuY2FzZUZpZWxkLCAnYWxsb3dJbnNlcnQnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2xsZWN0aW9uUGVybWlzc2lvbihmaWVsZDogQ2FzZUZpZWxkLCB0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciAmJlxuICAgICAgICAgICAgZmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlci5zcGxpdCgnIycpXG4gICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtLnN0YXJ0c1dpdGgoJ0NPTExFQ1RJT04oJykpWzBdXG4gICAgICAgICAgICAgICAgLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXYXMgcmVhc3Nlc2VkIGFzIHBhcnQgb2YgRVVJLTM1MDUuIFRoZXJlIGlzIHN0aWxsIGEgY2F2ZWF0IGFyb3VuZCBDUkQsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgYW4gdW5saWtlbHkgc2NlbmFyaW9cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIGlmIChpZCkge1xuICAgICAgaWYgKCEhdGhpcy5wcm9maWxlLnVzZXIgJiYgISF0aGlzLnByb2ZpbGUudXNlci5pZGFtKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJvbGUgPSB0aGlzLnByb2ZpbGUudXNlci5pZGFtLnJvbGVzLmZpbmQocm9sZSA9PiB0aGlzLmhhc1VwZGF0ZUFjY2Vzcyhyb2xlKSk7XG4gICAgICAgIHJldHVybiAhdXBkYXRlUm9sZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGhhc1VwZGF0ZUFjY2Vzcyhyb2xlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNhc2VGaWVsZC5hY2xzLmZpbmQoIGFjbCA9PiBhY2wucm9sZSA9PT0gcm9sZSAmJiBhY2wudXBkYXRlID09PSB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBpc05vdEF1dGhvcmlzZWRUb0RlbGV0ZShpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBTaG91bGQgYmUgYWJsZSB0byBkZWxldGUgaWYgY3JlYXRpbmcgYSBjYXNlIGV2ZW4gaWYgXCJEXCIgaXMgYWJzZW50LCBoZW5jZTpcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIHJldHVybiAhIWlkICYmICF0aGlzLmdldENvbGxlY3Rpb25QZXJtaXNzaW9uKHRoaXMuY2FzZUZpZWxkLCAnYWxsb3dEZWxldGUnKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuTW9kYWwoaTogbnVtYmVyKSB7XG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xuICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSB0cnVlO1xuICAgIGRpYWxvZ0NvbmZpZy5hcmlhTGFiZWwgPSAnTGFiZWwnO1xuICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSAnMjIwcHgnO1xuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICc1NTBweCc7XG4gICAgZGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MgPSAnZGlhbG9nJztcblxuICAgIGRpYWxvZ0NvbmZpZy5jbG9zZU9uTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIGRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA9IHtcbiAgICAgIHRvcDogd2luZG93LmlubmVySGVpZ2h0IC8gMiAtIDExMCArICdweCcsIGxlZnQ6IHdpbmRvdy5pbm5lcldpZHRoIC8gMiAtIDI3NSArICdweCdcbiAgICB9O1xuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihSZW1vdmVEaWFsb2dDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gJ1JlbW92ZScpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBuZXdDYXNlRmllbGQoaWQ6IHN0cmluZywgaXRlbSwgaW5kZXgsIGlzTmV3ID0gZmFsc2UpIHtcbiAgICBjb25zdCBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA9ICFpc05ldyAmJiB0aGlzLmlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KTtcblxuICAgIGNvbnN0IGZpZWxkVHlwZSA9IHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgRmllbGRUeXBlKCksIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlKTtcbiAgICBpZiAoZmllbGRUeXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICBmaWVsZFR5cGUuY29tcGxleF9maWVsZHNcbiAgICAgICAgLmZpbHRlcigoY2Y6IENhc2VGaWVsZCkgPT4gISFjZi5zaG93X2NvbmRpdGlvbilcbiAgICAgICAgLm1hcCgoY2Y6IENhc2VGaWVsZCkgPT4gY2YuaGlkZGVuID0gdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSBiaXQgc2V0dGluZyB0aGUgaGlkZGVuIGZsYWcgaGVyZSBhcyBpdCdzIGFuIGl0ZW0gaW4gdGhlIGFycmF5IGFuZFxuICAgIC8vIGl0cyBoaWRkZW4gc3RhdGUgaXNuJ3QgaW5kZXBlbmRlbnRseSByZS1ldmFsdWF0ZWQgd2hlbiB0aGUgZm9ybSBpcyBjaGFuZ2VkLlxuICAgIHJldHVybiBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZCxcbiAgICAgIGZpZWxkX3R5cGU6IGZpZWxkVHlwZSxcbiAgICAgIGRpc3BsYXlfY29udGV4dDogaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUgPyAnUkVBRE9OTFknIDogdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0LFxuICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICBsYWJlbDogbnVsbCxcbiAgICAgIGFjbHM6IHRoaXMuY2FzZUZpZWxkLmFjbHNcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGFpbmVyKGluZGV4OiBudW1iZXIpOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpLmdldCgndmFsdWUnKTtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0xhc3RJdGVtKCkge1xuICAgIGNvbnN0IGl0ZW06IGFueSA9IHRoaXMuaXRlbXMubGFzdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWNvbnRyb2wnKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgaXRlbS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVkIGZ1bGwgc29sdXRpb24gYXMgcGFydCBvZiBFVUktMzUwNVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb250cm9sSWRBdChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcblxuICAgIC8vIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIFsgRm9ybUdyb3VwKCBpZDogRm9ybUNvbnRyb2wsIHZhbHVlOiBGb3JtR3JvdXAgKSwgLi4uIF0uXG4gICAgLy8gSGVyZSwgd2UgbmVlZCB0byBnZXQgdGhlIHZhbHVlIG9mIHRoZSBpZCBGb3JtQ29udHJvbC5cbiAgICBjb25zdCBncm91cDogRm9ybUdyb3VwID0gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICBjb25zdCBjb250cm9sOiBGb3JtQ29udHJvbCA9IGdyb3VwLmdldCgnaWQnKSBhcyBGb3JtQ29udHJvbDtcbiAgICByZXR1cm4gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzQ29sbGVjdGlvbk9mU2ltcGxlVHlwZShjYXNlRmllbGQ6IENhc2VGaWVsZCkge1xuICAgIGNvbnN0IG5vdFNpbXBsZSA9IFsnQ29sbGVjdGlvbicsICdDb21wbGV4J107XG4gICAgcmV0dXJuIG5vdFNpbXBsZS5pbmRleE9mKCBjYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSApIDwgMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBjb2xsZWN0aW9uLWluZGljYXRvclwiPlxuXG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCI+XG4gICAgICB7e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fVxuICAgIDwvaDI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX190b3BcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0odHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB8fCBpc1NlYXJjaEZpbHRlcigpXCI+QWRkIG5ldzwvYnV0dG9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDIgZXJyb3Itc3BhY2luZ1wiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dCB8fCBmb3JtQXJyYXkuZXJyb3JzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIiBjbGFzcz1cImZvcm0taGludFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tmb3JtQXJyYXkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiAqbmdJZj1cImNhc2VGaWVsZC52YWx1ZSAmJiBjYXNlRmllbGQudmFsdWUubGVuZ3RoXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgI2NvbGxlY3Rpb25JdGVtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi10aXRsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1sZWZ0XCI+XG4gICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtLnByZWZpeCArIGlcIj48aDMgY2xhc3M9XCJoZWFkaW5nLWgzXCI+e3tpdGVtTGFiZWwoaSl9fTwvaDM+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbk1vZGFsKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVtb3ZlIHt7IGl0ZW1MYWJlbChpKSB9fVwiPlJlbW92ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cIml0ZW0uY2FzZUZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJpdGVtLmNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5BZGQgbmV3PC9idXR0b24+XG5cbiAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztJQ05yRiwrQkFBb0Q7SUFBQSxZQUF1QjtJQUFBLGlCQUFPOzs7SUFBOUIsZUFBdUI7SUFBdkIsZ0RBQXVCOzs7SUFDM0UsZ0NBQXFEO0lBQUEsWUFBb0Q7O0lBQUEsaUJBQU87OztJQUEzRCxlQUFvRDtJQUFwRCwyRkFBb0Q7OztJQUYzRyw2QkFBcUY7SUFDbkYscUZBQWtGO0lBQ2xGLHFGQUFnSDtJQUNsSCxpQkFBSzs7O0lBRkksZUFBeUI7SUFBekIsaURBQXlCO0lBQ3pCLGVBQXNCO0lBQXRCLDhDQUFzQjs7OztJQUs3QixtQ0FBc0Y7SUFDcEYsK0JBQThCO0lBQzVCLCtCQUF3QjtJQUN0QixpQ0FBK0I7SUFBQSw4QkFBdUI7SUFBQSxZQUFnQjtJQUFBLGlCQUFLO0lBQUEsaUJBQVE7SUFDckYsaUJBQU07SUFDTiwrQkFBeUI7SUFDdkIsa0NBRW9EO0lBRkUsb09BQXNCO0lBRXhCLHNCQUFNO0lBQUEsaUJBQVM7SUFDckUsaUJBQU07SUFDUixpQkFBTTtJQUNOLHVDQVFrQjtJQUNwQixpQkFBTTs7Ozs7SUFqQk8sZUFBdUI7SUFBdkIsMkNBQXVCO0lBQXdCLGVBQWdCO0lBQWhCLDRDQUFnQjtJQUs5RCxlQUEyQztJQUEzQywrRUFBMkM7SUFEM0MsK0RBQXVDO0lBSWxDLGVBQTRCO0lBQTVCLDZDQUE0QixpQ0FBQSwrQkFBQSw2QkFBQSw0QkFBQSxvQ0FBQSxpQ0FBQSwyQ0FBQTs7O0lBYmpELCtCQUFzRztJQUVwRyx1RkFvQk07SUFFUixpQkFBTTs7O0lBeEJrQixnREFBMkI7SUFFUixlQUFjO0lBQWQsMENBQWM7Ozs7SUF3QnpELGtDQUE2TTtJQUF0SSwrTEFBaUIsS0FBSyxLQUFFO0lBQThHLHVCQUFPO0lBQUEsaUJBQVM7OztJQUE3SCxzRkFBMEQ7O0FEVDlKLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSwyQkFBMkI7SUFnQjVFLFlBQTZCLE1BQWlCLEVBQzNCLGVBQWdDLEVBQ2hDLGVBQWdDO1FBRWpELEtBQUssRUFBRSxDQUFDO1FBSm1CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWhCNUMsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFZcEIsY0FBUyxHQUFxQixFQUFFLENBQUM7SUFPakQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLGtFQUFrRTtZQUN4RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxRjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFjLENBQUM7UUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUN4RCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7YUFDbkM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBYSxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3REOzs7Ozs7Ozs7Ozs7V0FZRztRQUNILElBQUksS0FBZ0IsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFjLENBQUM7U0FDL0M7YUFBTTtZQUNMLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksS0FBSyxDQUFDO1FBQ1YsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2pELEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLG9EQUFvRDtnQkFDcEQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDbEM7U0FDRjthQUFNO1lBQ0wsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFjLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzdDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDdEMsbUVBQW1FO29CQUNuRSxnREFBZ0Q7b0JBQ2hELDRCQUE0QjtpQkFDN0I7Z0JBQ0Qsa0RBQWtEO2dCQUNsRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNsQztTQUNGO1FBQ0QsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQWdCLENBQUM7UUFDeEMsdUVBQXVFO1FBQ3ZFLHdDQUF3QztRQUN4QyxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNQLEVBQUUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDNUI7UUFFRDs7O1dBR0c7UUFFSCx5REFBeUQ7UUFDekQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUVELDJDQUEyQztRQUMzQyxJQUFJLElBQVksQ0FBQztRQUNqQixJQUFJLEtBQUssWUFBWSxXQUFXLEVBQUU7WUFDaEMsSUFBSSxHQUFHLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0wsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN6QjtRQUVELFNBQVM7UUFDVCxNQUFNLEVBQUUsR0FBYyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsV0FBVyxDQUFDLGtDQUFrQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWE7UUFDaEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RFLE9BQU8sR0FBRyxNQUFNLEdBQUcsS0FBSyxHQUFHLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxPQUFPLENBQUMsUUFBaUI7UUFDOUIsaUdBQWlHO1FBQ2pHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVuRSxzR0FBc0c7UUFDdEcsSUFBSSxRQUFRLEVBQUU7WUFDWixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO29CQUM1QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRTtvQkFDOUMsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLENBQUMsR0FBRztpQkFDYixDQUFDO3FCQUNDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7cUJBQzFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsRUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDekQsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUUsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFHLElBQUksU0FBUyxDQUFDLGNBQWMsRUFBRTtZQUM1QixTQUFTLENBQUMsY0FBYztpQkFDckIsTUFBTSxDQUFDLENBQUMsRUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDOUMsR0FBRyxDQUFDLENBQUMsRUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBRUQsK0VBQStFO1FBQy9FLDhFQUE4RTtRQUM5RSxPQUFPLHFCQUFxQixDQUFDLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDNUMsRUFBRTtZQUNGLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWU7WUFDdEYsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELElBQUksS0FBSyxZQUFZLFNBQVMsRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBYyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxJQUFJLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRSxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFhO1FBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFO2dCQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7YUFDN0I7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7bUJBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDL0M7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakksTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRXpGLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLEVBQUU7Z0JBQzdFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQzthQUN0QztZQUVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO21CQUM1RixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBRXRFLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvRyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFekYsSUFBSSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUU7Z0JBQy9GLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7YUFDL0Q7U0FDRjtJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDL0M7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsSUFBWTtRQUMzRCxPQUFPLEtBQUssQ0FBQyx5QkFBeUI7WUFDcEMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBSztRQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELGtIQUFrSDtRQUNsSCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksRUFBRSxFQUFFO1lBQ04sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3pGLE9BQU8sQ0FBQyxVQUFVLENBQUM7YUFDcEI7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUFTO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQWE7UUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCw0RUFBNEU7UUFDNUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sU0FBUyxDQUFDLENBQVM7UUFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUMzQyxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNqQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM5QixZQUFZLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUNqQyxZQUFZLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUM5QixZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUM3QixZQUFZLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUVuQyxZQUFZLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLFlBQVksQ0FBQyxRQUFRLEdBQUc7WUFDdEIsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJO1NBQ25GLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV4RSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYyxDQUFDLEtBQWE7UUFFbEMsbUZBQW1GO1FBQ25GLHdEQUF3RDtRQUN4RCxNQUFNLEtBQUssR0FBYyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQWMsQ0FBQztRQUMvRCxNQUFNLE9BQU8sR0FBZ0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQWdCLENBQUM7UUFDNUQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsU0FBb0I7UUFDbkQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OzBHQXpVVSw2QkFBNkI7a0VBQTdCLDZCQUE2Qjs7Ozs7O1FDOUIxQyw4QkFBb0M7UUFFbEMsOEJBQXdDO1FBRXRDLDZCQUFxQztRQUNuQyxZQUNGOztRQUFBLGlCQUFLO1FBQ0wsaUNBQXVKO1FBQW5GLDBHQUFTLFlBQVEsSUFBSSxDQUFDLElBQUM7UUFBNEQsdUJBQU87UUFBQSxpQkFBUztRQUN2Syw0RUFHSztRQUVMLDhFQXdCTTtRQUVOLG9GQUE2TjtRQUUvTixpQkFBTTtRQUVSLGlCQUFNOztRQTNDa0IsNkJBQVc7UUFLN0IsZUFDRjtRQURFLG9FQUNGO1FBQzRGLGVBQTBEO1FBQTFELGdGQUEwRDtRQUNoSCxlQUE2QztRQUE3QyxzRUFBNkM7UUFLOUIsZUFBK0M7UUFBL0Msd0VBQStDO1FBMEJ3RCxlQUErQztRQUEvQyx3RUFBK0M7O3VGRFRsTSw2QkFBNkI7Y0FMekMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFdBQVcsRUFBRSwrQkFBK0I7Z0JBQzVDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDO3dIQUdRLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFTVyxLQUFLO2tCQURyQixZQUFZO21CQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS5tb2RlbCc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlL3Byb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZmlsZS9wcm9maWxlLm5vdGlmaWVyJztcbmltcG9ydCB7IFJlbW92ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvcmVtb3ZlLWRpYWxvZy9yZW1vdmUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbnR5cGUgQ29sbGVjdGlvbkl0ZW0gPSB7XG4gIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBpdGVtOiBhbnk7XG4gIHByZWZpeDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjb250YWluZXI6IEZvcm1Hcm91cDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jb2xsZWN0aW9uLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tZmllbGQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIHB1YmxpYyBwcm9maWxlOiBQcm9maWxlO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbGxlY3Rpb25JdGVtJylcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBwdWJsaWMgcmVhZG9ubHkgY29sbEl0ZW1zOiBDb2xsZWN0aW9uSXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFRvU2VydmljZTogU2Nyb2xsVG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkgeyAvLyBtZWFuaW5nIEkgYW0gbm90IHJlbmRlcmVkIG9uIHRoZSBzZWFyY2gvd29ya2Jhc2tldCBpbnB1dCBmaWx0ZXJcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKF8gPT4gdGhpcy5wcm9maWxlID0gXyk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgW107XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXMubGVuZ3RoIDw9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA9IGluZGV4ICsgMTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29sbEl0ZW1zW2luZGV4XSA9IHsgY2FzZUZpZWxkLCBpdGVtLCBwcmVmaXgsIGluZGV4LCBjb250YWluZXIgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXg6IG51bWJlciwgaXNOZXcgPSBmYWxzZSk6IENhc2VGaWVsZCB7XG4gICAgLyoqXG4gICAgICogV2hhdCBmb2xsb3cgaXMgY29kZSB0aGF0IG1ha2VzIG1lIHdhbnQgdG8gZ28ganVtcCBpbiB0aGUgc2hvd2VyIVxuICAgICAqIEJhc2ljYWxseSwgd2UgbGFuZCBpbiBoZXJlIHJlcGVhdGVkbHkgYmVjYXVzZSBvZiB0aGUgYmluZGluZywgYW5kXG4gICAgICogdGhpcyBpcyB3aGF0IGFwcGVhcnMgdG8gYmUgaGFwcGVuaW5nOlxuICAgICAqICAgMS4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgbm8gY29udHJvbHMgYXQgYWxsLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbXTtcbiAgICAgKiAgIDIuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIGEgRm9ybUdyb3VwLCB3aGljaCBjb250YWlucyBhIHNpbmdsZVxuICAgICAqICAgICAgRm9ybUNvbnRyb2wgd2l0aCB0aGUgaWQgJ2NvZGUnLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbeyBjb2RlOiBudWxsIH1dXG4gICAgICogICAzLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyB3aGF0IGlzIGJlaW5nIHNldCB1cCBiZWxvdy5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW3sgY29kZTogbnVsbCwgaWQ6IG51bGwsIHZhbHVlOiB7IGNvZGU6IG51bGwgfSB9XVxuICAgICAqICAgNCwgNSwgNiwgZXRjIC0gdGhlIHNhbWUgYXMgMy5cbiAgICAgKi9cbiAgICBsZXQgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBpZiAodGhpcy5mb3JtQXJyYXkgJiYgKGluZGV4IDwgdGhpcy5mb3JtQXJyYXkubGVuZ3RoKSkge1xuICAgICAgZ3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAodGhpcy5pc0NvbGxlY3Rpb25PZlNpbXBsZVR5cGUodGhpcy5jYXNlRmllbGQpKSB7XG4gICAgICB2YWx1ZSA9IGdyb3VwLmdldCgndmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUNvbnRyb2woaXRlbS52YWx1ZSk7XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Db250cm9sIHRvIHRoZSBvdXRlciBncm91cC5cbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbCgndmFsdWUnLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZ3JvdXAuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpKSB7XG4gICAgICAgICAgdmFsdWUuYWRkQ29udHJvbChrZXksIGdyb3VwLmdldChrZXkpKTtcbiAgICAgICAgICAvLyBET04nVCByZW1vdmUgdGhlIGNvbnRyb2wgZm9yIHRoaXMga2V5IGZyb20gdGhlIG91dGVyIGdyb3VwIG9yIGl0XG4gICAgICAgICAgLy8gZ29lcyBhd3J5LiBTbyBET04nVCB1bmNvbW1lbnQgdGhlIGJlbG93IGxpbmUhXG4gICAgICAgICAgLy8gZ3JvdXAucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Hcm91cCB0byB0aGUgb3V0ZXIgZ3JvdXAuXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaWQgPSBncm91cC5nZXQoJ2lkJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgLy8gSWYgd2UncmUgbm90IGluIHNjZW5hcmlvIDMsIGFib3ZlLCB3ZSBuZWVkIHRvIGRvIHNvbWUgamlnZ2VyeSBwb2tlcnlcbiAgICAvLyBhbmQgc2V0IHVwIHRoZSBpZCBhbmQgdmFsdWUgY29udHJvbHMuXG4gICAgLy8gQWxzbyBzZXQgdXAgYW4gaWQgY29udHJvbCBpZiBpdCBkb2Vzbid0IHlldCBleGlzdC5cbiAgICBpZiAoIWlkKSB7XG4gICAgICBpZCA9IG5ldyBGb3JtQ29udHJvbChpdGVtLmlkKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2woJ2lkJywgaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFnYWluLCB2ZXJ5IHNvcnJ5LiBJJ3ZlIG5vdCBmb3VuZCBhIGJldHRlciB3YXkgdG8gcHJvZHVjZSB0aGVcbiAgICAgKiBvdXRwdXQgbmVlZGVkIGZvciB3aGF0IG5lZWRzIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlciB5ZXQuXG4gICAgICovXG5cbiAgICAvLyBOb3csIGFkZCB0aGUgb3V0ZXIgZ3JvdXAgdG8gdGhlIGFycmF5IChvciByZXBsYWNlIGl0KS5cbiAgICBpZiAoaW5kZXggPCB0aGlzLmZvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybUFycmF5LnNldENvbnRyb2woaW5kZXgsIGdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucHVzaChncm91cCk7XG4gICAgfVxuXG4gICAgLy8gTm93IHNldCB1cCB0aGUgQ2FzZUZpZWxkIGFuZCB2YWxpZGF0aW9uLlxuICAgIGxldCBjZmlkOiBzdHJpbmc7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgIGNmaWQgPSAndmFsdWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjZmlkID0gaW5kZXgudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyBpc05ldzpcbiAgICBjb25zdCBjZjogQ2FzZUZpZWxkID0gdGhpcy5uZXdDYXNlRmllbGQoY2ZpZCwgaXRlbSwgaW5kZXgsIGlzTmV3KTtcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyhjZiwgdmFsdWUpO1xuICAgIEZpZWxkc1V0aWxzLmFkZENhc2VGaWVsZEFuZENvbXBvbmVudFJlZmVyZW5jZXModmFsdWUsIGNmLCB0aGlzKTtcbiAgICByZXR1cm4gY2Y7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSBgJHt0aGlzLmlkUHJlZml4fSR7dGhpcy5jYXNlRmllbGQuaWR9X2A7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke2luZGV4fV9gO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5TZWFyY2hCbG9jayAmJiB0aGlzLmNvbGxJdGVtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW0oZG9TY3JvbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBNYW51YWxseSByZXNldHRpbmcgZXJyb3JzIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgXG4gICAgdGhpcy5mb3JtQXJyYXkuc2V0RXJyb3JzKG51bGwpO1xuICAgIGNvbnN0IGl0ZW0gPSB7IHZhbHVlOiBudWxsIH07XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUucHVzaChpdGVtKTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGl0ZW0sIGluZGV4LCB0cnVlKTtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyKGluZGV4KTtcbiAgICB0aGlzLmNvbGxJdGVtcy5wdXNoKHsgY2FzZUZpZWxkLCBpdGVtLCBpbmRleCwgcHJlZml4LCBjb250YWluZXIgfSk7XG5cbiAgICAvLyBUaW1lb3V0IGlzIHJlcXVpcmVkIGZvciB0aGUgY29sbGVjdGlvbiBpdGVtIHRvIGJlIHJlbmRlcmVkIGJlZm9yZSBpdCBjYW4gYmUgc2Nyb2xsZWQgdG8gb3IgZm9jdXNlZC5cbiAgICBpZiAoZG9TY3JvbGwpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU2VydmljZS5zY3JvbGxUbyh7XG4gICAgICAgICAgdGFyZ2V0OiBgJHt0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpfSR7aW5kZXh9YCxcbiAgICAgICAgICBkdXJhdGlvbjogMTAwMCxcbiAgICAgICAgICBvZmZzZXQ6IC0xNTAsXG4gICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5mb2N1c0xhc3RJdGVtKCkpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB9LCBjb25zb2xlLmVycm9yKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNMYXN0SXRlbSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5ld0Nhc2VGaWVsZChpZDogc3RyaW5nLCBpdGVtLCBpbmRleCwgaXNOZXcgPSBmYWxzZSkge1xuICAgIGNvbnN0IGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlID0gIWlzTmV3ICYmIHRoaXMuaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpO1xuXG4gICAgY29uc3QgZmllbGRUeXBlID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBGaWVsZFR5cGUoKSwgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpO1xuICAgIGlmIChmaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgIGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKChjZjogQ2FzZUZpZWxkKSA9PiAhIWNmLnNob3dfY29uZGl0aW9uKVxuICAgICAgICAubWFwKChjZjogQ2FzZUZpZWxkKSA9PiBjZi5oaWRkZW4gPSB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGJpdCBzZXR0aW5nIHRoZSBoaWRkZW4gZmxhZyBoZXJlIGFzIGl0J3MgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kXG4gICAgLy8gaXRzIGhpZGRlbiBzdGF0ZSBpc24ndCBpbmRlcGVuZGVudGx5IHJlLWV2YWx1YXRlZCB3aGVuIHRoZSBmb3JtIGlzIGNoYW5nZWQuXG4gICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkLFxuICAgICAgZmllbGRfdHlwZTogZmllbGRUeXBlLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA/ICdSRUFET05MWScgOiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQsXG4gICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgYWNsczogdGhpcy5jYXNlRmllbGQuYWNsc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YWluZXIoaW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkuZ2V0KCd2YWx1ZScpO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTGFzdEl0ZW0oKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0gdGhpcy5pdGVtcy5sYXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0tY29udHJvbCcpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVzZXRJZHMoaW5kZXgpO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldElkcyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5jb2xsSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvdW50ZXIgPSBpICsgMTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9PT0gY291bnRlcikge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9IGk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkXG4gICAgICAgICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9PT0gY291bnRlci50b1N0cmluZygpKSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9IGkudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWRQcmVmaXgxID0gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID8gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4LnJlcGxhY2UoJ18nICsgY291bnRlci50b1N0cmluZygpLCAnXycgKyBpLnRvU3RyaW5nKCkpIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDFDdXJyZW50ID0gaWRQcmVmaXgxLnJlcGxhY2UoJ18nICsgaS50b1N0cmluZygpLCAnXycgKyBjb3VudGVyLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ICYmIHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA9PT0gaWRQcmVmaXgxQ3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPSBpZFByZWZpeDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkUHJlZml4QXZhaWxhYmxlID0gdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J11cbiAgICAgICAgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgY29uc3QgaWRQcmVmaXgyID0gaWRQcmVmaXhBdmFpbGFibGUgP1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4LnJlcGxhY2UoJ18nICsgY291bnRlci50b1N0cmluZygpLCAnXycgKyBpLnRvU3RyaW5nKCkpIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDJjdXJyZW50ID0gaWRQcmVmaXgyLnJlcGxhY2UoJ18nICsgaS50b1N0cmluZygpLCAnXycgKyBjb3VudGVyLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAoaWRQcmVmaXhBdmFpbGFibGUgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA9PT0gaWRQcmVmaXgyY3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID0gaWRQcmVmaXgyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpdGVtTGFiZWwoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY2FzZUZpZWxkLmxhYmVsfSAke2luZGV4ICsgMX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0luc2VydCcpO1xuICB9XG5cbiAgcHVibGljIGdldENvbGxlY3Rpb25QZXJtaXNzaW9uKGZpZWxkOiBDYXNlRmllbGQsIHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLnNwbGl0KCcjJylcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uc3RhcnRzV2l0aCgnQ09MTEVDVElPTignKSlbMF1cbiAgICAgICAgLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXYXMgcmVhc3Nlc2VkIGFzIHBhcnQgb2YgRVVJLTM1MDUuIFRoZXJlIGlzIHN0aWxsIGEgY2F2ZWF0IGFyb3VuZCBDUkQsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgYW4gdW5saWtlbHkgc2NlbmFyaW9cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIGlmIChpZCkge1xuICAgICAgaWYgKCEhdGhpcy5wcm9maWxlLnVzZXIgJiYgISF0aGlzLnByb2ZpbGUudXNlci5pZGFtKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJvbGUgPSB0aGlzLnByb2ZpbGUudXNlci5pZGFtLnJvbGVzLmZpbmQocm9sZSA9PiB0aGlzLmhhc1VwZGF0ZUFjY2Vzcyhyb2xlKSk7XG4gICAgICAgIHJldHVybiAhdXBkYXRlUm9sZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGhhc1VwZGF0ZUFjY2Vzcyhyb2xlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNhc2VGaWVsZC5hY2xzLmZpbmQoYWNsID0+IGFjbC5yb2xlID09PSByb2xlICYmIGFjbC51cGRhdGUgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIGRlbGV0ZSBpZiBjcmVhdGluZyBhIGNhc2UgZXZlbiBpZiBcIkRcIiBpcyBhYnNlbnQsIGhlbmNlOlxuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgcmV0dXJuICEhaWQgJiYgIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0RlbGV0ZScpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbChpOiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9ICdMYWJlbCc7XG4gICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcyMjBweCc7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzU1MHB4JztcbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9ICdkaWFsb2cnO1xuXG4gICAgZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgZGlhbG9nQ29uZmlnLnBvc2l0aW9uID0ge1xuICAgICAgdG9wOiBgJHt3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gMTEwfXB4YCwgbGVmdDogYCR7d2luZG93LmlubmVyV2lkdGggLyAyIC0gMjc1fXB4YFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbW92ZURpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gJ1JlbW92ZScpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZWQgZnVsbCBzb2x1dGlvbiBhcyBwYXJ0IG9mIEVVSS0zNTA1XG4gICAqL1xuICBwcml2YXRlIGdldENvbnRyb2xJZEF0KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgLy8gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgWyBGb3JtR3JvdXAoIGlkOiBGb3JtQ29udHJvbCwgdmFsdWU6IEZvcm1Hcm91cCApLCAuLi4gXS5cbiAgICAvLyBIZXJlLCB3ZSBuZWVkIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGlkIEZvcm1Db250cm9sLlxuICAgIGNvbnN0IGdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGNvbnN0IGNvbnRyb2w6IEZvcm1Db250cm9sID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIHJldHVybiBjb250cm9sID8gY29udHJvbC52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgY29uc3Qgbm90U2ltcGxlID0gWydDb2xsZWN0aW9uJywgJ0NvbXBsZXgnXTtcbiAgICByZXR1cm4gbm90U2ltcGxlLmluZGV4T2YoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUpIDwgMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBjb2xsZWN0aW9uLWluZGljYXRvclwiPlxuXG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCI+XG4gICAgICB7e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fVxuICAgIDwvaDI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX190b3BcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0odHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB8fCBpc1NlYXJjaEZpbHRlcigpXCI+QWRkIG5ldzwvYnV0dG9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDIgZXJyb3Itc3BhY2luZ1wiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dCB8fCBmb3JtQXJyYXkuZXJyb3JzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIiBjbGFzcz1cImZvcm0taGludFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tmb3JtQXJyYXkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiAqbmdJZj1cImNhc2VGaWVsZC52YWx1ZSAmJiBjYXNlRmllbGQudmFsdWUubGVuZ3RoXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgI2NvbGxlY3Rpb25JdGVtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi10aXRsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1sZWZ0XCI+XG4gICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtLnByZWZpeCArIGlcIj48aDMgY2xhc3M9XCJoZWFkaW5nLWgzXCI+e3tpdGVtTGFiZWwoaSl9fTwvaDM+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbk1vZGFsKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVtb3ZlIHt7IGl0ZW1MYWJlbChpKSB9fVwiPlJlbW92ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cIml0ZW0uY2FzZUZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJpdGVtLmNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5BZGQgbmV3PC9idXR0b24+XG5cbiAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
@@ -35,9 +35,11 @@ export class ReadComplexFieldComponent extends AbstractFieldReadComponent {
35
35
  if (this.caseField.display_context_parameter) {
36
36
  this.context = PaletteContext.TABLE_VIEW;
37
37
  }
38
- else if (!this.caseField.display_context_parameter && this.context && this.context !== PaletteContext.CHECK_YOUR_ANSWER) {
38
+ else {
39
39
  // default to default views
40
- this.context = PaletteContext.DEFAULT;
40
+ if (!this.caseField.display_context_parameter && this.context) {
41
+ this.context = PaletteContext.DEFAULT;
42
+ }
41
43
  }
42
44
  if (this.caseField.field_type) {
43
45
  this.caseField.field_type.complex_fields.forEach(field => {
@@ -78,4 +80,4 @@ const ɵReadComplexFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInherite
78
80
  }], null, { caseFields: [{
79
81
  type: Input
80
82
  }] }); })();
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0lDRmxFLGdEQU84Qjs7O0lBTDVCLDRDQUF1QixpQ0FBQSwyQkFBQSwrQ0FBQSw2QkFBQTs7O0lBTXpCLDZEQU0yQzs7O0lBSnpDLDRDQUF1QiwyQkFBQSwrQ0FBQSw2QkFBQTs7O0lBS3pCLGtEQU9nQzs7O0lBTDlCLDRDQUF1QixpQ0FBQSwyQkFBQSwrQ0FBQSw2QkFBQTs7QURUM0IsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDBCQUEwQjtJQUp6RTs7UUFPUyxlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUU3QixtQkFBYyxHQUFHLGNBQWMsQ0FBQztLQXlCeEM7SUF2QlEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtZQUN6SCwyQkFBMkI7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDckIsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUM3RCxLQUFLLENBQUMsS0FBSyxHQUFHO3dCQUNaLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTt3QkFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDbEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQzdDLENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7b0lBNUJVLHlCQUF5Qjs4REFBekIseUJBQXlCO1FDVHRDLGdDQUFtQztRQUNqQyx3SEFPOEI7UUFDOUIsa0pBTTJDO1FBQzNDLDRIQU9nQztRQUNsQywwQkFBZTs7UUF4QkQsc0NBQW9CO1FBRTdCLGVBQThDO1FBQTlDLG1FQUE4QztRQVE5QyxlQUF1QztRQUF2Qyw0REFBdUM7O3NGREQvQix5QkFBeUI7dUZBQXpCLHlCQUF5QjtjQUpyQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLDJCQUEyQjthQUN6QztnQkFJUSxVQUFVO2tCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFsZXR0ZUNvbnRleHQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL3BhbGV0dGUtY29udGV4dC5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXJlYWQtY29tcGxleC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLWNvbXBsZXgtZmllbGQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRDb21wbGV4RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgcHVibGljIHBhbGV0dGVDb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IFBhbGV0dGVDb250ZXh0LlRBQkxFX1ZJRVc7XG4gICAgfSBlbHNlIGlmICghdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciAmJiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0ICE9PSBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUikge1xuICAgICAgLy8gZGVmYXVsdCB0byBkZWZhdWx0IHZpZXdzXG4gICAgICAgIHRoaXMuY29udGV4dCA9IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQuaXNEeW5hbWljKCkpIHtcbiAgICAgICAgICBmaWVsZC5saXN0X2l0ZW1zID0gdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLmxpc3RfaXRlbXM7XG4gICAgICAgICAgZmllbGQudmFsdWUgPSB7XG4gICAgICAgICAgICBsaXN0X2l0ZW1zOiBmaWVsZC5saXN0X2l0ZW1zLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC52YWx1ZVtmaWVsZC5pZF0udmFsdWUuY29kZSA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZS5jb2RlIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLnZhbHVlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRleHRcIj5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtcmF3XG4gICAgKm5nU3dpdGNoQ2FzZT1cInBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW3RvcExldmVsRm9ybUdyb3VwXT1cInRvcExldmVsRm9ybUdyb3VwXCJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICA+PC9jY2QtcmVhZC1jb21wbGV4LWZpZWxkLXJhdz5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZVxuICAgICpuZ1N3aXRjaENhc2U9XCJwYWxldHRlQ29udGV4dC5UQUJMRV9WSUVXXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW3RvcExldmVsRm9ybUdyb3VwXT1cInRvcExldmVsRm9ybUdyb3VwXCJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICA+PC9jY2QtcmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGU+XG4gIDxjY2QtcmVhZC1jb21wbGV4LWZpZWxkLXRhYmxlXG4gICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCJcbiAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwidG9wTGV2ZWxGb3JtR3JvdXBcIlxuICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gID48L2NjZC1yZWFkLWNvbXBsZXgtZmllbGQtdGFibGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0lDRmxFLGdEQU84Qjs7O0lBTDVCLDRDQUF1QixpQ0FBQSwyQkFBQSwrQ0FBQSw2QkFBQTs7O0lBTXpCLDZEQU0yQzs7O0lBSnpDLDRDQUF1QiwyQkFBQSwrQ0FBQSw2QkFBQTs7O0lBS3pCLGtEQU9nQzs7O0lBTDlCLDRDQUF1QixpQ0FBQSwyQkFBQSwrQ0FBQSw2QkFBQTs7QURUM0IsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDBCQUEwQjtJQUp6RTs7UUFPUyxlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUU3QixtQkFBYyxHQUFHLGNBQWMsQ0FBQztLQTJCeEM7SUF6QlEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDO1NBQzFDO2FBQU07WUFDTCwyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO2FBQ3ZDO1NBQ0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUNyQixLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUM7b0JBQzdELEtBQUssQ0FBQyxLQUFLLEdBQUc7d0JBQ1osVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO3dCQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNsRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDN0MsQ0FBQztpQkFDSDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztvSUE5QlUseUJBQXlCOzhEQUF6Qix5QkFBeUI7UUNUdEMsZ0NBQW1DO1FBQ2pDLHdIQU84QjtRQUM5QixrSkFNMkM7UUFDM0MsNEhBT2dDO1FBQ2xDLDBCQUFlOztRQXhCRCxzQ0FBb0I7UUFFN0IsZUFBOEM7UUFBOUMsbUVBQThDO1FBUTlDLGVBQXVDO1FBQXZDLDREQUF1Qzs7c0ZERC9CLHlCQUF5Qjt1RkFBekIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsMkJBQTJCO2FBQ3pDO2dCQUlRLFVBQVU7a0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWxldHRlQ29udGV4dCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvcGFsZXR0ZS1jb250ZXh0LmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcmVhZC1jb21wbGV4LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWQtY29tcGxleC1maWVsZC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZENvbXBsZXhGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBwdWJsaWMgcGFsZXR0ZUNvbnRleHQgPSBQYWxldHRlQ29udGV4dDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgdGhpcy5jb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQuVEFCTEVfVklFVztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZGVmYXVsdCB0byBkZWZhdWx0IHZpZXdzXG4gICAgICBpZiAoIXRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQuaXNEeW5hbWljKCkpIHtcbiAgICAgICAgICBmaWVsZC5saXN0X2l0ZW1zID0gdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLmxpc3RfaXRlbXM7XG4gICAgICAgICAgZmllbGQudmFsdWUgPSB7XG4gICAgICAgICAgICBsaXN0X2l0ZW1zOiBmaWVsZC5saXN0X2l0ZW1zLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC52YWx1ZVtmaWVsZC5pZF0udmFsdWUuY29kZSA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZS5jb2RlIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLnZhbHVlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRleHRcIj5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtcmF3XG4gICAgKm5nU3dpdGNoQ2FzZT1cInBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW3RvcExldmVsRm9ybUdyb3VwXT1cInRvcExldmVsRm9ybUdyb3VwXCJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICA+PC9jY2QtcmVhZC1jb21wbGV4LWZpZWxkLXJhdz5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZVxuICAgICpuZ1N3aXRjaENhc2U9XCJwYWxldHRlQ29udGV4dC5UQUJMRV9WSUVXXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW3RvcExldmVsRm9ybUdyb3VwXT1cInRvcExldmVsRm9ybUdyb3VwXCJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICA+PC9jY2QtcmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGU+XG4gIDxjY2QtcmVhZC1jb21wbGV4LWZpZWxkLXRhYmxlXG4gICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCJcbiAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwidG9wTGV2ZWxGb3JtR3JvdXBcIlxuICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gID48L2NjZC1yZWFkLWNvbXBsZXgtZmllbGQtdGFibGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==