@prutech/compliance 1.0.226 → 1.0.227

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. package/esm2020/lib/conciliation-appointment-work-list/components/context-menu/conciliation-context-menu.component.mjs +3 -2
  2. package/esm2020/lib/conciliation-appointment-work-list/constants/worklist_id.mjs +5 -0
  3. package/esm2020/lib/conciliation-appointment-work-list/effects/conciliation-appointment-work-list.effect.mjs +6 -4
  4. package/esm2020/lib/conciliation-appointment-work-list/models/save-conciliation-status-payload.model.mjs +2 -1
  5. package/esm2020/lib/conciliation-appointment-work-list/models/save-status-response.mjs +2 -1
  6. package/esm2020/lib/conciliation-appointment-work-list/services/conciliation-appointment-work-list.service.mjs +10 -4
  7. package/esm2020/lib/noi-work-list/components/context-menu/context-menu.component.mjs +3 -1
  8. package/esm2020/lib/noi-work-list/effects/noi-work-list.effect.mjs +4 -3
  9. package/esm2020/lib/noi-work-list/models/save-noi-status-payload.model.mjs +2 -1
  10. package/esm2020/lib/pre-conciliation-work-list/components/review-details-dialog/review-details-dialog.component.mjs +3 -3
  11. package/esm2020/lib/pre-conciliation-work-list/models/review-details.model.mjs +4 -2
  12. package/esm2020/lib/pre-noi-work-list/components/pre-noi-context-menu/pre-noi-context-menu.component.mjs +25 -23
  13. package/esm2020/lib/pre-noi-work-list/effects/conciliation-appointment-work-list.effect.mjs +12 -4
  14. package/esm2020/lib/pre-noi-work-list/models/save-prenoi-status-payload.model.mjs +4 -1
  15. package/esm2020/lib/pre-noi-work-list/models/save-status-response.mjs +4 -1
  16. package/esm2020/lib/telephone-settled-conference/components/context-menu/context-menu.component.mjs +100 -55
  17. package/esm2020/lib/telephone-settled-conference/effects/telephone-or-settled-conference-list.effect.mjs +17 -9
  18. package/esm2020/lib/telephone-settled-conference/models/save-conciliation-status-payload.model.mjs +5 -1
  19. package/esm2020/lib/telephone-settled-conference/models/save-status-response.mjs +5 -1
  20. package/esm2020/lib/telephone-settled-conference/models/telephone-or-settled-conference-work-list-item.model.mjs +1 -1
  21. package/fesm2015/prutech-compliance.mjs +152 -89
  22. package/fesm2015/prutech-compliance.mjs.map +1 -1
  23. package/fesm2020/prutech-compliance.mjs +185 -96
  24. package/fesm2020/prutech-compliance.mjs.map +1 -1
  25. package/lib/conciliation-appointment-work-list/constants/worklist_id.d.ts +4 -0
  26. package/lib/conciliation-appointment-work-list/models/save-conciliation-status-payload.model.d.ts +1 -0
  27. package/lib/conciliation-appointment-work-list/models/save-status-response.d.ts +1 -0
  28. package/lib/conciliation-appointment-work-list/services/conciliation-appointment-work-list.service.d.ts +3 -1
  29. package/lib/noi-work-list/models/save-noi-status-payload.model.d.ts +1 -0
  30. package/lib/pre-noi-work-list/effects/conciliation-appointment-work-list.effect.d.ts +3 -1
  31. package/lib/pre-noi-work-list/models/save-prenoi-status-payload.model.d.ts +3 -0
  32. package/lib/pre-noi-work-list/models/save-status-response.d.ts +3 -0
  33. package/lib/telephone-settled-conference/effects/telephone-or-settled-conference-list.effect.d.ts +3 -1
  34. package/lib/telephone-settled-conference/models/save-conciliation-status-payload.model.d.ts +4 -0
  35. package/lib/telephone-settled-conference/models/save-status-response.d.ts +4 -0
  36. package/lib/telephone-settled-conference/models/telephone-or-settled-conference-work-list-item.model.d.ts +1 -1
  37. package/package.json +1 -1
@@ -299,6 +299,7 @@ export class ConciliationContextMenuComponent extends AbstractComponent {
299
299
  originalCategoryId: item?.originalCategoryId,
300
300
  assessmentId: get(item, 'eaepAssessmentId'),
301
301
  letterType: letterTypeId,
302
+ infractionDate: get(item, 'infractionDate'),
302
303
  });
303
304
  this.conciliationWorkListService.dispatchSaveStatus(payload);
304
305
  });
@@ -378,7 +379,7 @@ export class ConciliationContextMenuComponent extends AbstractComponent {
378
379
  caseId: item?.cmsCaseId,
379
380
  originalCategoryId: item?.originalCategoryId,
380
381
  assessmentId: get(item, 'eaepAssessmentId'),
381
- letterType: letterTypeId,
382
+ letterType: letterTypeId, infractionDate: get(item, 'infractionDate'),
382
383
  });
383
384
  this.conciliationWorkListService.dispatchSaveStatus(payload);
384
385
  //Batch pool logic added to SubmitGrantedConciliation api
@@ -482,4 +483,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
482
483
  type: Inject,
483
484
  args: ['environment']
484
485
  }] }, { type: i4.ActivatedRoute }]; } });
485
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJ1dGVjaC9jb21wbGlhbmNlL3NyYy9saWIvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBMkUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUczSSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrR0FBa0csQ0FBQztBQUN0SixPQUFPLEVBQUUs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aGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTY2hlZHVsZUFwcG9pbnRtZW50UG9zdE1vZGVsIH0gZnJvbSAnQHBydXRlY2gvYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCwgQ29udGV4dE1lbnVBY3Rpb25JdGVtLCBDb250ZXh0TWVudUl0ZW0sIEVudmlyb25tZW50LCBMb29rdXAsIFRhYlNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgVXNlciwgVXNlclNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9pZGVudGl0eS1jbGllbnQnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmQsIGdldCwgaXNOaWwsIG1hcCwgdG9TdHJpbmcgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgYXMgckZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBtZW51SXRlbXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmNpbGlhdGlvbi13b3JrLWxpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZGlhbG9nU2l6ZSwgcmVjb3JkT3V0cmVhY2hkaWFsb2dTaXplIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9kaWFnbG9nLXNpemUnO1xyXG5pbXBvcnQgeyBHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ29vZC1jYXVzZS1ncmFudGVkLWFjdGlvbi9nb29kLWNhdXNlLWdyYW50ZWQtYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvb2t1cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZHVsZXMvY29uY2lsaWF0aW9uLWxvb2t1cHMvc2VydmljZXMvbG9va3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uY2lsaWF0aW9uTG9va3VwcyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvY29uY2lsaWF0aW9uLWxvb2t1cHMubW9kZWwnO1xyXG5pbXBvcnQgeyBHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ29vZC1jYXVzZS1ub3QtZ3JhbnRlZC1hY3Rpb24vZ29vZC1jYXVzZS1ub3QtZ3JhbnRlZC1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgcmVBc3NpZ25BY3Rpb25JZCxcclxuICByZWNvcmRPdXRyZWFjaEFjdGlvbklkLFxyXG4gIHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG4gIHNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZFxyXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvY29uY2lsaWF0aW9uL21lbnUtYWN0aW9uLWRlZnMnO1xyXG5pbXBvcnQgeyBhY3Rpb25zTGFiZWwgfSBmcm9tICcuLi8uLi8uLi9wcmUtY29uY2lsaWF0aW9uLXdvcmstbGlzdC9jb25zdGFudHMvbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7IFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMveWVzLW5vLWNvbmZpcm1hdGlvbi1kaWFsb2cveWVzLW5vLWNvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgY29uZmlybUhlYWRlciwgZ29vZENhdXNlQ29uZmlybU1lc3NhZ2UsIG5vTGFiZWwsIHllc0xhYmVsIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3llcy1uby1jb25maXJtLWRlZmF1bHRzJztcclxuaW1wb3J0IHsgSW5mcmFjdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9pbmZyYWN0aW9uLXR5cGUtZW51bSc7XHJcbmltcG9ydCB7IEluZnJhY3Rpb25BdEVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzL2luZnJhY3Rpb24tYXQtZW51bSc7XHJcbmltcG9ydCB7IFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhdmUtc2NoZWR1bGluZy1jYWxsLWJhY2subW9kZWwnO1xyXG5pbXBvcnQgeyBTYXZlT3V0cmVhY2hNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXZlLW91dHJlYWNoLW1vZGVsJztcclxuaW1wb3J0IHsgUmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9yZWNvcmQtb3V0cmVhY2hkaWFsb2dib3gvcmVjb3JkLW91dHJlYWNoZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlQXNzaWduRGFpbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vcmUtYXNzaWduLWRhaWxvZ2JveC9yZS1hc3NpZ24tZGFpbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1Ym1pdFJlYXNzaWduTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3VibWl0LXJlLWFzc2lnbi1mcm9tbW9kZWwnO1xyXG5pbXBvcnQgeyBXYW50VG9TZW5kQ2xpZW50QmFja0RpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL3dhbnQtdG8tc2VuZC1jbGllbnQtYmFjay1kaWFsb2dib3gvd2FudC10by1zZW5kLWNsaWVudC1iYWNrLWRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBvcGVuQXBwb2ludG1lbnREaWFsb2dib3ggfSBmcm9tICcuLi8uLi9tb2RlbHMvb3Blbi1hcHBvaW50bWVudCc7XHJcbmltcG9ydCB7IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3VibWl0LWJhdGNoLXBvb2wtYXBwb2ludG1lbnQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGNzQXBwb2ludG1lbnRzLFxyXG4gIGNzQXNzaWdubWVudHMsXHJcbiAgaXZhcEFzc2lnbm1lbnRzLFxyXG4gIGpjQXBwb2ludG1lbnRzLFxyXG4gIHNwbFJlZkFwcG9pbnRtZW50cyxcclxuICB0YWdBcHBvaW50bWVudHMsXHJcbiAgdGFnQXNzaWdubWVudHMsXHJcbiAgdnJzQXBwb2ludG1lbnRzLFxyXG4gIHdlY2FyZUFwcG9pbnRtZW50c1xyXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9vcmdpbmFsLWNhdGVnb3J5LWxvb2t1cC10eXBlcy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ2VuZXJhdGUtZmlhMTE4Ny1hbGV0dGVyLWRpYWxvZ2JveC9nZW5lcmF0ZS1maWExMTg3LWFsZXR0ZXItZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BydXRlY2gtY29uY2lsaWF0aW9uLWNvbnRleHQtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmNpbGlhdGlvbkNvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBtZW51SXRlbXM6IENvbnRleHRNZW51SXRlbVtdID0gbWVudUl0ZW1zO1xyXG4gIHBhcmFtczogQWdHcmlkQW5ndWxhcjtcclxuICBjb25jaWxpYXRpb25Mb29rdXBzOiBDb25jaWxpYXRpb25Mb29rdXBzO1xyXG4gIGFjdGlvbnM6IExvb2t1cFtdO1xyXG4gIHVzZXI6IFVzZXI7XHJcbiAgaXNDb25jaWxpYXRpb25XbENoZWNrOiBhbnk7XHJcbiAgYXBwdFNjaGVkdWxlZERldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgbG9va3Vwc1NlcnZpY2U6IExvb2t1cHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2U6IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSxcclxuICAgICAgckZpbHRlcigodXNlcjogVXNlcikgPT4gISF1c2VyKSlcclxuICAgICAgLnN1YnNjcmliZSgodXNlcjogVXNlcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubG9va3Vwc1NlcnZpY2UubG9va3Vwcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxvb2t1cHM6IENvbmNpbGlhdGlvbkxvb2t1cHMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMgPSBsb29rdXBzO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmFjdGlvbnMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zOiBMb29rdXBbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbnM7XHJcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSB0aGlzLmdldFVwZGF0ZWRNZW51SXRlbXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZ0luaXQocGFyYW1zOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICAgIGNvbnN0IGNhblJlc2NoZWR1bGU6IGJvb2xlYW4gPSAhaXNOaWwoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5zY2hlZHVsZWREYXRlJykpO1xyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzR3JhbnRlZCcpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzEnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc0dyYW50ZWQnKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09ICcyJyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNTY2hlZHVsZScpIHx8IGNhblJlc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc1JlU2NoZWR1bGUnKSB8fCAhY2FuUmVzY2hlZHVsZSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNPdXRyZWFjaCcpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzYnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc1JlQXNzaWduJykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSAnNScpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlZE1lbnVJdGVtcygpOiBDb250ZXh0TWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmxhYmVsID09PSBhY3Rpb25zTGFiZWwpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbGFiZWw6IGFjdGlvbnNMYWJlbCxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT5cclxuICAgICAgICAgICAgISFmaW5kKHRoaXMuYWN0aW9ucywgKGFjdGlvbkxvb2t1cDogTG9va3VwKSA9PiB0b1N0cmluZyhhY3Rpb25Mb29rdXAubG9va3VwSWQpID09PSBhY3Rpb25JdGVtLnJvdXRlKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb0FjdGlvbihldmVudDogQ29udGV4dE1lbnVBY3Rpb25JdGVtKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnJvdXRlKSB7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vIHN1cHBvc2UgZ29vZCBjYXVzZSBncmFudGVkIGxvb2t1cElkIGlzIDJcclxuICAgICAgY2FzZSB0b1N0cmluZyhnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3Blbkdvb2RDYXVzZU5vdEdyYW50ZWREaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlblNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuUmVTY2hlZHVsZUNhbGxCYWNrRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcocmVjb3JkT3V0cmVhY2hBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuT3V0cmVhY2hEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZUFzc2lnbkFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5SZUFzc2lnbkRpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5XYW50ZWRDbGllbnREYWlsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFdhbnRUb1NlbmRDbGllbnRCYWNrRGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oV2FudFRvU2VuZENsaWVudEJhY2tEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBnZXQoaXRlbSwgJ3dsQ29uY2lsaWF0aW9uSWQnKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBpc1dhbnRUb1NlbmRDbGllbnRCYWNrID0gZ2V0KHJlcywgJ3dhbnR0b3NlbmRjbGllbnRiYWNrJyk7XHJcblxyXG4gICAgICAgIGlmIChpc1dhbnRUb1NlbmRDbGllbnRCYWNrKSB7XHJcbiAgICAgICAgICBpZiAoIWdldChpdGVtLCAnaXNBY3RpdmVBc3NpZ25tZW50JykpIHtcclxuICAgICAgICAgICAgb3BlbkFwcG9pbnRtZW50RGlhbG9nYm94KHRoaXMuZGlhbG9nLCBpdGVtID8uY21zQ2FzZUlkLCBnZXQodGhpcy5lbnZpcm9ubWVudCwgJ2NvbmNpbGlhdGlvbkFzc2Vzc21lbnRBcHBvaW50bWVudFR5cGVJZCcpLCAwLCBmYWxzZSlcclxuICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNjaGVkdWxlRGV0YWlsczogU2NoZWR1bGVBcHBvaW50bWVudFBvc3RNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHB0U2NoZWR1bGVkRGV0YWlscyA9IHNjaGVkdWxlRGV0YWlscztcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAgICAgaXNXYW50VG9TZW5kQ2xpZW50QmFjayxcclxuICAgICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogZ2V0KGl0ZW0sICd3bENvbmNpbGlhdGlvbklkJyksXHJcbiAgICAgICAgICAgICAgICAgIGFwcG9pbnRtZW50SWQ6IHNjaGVkdWxlRGV0YWlscy5hcHBvaW50bWVudElkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2NoZWR1bGVEZXRhaWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFiU2VydmljZS5kaXNwYXRjaEFkZFRhYih7XHJcbiAgICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgaXRlbSA/LmVhZXBBc3Nlc3NtZW50SWQsXHJcbiAgICAgICAgICAgIHJvdXRlOiAnL2VhLWVwLycgKyBpdGVtID8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0Fzc2Vzc21lbnRzJyArICcgLSAnICsgaXRlbSA/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbSA/LmNtc0Nhc2VJZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgc3RhdGU6IHsgY2xpZW50TmFtZTogaXRlbSA/LmNsaWVudE5hbWUgfSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblJlQXNzaWduRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFJlQXNzaWduRGFpbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU3VibWl0UmVhc3NpZ25Nb2RlbCA9IG5ldyBTdWJtaXRSZWFzc2lnbk1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0gPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHJlQXNzaWduQWN0aW9uSWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlUmVhc3NpZ24ocGF5bG9hZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaXNSZVNjaGVkdWxlOiBmYWxzZSB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCA9IG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbSA/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogc2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWxEZXRhaWxzKHBheWxvYWQpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuUmVTY2hlZHVsZUNhbGxCYWNrRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nID8ub3BlbihTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaXNSZVNjaGVkdWxlOiB0cnVlIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsID0gbmV3IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtID8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgIGFjdGlvbklkOiByZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWxEZXRhaWxzKHBheWxvYWQpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk91dHJlYWNoRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZWNvcmRPdXRyZWFjaGRpYWxvZ2JveENvbXBvbmVudD4gPSB0aGlzLmRpYWxvZyA/Lm9wZW4oUmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IHJlY29yZE91dHJlYWNoZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlT3V0cmVhY2hNb2RlbCA9IG5ldyBTYXZlT3V0cmVhY2hNb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtID8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgIGFjdGlvbklkOiByZWNvcmRPdXRyZWFjaEFjdGlvbklkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZU91dHJlYWNoV29ya2xpc3REZXRhaWxzKHBheWxvYWQpXHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBcHBvaW50bWVudHMgfHwgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBc3NpZ25tZW50cyB8fFxyXG4gICAgICBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB0YWdBcHBvaW50bWVudHMgfHwgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gdGFnQXNzaWdubWVudHMgKSB7XHJcblxyXG4gICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nID8ub3BlbihHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNTV2dycsXHJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgZGF0YToge30sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxldHRlclR5cGVJZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gaWYgKGxldHRlclR5cGVJZCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgICAgLy8gfSBlbHNlIGlmIChsZXR0ZXJUeXBlSWQgPT09IDIpIHtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpIH0pO1xyXG4gICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICBpc1dhbnRUb1NlbmRDbGllbnRCYWNrOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGdldChpdGVtLCAnd2xDb25jaWxpYXRpb25JZCcpLFxyXG4gICAgICAgICAgICAgICAgYXBwb2ludG1lbnRJZDogbnVsbCxcclxuICAgICAgICAgICAgICAgIGNhc2VJZDogaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksXHJcbiAgICAgICAgICAgICAgICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgLy8gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2Uuc2F2ZVN0YXR1cyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC8vIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2cocmVzKVxyXG4gICAgICAvLyAgIGlmKHJlcyl7XHJcbiAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2VhLWVwLycgKyBpdGVtPy5jbXNDYXNlSWRdICwge3F1ZXJ5UGFyYW1zOntpc2NvbmNpbGlhdGlvbldMOnRydWV9fSlcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pOyBcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nID8ub3BlbihHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNTV2dycsXHJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgZGF0YToge30sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxldHRlclR5cGVJZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gaWYgKGxldHRlclR5cGVJZCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgICAgLy8gfSBlbHNlIGlmIChsZXR0ZXJUeXBlSWQgPT09IDIpIHtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpIH0pO1xyXG4gICAgICAgICAgICAgIC8vIH1cclxuXHJcblxyXG4gICAgICAgICAgICAgIC8vIGlmIChpdGVtID8ub3V0cmVhY2hJZCAhPSBudWxsIHx8IGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0Fzc2lnbm1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgLy8gICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgLy8gICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgICAvLyAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAvLyAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbSA/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICAgICAgLy8gICAgIGNhc2VJZDogaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAvLyAgICAgb3JpZ2luYWxDYXRlZ29yeUlkOiBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICAgIC8vICAgICBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLFxyXG4gICAgICAgICAgICAgIC8vICAgICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsXHJcbiAgICAgICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGpjQXBwb2ludG1lbnRzIHx8IGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHNwbFJlZkFwcG9pbnRtZW50cykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0gPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYlNlcnZpY2UuZGlzcGF0Y2hBZGRUYWIoe1xyXG4gICAgICAgICAgICAgICAgICB0YWJOYW1lOiAnZWEtZXAvJyArIGl0ZW0gPy5lYWVwQXNzZXNzbWVudElkLFxyXG4gICAgICAgICAgICAgICAgICByb3V0ZTogJy9lYS1lcC8nICsgaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBc3Nlc3NtZW50cycgKyAnIC0gJyArIGl0ZW0gPy5jbGllbnROYW1lLFxyXG4gICAgICAgICAgICAgICAgICBjYW5DbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZWEtZXAvJyArIGl0ZW0gPy5jbXNDYXNlSWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIHN0YXRlOiB7IGNsaWVudE5hbWU6IGl0ZW0gPy5jbGllbnROYW1lIH0gfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIGVsc2UgaWYgKCgoKGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHdlY2FyZUFwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgICAgIC8vICAgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gaXZhcEFzc2lnbm1lbnRzIHx8XHJcbiAgICAgICAgICAgICAgLy8gICAgIGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHZyc0FwcG9pbnRtZW50cykgXHJcbiAgICAgICAgICAgICAgLy8gICAgICYmIGl0ZW0gPy5ueWN3YXlBcHB0Q29kZSAhPT0gbnVsbCkgfHwgaXRlbSA/Lm55Y3dheUFwcHRDb2RlID09PSAnQ0gnKSkge1xyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHdlY2FyZUFwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgICAgICAgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gaXZhcEFzc2lnbm1lbnRzIHx8XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHZyc0FwcG9pbnRtZW50cykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0gPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICBjYXNlSWQ6IGl0ZW0gPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgICAgICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAvL0JhdGNoIHBvb2wgbG9naWMgYWRkZWQgdG8gU3VibWl0R3JhbnRlZENvbmNpbGlhdGlvbiBhcGlcclxuICAgICAgICAgICAgICAgIC8vIGNvbnN0IHBheWxvYWQ6IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgPSBuZXcgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRNb2RlbCh7XHJcbiAgICAgICAgICAgICAgICAvLyAgIGNhc2VJZDogaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgIC8vICAgc2l0ZUlkOiBpdGVtID8uc21TaXRlSWQsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGFwcG9pbnRtZW50SWQ6IGl0ZW0gPy5hcHBvaW50QXNzaWduTmFtZSxcclxuICAgICAgICAgICAgICAgIC8vICAgZWFlcEFzc2Vzc21lbnRJZDogaXRlbSA/LmVhZXBBc3Nlc3NtZW50SWQsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0gPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgLy8gICBhcHBvaW50bWVudE5ZQ1dBWWNvZGU6IGl0ZW0gPy5ueWN3YXlBcHB0Q29kZSxcclxuICAgICAgICAgICAgICAgIC8vICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50KHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtID8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAgIGlmIChnZXQoaXRlbSwgJ2luZnJhY3RlZFR5cGUudmFsdWUubG9va3VwSWQnKSA9PT0gSW5mcmFjdGlvblR5cGVFbnVtLkZUUkFwcG9pbnRtZW50XHJcbiAgICAgICAgICAgICAgICAgICYmICgoZ2V0KGl0ZW0sICdpbmZyYWN0ZWRBdC52YWx1ZS5sb29rdXBJZCcpID09PSBJbmZyYWN0aW9uQXRFbnVtLkNhcmVlclNlcnZpY2VzICYmIHRoaXMudXNlclxyXG4gICAgICAgICAgICAgICAgICAgICYmICh0aGlzLnVzZXIuaXNKb3NXb3JrZXIgfHwgdGhpcy51c2VyLmlzSm9zU3VwZXJ2aXNvciB8fCB0aGlzLnVzZXIuaXNPdXRTdGF0aW9uV29ya2VyIHx8IHRoaXMudXNlci5pc091dFN0YXRpb25TdXBlcnZpc29yKSkgLy8gYnIgOCwgOVxyXG4gICAgICAgICAgICAgICAgICAgIHx8IChnZXQoaXRlbSwgJ2luZnJhY3RlZEF0LnZhbHVlLmxvb2t1cElkJykgPT09IEluZnJhY3Rpb25BdEVudW0uQ2FyZWVyQWR2YW5jZSAmJiB0aGlzLnVzZXJcclxuICAgICAgICAgICAgICAgICAgICAgICYmICh0aGlzLnVzZXIuaXNKb3NXb3JrZXIgfHwgdGhpcy51c2VyLmlzSm9zU3VwZXJ2aXNvciB8fCB0aGlzLnVzZXIuaXNPdXRTdGF0aW9uV29ya2VyIHx8IHRoaXMudXNlci5pc091dFN0YXRpb25TdXBlcnZpc29yKSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGJyIDEwLCAxMVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9wZW5ZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyhwYXlsb2FkLCBpdGVtKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIHNlbmQgdG8gQkVcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvL2hlcmVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5Hb29kQ2F1c2VOb3RHcmFudGVkRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXBwb2ludG1lbnRzIHx8IGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXNzaWdubWVudHMgKSB7XHJcbiAgICAgIHRoaXMuaXNDb25jaWxpYXRpb25XbENoZWNrID0gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vd2UgZG9uJ3QgbmVlZCB0byBzZW5kIG9yaWdpbmFsIGFwcHQgSWQuIE9yaWdpbmFsIGFwcHQgdHlwZSBJZCBpcyBkaWZmZXJlbnQuXHJcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nID8ub3BlbihHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgICAgZGF0YTogeyAuLi5pdGVtLCBhcHBvaW50bWVudElkOiAwLCBpc2NvbmNpbGlhdGlvbldMOiB0aGlzLmlzQ29uY2lsaWF0aW9uV2xDaGVjayB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtID8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5ZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyhwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCwgaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbmZpcm1EaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB5ZXNMYWJlbDogeWVzTGFiZWwsXHJcbiAgICAgICAgbm9MYWJlbDogbm9MYWJlbCxcclxuICAgICAgICBoZWFkZXI6IGNvbmZpcm1IZWFkZXIsXHJcbiAgICAgICAgbWVzc2FnZTogZ29vZENhdXNlQ29uZmlybU1lc3NhZ2UsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25maXJtRGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMobmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgIC4uLnBheWxvYWQsXHJcbiAgICAgICAgICBjb25maXJtWWVzTm86IHRydWUsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucGF5bG9hZCxcclxuICAgICAgICAgIGNvbmZpcm1ZZXNObzogZmFsc2UsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFmdGVyT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy9cclxuICB9XHJcbn0iLCI8cHJ1dGVjaC1jb250ZXh0LW1lbnUgW21lbnVJdGVtc109XCJtZW51SXRlbXNcIiAobWVudUFjdGlvbik9XCJkb0FjdGlvbigkZXZlbnQpXCI+PC9wcnV0ZWNoLWNvbnRleHQtbWVudT5cclxuIl19
486
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJ1dGVjaC9jb21wbGlhbmNlL3NyYy9saWIvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBMkUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUczSSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrR0FBa0csQ0FBQztBQUN0SixPQUFPLEVBQUUs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QUFTOytCQUNFLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTTs7MEJBa0I1QyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTY2hlZHVsZUFwcG9pbnRtZW50UG9zdE1vZGVsIH0gZnJvbSAnQHBydXRlY2gvYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCwgQ29udGV4dE1lbnVBY3Rpb25JdGVtLCBDb250ZXh0TWVudUl0ZW0sIEVudmlyb25tZW50LCBMb29rdXAsIFRhYlNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgVXNlciwgVXNlclNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9pZGVudGl0eS1jbGllbnQnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmQsIGdldCwgaXNOaWwsIG1hcCwgdG9TdHJpbmcgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgYXMgckZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBtZW51SXRlbXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmNpbGlhdGlvbi13b3JrLWxpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZGlhbG9nU2l6ZSwgcmVjb3JkT3V0cmVhY2hkaWFsb2dTaXplIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9kaWFnbG9nLXNpemUnO1xyXG5pbXBvcnQgeyBHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ29vZC1jYXVzZS1ncmFudGVkLWFjdGlvbi9nb29kLWNhdXNlLWdyYW50ZWQtYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvb2t1cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZHVsZXMvY29uY2lsaWF0aW9uLWxvb2t1cHMvc2VydmljZXMvbG9va3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uY2lsaWF0aW9uTG9va3VwcyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvY29uY2lsaWF0aW9uLWxvb2t1cHMubW9kZWwnO1xyXG5pbXBvcnQgeyBHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ29vZC1jYXVzZS1ub3QtZ3JhbnRlZC1hY3Rpb24vZ29vZC1jYXVzZS1ub3QtZ3JhbnRlZC1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgcmVBc3NpZ25BY3Rpb25JZCxcclxuICByZWNvcmRPdXRyZWFjaEFjdGlvbklkLFxyXG4gIHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG4gIHNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZFxyXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvY29uY2lsaWF0aW9uL21lbnUtYWN0aW9uLWRlZnMnO1xyXG5pbXBvcnQgeyBhY3Rpb25zTGFiZWwgfSBmcm9tICcuLi8uLi8uLi9wcmUtY29uY2lsaWF0aW9uLXdvcmstbGlzdC9jb25zdGFudHMvbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7IFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMveWVzLW5vLWNvbmZpcm1hdGlvbi1kaWFsb2cveWVzLW5vLWNvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgY29uZmlybUhlYWRlciwgZ29vZENhdXNlQ29uZmlybU1lc3NhZ2UsIG5vTGFiZWwsIHllc0xhYmVsIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3llcy1uby1jb25maXJtLWRlZmF1bHRzJztcclxuaW1wb3J0IHsgSW5mcmFjdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9pbmZyYWN0aW9uLXR5cGUtZW51bSc7XHJcbmltcG9ydCB7IEluZnJhY3Rpb25BdEVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzL2luZnJhY3Rpb24tYXQtZW51bSc7XHJcbmltcG9ydCB7IFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhdmUtc2NoZWR1bGluZy1jYWxsLWJhY2subW9kZWwnO1xyXG5pbXBvcnQgeyBTYXZlT3V0cmVhY2hNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXZlLW91dHJlYWNoLW1vZGVsJztcclxuaW1wb3J0IHsgUmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9yZWNvcmQtb3V0cmVhY2hkaWFsb2dib3gvcmVjb3JkLW91dHJlYWNoZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlQXNzaWduRGFpbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vcmUtYXNzaWduLWRhaWxvZ2JveC9yZS1hc3NpZ24tZGFpbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1Ym1pdFJlYXNzaWduTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3VibWl0LXJlLWFzc2lnbi1mcm9tbW9kZWwnO1xyXG5pbXBvcnQgeyBXYW50VG9TZW5kQ2xpZW50QmFja0RpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL3dhbnQtdG8tc2VuZC1jbGllbnQtYmFjay1kaWFsb2dib3gvd2FudC10by1zZW5kLWNsaWVudC1iYWNrLWRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBvcGVuQXBwb2ludG1lbnREaWFsb2dib3ggfSBmcm9tICcuLi8uLi9tb2RlbHMvb3Blbi1hcHBvaW50bWVudCc7XHJcbmltcG9ydCB7IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3VibWl0LWJhdGNoLXBvb2wtYXBwb2ludG1lbnQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGNzQXBwb2ludG1lbnRzLFxyXG4gIGNzQXNzaWdubWVudHMsXHJcbiAgaXZhcEFzc2lnbm1lbnRzLFxyXG4gIGpjQXBwb2ludG1lbnRzLFxyXG4gIHNwbFJlZkFwcG9pbnRtZW50cyxcclxuICB0YWdBcHBvaW50bWVudHMsXHJcbiAgdGFnQXNzaWdubWVudHMsXHJcbiAgdnJzQXBwb2ludG1lbnRzLFxyXG4gIHdlY2FyZUFwcG9pbnRtZW50c1xyXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9vcmdpbmFsLWNhdGVnb3J5LWxvb2t1cC10eXBlcy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ2VuZXJhdGUtZmlhMTE4Ny1hbGV0dGVyLWRpYWxvZ2JveC9nZW5lcmF0ZS1maWExMTg3LWFsZXR0ZXItZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BydXRlY2gtY29uY2lsaWF0aW9uLWNvbnRleHQtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmNpbGlhdGlvbkNvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBtZW51SXRlbXM6IENvbnRleHRNZW51SXRlbVtdID0gbWVudUl0ZW1zO1xyXG4gIHBhcmFtczogQWdHcmlkQW5ndWxhcjtcclxuICBjb25jaWxpYXRpb25Mb29rdXBzOiBDb25jaWxpYXRpb25Mb29rdXBzO1xyXG4gIGFjdGlvbnM6IExvb2t1cFtdO1xyXG4gIHVzZXI6IFVzZXI7XHJcbiAgaXNDb25jaWxpYXRpb25XbENoZWNrOiBhbnk7XHJcbiAgYXBwdFNjaGVkdWxlZERldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgbG9va3Vwc1NlcnZpY2U6IExvb2t1cHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2U6IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSxcclxuICAgICAgckZpbHRlcigodXNlcjogVXNlcikgPT4gISF1c2VyKSlcclxuICAgICAgLnN1YnNjcmliZSgodXNlcjogVXNlcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubG9va3Vwc1NlcnZpY2UubG9va3Vwcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxvb2t1cHM6IENvbmNpbGlhdGlvbkxvb2t1cHMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMgPSBsb29rdXBzO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmFjdGlvbnMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zOiBMb29rdXBbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbnM7XHJcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSB0aGlzLmdldFVwZGF0ZWRNZW51SXRlbXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZ0luaXQocGFyYW1zOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICAgIGNvbnN0IGNhblJlc2NoZWR1bGU6IGJvb2xlYW4gPSAhaXNOaWwoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5zY2hlZHVsZWREYXRlJykpO1xyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzR3JhbnRlZCcpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzEnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc0dyYW50ZWQnKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09ICcyJyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNTY2hlZHVsZScpIHx8IGNhblJlc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc1JlU2NoZWR1bGUnKSB8fCAhY2FuUmVzY2hlZHVsZSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNPdXRyZWFjaCcpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzYnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc1JlQXNzaWduJykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSAnNScpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlZE1lbnVJdGVtcygpOiBDb250ZXh0TWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmxhYmVsID09PSBhY3Rpb25zTGFiZWwpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbGFiZWw6IGFjdGlvbnNMYWJlbCxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT5cclxuICAgICAgICAgICAgISFmaW5kKHRoaXMuYWN0aW9ucywgKGFjdGlvbkxvb2t1cDogTG9va3VwKSA9PiB0b1N0cmluZyhhY3Rpb25Mb29rdXAubG9va3VwSWQpID09PSBhY3Rpb25JdGVtLnJvdXRlKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb0FjdGlvbihldmVudDogQ29udGV4dE1lbnVBY3Rpb25JdGVtKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnJvdXRlKSB7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vIHN1cHBvc2UgZ29vZCBjYXVzZSBncmFudGVkIGxvb2t1cElkIGlzIDJcclxuICAgICAgY2FzZSB0b1N0cmluZyhnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3Blbkdvb2RDYXVzZU5vdEdyYW50ZWREaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlblNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuUmVTY2hlZHVsZUNhbGxCYWNrRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcocmVjb3JkT3V0cmVhY2hBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuT3V0cmVhY2hEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZUFzc2lnbkFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5SZUFzc2lnbkRpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5XYW50ZWRDbGllbnREYWlsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFdhbnRUb1NlbmRDbGllbnRCYWNrRGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oV2FudFRvU2VuZENsaWVudEJhY2tEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBnZXQoaXRlbSwgJ3dsQ29uY2lsaWF0aW9uSWQnKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBpc1dhbnRUb1NlbmRDbGllbnRCYWNrID0gZ2V0KHJlcywgJ3dhbnR0b3NlbmRjbGllbnRiYWNrJyk7XHJcbiAgICAgICAgaWYgKGlzV2FudFRvU2VuZENsaWVudEJhY2spIHtcclxuICAgICAgICAgIGlmICghZ2V0KGl0ZW0sICdpc0FjdGl2ZUFzc2lnbm1lbnQnKSkge1xyXG4gICAgICAgICAgICBvcGVuQXBwb2ludG1lbnREaWFsb2dib3godGhpcy5kaWFsb2csIGl0ZW0/LmNtc0Nhc2VJZCwgZ2V0KHRoaXMuZW52aXJvbm1lbnQsICdjb25jaWxpYXRpb25Bc3Nlc3NtZW50QXBwb2ludG1lbnRUeXBlSWQnKSwgMCwgZmFsc2UpXHJcbiAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzY2hlZHVsZURldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWwpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwdFNjaGVkdWxlZERldGFpbHMgPSBzY2hlZHVsZURldGFpbHM7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgIGlzV2FudFRvU2VuZENsaWVudEJhY2ssXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGdldChpdGVtLCAnd2xDb25jaWxpYXRpb25JZCcpLFxyXG4gICAgICAgICAgICAgICAgICBhcHBvaW50bWVudElkOiBzY2hlZHVsZURldGFpbHMuYXBwb2ludG1lbnRJZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNjaGVkdWxlRGV0YWlscykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFiU2VydmljZS5kaXNwYXRjaEFkZFRhYih7XHJcbiAgICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgaXRlbT8uZWFlcEFzc2Vzc21lbnRJZCxcclxuICAgICAgICAgICAgcm91dGU6ICcvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgbGFiZWw6ICdBc3Nlc3NtZW50cycgKyAnIC0gJyArIGl0ZW0/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBzdGF0ZTogeyBjbGllbnROYW1lOiBpdGVtPy5jbGllbnROYW1lIH0gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5SZUFzc2lnbkRpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVBc3NpZ25EYWlsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU3VibWl0UmVhc3NpZ25Nb2RlbCA9IG5ldyBTdWJtaXRSZWFzc2lnbk1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVBc3NpZ25BY3Rpb25JZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVSZWFzc2lnbihwYXlsb2FkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YTogeyAuLi5pdGVtLCBpc1JlU2NoZWR1bGU6IGZhbHNlIH0sXHJcbiAgICB9KTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgPSBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogc2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWxEZXRhaWxzKHBheWxvYWQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5SZVNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlzUmVTY2hlZHVsZTogdHJ1ZSB9LFxyXG4gICAgfSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsID0gbmV3IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0RldGFpbERldGFpbHMocGF5bG9hZClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuT3V0cmVhY2hEaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiByZWNvcmRPdXRyZWFjaGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICBkYXRhOiBpdGVtXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlT3V0cmVhY2hNb2RlbCA9IG5ldyBTYXZlT3V0cmVhY2hNb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHJlY29yZE91dHJlYWNoQWN0aW9uSWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbHMocGF5bG9hZClcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbkdvb2RDYXVzZUdyYW50ZWREaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXBwb2ludG1lbnRzIHx8IGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBc3NpZ25tZW50cyB8fFxyXG4gICAgICBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0FwcG9pbnRtZW50cyB8fCBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0Fzc2lnbm1lbnRzKSB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oR29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgICAgICBkYXRhOiBpdGVtXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNTV2dycsXHJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgZGF0YToge30sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxldHRlclR5cGVJZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gaWYgKGxldHRlclR5cGVJZCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgICAgLy8gfSBlbHNlIGlmIChsZXR0ZXJUeXBlSWQgPT09IDIpIHtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpIH0pO1xyXG4gICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICBpc1dhbnRUb1NlbmRDbGllbnRCYWNrOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGdldChpdGVtLCAnd2xDb25jaWxpYXRpb25JZCcpLFxyXG4gICAgICAgICAgICAgICAgYXBwb2ludG1lbnRJZDogbnVsbCxcclxuICAgICAgICAgICAgICAgIGNhc2VJZDogaXRlbT8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxDYXRlZ29yeUlkOiBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQsXHJcbiAgICAgICAgICAgICAgICBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLFxyXG4gICAgICAgICAgICAgICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgaW5mcmFjdGlvbkRhdGU6IGdldChpdGVtLCAnaW5mcmFjdGlvbkRhdGUnKSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2Uuc2F2ZVN0YXR1cyhwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC8vIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2cocmVzKVxyXG4gICAgICAvLyAgIGlmKHJlcyl7XHJcbiAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2VhLWVwLycgKyBpdGVtPy5jbXNDYXNlSWRdICwge3F1ZXJ5UGFyYW1zOntpc2NvbmNpbGlhdGlvbldMOnRydWV9fSlcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pOyBcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgICAgZGF0YTogaXRlbVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oR2VuZXJhdGVGSUExMTg3QUxldHRlckRpYWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICB3aWR0aDogJzU1dncnLFxyXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICAgIGRhdGE6IHt9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsZXR0ZXJUeXBlSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGlmIChsZXR0ZXJUeXBlSWQgPT09IDEpIHtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpIH0pO1xyXG4gICAgICAgICAgICAgIC8vIH0gZWxzZSBpZiAobGV0dGVyVHlwZUlkID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFByaW50RG9jdW1lbnQoeyBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGl0ZW0sICdjbXNDYXNlSWQnKSB9KTtcclxuICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgLy8gaWYgKGl0ZW0gPy5vdXRyZWFjaElkICE9IG51bGwgfHwgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gdGFnQXNzaWdubWVudHMpIHtcclxuICAgICAgICAgICAgICAvLyAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAvLyAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICAgIC8vICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICAgIC8vICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtID8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgICAgICAvLyAgICAgY2FzZUlkOiBpdGVtID8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICAgIC8vICAgICBvcmlnaW5hbENhdGVnb3J5SWQ6IGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQsXHJcbiAgICAgICAgICAgICAgLy8gICAgIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksXHJcbiAgICAgICAgICAgICAgLy8gICAgIGxldHRlclR5cGU6IGxldHRlclR5cGVJZCxcclxuICAgICAgICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICBpZiAoaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBqY0FwcG9pbnRtZW50cyB8fCBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHNwbFJlZkFwcG9pbnRtZW50cykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFiU2VydmljZS5kaXNwYXRjaEFkZFRhYih7XHJcbiAgICAgICAgICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgaXRlbT8uZWFlcEFzc2Vzc21lbnRJZCxcclxuICAgICAgICAgICAgICAgICAgcm91dGU6ICcvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBc3Nlc3NtZW50cycgKyAnIC0gJyArIGl0ZW0/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBzdGF0ZTogeyBjbGllbnROYW1lOiBpdGVtPy5jbGllbnROYW1lIH0gfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIGVsc2UgaWYgKCgoKGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHdlY2FyZUFwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgICAgIC8vICAgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gaXZhcEFzc2lnbm1lbnRzIHx8XHJcbiAgICAgICAgICAgICAgLy8gICAgIGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHZyc0FwcG9pbnRtZW50cykgXHJcbiAgICAgICAgICAgICAgLy8gICAgICYmIGl0ZW0gPy5ueWN3YXlBcHB0Q29kZSAhPT0gbnVsbCkgfHwgaXRlbSA/Lm55Y3dheUFwcHRDb2RlID09PSAnQ0gnKSkge1xyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gd2VjYXJlQXBwb2ludG1lbnRzIHx8XHJcbiAgICAgICAgICAgICAgICBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGl2YXBBc3NpZ25tZW50cyB8fFxyXG4gICAgICAgICAgICAgICAgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB2cnNBcHBvaW50bWVudHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICBjYXNlSWQ6IGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxDYXRlZ29yeUlkOiBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQsXHJcbiAgICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksXHJcbiAgICAgICAgICAgICAgICAgIGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgaW5mcmFjdGlvbkRhdGU6IGdldChpdGVtLCAnaW5mcmFjdGlvbkRhdGUnKSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgLy9CYXRjaCBwb29sIGxvZ2ljIGFkZGVkIHRvIFN1Ym1pdEdyYW50ZWRDb25jaWxpYXRpb24gYXBpXHJcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBwYXlsb2FkOiBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsID0gbmV3IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwoe1xyXG4gICAgICAgICAgICAgICAgLy8gICBjYXNlSWQ6IGl0ZW0gPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHNpdGVJZDogaXRlbSA/LnNtU2l0ZUlkLFxyXG4gICAgICAgICAgICAgICAgLy8gICBhcHBvaW50bWVudElkOiBpdGVtID8uYXBwb2ludEFzc2lnbk5hbWUsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGVhZXBBc3Nlc3NtZW50SWQ6IGl0ZW0gPy5lYWVwQXNzZXNzbWVudElkLFxyXG4gICAgICAgICAgICAgICAgLy8gICB3bENvbmNpbGlhdGlvbklkOiBpdGVtID8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgICAgICAgIC8vICAgYXBwb2ludG1lbnROWUNXQVljb2RlOiBpdGVtID8ubnljd2F5QXBwdENvZGUsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGxldHRlclR5cGU6IGxldHRlclR5cGVJZCxcclxuICAgICAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudChwYXlsb2FkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbT8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAgIGlmIChnZXQoaXRlbSwgJ2luZnJhY3RlZFR5cGUudmFsdWUubG9va3VwSWQnKSA9PT0gSW5mcmFjdGlvblR5cGVFbnVtLkZUUkFwcG9pbnRtZW50XHJcbiAgICAgICAgICAgICAgICAgICYmICgoZ2V0KGl0ZW0sICdpbmZyYWN0ZWRBdC52YWx1ZS5sb29rdXBJZCcpID09PSBJbmZyYWN0aW9uQXRFbnVtLkNhcmVlclNlcnZpY2VzICYmIHRoaXMudXNlclxyXG4gICAgICAgICAgICAgICAgICAgICYmICh0aGlzLnVzZXIuaXNKb3NXb3JrZXIgfHwgdGhpcy51c2VyLmlzSm9zU3VwZXJ2aXNvciB8fCB0aGlzLnVzZXIuaXNPdXRTdGF0aW9uV29ya2VyIHx8IHRoaXMudXNlci5pc091dFN0YXRpb25TdXBlcnZpc29yKSkgLy8gYnIgOCwgOVxyXG4gICAgICAgICAgICAgICAgICAgIHx8IChnZXQoaXRlbSwgJ2luZnJhY3RlZEF0LnZhbHVlLmxvb2t1cElkJykgPT09IEluZnJhY3Rpb25BdEVudW0uQ2FyZWVyQWR2YW5jZSAmJiB0aGlzLnVzZXJcclxuICAgICAgICAgICAgICAgICAgICAgICYmICh0aGlzLnVzZXIuaXNKb3NXb3JrZXIgfHwgdGhpcy51c2VyLmlzSm9zU3VwZXJ2aXNvciB8fCB0aGlzLnVzZXIuaXNPdXRTdGF0aW9uV29ya2VyIHx8IHRoaXMudXNlci5pc091dFN0YXRpb25TdXBlcnZpc29yKSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGJyIDEwLCAxMVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9wZW5ZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyhwYXlsb2FkLCBpdGVtKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIHNlbmQgdG8gQkVcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvL2hlcmVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5Hb29kQ2F1c2VOb3RHcmFudGVkRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBcHBvaW50bWVudHMgfHwgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBjc0Fzc2lnbm1lbnRzKSB7XHJcbiAgICAgIHRoaXMuaXNDb25jaWxpYXRpb25XbENoZWNrID0gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vd2UgZG9uJ3QgbmVlZCB0byBzZW5kIG9yaWdpbmFsIGFwcHQgSWQuIE9yaWdpbmFsIGFwcHQgdHlwZSBJZCBpcyBkaWZmZXJlbnQuXHJcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKEdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICBkYXRhOiB7IC4uLml0ZW0sIGFwcG9pbnRtZW50SWQ6IDAsIGlzY29uY2lsaWF0aW9uV0w6IHRoaXMuaXNDb25jaWxpYXRpb25XbENoZWNrIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMobmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlTm90R3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuWWVzTm9Db25maXJtYXRpb25EaWFsb2cocGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQsIGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maXJtRGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8WWVzTm9Db25maXJtYXRpb25EaWFsb2dDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgeWVzTGFiZWw6IHllc0xhYmVsLFxyXG4gICAgICAgIG5vTGFiZWw6IG5vTGFiZWwsXHJcbiAgICAgICAgaGVhZGVyOiBjb25maXJtSGVhZGVyLFxyXG4gICAgICAgIG1lc3NhZ2U6IGdvb2RDYXVzZUNvbmZpcm1NZXNzYWdlLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uZmlybURpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAuLi5wYXlsb2FkLFxyXG4gICAgICAgICAgY29uZmlybVllc05vOiB0cnVlLFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMobmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgIC4uLnBheWxvYWQsXHJcbiAgICAgICAgICBjb25maXJtWWVzTm86IGZhbHNlLFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZnRlck9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vXHJcbiAgfVxyXG59IiwiPHBydXRlY2gtY29udGV4dC1tZW51IFttZW51SXRlbXNdPVwibWVudUl0ZW1zXCIgKG1lbnVBY3Rpb24pPVwiZG9BY3Rpb24oJGV2ZW50KVwiPjwvcHJ1dGVjaC1jb250ZXh0LW1lbnU+XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export const conciliationId = 1;
2
+ export const preNoiId = 2;
3
+ export const noiId = 3;
4
+ export const teleConferenceId = 4;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2xpc3RfaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbnN0YW50cy93b3JrbGlzdF9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDMUIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY29uY2lsaWF0aW9uSWQgPSAxO1xyXG5leHBvcnQgY29uc3QgcHJlTm9pSWQgPSAyO1xyXG5leHBvcnQgY29uc3Qgbm9pSWQgPSAzO1xyXG5leHBvcnQgY29uc3QgdGVsZUNvbmZlcmVuY2VJZCA9IDQ7XHJcblxyXG4iXX0=
@@ -11,6 +11,7 @@ import { GrantOptionType } from '../constants/grant-option-type';
11
11
  import { getGrantOption } from '../functions/get-grant-option';
12
12
  import { goodCauseGrantedActionId } from '../../shared/constants/conciliation/menu-action-defs';
13
13
  import { csAppointments, csAssignments, tagAppointments, tagAssignments } from '../constants/orginal-category-lookup-types.constants';
14
+ import { conciliationId } from '../constants/worklist_id';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "../services/conciliation-appointment-work-list.service";
16
17
  import * as i2 from "ngx-toastr";
@@ -44,8 +45,9 @@ export class ConciliationAppointmentWorkListEffect {
44
45
  const grantOption = getGrantOption(get(action, 'payload'));
45
46
  const actionId = get(action, 'payload.actionId');
46
47
  const originalCategoryId = get(action, 'payload.originalCategoryId');
48
+ const infractionDate = get(action, 'payload.infractionDate');
47
49
  if (actionId === goodCauseGrantedActionId) {
48
- this.conciliationWorkListService.dispatchPrintDocument({ letterType: get(action, 'payload.letterType'), assessmentId: get(action, 'payload.assessmentId'), CmsCaseID: get(action, 'payload.caseId') });
50
+ this.conciliationWorkListService.dispatchPrintDocument({ letterType: get(action, 'payload.letterType'), assessmentId: get(action, 'payload.assessmentId'), CmsCaseID: get(action, 'payload.caseId'), worklistType: conciliationId, infractionDate: infractionDate, });
49
51
  if (originalCategoryId === csAppointments || originalCategoryId === csAssignments || originalCategoryId === tagAppointments || originalCategoryId === tagAssignments) {
50
52
  this.router.navigate(['/ea-ep/' + get(action, 'payload.caseId')], { queryParams: { isconciliationWL: true } });
51
53
  }
@@ -150,14 +152,14 @@ export class ConciliationAppointmentWorkListEffect {
150
152
  this.saveBatchAppointmentSuccessAction$ = this.actions$.pipe(ofType(ConciliationAppointmentWorkListActionTypes.SubmitBatchPoolAppointmentSuccess), map((action) => {
151
153
  // handleSuccess(this.toastr);
152
154
  handleSuccess(this.toastr);
153
- this.conciliationWorkListService.dispatchPrintDocument({ letterType: get(action, 'payload.letterType'), assessmentId: get(action, 'payload.eaepAssessmentId'), CmsCaseID: get(action, 'payload.caseId') });
155
+ this.conciliationWorkListService.dispatchPrintDocument({ letterType: get(action, 'payload.letterType'), assessmentId: get(action, 'payload.eaepAssessmentId'), CmsCaseID: get(action, 'payload.caseId'), worklistType: conciliationId, infractionDate: get(action, 'payload.infractionDate'), });
154
156
  this.conciliationWorkListService.dispatchLoadConciliationWorkList();
155
157
  }));
156
158
  this.saveBatchAppointmentFailAction$ = this.actions$.pipe(ofType(ConciliationAppointmentWorkListActionTypes.SubmitBatchPoolAppointmentFail), map((action) => get(action, 'payload')), tap((response) => {
157
159
  handleLoadFail(this.toastr, _map(get(response, 'seamsErrorCodes'), 'value'));
158
160
  }));
159
161
  this.printDocument$ = this.actions$.pipe(ofType(ConciliationAppointmentWorkListActionTypes.PrintDocument), map((action) => action.payload), switchMap((payload) => {
160
- return this.conciliationWorkListService.printDocument(payload.letterType, payload.assessmentId, payload.CmsCaseID)
162
+ return this.conciliationWorkListService.printDocument(payload.letterType, payload.assessmentId, payload.CmsCaseID, conciliationId, payload.infractionDate)
161
163
  .pipe(
162
164
  // tslint:disable-next-line:no-any
163
165
  map((response) => {
@@ -247,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
247
249
  }], ctorParameters: function () { return [{ type: i1.ConciliationAppointmentWorkListService }, { type: i2.ToastrService }, { type: i3.MatDialog }, { type: i4.Router }, { type: i5.TabService }, { type: i6.Actions }]; }, propDecorators: { loadWorkList$: [], saveStatus$: [], loadWorkListFailAction$: [], saveStatusSuccess$: [], openDialog$: [], SaveSchedulingCallBackDetail$: [], savSuccessAction$: [], savFailAction$: [], SaveOutreachWorklistDetail$: [], saveSuccessAction$: [], saveFailAction$: [], saveStatusworks$: [], saveReassignFailAction$: [], saveReassignSuccessAction$: [], saveBatchAppointmentworks$: [], saveBatchAppointmentSuccessAction$: [], saveBatchAppointmentFailAction$: [], printDocument$: [],
248
250
  // tslint:disable-next-line:no-any
249
251
  printSuccess$: [] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2VmZmVjdHMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSTFDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDMUMsOEJBQThCLEVBQzlCLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFHckMsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUUxQixnQ0FBZ0MsRUFDaEMsbUNBQW1DLEVBRW5DLDhCQUE4QixFQUM5QixpQ0FBaUMsRUFFakMsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUV6QixnQ0FBZ0MsRUFDaEMsbUNBQW1DLEVBRW5DLG9DQUFvQyxFQUNwQyx1Q0FBdUMsR0FDeEMsTUFBTSx1REFBdUQsQ0FBQztBQUkvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixP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akQsVUFBVTtxUEFHVCxhQUFhLE1BY2IsV0FBVyxNQWNYLHVCQUF1QixNQVd2QixrQkFBa0IsTUErQmxCLFdBQVcsTUFZWCw2QkFBNkIsTUFvQjdCLGlCQUFpQixNQVFqQixjQUFjLE1BYWQsMkJBQTJCLE1Bb0IzQixrQkFBa0IsTUFTbEIsZUFBZSxNQVVmLGdCQUFnQixNQW9CaEIsdUJBQXVCLE1BUXZCLDBCQUEwQixNQVExQiwwQkFBMEIsTUFvQjFCLGtDQUFrQyxNQVVsQywrQkFBK0IsTUFRL0IsY0FBYztRQWdCZCxrQ0FBa0M7UUFDbEMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWN0aW9ucywgRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBoYW5kbGVMb2FkRmFpbCwgaGFuZGxlU3VjY2VzcywgU2VhbXNIdHRwUmVzcG9uc2UsIFRhYlNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZXhoYXVzdE1hcCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZ2V0LCBtYXAgYXMgX21hcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMsXHJcbiAgTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0QWN0aW9uLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdEZhaWxBY3Rpb24sXHJcbiAgTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0U3VjY2Vzc0FjdGlvbixcclxuICBPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24sXHJcbiAgUHJpbnREb2N1bWVudEFjdGlvbixcclxuICBQcmludERvY3VtZW50RmFpbEFjdGlvbixcclxuICBQcmludERvY3VtZW50U3VjY2Vzc0FjdGlvbixcclxuICBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzQWN0aW9uLFxyXG4gIFNhdmVDb25jaWxpYXRpb25TdGF0dXNGYWlsQWN0aW9uLFxyXG4gIFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uLFxyXG4gIFNhdmVPdXRyZWFjaFdvcmtsaXN0QWN0aW9uLFxyXG4gIFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbixcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24sXHJcbiAgU2F2ZVJlYXNzaWduQWN0aW9uLFxyXG4gIFNhdmVSZWFzc2lnbkZhaWxBY3Rpb24sXHJcbiAgU2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbixcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrQWN0aW9uLFxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tGYWlsQWN0aW9uLFxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzQWN0aW9uLFxyXG4gIFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50QWN0aW9uLFxyXG4gIFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50RmFpbEFjdGlvbixcclxuICBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24sXHJcbn0gZnJvbSAnLi4vYWN0aW9ucy9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0LmFjdGlvbnMnO1xyXG5pbXBvcnQgeyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCB9IGZyb20gJy4uL21vZGVscy9zYXZlLWNvbmNpbGlhdGlvbi1zdGF0dXMtcGF5bG9hZC5tb2RlbCc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbldvcmtMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2NvbmNpbGlhdGlvbi13b3JrLWxpc3QnO1xyXG5pbXBvcnQgeyBTYXZlU3RhdHVzUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1zdGF0dXMtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBvcGVuQXBwb2ludG1lbnREaWFsb2cgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zL29wZW4tYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQgeyBHcmFudE9wdGlvblR5cGUgfSBmcm9tICcuLi9jb25zdGFudHMvZ3JhbnQtb3B0aW9uLXR5cGUnO1xyXG5pbXBvcnQgeyBnZXRHcmFudE9wdGlvbiB9IGZyb20gJy4uL2Z1bmN0aW9ucy9nZXQtZ3JhbnQtb3B0aW9uJztcclxuaW1wb3J0IHsgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc2NoZWR1bGluZy1jYWxsLWJhY2subW9kZWwnO1xyXG5pbXBvcnQgeyBTYXZlT3V0cmVhY2hNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXZlLW91dHJlYWNoLW1vZGVsJztcclxuaW1wb3J0IHsgU3VibWl0UmVhc3NpZ25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9zdWJtaXQtcmUtYXNzaWduLWZyb21tb2RlbCc7XHJcbmltcG9ydCB7IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc3VibWl0LWJhdGNoLXBvb2wtYXBwb2ludG1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7Z29vZENhdXNlR3JhbnRlZEFjdGlvbklkfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL2NvbmNpbGlhdGlvbi9tZW51LWFjdGlvbi1kZWZzJztcclxuaW1wb3J0IHtcclxuICBjc0FwcG9pbnRtZW50cyxcclxuICBjc0Fzc2lnbm1lbnRzLFxyXG4gIGl2YXBBc3NpZ25tZW50cyxcclxuICBqY0FwcG9pbnRtZW50cyxcclxuICBzcGxSZWZBcHBvaW50bWVudHMsXHJcbiAgdGFnQXBwb2ludG1lbnRzLFxyXG4gIHRhZ0Fzc2lnbm1lbnRzLFxyXG4gIHZyc0FwcG9pbnRtZW50cyxcclxuICB3ZWNhcmVBcHBvaW50bWVudHNcclxufSBmcm9tICcuLi9jb25zdGFudHMvb3JnaW5hbC1jYXRlZ29yeS1sb29rdXAtdHlwZXMuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RFZmZlY3Qge1xyXG4gIEBFZmZlY3QoKVxyXG4gIGxvYWRXb3JrTGlzdCQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkQ29uY2lsaWF0aW9uV29ya0xpc3QpLFxyXG4gICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmxvYWRXb3JrTGlzdCgpLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhOiBDb25jaWxpYXRpb25Xb3JrTGlzdCkgPT5cclxuICAgICAgICAgIG5ldyBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RTdWNjZXNzQWN0aW9uKGRhdGEpLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiBvZihuZXcgTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0RmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSkpLFxyXG4gICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgc2F2ZVN0YXR1cyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlQ29uY2lsaWF0aW9uU3RhdHVzQWN0aW9uPihDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVN0YXR1cyksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0FjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2Uuc2F2ZVN0YXR1cyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YTogU2F2ZVN0YXR1c1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uKGRhdGEpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4gb2YobmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG5cclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgbG9hZFdvcmtMaXN0RmFpbEFjdGlvbiQ6IE9ic2VydmFibGU8U2VhbXNIdHRwUmVzcG9uc2U+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKFxyXG4gICAgICBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0RmFpbCxcclxuICAgICAgQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTdGF0dXNGYWlsKSxcclxuICAgIG1hcCgoYWN0aW9uOiBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uIHwgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0ZhaWxBY3Rpb24pID0+IGdldChhY3Rpb24sICdwYXlsb2FkJykpLFxyXG4gICAgdGFwKChyZXNwb25zZTogU2VhbXNIdHRwUmVzcG9uc2UpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlU3RhdHVzU3VjY2VzcyQ6IE9ic2VydmFibGU8U2F2ZUNvbmNpbGlhdGlvblN0YXR1c1N1Y2Nlc3NBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uPihDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVN0YXR1c1N1Y2Nlc3MpLFxyXG4gICAgdGFwKChhY3Rpb246IFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uKSA9PiB7XHJcbiAgICAgIGhhbmRsZVN1Y2Nlc3ModGhpcy50b2FzdHIpO1xyXG4gICAgICBjb25zdCBncmFudE9wdGlvbjogR3JhbnRPcHRpb25UeXBlID0gZ2V0R3JhbnRPcHRpb24oZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSk7XHJcbiAgICAgIGNvbnN0IGFjdGlvbklkID0gZ2V0KGFjdGlvbiwgJ3BheWxvYWQuYWN0aW9uSWQnKTtcclxuICAgICAgY29uc3Qgb3JpZ2luYWxDYXRlZ29yeUlkID0gZ2V0KGFjdGlvbiwgJ3BheWxvYWQub3JpZ2luYWxDYXRlZ29yeUlkJyk7XHJcbiAgICAgIGlmIChhY3Rpb25JZCA9PT0gZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogZ2V0KGFjdGlvbiwgJ3BheWxvYWQubGV0dGVyVHlwZScpLCBhc3Nlc3NtZW50SWQ6IGdldChhY3Rpb24sICdwYXlsb2FkLmFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChhY3Rpb24sICdwYXlsb2FkLmNhc2VJZCcpIH0pO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXBwb2ludG1lbnRzIHx8IG9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBc3NpZ25tZW50cyB8fCBvcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0FwcG9pbnRtZW50cyB8fCBvcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0Fzc2lnbm1lbnRzKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyldLCB7IHF1ZXJ5UGFyYW1zOiB7IGlzY29uY2lsaWF0aW9uV0w6IHRydWUgfSB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZ3JhbnRPcHRpb24gPT09IEdyYW50T3B0aW9uVHlwZS5BcHBvaW50bWVudCkge1xyXG4gICAgICAgIC8vIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoT3BlbkFwcG9pbnRtZW50RGlhbG9nKGdldChhY3Rpb24sICdwYXlsb2FkLmNhc2VJZCcpKTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGdyYW50T3B0aW9uID09PSBHcmFudE9wdGlvblR5cGUuRVApIHtcclxuICAgICAgICB0aGlzLnRhYlNlcnZpY2UuZGlzcGF0Y2hBZGRUYWIoe1xyXG4gICAgICAgICAgdGFiTmFtZTogJ2VhLWVwLycgKyBnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKSxcclxuICAgICAgICAgIHJvdXRlOiAnL2VhLWVwLycgKyBnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKSxcclxuICAgICAgICAgIGxhYmVsOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgICAgY2FuQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvZWEtZXAvJHtnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKX1gXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgb3BlbkRpYWxvZyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5PcGVuQXBwb2ludG1lbnREaWFsb2cpLFxyXG4gICAgZXhoYXVzdE1hcCgoYWN0aW9uOiBPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIG9wZW5BcHBvaW50bWVudERpYWxvZyh0aGlzLmRpYWxvZywgZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSk7XHJcbiAgICB9KSxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RBY3Rpb24oKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWwkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTY2hlZHVsaW5nQ2FsbEJhY2spLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5TYXZlU2NoZWR1bGluZ0NhbGxCYWNrRGV0YWlsRGV0YWlscyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3NBY3Rpb24oeyBkYXRhLCBwYXlsb2FkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZTdWNjZXNzQWN0aW9uJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbikgPT4ge1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuXHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24pID0+IGdldChhY3Rpb24sICdwYXlsb2FkJykpLFxyXG4gICAgdGFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGhhbmRsZUxvYWRGYWlsKHRoaXMudG9hc3RyLCBfbWFwKGdldChyZXNwb25zZSwgJ3NlYW1zRXJyb3JDb2RlcycpLCAndmFsdWUnKSlcclxuXHJcblxyXG4gICAgfSksXHJcblxyXG4gICk7XHJcblxyXG5cclxuICBARWZmZWN0KClcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbCQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0KSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTYXZlT3V0cmVhY2hNb2RlbCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuU2F2ZU91dHJlYWNoV29ya2xpc3REZXRhaWxEZXRhaWxzKHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnlcclxuICAgICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24oeyBkYXRhLCBwYXlsb2FkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24odW5kZWZpbmVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IHVua25vd24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihuZXcgU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVTdWNjZXNzQWN0aW9uJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbikgPT4ge1xyXG5cclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICB9KVxyXG5cclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlRmFpbEFjdGlvbiQ6IE9ic2VydmFibGU8U2VhbXNIdHRwUmVzcG9uc2U+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uKSA9PiBnZXQoYWN0aW9uLCAncGF5bG9hZCcpKSxcclxuICAgIHRhcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG5cclxuICAgIH0pLFxyXG5cclxuICApO1xyXG4gIEBFZmZlY3QoKVxyXG4gIHNhdmVTdGF0dXN3b3JrcyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlUmVhc3NpZ25BY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlUmVhc3NpZ24pLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVSZWFzc2lnbkFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTdWJtaXRSZWFzc2lnbk1vZGVsKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5TYXZlUmVhc3NpZ24ocGF5bG9hZCkucGlwZShcclxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbihkYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlUmVhc3NpZ25GYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVSZWFzc2lnbkZhaWxBY3Rpb24kOiBPYnNlcnZhYmxlPFNlYW1zSHR0cFJlc3BvbnNlPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlUmVhc3NpZ25GYWlsQWN0aW9uPihDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVJlYXNzaWduRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgc2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbiQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVSZWFzc2lnblN1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVSZWFzc2lnblN1Y2Nlc3NBY3Rpb24pID0+IHtcclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0KCk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoKVxyXG4gIHNhdmVCYXRjaEFwcG9pbnRtZW50d29ya3MkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudCksXHJcbiAgICBtYXAoKGFjdGlvbjogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRNb2RlbCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnQocGF5bG9hZCkucGlwZShcclxuICAgICAgICBtYXAoKGRhdGE6IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRTdWNjZXNzQWN0aW9uKHBheWxvYWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24odW5kZWZpbmVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IHVua25vd24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihuZXcgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlQmF0Y2hBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24kOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50U3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50U3VjY2VzcyksXHJcbiAgICBtYXAoKGFjdGlvbjogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRTdWNjZXNzQWN0aW9uKSA9PiB7XHJcbiAgICAgIC8vICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGdldChhY3Rpb24sICdwYXlsb2FkLmxldHRlclR5cGUnKSwgYXNzZXNzbWVudElkOiBnZXQoYWN0aW9uLCAncGF5bG9hZC5lYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJykgfSk7XHJcbiAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0KCk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlQmF0Y2hBcHBvaW50bWVudEZhaWxBY3Rpb24kOiBPYnNlcnZhYmxlPFNlYW1zSHR0cFJlc3BvbnNlPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudEZhaWxBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudEZhaWwpLFxyXG4gICAgbWFwKChhY3Rpb246IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50RmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KClcclxuICBwcmludERvY3VtZW50JDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFByaW50RG9jdW1lbnRBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5QcmludERvY3VtZW50KSxcclxuICAgIG1hcCgoYWN0aW9uOiBQcmludERvY3VtZW50QWN0aW9uKSA9PiBhY3Rpb24ucGF5bG9hZCksXHJcbiAgICBzd2l0Y2hNYXAoKHBheWxvYWQ6IHsgbGV0dGVyVHlwZTogbnVtYmVyLCBhc3Nlc3NtZW50SWQ6IG51bWJlciwgQ21zQ2FzZUlEOiBudW1iZXIgfSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UucHJpbnREb2N1bWVudChwYXlsb2FkLmxldHRlclR5cGUsIHBheWxvYWQuYXNzZXNzbWVudElkLCBwYXlsb2FkLkNtc0Nhc2VJRClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IEh0dHBFdmVudDxhbnk+KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJpbnREb2N1bWVudFN1Y2Nlc3NBY3Rpb24oeyByZXNwb25zZSwgZGF0YTogcGF5bG9hZCB9KTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiB1bmtub3duKSA9PiBvZihuZXcgUHJpbnREb2N1bWVudEZhaWxBY3Rpb24obmV3IFNlYW1zSHR0cFJlc3BvbnNlKGdldChlcnIsICdlcnJvcicpKSkpKSxcclxuICAgICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICBwcmludFN1Y2Nlc3MkOiBPYnNlcnZhYmxlPHsgcmVzcG9uc2U6IGFueSB9PiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxQcmludERvY3VtZW50U3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlByaW50RG9jdW1lbnRTdWNjZXNzKSxcclxuICAgIG1hcCgoYWN0aW9uOiBQcmludERvY3VtZW50U3VjY2Vzc0FjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgdGFwKChwYXlsb2FkOiB7IHJlc3BvbnNlOiBhbnkgfSkgPT4ge1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyLCAnR2VuZXJhdGVkIFN1Y2Nlc3NmdWxseS4nKVxyXG5cclxuICAgICAgaWYgKGdldChwYXlsb2FkLCAncmVzcG9uc2UuZmlsZUNvbnRlbnRzJykpIHtcclxuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoZ2V0KHBheWxvYWQsICdyZXNwb25zZS5maWxlQ29udGVudHMnKSk7XHJcbiAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoYnl0ZUNoYXJhY3RlcnMubGVuZ3RoKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgICAgICBjb25zdCBibG9iOiBCbG9iID0gbmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogZ2V0KHBheWxvYWQsICdyZXNwb25zZS5jb250ZW50VHlwZScpIH0pO1xyXG4gICAgICAgIGNvbnN0IGZpbGVVUkw6IHN0cmluZyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGZpbGVVUkwsICdfYmxhbmsnKTtcclxuICAgICAgfVxyXG4gICAgfSksXHJcbiAgKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZTogQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucykge1xyXG4gIH1cclxufVxyXG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2VmZmVjdHMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSTFDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDMUMsOEJBQThCLEVBQzlCLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFHckMsdUJBQXVCLEVBQ3ZCLDBCQUEwQixFQUUxQixnQ0FBZ0MsRUFDaEMsbUNBQW1DLEVBRW5DLDhCQUE4QixFQUM5QixpQ0FBaUMsRUFFakMsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUV6QixnQ0FBZ0MsRUFDaEMsbUNBQW1DLEVBRW5DLG9DQUFvQyxFQUNwQyx1Q0FBdUMsR0FDeEMsTUFBTSx1REFBdUQsQ0FBQztBQUkvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixP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SUFEQyxNQUFNLEVBQUU7eUZBa0JQO0FBR0Y7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7aUdBUzFCO0FBRUY7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7OEZBTzFCO0FBRUY7SUFEQyxNQUFNLEVBQUU7NkVBY1A7QUFJRjtJQUZDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQzs0RUFxQjFCOzRGQW5SUyxxQ0FBcUM7a0JBRGpELFVBQVU7cVBBR1QsYUFBYSxNQWNiLFdBQVcsTUFjWCx1QkFBdUIsTUFXdkIsa0JBQWtCLE1BZ0NsQixXQUFXLE1BWVgsNkJBQTZCLE1Bb0I3QixpQkFBaUIsTUFRakIsY0FBYyxNQWFkLDJCQUEyQixNQW9CM0Isa0JBQWtCLE1BU2xCLGVBQWUsTUFVZixnQkFBZ0IsTUFvQmhCLHVCQUF1QixNQVF2QiwwQkFBMEIsTUFRMUIsMEJBQTBCLE1Bb0IxQixrQ0FBa0MsTUFVbEMsK0JBQStCLE1BUS9CLGNBQWM7UUFnQmQsa0NBQWtDO1FBQ2xDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIEVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgaGFuZGxlTG9hZEZhaWwsIGhhbmRsZVN1Y2Nlc3MsIFNlYW1zSHR0cFJlc3BvbnNlLCBUYWJTZXJ2aWNlIH0gZnJvbSAnQHBydXRlY2gvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGV4aGF1c3RNYXAsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdldCwgbWFwIGFzIF9tYXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3Quc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdEFjdGlvbixcclxuICBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdFN1Y2Nlc3NBY3Rpb24sXHJcbiAgT3BlbkFwcG9pbnRtZW50RGlhbG9nQWN0aW9uLFxyXG4gIFByaW50RG9jdW1lbnRBY3Rpb24sXHJcbiAgUHJpbnREb2N1bWVudEZhaWxBY3Rpb24sXHJcbiAgUHJpbnREb2N1bWVudFN1Y2Nlc3NBY3Rpb24sXHJcbiAgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0FjdGlvbixcclxuICBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzRmFpbEFjdGlvbixcclxuICBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzU3VjY2Vzc0FjdGlvbixcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbixcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdEZhaWxBY3Rpb24sXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RTdWNjZXNzQWN0aW9uLFxyXG4gIFNhdmVSZWFzc2lnbkFjdGlvbixcclxuICBTYXZlUmVhc3NpZ25GYWlsQWN0aW9uLFxyXG4gIFNhdmVSZWFzc2lnblN1Y2Nlc3NBY3Rpb24sXHJcbiAgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbixcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbixcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbixcclxuICBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudEFjdGlvbixcclxuICBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudEZhaWxBY3Rpb24sXHJcbiAgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRTdWNjZXNzQWN0aW9uLFxyXG59IGZyb20gJy4uL2FjdGlvbnMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5hY3Rpb25zJztcclxuaW1wb3J0IHsgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25Xb3JrTGlzdCB9IGZyb20gJy4uL21vZGVscy9jb25jaWxpYXRpb24td29yay1saXN0JztcclxuaW1wb3J0IHsgU2F2ZVN0YXR1c1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc3RhdHVzLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgb3BlbkFwcG9pbnRtZW50RGlhbG9nIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucy9vcGVuLWFwcG9pbnRtZW50JztcclxuaW1wb3J0IHsgR3JhbnRPcHRpb25UeXBlIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dyYW50LW9wdGlvbi10eXBlJztcclxuaW1wb3J0IHsgZ2V0R3JhbnRPcHRpb24gfSBmcm9tICcuLi9mdW5jdGlvbnMvZ2V0LWdyYW50LW9wdGlvbic7XHJcbmltcG9ydCB7IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXZlLXNjaGVkdWxpbmctY2FsbC1iYWNrLm1vZGVsJztcclxuaW1wb3J0IHsgU2F2ZU91dHJlYWNoTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1vdXRyZWFjaC1tb2RlbCc7XHJcbmltcG9ydCB7IFN1Ym1pdFJlYXNzaWduTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc3VibWl0LXJlLWFzc2lnbi1mcm9tbW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3N1Ym1pdC1iYXRjaC1wb29sLWFwcG9pbnRtZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgSHR0cEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge2dvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9jb25jaWxpYXRpb24vbWVudS1hY3Rpb24tZGVmcyc7XHJcbmltcG9ydCB7XHJcbiAgY3NBcHBvaW50bWVudHMsXHJcbiAgY3NBc3NpZ25tZW50cyxcclxuICBpdmFwQXNzaWdubWVudHMsXHJcbiAgamNBcHBvaW50bWVudHMsXHJcbiAgc3BsUmVmQXBwb2ludG1lbnRzLFxyXG4gIHRhZ0FwcG9pbnRtZW50cyxcclxuICB0YWdBc3NpZ25tZW50cyxcclxuICB2cnNBcHBvaW50bWVudHMsXHJcbiAgd2VjYXJlQXBwb2ludG1lbnRzXHJcbn0gZnJvbSAnLi4vY29uc3RhbnRzL29yZ2luYWwtY2F0ZWdvcnktbG9va3VwLXR5cGVzLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IGNvbmNpbGlhdGlvbklkIH0gZnJvbSAnLi4vY29uc3RhbnRzL3dvcmtsaXN0X2lkJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RFZmZlY3Qge1xyXG4gIEBFZmZlY3QoKVxyXG4gIGxvYWRXb3JrTGlzdCQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkQ29uY2lsaWF0aW9uV29ya0xpc3QpLFxyXG4gICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmxvYWRXb3JrTGlzdCgpLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhOiBDb25jaWxpYXRpb25Xb3JrTGlzdCkgPT5cclxuICAgICAgICAgIG5ldyBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RTdWNjZXNzQWN0aW9uKGRhdGEpLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiBvZihuZXcgTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0RmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSkpLFxyXG4gICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgc2F2ZVN0YXR1cyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlQ29uY2lsaWF0aW9uU3RhdHVzQWN0aW9uPihDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVN0YXR1cyksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0FjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2Uuc2F2ZVN0YXR1cyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YTogU2F2ZVN0YXR1c1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uKGRhdGEpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4gb2YobmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG5cclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgbG9hZFdvcmtMaXN0RmFpbEFjdGlvbiQ6IE9ic2VydmFibGU8U2VhbXNIdHRwUmVzcG9uc2U+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKFxyXG4gICAgICBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0RmFpbCxcclxuICAgICAgQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTdGF0dXNGYWlsKSxcclxuICAgIG1hcCgoYWN0aW9uOiBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uIHwgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0ZhaWxBY3Rpb24pID0+IGdldChhY3Rpb24sICdwYXlsb2FkJykpLFxyXG4gICAgdGFwKChyZXNwb25zZTogU2VhbXNIdHRwUmVzcG9uc2UpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlU3RhdHVzU3VjY2VzcyQ6IE9ic2VydmFibGU8U2F2ZUNvbmNpbGlhdGlvblN0YXR1c1N1Y2Nlc3NBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uPihDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVN0YXR1c1N1Y2Nlc3MpLFxyXG4gICAgdGFwKChhY3Rpb246IFNhdmVDb25jaWxpYXRpb25TdGF0dXNTdWNjZXNzQWN0aW9uKSA9PiB7XHJcbiAgICAgIGhhbmRsZVN1Y2Nlc3ModGhpcy50b2FzdHIpO1xyXG4gICAgICBjb25zdCBncmFudE9wdGlvbjogR3JhbnRPcHRpb25UeXBlID0gZ2V0R3JhbnRPcHRpb24oZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSk7XHJcbiAgICAgIGNvbnN0IGFjdGlvbklkID0gZ2V0KGFjdGlvbiwgJ3BheWxvYWQuYWN0aW9uSWQnKTtcclxuICAgICAgY29uc3Qgb3JpZ2luYWxDYXRlZ29yeUlkID0gZ2V0KGFjdGlvbiwgJ3BheWxvYWQub3JpZ2luYWxDYXRlZ29yeUlkJyk7XHJcbiAgICAgIGNvbnN0IGluZnJhY3Rpb25EYXRlID0gZ2V0KGFjdGlvbiwncGF5bG9hZC5pbmZyYWN0aW9uRGF0ZScpO1xyXG4gICAgICBpZiAoYWN0aW9uSWQgPT09IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCkge1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGdldChhY3Rpb24sICdwYXlsb2FkLmxldHRlclR5cGUnKSwgYXNzZXNzbWVudElkOiBnZXQoYWN0aW9uLCAncGF5bG9hZC5hc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKSwgd29ya2xpc3RUeXBlOiBjb25jaWxpYXRpb25JZCxpbmZyYWN0aW9uRGF0ZTogaW5mcmFjdGlvbkRhdGUsIH0pO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXBwb2ludG1lbnRzIHx8IG9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBc3NpZ25tZW50cyB8fCBvcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0FwcG9pbnRtZW50cyB8fCBvcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0Fzc2lnbm1lbnRzKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyldLCB7IHF1ZXJ5UGFyYW1zOiB7IGlzY29uY2lsaWF0aW9uV0w6IHRydWUgfSB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZ3JhbnRPcHRpb24gPT09IEdyYW50T3B0aW9uVHlwZS5BcHBvaW50bWVudCkge1xyXG4gICAgICAgIC8vIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoT3BlbkFwcG9pbnRtZW50RGlhbG9nKGdldChhY3Rpb24sICdwYXlsb2FkLmNhc2VJZCcpKTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKGdyYW50T3B0aW9uID09PSBHcmFudE9wdGlvblR5cGUuRVApIHtcclxuICAgICAgICB0aGlzLnRhYlNlcnZpY2UuZGlzcGF0Y2hBZGRUYWIoe1xyXG4gICAgICAgICAgdGFiTmFtZTogJ2VhLWVwLycgKyBnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKSxcclxuICAgICAgICAgIHJvdXRlOiAnL2VhLWVwLycgKyBnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKSxcclxuICAgICAgICAgIGxhYmVsOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgICAgY2FuQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvZWEtZXAvJHtnZXQoYWN0aW9uLCAncGF5bG9hZC5jYXNlSWQnKX1gXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgb3BlbkRpYWxvZyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5PcGVuQXBwb2ludG1lbnREaWFsb2cpLFxyXG4gICAgZXhoYXVzdE1hcCgoYWN0aW9uOiBPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIG9wZW5BcHBvaW50bWVudERpYWxvZyh0aGlzLmRpYWxvZywgZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSk7XHJcbiAgICB9KSxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RBY3Rpb24oKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWwkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTY2hlZHVsaW5nQ2FsbEJhY2spLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5TYXZlU2NoZWR1bGluZ0NhbGxCYWNrRGV0YWlsRGV0YWlscyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3NBY3Rpb24oeyBkYXRhLCBwYXlsb2FkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZTdWNjZXNzQWN0aW9uJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbikgPT4ge1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuXHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24pID0+IGdldChhY3Rpb24sICdwYXlsb2FkJykpLFxyXG4gICAgdGFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGhhbmRsZUxvYWRGYWlsKHRoaXMudG9hc3RyLCBfbWFwKGdldChyZXNwb25zZSwgJ3NlYW1zRXJyb3JDb2RlcycpLCAndmFsdWUnKSlcclxuXHJcblxyXG4gICAgfSksXHJcblxyXG4gICk7XHJcblxyXG5cclxuICBARWZmZWN0KClcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbCQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0KSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTYXZlT3V0cmVhY2hNb2RlbCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuU2F2ZU91dHJlYWNoV29ya2xpc3REZXRhaWxEZXRhaWxzKHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnlcclxuICAgICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24oeyBkYXRhLCBwYXlsb2FkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24odW5kZWZpbmVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IHVua25vd24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihuZXcgU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVTdWNjZXNzQWN0aW9uJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbikgPT4ge1xyXG5cclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICB9KVxyXG5cclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlRmFpbEFjdGlvbiQ6IE9ic2VydmFibGU8U2VhbXNIdHRwUmVzcG9uc2U+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uKSA9PiBnZXQoYWN0aW9uLCAncGF5bG9hZCcpKSxcclxuICAgIHRhcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG5cclxuICAgIH0pLFxyXG5cclxuICApO1xyXG4gIEBFZmZlY3QoKVxyXG4gIHNhdmVTdGF0dXN3b3JrcyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlUmVhc3NpZ25BY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlUmVhc3NpZ24pLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVSZWFzc2lnbkFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTdWJtaXRSZWFzc2lnbk1vZGVsKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5TYXZlUmVhc3NpZ24ocGF5bG9hZCkucGlwZShcclxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbihkYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlUmVhc3NpZ25GYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVSZWFzc2lnbkZhaWxBY3Rpb24kOiBPYnNlcnZhYmxlPFNlYW1zSHR0cFJlc3BvbnNlPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlUmVhc3NpZ25GYWlsQWN0aW9uPihDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVJlYXNzaWduRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgc2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbiQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVSZWFzc2lnblN1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVSZWFzc2lnblN1Y2Nlc3NBY3Rpb24pID0+IHtcclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0KCk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoKVxyXG4gIHNhdmVCYXRjaEFwcG9pbnRtZW50d29ya3MkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudCksXHJcbiAgICBtYXAoKGFjdGlvbjogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRNb2RlbCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnQocGF5bG9hZCkucGlwZShcclxuICAgICAgICBtYXAoKGRhdGE6IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRTdWNjZXNzQWN0aW9uKHBheWxvYWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24odW5kZWZpbmVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IHVua25vd24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihuZXcgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlQmF0Y2hBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24kOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50U3VjY2Vzc0FjdGlvbj4oQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50U3VjY2VzcyksXHJcbiAgICBtYXAoKGFjdGlvbjogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRTdWNjZXNzQWN0aW9uKSA9PiB7XHJcbiAgICAgIC8vICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGdldChhY3Rpb24sICdwYXlsb2FkLmxldHRlclR5cGUnKSwgYXNzZXNzbWVudElkOiBnZXQoYWN0aW9uLCAncGF5bG9hZC5lYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJykgLHdvcmtsaXN0VHlwZTogY29uY2lsaWF0aW9uSWQsaW5mcmFjdGlvbkRhdGU6IGdldChhY3Rpb24sICdwYXlsb2FkLmluZnJhY3Rpb25EYXRlJyksfSk7XHJcbiAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0KCk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlQmF0Y2hBcHBvaW50bWVudEZhaWxBY3Rpb24kOiBPYnNlcnZhYmxlPFNlYW1zSHR0cFJlc3BvbnNlPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudEZhaWxBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudEZhaWwpLFxyXG4gICAgbWFwKChhY3Rpb246IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50RmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KClcclxuICBwcmludERvY3VtZW50JDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFByaW50RG9jdW1lbnRBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5QcmludERvY3VtZW50KSxcclxuICAgIG1hcCgoYWN0aW9uOiBQcmludERvY3VtZW50QWN0aW9uKSA9PiBhY3Rpb24ucGF5bG9hZCksXHJcbiAgICBzd2l0Y2hNYXAoKHBheWxvYWQ6IHsgbGV0dGVyVHlwZTogbnVtYmVyLCBhc3Nlc3NtZW50SWQ6IG51bWJlciwgQ21zQ2FzZUlEOiBudW1iZXIgLGluZnJhY3Rpb25EYXRlOmFueX0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLnByaW50RG9jdW1lbnQocGF5bG9hZC5sZXR0ZXJUeXBlLCBwYXlsb2FkLmFzc2Vzc21lbnRJZCwgcGF5bG9hZC5DbXNDYXNlSUQsY29uY2lsaWF0aW9uSWQsIHBheWxvYWQuaW5mcmFjdGlvbkRhdGUpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByaW50RG9jdW1lbnRTdWNjZXNzQWN0aW9uKHsgcmVzcG9uc2UsIGRhdGE6IHBheWxvYWQgfSk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4gb2YobmV3IFByaW50RG9jdW1lbnRGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKSksXHJcbiAgICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgcHJpbnRTdWNjZXNzJDogT2JzZXJ2YWJsZTx7IHJlc3BvbnNlOiBhbnkgfT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8UHJpbnREb2N1bWVudFN1Y2Nlc3NBY3Rpb24+KENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5QcmludERvY3VtZW50U3VjY2VzcyksXHJcbiAgICBtYXAoKGFjdGlvbjogUHJpbnREb2N1bWVudFN1Y2Nlc3NBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIHRhcCgocGF5bG9hZDogeyByZXNwb25zZTogYW55IH0pID0+IHtcclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0ciwgJ0dlbmVyYXRlZCBTdWNjZXNzZnVsbHkuJylcclxuXHJcbiAgICAgIGlmIChnZXQocGF5bG9hZCwgJ3Jlc3BvbnNlLmZpbGVDb250ZW50cycpKSB7XHJcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGdldChwYXlsb2FkLCAncmVzcG9uc2UuZmlsZUNvbnRlbnRzJykpO1xyXG4gICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcbiAgICAgICAgY29uc3QgYmxvYjogQmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IGdldChwYXlsb2FkLCAncmVzcG9uc2UuY29udGVudFR5cGUnKSB9KTtcclxuICAgICAgICBjb25zdCBmaWxlVVJMOiBzdHJpbmcgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICB3aW5kb3cub3BlbihmaWxlVVJMLCAnX2JsYW5rJyk7XHJcbiAgICAgIH1cclxuICAgIH0pLFxyXG4gICk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2U6IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdGFiU2VydmljZTogVGFiU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMpIHtcclxuICB9XHJcbn1cclxuIl19
@@ -32,6 +32,7 @@ export class SaveConciliationStatusPayload {
32
32
  this.originalCategoryId = get(data, 'originalCategoryId');
33
33
  this.assessmentId = get(data, 'assessmentId');
34
34
  this.letterType = get(data, 'letterType');
35
+ this.infractionDate = get(data, 'infractionDate');
35
36
  }
36
37
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L21vZGVscy9zYXZlLWNvbmNpbGlhdGlvbi1zdGF0dXMtcGF5bG9hZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTdCLE1BQU0sT0FBTyw2QkFBNkI7SUFrQ3hDLFlBQVksSUFBYTtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb29rdXAgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCB7XHJcbiAgd2xDb25jaWxpYXRpb25JZCA6IG51bWJlcjtcclxuICB3bFByZU5PSUlkIDogbnVtYmVyO1xyXG4gIGFzc2lnbm1lbnRJZDogbnVtYmVyO1xyXG4gIGFwcG9pbnRtZW50SWQ6IG51bWJlcjtcclxuICBhcHBvaW50bWVudE1hcHBpbmdJZDogbnVtYmVyO1xyXG4gIGluZnJhY3Rpb25UeXBlOiBMb29rdXA7XHJcbiAgaW5mcmFjdGlvbkF0OiBMb29rdXA7XHJcbiAgcmVhc29uczogTG9va3VwO1xyXG4gIG90aGVyUmVhc29uOiBzdHJpbmc7XHJcbiAgY29tcGx5OiBMb29rdXA7XHJcbiAgcGVyc29uOiBMb29rdXA7XHJcbiAgY29tbWVudHM6IHN0cmluZztcclxuICBhY3Rpb25JZDogbnVtYmVyO1xyXG4gIGNvbmZpcm1ZZXNObzogYm9vbGVhbjtcclxuICB0aW1la2VlcGluZ1Bjc0lkOiBudW1iZXI7XHJcbiAgY2FzZUlkOiBudW1iZXI7XHJcbiAgaXNHcmFudENvbmZpcm06IGJvb2xlYW47XHJcbiAgaXNKb3M6IGJvb2xlYW47XHJcbiAgaXNPdXRTdGF0aW9uOiBib29sZWFuO1xyXG4gIGFwcHREYXRlOiBzdHJpbmc7XHJcbiAgYXBwdFRpbWU6IHN0cmluZztcclxuICBhcHB0RGF0ZVRpbWU6IHN0cmluZztcclxuICBwaG9uZU51bWJlcjogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgd2lsbGluZ1RvQ29tcGx5OiBib29sZWFuO1xyXG4gIGluUGVyc29uOiBib29sZWFuO1xyXG4gIG91dHJlYWNoTW9kZTogTG9va3VwO1xyXG4gIG91dHJlYWNoT3V0Y29tZTogTG9va3VwO1xyXG4gIGlzV2FudFRvU2VuZENsaWVudEJhY2s6IGJvb2xlYW47XHJcbiAgb3JpZ2luYWxDYXRlZ29yeUlkOm51bWJlcjtcclxuICBhc3Nlc3NtZW50SWQ6IG51bWJlcjtcclxuICBsZXR0ZXJUeXBlOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IHVua25vd24pIHtcclxuICAgIHRoaXMud2xDb25jaWxpYXRpb25JZCA9IGdldChkYXRhLCAnd2xDb25jaWxpYXRpb25JZCcpO1xyXG4gICAgdGhpcy53bFByZU5PSUlkID0gZ2V0KGRhdGEsICd3bFByZU5PSUlkJyk7XHJcbiAgICB0aGlzLmFzc2lnbm1lbnRJZCA9IGdldChkYXRhLCAnYXNzaWdubWVudElkJyk7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50SWQgPSBnZXQoZGF0YSwgJ2FwcG9pbnRtZW50SWQnKTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRNYXBwaW5nSWQgPSBnZXQoZGF0YSwgJ2FwcG9pbnRtZW50TWFwcGluZ0lkJyk7XHJcbiAgICB0aGlzLmluZnJhY3Rpb25UeXBlID0gZ2V0KGRhdGEsICdpbmZyYWN0aW9uVHlwZScpO1xyXG4gICAgdGhpcy5pbmZyYWN0aW9uQXQgPSBnZXQoZGF0YSwgJ2luZnJhY3Rpb25BdCcpO1xyXG4gICAgdGhpcy5yZWFzb25zID0gZ2V0KGRhdGEsICdyZWFzb25zJyk7XHJcbiAgICB0aGlzLm90aGVyUmVhc29uID0gZ2V0KGRhdGEsICdvdGhlclJlYXNvbicpO1xyXG4gICAgdGhpcy5jb21wbHkgPSBnZXQoZGF0YSwgJ2NvbXBseScpO1xyXG4gICAgdGhpcy5wZXJzb24gPSBnZXQoZGF0YSwgJ3BlcnNvbicpO1xyXG4gICAgdGhpcy5jb21tZW50cyA9IGdldChkYXRhLCAnY29tbWVudHMnKTtcclxuICAgIHRoaXMuYWN0aW9uSWQgPSBnZXQoZGF0YSwgJ2FjdGlvbklkJyk7XHJcbiAgICB0aGlzLmNvbmZpcm1ZZXNObyA9IGdldChkYXRhLCAnY29uZmlybVllc05vJyk7XHJcbiAgICB0aGlzLnRpbWVrZWVwaW5nUGNzSWQgPSBnZXQoZGF0YSwgJ3RpbWVrZWVwaW5nUGNzSWQnKTtcclxuICAgIHRoaXMuY2FzZUlkID0gZ2V0KGRhdGEsICdjYXNlSWQnKTtcclxuICAgIHRoaXMuaXNKb3MgPSBnZXQoZGF0YSwgJ2lzSm9zJyk7XHJcbiAgICB0aGlzLmlzT3V0U3RhdGlvbiA9IGdldChkYXRhLCAnaXNPdXRTdGF0aW9uJyk7XHJcbiAgICB0aGlzLmFwcHREYXRlID0gZ2V0KGRhdGEsICdhcHB0RGF0ZScpO1xyXG4gICAgdGhpcy5hcHB0VGltZSA9IGdldChkYXRhLCAnYXBwdFRpbWUnKTtcclxuICAgIHRoaXMuYXBwdERhdGVUaW1lID0gZ2V0KGRhdGEsICdhcHB0RGF0ZVRpbWUnKTtcclxuICAgIHRoaXMucGhvbmVOdW1iZXIgPSBnZXQoZGF0YSwgJ3Bob25lTnVtYmVyJyk7XHJcbiAgICB0aGlzLmVtYWlsID0gZ2V0KGRhdGEsICdlbWFpbCcpO1xyXG4gICAgdGhpcy53aWxsaW5nVG9Db21wbHkgPSBnZXQoZGF0YSwgJ3dpbGxpbmdUb0NvbXBseScpO1xyXG4gICAgdGhpcy5pblBlcnNvbiA9IGdldChkYXRhLCAnaW5QZXJzb24nKTtcclxuICAgIHRoaXMub3V0cmVhY2hNb2RlID0gZ2V0KGRhdGEsICdvdXRyZWFjaE1vZGUnKTtcclxuICAgIHRoaXMub3V0cmVhY2hPdXRjb21lID0gZ2V0KGRhdGEsICdvdXRyZWFjaE91dGNvbWUnKTtcclxuICAgIHRoaXMuaXNXYW50VG9TZW5kQ2xpZW50QmFjayA9IGdldChkYXRhLCAnaXNXYW50VG9TZW5kQ2xpZW50QmFjaycpO1xyXG4gICAgdGhpcy5vcmlnaW5hbENhdGVnb3J5SWQgPSBnZXQoZGF0YSwnb3JpZ2luYWxDYXRlZ29yeUlkJyk7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRJZCA9IGdldChkYXRhLCAnYXNzZXNzbWVudElkJyk7XHJcbiAgICB0aGlzLmxldHRlclR5cGUgPSBnZXQoZGF0YSwgJ2xldHRlclR5cGUnKTtcclxuICB9XHJcbn1cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L21vZGVscy9zYXZlLWNvbmNpbGlhdGlvbi1zdGF0dXMtcGF5bG9hZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTdCLE1BQU0sT0FBTyw2QkFBNkI7SUFtQ3hDLFlBQVksSUFBYTtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb29rdXAgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCB7XHJcbiAgd2xDb25jaWxpYXRpb25JZCA6IG51bWJlcjtcclxuICB3bFByZU5PSUlkIDogbnVtYmVyO1xyXG4gIGFzc2lnbm1lbnRJZDogbnVtYmVyO1xyXG4gIGFwcG9pbnRtZW50SWQ6IG51bWJlcjtcclxuICBhcHBvaW50bWVudE1hcHBpbmdJZDogbnVtYmVyO1xyXG4gIGluZnJhY3Rpb25UeXBlOiBMb29rdXA7XHJcbiAgaW5mcmFjdGlvbkF0OiBMb29rdXA7XHJcbiAgcmVhc29uczogTG9va3VwO1xyXG4gIG90aGVyUmVhc29uOiBzdHJpbmc7XHJcbiAgY29tcGx5OiBMb29rdXA7XHJcbiAgcGVyc29uOiBMb29rdXA7XHJcbiAgY29tbWVudHM6IHN0cmluZztcclxuICBhY3Rpb25JZDogbnVtYmVyO1xyXG4gIGNvbmZpcm1ZZXNObzogYm9vbGVhbjtcclxuICB0aW1la2VlcGluZ1Bjc0lkOiBudW1iZXI7XHJcbiAgY2FzZUlkOiBudW1iZXI7XHJcbiAgaXNHcmFudENvbmZpcm06IGJvb2xlYW47XHJcbiAgaXNKb3M6IGJvb2xlYW47XHJcbiAgaXNPdXRTdGF0aW9uOiBib29sZWFuO1xyXG4gIGFwcHREYXRlOiBzdHJpbmc7XHJcbiAgYXBwdFRpbWU6IHN0cmluZztcclxuICBhcHB0RGF0ZVRpbWU6IHN0cmluZztcclxuICBwaG9uZU51bWJlcjogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgd2lsbGluZ1RvQ29tcGx5OiBib29sZWFuO1xyXG4gIGluUGVyc29uOiBib29sZWFuO1xyXG4gIG91dHJlYWNoTW9kZTogTG9va3VwO1xyXG4gIG91dHJlYWNoT3V0Y29tZTogTG9va3VwO1xyXG4gIGlzV2FudFRvU2VuZENsaWVudEJhY2s6IGJvb2xlYW47XHJcbiAgb3JpZ2luYWxDYXRlZ29yeUlkOm51bWJlcjtcclxuICBhc3Nlc3NtZW50SWQ6IG51bWJlcjtcclxuICBsZXR0ZXJUeXBlOiBudW1iZXI7XHJcbiAgaW5mcmFjdGlvbkRhdGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogdW5rbm93bikge1xyXG4gICAgdGhpcy53bENvbmNpbGlhdGlvbklkID0gZ2V0KGRhdGEsICd3bENvbmNpbGlhdGlvbklkJyk7XHJcbiAgICB0aGlzLndsUHJlTk9JSWQgPSBnZXQoZGF0YSwgJ3dsUHJlTk9JSWQnKTtcclxuICAgIHRoaXMuYXNzaWdubWVudElkID0gZ2V0KGRhdGEsICdhc3NpZ25tZW50SWQnKTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRJZCA9IGdldChkYXRhLCAnYXBwb2ludG1lbnRJZCcpO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudE1hcHBpbmdJZCA9IGdldChkYXRhLCAnYXBwb2ludG1lbnRNYXBwaW5nSWQnKTtcclxuICAgIHRoaXMuaW5mcmFjdGlvblR5cGUgPSBnZXQoZGF0YSwgJ2luZnJhY3Rpb25UeXBlJyk7XHJcbiAgICB0aGlzLmluZnJhY3Rpb25BdCA9IGdldChkYXRhLCAnaW5mcmFjdGlvbkF0Jyk7XHJcbiAgICB0aGlzLnJlYXNvbnMgPSBnZXQoZGF0YSwgJ3JlYXNvbnMnKTtcclxuICAgIHRoaXMub3RoZXJSZWFzb24gPSBnZXQoZGF0YSwgJ290aGVyUmVhc29uJyk7XHJcbiAgICB0aGlzLmNvbXBseSA9IGdldChkYXRhLCAnY29tcGx5Jyk7XHJcbiAgICB0aGlzLnBlcnNvbiA9IGdldChkYXRhLCAncGVyc29uJyk7XHJcbiAgICB0aGlzLmNvbW1lbnRzID0gZ2V0KGRhdGEsICdjb21tZW50cycpO1xyXG4gICAgdGhpcy5hY3Rpb25JZCA9IGdldChkYXRhLCAnYWN0aW9uSWQnKTtcclxuICAgIHRoaXMuY29uZmlybVllc05vID0gZ2V0KGRhdGEsICdjb25maXJtWWVzTm8nKTtcclxuICAgIHRoaXMudGltZWtlZXBpbmdQY3NJZCA9IGdldChkYXRhLCAndGltZWtlZXBpbmdQY3NJZCcpO1xyXG4gICAgdGhpcy5jYXNlSWQgPSBnZXQoZGF0YSwgJ2Nhc2VJZCcpO1xyXG4gICAgdGhpcy5pc0pvcyA9IGdldChkYXRhLCAnaXNKb3MnKTtcclxuICAgIHRoaXMuaXNPdXRTdGF0aW9uID0gZ2V0KGRhdGEsICdpc091dFN0YXRpb24nKTtcclxuICAgIHRoaXMuYXBwdERhdGUgPSBnZXQoZGF0YSwgJ2FwcHREYXRlJyk7XHJcbiAgICB0aGlzLmFwcHRUaW1lID0gZ2V0KGRhdGEsICdhcHB0VGltZScpO1xyXG4gICAgdGhpcy5hcHB0RGF0ZVRpbWUgPSBnZXQoZGF0YSwgJ2FwcHREYXRlVGltZScpO1xyXG4gICAgdGhpcy5waG9uZU51bWJlciA9IGdldChkYXRhLCAncGhvbmVOdW1iZXInKTtcclxuICAgIHRoaXMuZW1haWwgPSBnZXQoZGF0YSwgJ2VtYWlsJyk7XHJcbiAgICB0aGlzLndpbGxpbmdUb0NvbXBseSA9IGdldChkYXRhLCAnd2lsbGluZ1RvQ29tcGx5Jyk7XHJcbiAgICB0aGlzLmluUGVyc29uID0gZ2V0KGRhdGEsICdpblBlcnNvbicpO1xyXG4gICAgdGhpcy5vdXRyZWFjaE1vZGUgPSBnZXQoZGF0YSwgJ291dHJlYWNoTW9kZScpO1xyXG4gICAgdGhpcy5vdXRyZWFjaE91dGNvbWUgPSBnZXQoZGF0YSwgJ291dHJlYWNoT3V0Y29tZScpO1xyXG4gICAgdGhpcy5pc1dhbnRUb1NlbmRDbGllbnRCYWNrID0gZ2V0KGRhdGEsICdpc1dhbnRUb1NlbmRDbGllbnRCYWNrJyk7XHJcbiAgICB0aGlzLm9yaWdpbmFsQ2F0ZWdvcnlJZCA9IGdldChkYXRhLCdvcmlnaW5hbENhdGVnb3J5SWQnKTtcclxuICAgIHRoaXMuYXNzZXNzbWVudElkID0gZ2V0KGRhdGEsICdhc3Nlc3NtZW50SWQnKTtcclxuICAgIHRoaXMubGV0dGVyVHlwZSA9IGdldChkYXRhLCAnbGV0dGVyVHlwZScpO1xyXG4gICAgdGhpcy5pbmZyYWN0aW9uRGF0ZSA9IGdldChkYXRhLCdpbmZyYWN0aW9uRGF0ZScpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -15,6 +15,7 @@ export class SaveStatusResponse {
15
15
  this.originalCategoryId = get(data, 'originalCategoryId');
16
16
  this.assessmentId = get(data, 'assessmentId');
17
17
  this.letterType = get(data, 'letterType');
18
+ this.infractionDate = get(data, 'infractionDate');
18
19
  }
19
20
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1zdGF0dXMtcmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L21vZGVscy9zYXZlLXN0YXR1cy1yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTNCLE1BQU0sT0FBTyxrQkFBa0I7SUFnQjdCLFlBQVksSUFBYTtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9va3VwfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtnZXR9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2F2ZVN0YXR1c1Jlc3BvbnNlIHtcclxuICBhc3NpZ25tZW50SWQ6IG51bWJlcjtcclxuICBhcHBvaW50bWVudElkOiBudW1iZXI7XHJcbiAgaXNBc3NpZ21lbnRUZXJtaW5hdGVkOiBib29sZWFuO1xyXG4gIGlzQXNzaWdtZW50QWN0aXZlOiBib29sZWFuO1xyXG4gIGluZnJhY3Rpb25BdDogTG9va3VwO1xyXG4gIGluZnJhY3Rpb25UeXBlOiBMb29rdXA7XHJcbiAgY29uZmlybVllc05vOiBib29sZWFuO1xyXG4gIGlzSm9zOiBib29sZWFuO1xyXG4gIGlzVmVuZG9yOiBib29sZWFuO1xyXG4gIGNhc2VJZDogbnVtYmVyO1xyXG4gIGFjdGlvbklkOiBudW1iZXI7XHJcbiAgb3JpZ2luYWxDYXRlZ29yeUlkOm51bWJlcjtcclxuICBhc3Nlc3NtZW50SWQ6IG51bWJlcjtcclxuICBsZXR0ZXJUeXBlOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IHVua25vd24pIHtcclxuICAgIHRoaXMuYXNzaWdubWVudElkID0gZ2V0KGRhdGEsICdhc3NpZ25tZW50SWQnKTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRJZCA9IGdldChkYXRhLCAnYXBwb2ludG1lbnRJZCcpO1xyXG4gICAgdGhpcy5pc0Fzc2lnbWVudFRlcm1pbmF0ZWQgPSBnZXQoZGF0YSwgJ2lzQXNzaWdtZW50VGVybWluYXRlZCcpO1xyXG4gICAgdGhpcy5pc0Fzc2lnbWVudEFjdGl2ZSA9IGdldChkYXRhLCAnaXNBc3NpZ21lbnRBY3RpdmUnKTtcclxuICAgIHRoaXMuaW5mcmFjdGlvbkF0ID0gZ2V0KGRhdGEsICdpbmZyYWN0aW9uQXQnKTtcclxuICAgIHRoaXMuaW5mcmFjdGlvblR5cGUgPSBnZXQoZGF0YSwgJ2luZnJhY3Rpb25UeXBlJyk7XHJcbiAgICB0aGlzLmNvbmZpcm1ZZXNObyA9IGdldChkYXRhLCAnY29uZmlybVllc05vJywgZmFsc2UpO1xyXG4gICAgdGhpcy5pc0pvcyA9IGdldChkYXRhLCAnaXNKb3MnKTtcclxuICAgIHRoaXMuaXNWZW5kb3IgPSBnZXQoZGF0YSwgJ2lzVmVuZG9yJyk7XHJcbiAgICB0aGlzLmNhc2VJZCA9IGdldChkYXRhLCAnY2FzZUlkJyk7XHJcbiAgICB0aGlzLmFjdGlvbklkID0gZ2V0KGRhdGEsICdhY3Rpb25JZCcpO1xyXG4gICAgdGhpcy5vcmlnaW5hbENhdGVnb3J5SWQgPSBnZXQoZGF0YSwnb3JpZ2luYWxDYXRlZ29yeUlkJyk7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRJZCA9IGdldChkYXRhLCdhc3Nlc3NtZW50SWQnKTtcclxuICAgIHRoaXMubGV0dGVyVHlwZSA9IGdldChkYXRhLCdsZXR0ZXJUeXBlJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1zdGF0dXMtcmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L21vZGVscy9zYXZlLXN0YXR1cy1yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTNCLE1BQU0sT0FBTyxrQkFBa0I7SUFpQjdCLFlBQVksSUFBYTtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9va3VwfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtnZXR9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2F2ZVN0YXR1c1Jlc3BvbnNlIHtcclxuICBhc3NpZ25tZW50SWQ6IG51bWJlcjtcclxuICBhcHBvaW50bWVudElkOiBudW1iZXI7XHJcbiAgaXNBc3NpZ21lbnRUZXJtaW5hdGVkOiBib29sZWFuO1xyXG4gIGlzQXNzaWdtZW50QWN0aXZlOiBib29sZWFuO1xyXG4gIGluZnJhY3Rpb25BdDogTG9va3VwO1xyXG4gIGluZnJhY3Rpb25UeXBlOiBMb29rdXA7XHJcbiAgY29uZmlybVllc05vOiBib29sZWFuO1xyXG4gIGlzSm9zOiBib29sZWFuO1xyXG4gIGlzVmVuZG9yOiBib29sZWFuO1xyXG4gIGNhc2VJZDogbnVtYmVyO1xyXG4gIGFjdGlvbklkOiBudW1iZXI7XHJcbiAgb3JpZ2luYWxDYXRlZ29yeUlkOm51bWJlcjtcclxuICBhc3Nlc3NtZW50SWQ6IG51bWJlcjtcclxuICBsZXR0ZXJUeXBlOiBudW1iZXI7XHJcbiAgaW5mcmFjdGlvbkRhdGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogdW5rbm93bikge1xyXG4gICAgdGhpcy5hc3NpZ25tZW50SWQgPSBnZXQoZGF0YSwgJ2Fzc2lnbm1lbnRJZCcpO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudElkID0gZ2V0KGRhdGEsICdhcHBvaW50bWVudElkJyk7XHJcbiAgICB0aGlzLmlzQXNzaWdtZW50VGVybWluYXRlZCA9IGdldChkYXRhLCAnaXNBc3NpZ21lbnRUZXJtaW5hdGVkJyk7XHJcbiAgICB0aGlzLmlzQXNzaWdtZW50QWN0aXZlID0gZ2V0KGRhdGEsICdpc0Fzc2lnbWVudEFjdGl2ZScpO1xyXG4gICAgdGhpcy5pbmZyYWN0aW9uQXQgPSBnZXQoZGF0YSwgJ2luZnJhY3Rpb25BdCcpO1xyXG4gICAgdGhpcy5pbmZyYWN0aW9uVHlwZSA9IGdldChkYXRhLCAnaW5mcmFjdGlvblR5cGUnKTtcclxuICAgIHRoaXMuY29uZmlybVllc05vID0gZ2V0KGRhdGEsICdjb25maXJtWWVzTm8nLCBmYWxzZSk7XHJcbiAgICB0aGlzLmlzSm9zID0gZ2V0KGRhdGEsICdpc0pvcycpO1xyXG4gICAgdGhpcy5pc1ZlbmRvciA9IGdldChkYXRhLCAnaXNWZW5kb3InKTtcclxuICAgIHRoaXMuY2FzZUlkID0gZ2V0KGRhdGEsICdjYXNlSWQnKTtcclxuICAgIHRoaXMuYWN0aW9uSWQgPSBnZXQoZGF0YSwgJ2FjdGlvbklkJyk7XHJcbiAgICB0aGlzLm9yaWdpbmFsQ2F0ZWdvcnlJZCA9IGdldChkYXRhLCdvcmlnaW5hbENhdGVnb3J5SWQnKTtcclxuICAgIHRoaXMuYXNzZXNzbWVudElkID0gZ2V0KGRhdGEsJ2Fzc2Vzc21lbnRJZCcpO1xyXG4gICAgdGhpcy5sZXR0ZXJUeXBlID0gZ2V0KGRhdGEsJ2xldHRlclR5cGUnKTtcclxuICAgIHRoaXMuaW5mcmFjdGlvbkRhdGUgPSBnZXQoZGF0YSwnaW5mcmFjdGlvbkRhdGUnKTtcclxuICB9XHJcbn1cclxuIl19