vcomply-workflow-engine 3.4.23 → 3.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -4
  2. package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -3
  3. package/esm2020/lib/formgroup/cs-select/cs-select.component.mjs +5 -5
  4. package/esm2020/lib/formgroup/cs-switch/cs-switch.component.mjs +1 -4
  5. package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +1 -11
  6. package/esm2020/lib/more-option/more-option.component.mjs +5 -6
  7. package/esm2020/lib/pipes/filter.pipe.mjs +1 -2
  8. package/esm2020/lib/pipes/search.pipe.mjs +3 -5
  9. package/esm2020/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +3 -7
  10. package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +1 -5
  11. package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +1 -7
  12. package/esm2020/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +80 -36
  13. package/esm2020/lib/sharedComponents/assessment-list/assessment-list.component.mjs +27 -21
  14. package/esm2020/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +7 -4
  15. package/esm2020/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +3 -4
  16. package/esm2020/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -9
  17. package/esm2020/lib/sharedComponents/bulk-view/bulk-view.component.mjs +9 -7
  18. package/esm2020/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +6 -8
  19. package/esm2020/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +93 -27
  20. package/esm2020/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +11 -9
  21. package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +13 -12
  22. package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +28 -19
  23. package/esm2020/lib/sharedComponents/floating-bar/floating-bar.component.mjs +8 -8
  24. package/esm2020/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +35 -37
  25. package/esm2020/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +7 -7
  26. package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +1 -12
  27. package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +1 -3
  28. package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +1 -13
  29. package/esm2020/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +1 -7
  30. package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +1 -26
  31. package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +1 -15
  32. package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +1 -14
  33. package/esm2020/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +14 -8
  34. package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +1 -13
  35. package/esm2020/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +1 -2
  36. package/esm2020/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +1 -18
  37. package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +2 -2
  38. package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +1 -12
  39. package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +2 -11
  40. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +1 -2
  41. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +1 -2
  42. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +1 -2
  43. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +1 -2
  44. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +1 -2
  45. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +1 -2
  46. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +2 -2
  47. package/esm2020/lib/sharedComponents/group-users-list/group-users-list.component.mjs +1 -3
  48. package/esm2020/lib/sharedComponents/link-program/link-program/link-program.component.mjs +48 -38
  49. package/esm2020/lib/sharedComponents/link-program/restapi.service.mjs +31 -16
  50. package/esm2020/lib/sharedComponents/no-data/no-data.component.mjs +2 -4
  51. package/esm2020/lib/sharedComponents/owner-list/owner-list.component.mjs +12 -10
  52. package/esm2020/lib/sharedComponents/program-listing/program-listing.component.mjs +127 -58
  53. package/esm2020/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +4 -7
  54. package/esm2020/lib/sharedComponents/risk-classification/risk-classification.component.mjs +11 -6
  55. package/esm2020/lib/sharedComponents/select-approvers/select-approvers.component.mjs +1 -2
  56. package/esm2020/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -3
  57. package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +1 -4
  58. package/esm2020/lib/ui-kit/popover/popover-longpress.directive.mjs +1 -3
  59. package/esm2020/lib/ui-kit/popover/popover.component.mjs +26 -12
  60. package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +8 -5
  61. package/esm2020/lib/workflow/shared/components/attributes/attributes.component.mjs +1 -2
  62. package/esm2020/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +1 -4
  63. package/esm2020/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +1 -2
  64. package/esm2020/lib/workflow/shared/components/list-popup/list-popup.component.mjs +1 -4
  65. package/esm2020/lib/workflow/shared/components/table-card/table-card.component.mjs +4 -8
  66. package/esm2020/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +245 -108
  67. package/esm2020/lib/workflow-assessment/workflow-assessment.component.mjs +2 -4
  68. package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +10 -8
  69. package/esm2020/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -5
  70. package/esm2020/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +45 -45
  71. package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +43 -25
  72. package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +4 -4
  73. package/esm2020/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +1 -2
  74. package/esm2020/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +25 -14
  75. package/esm2020/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +6 -3
  76. package/esm2020/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +25 -19
  77. package/esm2020/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +1 -4
  78. package/esm2020/lib/workflow-program/workflow-program.component.mjs +232 -110
  79. package/esm2020/lib/workflow-services/add-risk.service.mjs +1 -2
  80. package/esm2020/lib/workflow-services/assessment.service.mjs +1 -5
  81. package/esm2020/lib/workflow-services/programs.service.mjs +173 -57
  82. package/fesm2015/vcomply-workflow-engine.mjs +1376 -934
  83. package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
  84. package/fesm2020/vcomply-workflow-engine.mjs +1386 -939
  85. package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
  86. package/lib/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
  87. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +4 -5
  88. package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +2 -3
  89. package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +2 -3
  90. package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +2 -4
  91. package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
  92. package/lib/sharedComponents/link-program/restapi.service.d.ts +3 -3
  93. package/lib/sharedComponents/no-data/no-data.component.d.ts +2 -4
  94. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
  95. package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +2 -3
  96. package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +2 -3
  97. package/lib/workflow/shared/components/table-card/table-card.component.d.ts +2 -5
  98. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +8 -9
  99. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +2 -4
  100. package/package.json +1 -1
@@ -27,7 +27,6 @@ export class FrequencyDailyComponent {
27
27
  }
28
28
  ngOnInit() {
29
29
  this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);
30
- console.log('frequencyDatafrequencyData ==>', this.frequencyData);
31
30
  if (this.frequencyData.pattern != '' &&
32
31
  parseInt(this.frequencyData.pattern.split('~')[0]) === 1) {
33
32
  this.populateFrequency();
@@ -62,12 +61,10 @@ export class FrequencyDailyComponent {
62
61
  }
63
62
  }
64
63
  onTimeChanged(event, name) {
65
- console.log('time event =>', event);
66
64
  this.dailyInterval = event;
67
65
  this.getDailyFrequency();
68
66
  }
69
67
  valueChangedFirst(event) {
70
- console.log('event ==>', event);
71
68
  this.dailyInput = event.value;
72
69
  this.getDailyFrequency();
73
70
  }
@@ -81,7 +78,6 @@ export class FrequencyDailyComponent {
81
78
  this.getDailyFrequency();
82
79
  }
83
80
  lifecycleChange(event) {
84
- console.log('event==>', event);
85
81
  switch (event.type) {
86
82
  case 0:
87
83
  this.lifecycleDetails = event.endsBy + '~~0';
@@ -94,23 +90,16 @@ export class FrequencyDailyComponent {
94
90
  break;
95
91
  }
96
92
  if (event.startFrom.toString().length > 10) {
97
- console.log('start 1111');
98
93
  this.startDate = Math.floor(event.startFrom / 1000);
99
94
  }
100
95
  else {
101
- console.log('start 11112222');
102
96
  this.startDate = Math.floor(event.startFrom);
103
97
  }
104
- //this.dailyLifeCycleEndTime = new Date(moment(event.endsBy+ ' 12:00 am', 'DD-MMMM-YYYY HH:mm a').unix() * 1000)
105
- console.log(' this.dailyLifeCycleEndTime ==>', this.dailyLifeCycleEndTime);
106
98
  let endByDate = Math.floor(new Date().getTime() / 1000 + 86400000);
107
- console.log('strat date ====>', this.startDate);
108
- console.log('end date', endByDate);
109
99
  if (event.type === 0) {
110
100
  endByDate = event.endsBy
111
101
  ? moment(event.endsBy + ' 00:00:00', 'DD-MMM-YYYY HH:mm:ss').unix()
112
102
  : endByDate;
113
- console.log('endByDate', endByDate);
114
103
  }
115
104
  this.frequencyInfo.failed_time_utc = endByDate;
116
105
  this.getDailyFrequency();
@@ -138,7 +127,6 @@ export class FrequencyDailyComponent {
138
127
  this.frequencyInfo.reportId = 0;
139
128
  this.frequencyInfo.continuous_failed_days = this.dailyDeactivatedValue;
140
129
  this.frequencyDetails.emit(this.frequencyInfo);
141
- console.log(' this.frequencyInfo ==>', this.frequencyInfo);
142
130
  }
143
131
  }
144
132
  FrequencyDailyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyDailyComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
@@ -160,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
160
148
  }], frequencyDetails: [{
161
149
  type: Output
162
150
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRhaWx5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5L2ZyZXF1ZW5jeS1kYWlseS9mcmVxdWVuY3ktZGFpbHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWRhaWx5L2ZyZXF1ZW5jeS1kYWlseS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QiwwREFBMEQ7QUFDMUQsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRbkMsTUFBTSxPQUFPLHVCQUF1QjtJQXdCbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF0QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLCtCQUErQjtRQUMvQixrQkFBYSxHQUFHLFVBQVUsQ0FBQztRQUMzQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsd0JBQW1CLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQywwQkFBcUIsR0FBRyxJQUFJLElBQUksQ0FDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FDOUMsQ0FBQztRQUNGLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3Qiw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFD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QUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELENBQUM7O29IQXZKVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnVUNsQnBDLCttQ0FnQ0E7MkZEZGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjt1R0FLTixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ2QsSUFBSTtzQkFBWixLQUFLO2dCQWlCRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG4vL2ltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGFpbHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGFpbHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kYWlseS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGFpbHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuXHJcbiAgZGF0ZXBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAvLyNyZWdpb24gZGFpbHkgZnJlcXVlbmN5IHN0YXJ0XHJcbiAgZGFpbHlJbnRlcnZhbCA9ICcxMTo1OSBwbSc7XHJcbiAgZGFpbHlJbnB1dCA9IDE7XHJcbiAgZGFpbHlGYWlsZWQgPSAxO1xyXG4gIGRhaWx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSgpO1xyXG4gIGRhaWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy5kYWlseUxpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwXHJcbiAgKTtcclxuICBkYWlseUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xyXG4gIGRhaWx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gIGRhaWx5RGVhY3RpdmF0ZWRWYWx1ZSA9IDE1O1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcblxyXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICBjb25zb2xlLmxvZygnZnJlcXVlbmN5RGF0YWZyZXF1ZW5jeURhdGEgPT0+JywgdGhpcy5mcmVxdWVuY3lEYXRhKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXREYWlseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XHJcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JykubWFwKE51bWJlcik7XHJcbiAgICBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZS5zcGxpdCgnfn4nKTtcclxuICAgIHRoaXMuZGFpbHlJbnRlcnZhbCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy5kYWlseUlucHV0ID0gcGF0dGVybkluZm9bM107XHJcbiAgICBpZiAoTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pID4gMCkge1xyXG4gICAgICB0aGlzLmRhaWx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhcnREYXRlID0gdGhpcy5mcmVxdWVuY3lEYXRhLnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuZGFpbHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydERhdGUgKiAxMDAwKTtcclxuICAgIHRoaXMuZGFpbHlGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkO1xyXG4gICAgdGhpcy5kYWlseURlYWN0aXZhdGVkVmFsdWUgPSB0aGlzLmZyZXF1ZW5jeURhdGEuY29udGludW91c19mYWlsZWRfZGF5cztcclxuICAgIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KFxyXG4gICAgICAgIGxpZmVjeWNsZUluZm9bMF0gKyAnIDExOjU5IHBtJyxcclxuICAgICAgICAnREQtTU1NTS1ZWVlZIEhIOm1tIGEnXHJcbiAgICAgICkudW5peCgpO1xyXG4gICAgICB0aGlzLmRhaWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZTtcclxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlID09ICcwMDAwLTAwLTAwfn4wJykge1xyXG4gICAgICB0aGlzLmRhaWx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gICAgfSBlbHNlIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcclxuICAgICAgdGhpcy5kYWlseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGFpbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coJ3RpbWUgZXZlbnQgPT4nLCBldmVudCk7XHJcbiAgICB0aGlzLmRhaWx5SW50ZXJ2YWwgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0RGFpbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHZhbHVlQ2hhbmdlZEZpcnN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCA9PT4nLCBldmVudCk7XHJcbiAgICB0aGlzLmRhaWx5SW5wdXQgPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMuZ2V0RGFpbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdkZWFjdGl2YXRlZCcpIHtcclxuICAgICAgdGhpcy5kYWlseURlYWN0aXZhdGVkVmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGFpbHlGYWlsZWQgPSBldmVudC52YWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0RGFpbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnZXZlbnQ9PT4nLCBldmVudCk7XHJcblxyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSBldmVudC5lbmRzQnkgKyAnfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4nICsgZXZlbnQuZW5kYWZ0ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuc3RhcnRGcm9tLnRvU3RyaW5nKCkubGVuZ3RoID4gMTApIHtcclxuICAgICAgY29uc29sZS5sb2coJ3N0YXJ0IDExMTEnKTtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coJ3N0YXJ0IDExMTEyMjIyJyk7XHJcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vdGhpcy5kYWlseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShtb21lbnQoZXZlbnQuZW5kc0J5KyAnIDEyOjAwIGFtJywgJ0RELU1NTU0tWVlZWSBISDptbSBhJykudW5peCgpICogMTAwMClcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5kYWlseUxpZmVDeWNsZUVuZFRpbWUgPT0+JywgdGhpcy5kYWlseUxpZmVDeWNsZUVuZFRpbWUpO1xyXG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwICsgODY0MDAwMDApO1xyXG4gICAgY29uc29sZS5sb2coJ3N0cmF0IGRhdGUgPT09PT4nLCB0aGlzLnN0YXJ0RGF0ZSk7XHJcbiAgICBjb25zb2xlLmxvZygnZW5kIGRhdGUnLCBlbmRCeURhdGUpO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XHJcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxyXG4gICAgICAgIDogZW5kQnlEYXRlO1xyXG4gICAgICBjb25zb2xlLmxvZygnZW5kQnlEYXRlJywgZW5kQnlEYXRlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSBlbmRCeURhdGU7XHJcbiAgICB0aGlzLmdldERhaWx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBnZXREYWlseUZyZXF1ZW5jeSgpIHtcclxuICAgIGlmICh0aGlzLmRhaWx5SW5wdXQgPT09IDEpIHtcclxuICAgICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gJ0RhaWx5IGJ5ICcgKyB0aGlzLmRhaWx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGFpbHlJbnB1dCA+IDEpIHtcclxuICAgICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID1cclxuICAgICAgICAnRXZlcnkgJyArIHRoaXMuZGFpbHlJbnB1dCArICcgZGF5cyBieSAnICsgdGhpcy5kYWlseUludGVydmFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID1cclxuICAgICAgICAnRnJlcXVlbmN5IGRlbm90ZXMgdGhlIHJhdGUgb2Ygb2NjdXJyZW5jZSBvZiBhIHJlc3BvbnNpYmlsaXR5Lic7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XHJcbiAgICAgIDEgKyAnficgKyAnMCcgKyAnficgKyAnMCcgKyAnficgKyB0aGlzLmRhaWx5SW5wdXQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdkYWlseSc7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLmRhaWx5RmFpbGVkO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLmRhaWx5SW50ZXJ2YWw7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLmRhaWx5SW50ZXJ2YWxcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY29udGludW91c19mYWlsZWRfZGF5cyA9IHRoaXMuZGFpbHlEZWFjdGl2YXRlZFZhbHVlO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5mcmVxdWVuY3lJbmZvID09PicsIHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+ZnJlcXVlbmN5LWRhaWx5IHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZGFpbHlcIj5cclxuICA8YXBwLWZyZXF1ZW5jeS10b3BcclxuICAgIFtpZF09XCIwXCJcclxuICAgIFtpbnB1dFRpbWVdPVwiZGFpbHlJbnRlcnZhbFwiXHJcbiAgICBbb2NjdXJyZW5jZUZpcnN0XT1cImRhaWx5SW5wdXRcIlxyXG4gICAgW2ZyZXF1ZW5jeVR5cGVdPVwiMFwiXHJcbiAgICAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQsICdkYWlseUludGVydmFsJylcIlxyXG4gICAgKHZhbHVlQ2hhbmdlZEZpcnN0KT1cInZhbHVlQ2hhbmdlZEZpcnN0KCRldmVudClcIlxyXG4gICAgW21vZGVdPVwibW9kZVwiXHJcbiAgPjwvYXBwLWZyZXF1ZW5jeS10b3A+XHJcbiAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcclxuICAgIFtwYWdlTmFtZV09XCInZGFpbHknXCJcclxuICAgIFtpZF09XCIwXCJcclxuICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgW25vdENvbXBsZXRlZFZhbHVlXT1cImRhaWx5RmFpbGVkXCJcclxuICAgIFtkZWFjdGl2YXRlVmFsdWVdPVwiZGFpbHlEZWFjdGl2YXRlZFZhbHVlXCJcclxuICAgIFtpc0RlYWN0aXZhdGVkXT1cInRydWVcIlxyXG4gICAgW2NvbXBsZXRlZFJlcXVpcmVkXT1cImZhbHNlXCJcclxuICAgIFtwYWdlVHlwZV09XCJwYWdlVHlwZVwiXHJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICA+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxyXG4gIDxhcHAtZnJlcXVlbmN5LWxpZmVjeWNsZVxyXG4gICAgW2lkXT1cIjBcIlxyXG4gICAgW3N0YXJ0RGF0ZV09XCJkYWlseUxpZmVDeWNsZVN0YXJ0XCJcclxuICAgIFtlbmREYXRlXT1cImRhaWx5TGlmZUN5Y2xlRW5kVGltZVwiXHJcbiAgICBbb2NjdXJyYW5jZV09XCJkYWlseUxpZmVjeWNsZU9jY3VyYW5jZVwiXHJcbiAgICBbc2VsZWN0ZWRMaWZlY3ljbGVUeXBlXT1cImRhaWx5U2VsZXRlZExpZmVjeWNsZVR5cGVcIlxyXG4gICAgKHNlbGVjdGVkT2NjdXJhbmNlKT1cImxpZmVjeWNsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gID48L2FwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlPlxyXG48L2Rpdj5cclxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWRhaWx5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5L2ZyZXF1ZW5jeS1kYWlseS9mcmVxdWVuY3ktZGFpbHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWRhaWx5L2ZyZXF1ZW5jeS1kYWlseS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUV2QiwwREFBMEQ7QUFDMUQsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRbkMsTUFBTSxPQUFPLHVCQUF1QjtJQXdCbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF0QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLCtCQUErQjtRQUMvQixrQkFBYSxHQUFHLFVBQVUsQ0FBQztRQUMzQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsd0JBQW1CLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQywwQkFBcUIsR0FBRyxJQUFJLElBQUksQ0FDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FDOUMsQ0FBQztRQUNGLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3Qiw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFD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SUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FDcEUsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7O29IQTFJVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnVUNsQnBDLCttQ0FnQ0E7MkZEZGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjt1R0FLTixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ2QsSUFBSTtzQkFBWixLQUFLO2dCQWlCRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG4vL2ltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktZGFpbHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktZGFpbHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1kYWlseS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5RGFpbHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcclxuXHJcbiAgZGF0ZXBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAvLyNyZWdpb24gZGFpbHkgZnJlcXVlbmN5IHN0YXJ0XHJcbiAgZGFpbHlJbnRlcnZhbCA9ICcxMTo1OSBwbSc7XHJcbiAgZGFpbHlJbnB1dCA9IDE7XHJcbiAgZGFpbHlGYWlsZWQgPSAxO1xyXG4gIGRhaWx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSgpO1xyXG4gIGRhaWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy5kYWlseUxpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwXHJcbiAgKTtcclxuICBkYWlseUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xyXG4gIGRhaWx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xyXG4gIGRhaWx5RGVhY3RpdmF0ZWRWYWx1ZSA9IDE1O1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcblxyXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcclxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuICE9ICcnICYmXHJcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSAxXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2V0RGFpbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgY29uc3QgcGF0dGVybkluZm8gPSB0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybi5zcGxpdCgnficpLm1hcChOdW1iZXIpO1xyXG4gICAgY29uc3QgbGlmZWN5Y2xlSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XHJcbiAgICB0aGlzLmRhaWx5SW50ZXJ2YWwgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkVGltZTtcclxuICAgIHRoaXMuZGFpbHlJbnB1dCA9IHBhdHRlcm5JbmZvWzNdO1xyXG4gICAgaWYgKE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKSA+IDApIHtcclxuICAgICAgdGhpcy5kYWlseUxpZmVjeWNsZU9jY3VyYW5jZSA9IE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydERhdGU7XHJcbiAgICB0aGlzLmRhaWx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlICogMTAwMCk7XHJcbiAgICB0aGlzLmRhaWx5RmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcclxuICAgIHRoaXMuZGFpbHlEZWFjdGl2YXRlZFZhbHVlID0gdGhpcy5mcmVxdWVuY3lEYXRhLmNvbnRpbnVvdXNfZmFpbGVkX2RheXM7XHJcbiAgICBpZiAobGlmZWN5Y2xlSW5mb1swXSAhPT0gJzAwMDAtMDAtMDAnKSB7XHJcbiAgICAgIGNvbnN0IGRhdGVTZWxlY3RlZCA9IG1vbWVudChcclxuICAgICAgICBsaWZlY3ljbGVJbmZvWzBdICsgJyAxMTo1OSBwbScsXHJcbiAgICAgICAgJ0RELU1NTU0tWVlZWSBISDptbSBhJ1xyXG4gICAgICApLnVuaXgoKTtcclxuICAgICAgdGhpcy5kYWlseUxpZmVDeWNsZUVuZFRpbWUgPSBuZXcgRGF0ZShkYXRlU2VsZWN0ZWQgKiAxMDAwKTtcclxuICAgIH1cclxuICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGU7XHJcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZSA9PSAnMDAwMC0wMC0wMH5+MCcpIHtcclxuICAgICAgdGhpcy5kYWlseVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcclxuICAgIH0gZWxzZSBpZiAobGlmZWN5Y2xlSW5mb1swXSAhPT0gJzAwMDAtMDAtMDAnKSB7XHJcbiAgICAgIHRoaXMuZGFpbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhaWx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGFpbHlJbnRlcnZhbCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXREYWlseUZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2VkRmlyc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5kYWlseUlucHV0ID0gZXZlbnQudmFsdWU7XHJcbiAgICB0aGlzLmdldERhaWx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnZGVhY3RpdmF0ZWQnKSB7XHJcbiAgICAgIHRoaXMuZGFpbHlEZWFjdGl2YXRlZFZhbHVlID0gZXZlbnQudmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhaWx5RmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldERhaWx5RnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBsaWZlY3ljbGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSBldmVudC5lbmRzQnkgKyAnfn4wJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4nICsgZXZlbnQuZW5kYWZ0ZXI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+MCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuc3RhcnRGcm9tLnRvU3RyaW5nKCkubGVuZ3RoID4gMTApIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwICsgODY0MDAwMDApO1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcclxuICAgICAgZW5kQnlEYXRlID0gZXZlbnQuZW5kc0J5XHJcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxyXG4gICAgICAgIDogZW5kQnlEYXRlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcclxuICAgIHRoaXMuZ2V0RGFpbHlGcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGdldERhaWx5RnJlcXVlbmN5KCkge1xyXG4gICAgaWYgKHRoaXMuZGFpbHlJbnB1dCA9PT0gMSkge1xyXG4gICAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSAnRGFpbHkgYnkgJyArIHRoaXMuZGFpbHlJbnRlcnZhbDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYWlseUlucHV0ID4gMSkge1xyXG4gICAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICdFdmVyeSAnICsgdGhpcy5kYWlseUlucHV0ICsgJyBkYXlzIGJ5ICcgKyB0aGlzLmRhaWx5SW50ZXJ2YWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICdGcmVxdWVuY3kgZGVub3RlcyB0aGUgcmF0ZSBvZiBvY2N1cnJlbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkuJztcclxuICAgIH1cclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cclxuICAgICAgMSArICd+JyArICcwJyArICd+JyArICcwJyArICd+JyArIHRoaXMuZGFpbHlJbnB1dDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ2RhaWx5JztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMuZGFpbHlGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMuZGFpbHlJbnRlcnZhbDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXHJcbiAgICAgIHRoaXMuZGFpbHlJbnRlcnZhbFxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5saWZlY3ljbGVEZXRhaWxzO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IHRoaXMuc3RhcnREYXRlO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID0gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jb250aW51b3VzX2ZhaWxlZF9kYXlzID0gdGhpcy5kYWlseURlYWN0aXZhdGVkVmFsdWU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxwPmZyZXF1ZW5jeS1kYWlseSB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWRhaWx5XCI+XHJcbiAgPGFwcC1mcmVxdWVuY3ktdG9wXHJcbiAgICBbaWRdPVwiMFwiXHJcbiAgICBbaW5wdXRUaW1lXT1cImRhaWx5SW50ZXJ2YWxcIlxyXG4gICAgW29jY3VycmVuY2VGaXJzdF09XCJkYWlseUlucHV0XCJcclxuICAgIFtmcmVxdWVuY3lUeXBlXT1cIjBcIlxyXG4gICAgKHRpbWVDaGFuZ2VkKT1cIm9uVGltZUNoYW5nZWQoJGV2ZW50LCAnZGFpbHlJbnRlcnZhbCcpXCJcclxuICAgICh2YWx1ZUNoYW5nZWRGaXJzdCk9XCJ2YWx1ZUNoYW5nZWRGaXJzdCgkZXZlbnQpXCJcclxuICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gID48L2FwcC1mcmVxdWVuY3ktdG9wPlxyXG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlXHJcbiAgICBbcGFnZU5hbWVdPVwiJ2RhaWx5J1wiXHJcbiAgICBbaWRdPVwiMFwiXHJcbiAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgIFtub3RDb21wbGV0ZWRWYWx1ZV09XCJkYWlseUZhaWxlZFwiXHJcbiAgICBbZGVhY3RpdmF0ZVZhbHVlXT1cImRhaWx5RGVhY3RpdmF0ZWRWYWx1ZVwiXHJcbiAgICBbaXNEZWFjdGl2YXRlZF09XCJ0cnVlXCJcclxuICAgIFtjb21wbGV0ZWRSZXF1aXJlZF09XCJmYWxzZVwiXHJcbiAgICBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxyXG4gICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cclxuICA8YXBwLWZyZXF1ZW5jeS1saWZlY3ljbGVcclxuICAgIFtpZF09XCIwXCJcclxuICAgIFtzdGFydERhdGVdPVwiZGFpbHlMaWZlQ3ljbGVTdGFydFwiXHJcbiAgICBbZW5kRGF0ZV09XCJkYWlseUxpZmVDeWNsZUVuZFRpbWVcIlxyXG4gICAgW29jY3VycmFuY2VdPVwiZGFpbHlMaWZlY3ljbGVPY2N1cmFuY2VcIlxyXG4gICAgW3NlbGVjdGVkTGlmZWN5Y2xlVHlwZV09XCJkYWlseVNlbGV0ZWRMaWZlY3ljbGVUeXBlXCJcclxuICAgIChzZWxlY3RlZE9jY3VyYW5jZSk9XCJsaWZlY3ljbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbbW9kZV09XCJtb2RlXCJcclxuICA+PC9hcHAtZnJlcXVlbmN5LWxpZmVjeWNsZT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -22,7 +22,6 @@ export class FrequencyDueDateComponent {
22
22
  this.valueChange = new EventEmitter();
23
23
  }
24
24
  ngOnInit() {
25
- console.log('this.page type in due date ==>', this.pageType, this.mode);
26
25
  this.dueDateText = textInfo[this.mode];
27
26
  if (this.mode === 'reviewerFrequency') {
28
27
  this.type = 'review';
@@ -34,11 +33,6 @@ export class FrequencyDueDateComponent {
34
33
  onValueChange(event, actionType) {
35
34
  if (!Number.isNaN(Number(event.target.value)) &&
36
35
  parseInt(event.target.value) > -1) {
37
- console.log({
38
- type: actionType,
39
- value: Number(event.target.value),
40
- pageName: this.pageName,
41
- }, 'dsdsdsdsdsd');
42
36
  this.valueChange.emit({
43
37
  type: actionType,
44
38
  value: Number(event.target.value),
@@ -86,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
86
80
  }], valueChange: [{
87
81
  type: Output
88
82
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWR1ZS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5L2ZyZXF1ZW5jeS1kdWUtZGF0ZS9mcmVxdWVuY3ktZHVlLWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWR1ZS1kYXRlL2ZyZXF1ZW5jeS1kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU85QyxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDO1FBQ1MsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVuQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDOUIsU0FBSSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFaEIsYUFBUSxHQUFnQyxnQkFBZ0IsQ0FBQztRQUN6RCxzQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQywwQkFBMEI7UUFDcEQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsOEJBQThCO1FBQzNELG1CQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsMkJBQTJCO1FBQy9DLHNCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQUN0RCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUliLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFwQi9DLENBQUM7SUFzQmhCLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVSxFQUFFLFVBQWU7UUFDdkMsSUFDRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2pDO1lBQ0EsT0FBTyxDQUFDLEdBQUcsQ0FDVDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLEVBQ0QsYUFBYSxDQUNkLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUN4QixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxVQUFVLEtBQUssV0FBVyxFQUFFO2dCQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxVQUFVLEtBQUssZUFBZSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQzthQUM3QztpQkFBTSxJQUFJLFVBQVUsS0FBSyxhQUFhLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQy9DO1NBQ0Y7SUFDSCxDQUFDOztzSEE1RFUseUJBQXlCOzBHQUF6Qix5QkFBeUIsMlpDUnRDLDJpTkEwS0E7MkZEbEthLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7MEVBTXpCLElBQUk7c0JBQVosS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRleHRJbmZvIH0gZnJvbSAnLi9kdWUtZGF0ZS5jb250YW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWR1ZS1kYXRlLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lEdWVEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgQElucHV0KCkgbW9kZSA9ICcnO1xyXG5cclxuICBkZWZhdWx0V2luZG93OiBudW1iZXIgPSAwO1xyXG4gIGRlZmF1bHRGYWlsZWQ6IG51bWJlciA9IDA7XHJcbiAgZGVmYXVsdERlYWN0aXZhdGU6IG51bWJlciA9IDA7XHJcbiAgdHlwZTogc3RyaW5nID0gdGhpcy5tb2RlO1xyXG5cclxuICBASW5wdXQoKSBwYWdlVHlwZTogJ3Jlc3BvbnNpYmlsaXR5JyB8ICdwb2xpY3knID0gJ3Jlc3BvbnNpYmlsaXR5JztcclxuICBASW5wdXQoKSBjb21wbGV0ZWRSZXF1aXJlZCA9IHRydWU7IC8vIHdoZW4gY29tcGxldGVkIHJlcXVpcmVkXHJcbiAgQElucHV0KCkgbm90Q29tcGxldGVkUmVxdWlyZWQgPSB0cnVlOyAvLyB3aGVuIG5vdCBjb21wbGV0ZWQgcmVxdWlyZWRcclxuICBASW5wdXQoKSBjb21wbGV0ZWRWYWx1ZSA9IDI7IC8vIHRha2UgaW5wdXQgZm9yIGNvbXBsZXRlZFxyXG4gIEBJbnB1dCgpIG5vdENvbXBsZXRlZFZhbHVlID0gMjsgLy8gdGFrZSBpbnB1dCBmb3Igbm90IGNvbXBsZXRlZFxyXG4gIEBJbnB1dCgpIGRlYWN0aXZhdGVWYWx1ZSA9IDE1O1xyXG4gIEBJbnB1dCgpIGlzRGVhY3RpdmF0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpZCA9IDA7XHJcbiAgQElucHV0KCkgcGFnZU5hbWUgPSAnJztcclxuXHJcbiAgZHVlRGF0ZVRleHQ6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5wYWdlIHR5cGUgaW4gZHVlIGRhdGUgPT0+JywgdGhpcy5wYWdlVHlwZSwgdGhpcy5tb2RlKTtcclxuICAgIHRoaXMuZHVlRGF0ZVRleHQgPSB0ZXh0SW5mb1t0aGlzLm1vZGVdO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5Jykge1xyXG4gICAgICB0aGlzLnR5cGUgPSAncmV2aWV3JztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMubW9kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSwgYWN0aW9uVHlwZTogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICFOdW1iZXIuaXNOYU4oTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSkpICYmXHJcbiAgICAgIHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSkgPiAtMVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6IGFjdGlvblR5cGUsXHJcbiAgICAgICAgICB2YWx1ZTogTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICdkc2RzZHNkc2RzZCdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtcclxuICAgICAgICB0eXBlOiBhY3Rpb25UeXBlLFxyXG4gICAgICAgIHZhbHVlOiBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICBwYWdlTmFtZTogdGhpcy5wYWdlTmFtZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYWN0aW9uVHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgICB0aGlzLmNvbXBsZXRlZFZhbHVlID0gdGhpcy5kZWZhdWx0V2luZG93O1xyXG4gICAgICB9IGVsc2UgaWYgKGFjdGlvblR5cGUgPT09ICdub3QgY29tcGxldGVkJykge1xyXG4gICAgICAgIHRoaXMubm90Q29tcGxldGVkVmFsdWUgPSB0aGlzLmRlZmF1bHRGYWlsZWQ7XHJcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uVHlwZSA9PT0gJ2RlYWN0aXZhdGVkJykge1xyXG4gICAgICAgIHRoaXMuZGVhY3RpdmF0ZVZhbHVlID0gdGhpcy5kZWZhdWx0RGVhY3RpdmF0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJbJ3Jlc3BvbnNpYmlsaXR5JywgJ3BvbGljeScsICdyZXZpZXdlckZyZXF1ZW5jeSddLmluY2x1ZGVzKG1vZGUpXCJcclxuICBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b21cIlxyXG4+XHJcbiAgPGRpdiAqbmdJZj1cImNvbXBsZXRlZFJlcXVpcmVkXCIgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0gdngtbXQtNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgICAge3sgZHVlRGF0ZVRleHQud2luZG93T3BlbiB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtLWJveCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMyB2eC1wdC00IHZ4LXBiLTQgdngtZC1ibG9ja1wiXHJcbiAgICA+XHJcbiAgICAgIFRoZSB7eyBwYWdlVHlwZSB9fSBjYW4gYmUge3sgZHVlRGF0ZVRleHQ/LmtleXMgfX0gb24gdGhlIGR1ZSBkYXRlIGFuZFxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImNvdW50TnVtXCJcclxuICAgICAgICBbaWRdPVwiJ2NvbXBsZXRlLScgKyBpZFwiXHJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjb21wbGV0ZWRWYWx1ZVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudCwgJ2NvbXBsZXRlZCcpXCJcclxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgICAgLz5cclxuICAgICAge3sgY29tcGxldGVkVmFsdWUgPCAyID8gXCJkYXlcIiA6IFwiZGF5c1wiIH19XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwXCI+YmVmb3JlPC9zcGFuPiB0aGUgZHVlIGRhdGUuIFdoZXJlIHRoaXMgb2NjdXJzLFxyXG4gICAgICB0aGlzIHdpbGwgc2hvdyBhcyB0aGUge3sgbW9kZSA9PT0gXCJyZXZpZXdlckZyZXF1ZW5jeVwiID8gXCJwb2xpY3lcIiA6IHR5cGUgfX0gYmVpbmdcclxuICAgICAgPHNwYW4gY2xhc3M9XCJjb21wbGV0ZWQtdGV4dCB2eC1mdy01MDBcIlxyXG4gICAgICAgID57eyBkdWVEYXRlVGV4dD8ua2V5cyB9fSBvbiB0aW1lPC9zcGFuXHJcbiAgICAgID4uXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIm5vdENvbXBsZXRlZFJlcXVpcmVkXCIgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0gdngtbXQtNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgICAge3sgZHVlRGF0ZVRleHQuZXh0ZW5zaW9uIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0tYm94IHZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtcC0zIHZ4LXB0LTQgdngtcGItNCB2eC1kLWJsb2NrXCJcclxuICAgID5cclxuICAgICAgVGhlIHt7IHBhZ2VUeXBlIH19IGNhbiBiZSB7eyBkdWVEYXRlVGV4dD8ua2V5cyB9fVxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImNvdW50TnVtXCJcclxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICBbaWRdPVwiJ25vdC1jb21wbGV0ZWQtJyArIGlkXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cIm5vdENvbXBsZXRlZFZhbHVlXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50LCAnbm90IGNvbXBsZXRlZCcpXCJcclxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgICAgLz5cclxuICAgICAge3sgbm90Q29tcGxldGVkVmFsdWUgPCAyID8gXCJkYXlcIiA6IFwiZGF5c1wiIH19XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwXCI+YWZ0ZXI8L3NwYW4+IHRoZSBkdWUgZGF0ZS4gV2hlcmUgdGhpcyBvY2N1cnMsIHRoaXNcclxuICAgICAgd2lsbCBzaG93IGFzIHRoZSB7eyBtb2RlID09PSBcInJldmlld2VyRnJlcXVlbmN5XCIgPyBcInBvbGljeVwiIDogdHlwZSB9fSBiZWluZ1xyXG4gICAgICA8c3BhbiBjbGFzcz1cImRlbGF5LXRleHQgdngtZnctNTAwXCJcclxuICAgICAgICA+e3sgZHVlRGF0ZVRleHQ/LmtleXMgfX0gd2l0aCBkZWxheTwvc3BhblxyXG4gICAgICA+LlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJub3RDb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtIHZ4LW10LTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICAgIHt7IGR1ZURhdGVUZXh0LndpbmRvd0Nsb3NlcyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtLWJveCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMyB2eC1wdC00IHZ4LXBiLTQgdngtZC1ibG9ja1wiXHJcbiAgICA+XHJcbiAgICAgIFRoZSB7eyBwYWdlVHlwZSB9fSBjYW5ub3QgYmUge3sgZHVlRGF0ZVRleHQ/LmtleXMgfX1cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+e3sgbm90Q29tcGxldGVkVmFsdWUgfX08L3NwYW4+XHJcbiAgICAgIHt7IG5vdENvbXBsZXRlZFZhbHVlIDwgMiA/IFwiZGF5XCIgOiBcImRheXNcIiB9fVxyXG4gICAgICA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMFwiPmFmdGVyPC9zcGFuPiB0aGUgZHVlIGRhdGUuIFdoZXJlIHRoaXMgb2NjdXJzLCB0aGlzXHJcbiAgICAgIHdpbGwgc2hvdyBhcyB0aGUge3sgdHlwZSB9fSBiZWluZ1xyXG4gICAgICA8c3BhbiBjbGFzcz1cIm5vdGNvbXBsZXRlZC10ZXh0IHZ4LWZ3LTUwMFwiXHJcbiAgICAgICAgPm5vdFxyXG4gICAgICAgIHt7XHJcbiAgICAgICAgICBkdWVEYXRlVGV4dD8ua2V5cyA9PT0gXCJyZXZpZXdlZFwiID8gXCJjb21wbGV0ZWRcIiA6IGR1ZURhdGVUZXh0Py5rZXlzXHJcbiAgICAgICAgfX08L3NwYW5cclxuICAgICAgPi5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImlzRGVhY3RpdmF0ZWQgJiYgbW9kZSA9PT0gJ3Jlc3BvbnNpYmlsaXR5J1wiXHJcbiAgICBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbSB2eC1tdC01XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxyXG4gICAgICBBVVRPTUFUSUMgREVBQ1RJVkFURTpcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbS1ib3ggdngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTMgdngtcHQtNCB2eC1wYi00IHZ4LWQtYmxvY2tcIlxyXG4gICAgPlxyXG4gICAgICBUaGlzIHt7IHR5cGUgfX0gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGRlYWN0aXZhdGVkLCBpZiBpdCBpcyBub3RcclxuICAgICAge3sgZHVlRGF0ZVRleHQ/LmtleXMgfX1cclxuICAgICAgZm9yXHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGNsYXNzPVwiY291bnROdW1cIlxyXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgIFtpZF09XCInZGVhY3RpdmF0ZScgKyBpZFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkZWFjdGl2YXRlVmFsdWVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQsICdkZWFjdGl2YXRlZCcpXCJcclxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgICAgLz5cclxuICAgICAgY29uc2VjdXRpdmUgZHVlIGRhdGVzLlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBGb3IgUG9saWN5IC0tPlxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWR1ZS1kYXRlXCIgKm5nSWY9XCJtb2RlID09ICdwb2xpY3knICYmIGZhbHNlXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbXBsZXRlZFJlcXVpcmVkXCIgY2xhc3M9XCJmcmVxdWVuY3ktZHVlLWRhdGUtcm93XCI+XHJcbiAgICA8cD5UaGUgcG9saWN5IGNhbiBiZSA8aSBjbGFzcz1cImNvbXBsZXRlZFwiPmF0dGVzdGVkPC9pPjwvcD5cclxuICAgIDxpbnB1dFxyXG4gICAgICBbaWRdPVwiJ2NvbXBsZXRlLScgKyBpZFwiXHJcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImNvbXBsZXRlZFZhbHVlXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudCwgJ2NvbXBsZXRlZCcpXCJcclxuICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgIG1pbj1cIjBcIlxyXG4gICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgIC8+XHJcbiAgICA8cD57eyBjb21wbGV0ZWRWYWx1ZSA8IDIgPyBcImRheVwiIDogXCJkYXlzXCIgfX0gYmVmb3JlIHRoZSBkdWUgZGF0ZS48L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIm5vdENvbXBsZXRlZFJlcXVpcmVkXCIgY2xhc3M9XCJmcmVxdWVuY3ktZHVlLWRhdGUtcm93XCI+XHJcbiAgICA8cD5UaGUgcG9saWN5IGF0dGVzdGF0aW9uIHdpbGwgPGk+ZmFpbDwvaT48L3A+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgIFtpZF09XCInbm90LWNvbXBsZXRlZC0nICsgaWRcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cIm5vdENvbXBsZXRlZFZhbHVlXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudCwgJ25vdCBjb21wbGV0ZWQnKVwiXHJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICBtaW49XCIwXCJcclxuICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAvPlxyXG4gICAgPHA+XHJcbiAgICAgIHt7IG5vdENvbXBsZXRlZFZhbHVlIDwgMiA/IFwiZGF5XCIgOiBcImRheXNcIiB9fSBhZnRlciB0aGUgZHVlIGRhdGUgaWYgaXQgaXNcclxuICAgICAgbm90IGNvbXBsZXRlZC5cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktZHVlLWRhdGVcIiAqbmdJZj1cIm1vZGUgPT0gJ3Jldmlld2VyRnJlcXVlbmN5JyAmJiBmYWxzZVwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWR1ZS1kYXRlLXJvd1wiPlxyXG4gICAgPHA+VGhlIHBvbGljeSBjYW4gYmUgPGkgY2xhc3M9XCJjb21wbGV0ZWRcIj5yZXZpZXdlZDwvaT48L3A+XHJcbiAgICA8aW5wdXRcclxuICAgICAgW2lkXT1cIidjb21wbGV0ZS0nICsgaWRcIlxyXG4gICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJjb21wbGV0ZWRWYWx1ZVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQsICdjb21wbGV0ZWQnKVwiXHJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICBtaW49XCIwXCJcclxuICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAvPlxyXG4gICAgPHA+e3sgY29tcGxldGVkVmFsdWUgPCAyID8gXCJkYXlcIiA6IFwiZGF5c1wiIH19IGJlZm9yZSB0aGUgcmV2aWV3IGRhdGUuPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJub3RDb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWR1ZS1kYXRlLXJvd1wiPlxyXG4gICAgPHA+VGhlIHBvbGljeSByZXZpZXcgd2lsbCA8aT5mYWlsPC9pPjwvcD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgW2lkXT1cIidub3QtY29tcGxldGVkLScgKyBpZFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwibm90Q29tcGxldGVkVmFsdWVcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50LCAnbm90IGNvbXBsZXRlZCcpXCJcclxuICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgIG1pbj1cIjBcIlxyXG4gICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgIC8+XHJcbiAgICA8cD5cclxuICAgICAge3sgbm90Q29tcGxldGVkVmFsdWUgPCAyID8gXCJkYXlcIiA6IFwiZGF5c1wiIH19IGFmdGVyIHRoZSByZXZpZXcgZGF0ZSBpZiBpdFxyXG4gICAgICBpcyBub3QgY29tcGxldGVkLlxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWR1ZS1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5L2ZyZXF1ZW5jeS1kdWUtZGF0ZS9mcmVxdWVuY3ktZHVlLWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWR1ZS1kYXRlL2ZyZXF1ZW5jeS1kdWUtZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU85QyxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDO1FBQ1MsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUVuQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixzQkFBaUIsR0FBVyxDQUFDLENBQUM7UUFDOUIsU0FBSSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFaEIsYUFBUSxHQUFnQyxnQkFBZ0IsQ0FBQztRQUN6RCxzQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQywwQkFBMEI7UUFDcEQseUJBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsOEJBQThCO1FBQzNELG1CQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsMkJBQTJCO1FBQy9DLHNCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtRQUN0RCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1AsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUliLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFwQi9DLENBQUM7SUFzQmhCLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1CQUFtQixFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVUsRUFBRSxVQUFlO1FBQ3ZDLElBQ0UsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNqQztZQUNBLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLFVBQVUsS0FBSyxXQUFXLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQzthQUMxQztpQkFBTSxJQUFJLFVBQVUsS0FBSyxlQUFlLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzdDO2lCQUFNLElBQUksVUFBVSxLQUFLLGFBQWEsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDL0M7U0FDRjtJQUNILENBQUM7O3NIQW5EVSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwyWkNSdEMsMmlOQTBLQTsyRkRsS2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3QjswRUFNekIsSUFBSTtzQkFBWixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGV4dEluZm8gfSBmcm9tICcuL2R1ZS1kYXRlLmNvbnRhbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWR1ZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktZHVlLWRhdGUuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeUR1ZURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuICBASW5wdXQoKSBtb2RlID0gJyc7XHJcblxyXG4gIGRlZmF1bHRXaW5kb3c6IG51bWJlciA9IDA7XHJcbiAgZGVmYXVsdEZhaWxlZDogbnVtYmVyID0gMDtcclxuICBkZWZhdWx0RGVhY3RpdmF0ZTogbnVtYmVyID0gMDtcclxuICB0eXBlOiBzdHJpbmcgPSB0aGlzLm1vZGU7XHJcblxyXG4gIEBJbnB1dCgpIHBhZ2VUeXBlOiAncmVzcG9uc2liaWxpdHknIHwgJ3BvbGljeScgPSAncmVzcG9uc2liaWxpdHknO1xyXG4gIEBJbnB1dCgpIGNvbXBsZXRlZFJlcXVpcmVkID0gdHJ1ZTsgLy8gd2hlbiBjb21wbGV0ZWQgcmVxdWlyZWRcclxuICBASW5wdXQoKSBub3RDb21wbGV0ZWRSZXF1aXJlZCA9IHRydWU7IC8vIHdoZW4gbm90IGNvbXBsZXRlZCByZXF1aXJlZFxyXG4gIEBJbnB1dCgpIGNvbXBsZXRlZFZhbHVlID0gMjsgLy8gdGFrZSBpbnB1dCBmb3IgY29tcGxldGVkXHJcbiAgQElucHV0KCkgbm90Q29tcGxldGVkVmFsdWUgPSAyOyAvLyB0YWtlIGlucHV0IGZvciBub3QgY29tcGxldGVkXHJcbiAgQElucHV0KCkgZGVhY3RpdmF0ZVZhbHVlID0gMTU7XHJcbiAgQElucHV0KCkgaXNEZWFjdGl2YXRlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlkID0gMDtcclxuICBASW5wdXQoKSBwYWdlTmFtZSA9ICcnO1xyXG5cclxuICBkdWVEYXRlVGV4dDogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHVlRGF0ZVRleHQgPSB0ZXh0SW5mb1t0aGlzLm1vZGVdO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5Jykge1xyXG4gICAgICB0aGlzLnR5cGUgPSAncmV2aWV3JztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMubW9kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSwgYWN0aW9uVHlwZTogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICFOdW1iZXIuaXNOYU4oTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSkpICYmXHJcbiAgICAgIHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSkgPiAtMVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgdHlwZTogYWN0aW9uVHlwZSxcclxuICAgICAgICB2YWx1ZTogTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgcGFnZU5hbWU6IHRoaXMucGFnZU5hbWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGFjdGlvblR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0ZWRWYWx1ZSA9IHRoaXMuZGVmYXVsdFdpbmRvdztcclxuICAgICAgfSBlbHNlIGlmIChhY3Rpb25UeXBlID09PSAnbm90IGNvbXBsZXRlZCcpIHtcclxuICAgICAgICB0aGlzLm5vdENvbXBsZXRlZFZhbHVlID0gdGhpcy5kZWZhdWx0RmFpbGVkO1xyXG4gICAgICB9IGVsc2UgaWYgKGFjdGlvblR5cGUgPT09ICdkZWFjdGl2YXRlZCcpIHtcclxuICAgICAgICB0aGlzLmRlYWN0aXZhdGVWYWx1ZSA9IHRoaXMuZGVmYXVsdERlYWN0aXZhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiWydyZXNwb25zaWJpbGl0eScsICdwb2xpY3knLCAncmV2aWV3ZXJGcmVxdWVuY3knXS5pbmNsdWRlcyhtb2RlKVwiXHJcbiAgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tXCJcclxuPlxyXG4gIDxkaXYgKm5nSWY9XCJjb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtIHZ4LW10LTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICAgIHt7IGR1ZURhdGVUZXh0LndpbmRvd09wZW4gfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbS1ib3ggdngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTMgdngtcHQtNCB2eC1wYi00IHZ4LWQtYmxvY2tcIlxyXG4gICAgPlxyXG4gICAgICBUaGUge3sgcGFnZVR5cGUgfX0gY2FuIGJlIHt7IGR1ZURhdGVUZXh0Py5rZXlzIH19IG9uIHRoZSBkdWUgZGF0ZSBhbmRcclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJjb3VudE51bVwiXHJcbiAgICAgICAgW2lkXT1cIidjb21wbGV0ZS0nICsgaWRcIlxyXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiY29tcGxldGVkVmFsdWVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQsICdjb21wbGV0ZWQnKVwiXHJcbiAgICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIHt7IGNvbXBsZXRlZFZhbHVlIDwgMiA/IFwiZGF5XCIgOiBcImRheXNcIiB9fVxyXG4gICAgICA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMFwiPmJlZm9yZTwvc3Bhbj4gdGhlIGR1ZSBkYXRlLiBXaGVyZSB0aGlzIG9jY3VycyxcclxuICAgICAgdGhpcyB3aWxsIHNob3cgYXMgdGhlIHt7IG1vZGUgPT09IFwicmV2aWV3ZXJGcmVxdWVuY3lcIiA/IFwicG9saWN5XCIgOiB0eXBlIH19IGJlaW5nXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY29tcGxldGVkLXRleHQgdngtZnctNTAwXCJcclxuICAgICAgICA+e3sgZHVlRGF0ZVRleHQ/LmtleXMgfX0gb24gdGltZTwvc3BhblxyXG4gICAgICA+LlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJub3RDb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtIHZ4LW10LTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICAgIHt7IGR1ZURhdGVUZXh0LmV4dGVuc2lvbiB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWJvdHRvbS1pdGVtLWJveCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMyB2eC1wdC00IHZ4LXBiLTQgdngtZC1ibG9ja1wiXHJcbiAgICA+XHJcbiAgICAgIFRoZSB7eyBwYWdlVHlwZSB9fSBjYW4gYmUge3sgZHVlRGF0ZVRleHQ/LmtleXMgfX1cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJjb3VudE51bVwiXHJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgW2lkXT1cIidub3QtY29tcGxldGVkLScgKyBpZFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJub3RDb21wbGV0ZWRWYWx1ZVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudCwgJ25vdCBjb21wbGV0ZWQnKVwiXHJcbiAgICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIHt7IG5vdENvbXBsZXRlZFZhbHVlIDwgMiA/IFwiZGF5XCIgOiBcImRheXNcIiB9fVxyXG4gICAgICA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMFwiPmFmdGVyPC9zcGFuPiB0aGUgZHVlIGRhdGUuIFdoZXJlIHRoaXMgb2NjdXJzLCB0aGlzXHJcbiAgICAgIHdpbGwgc2hvdyBhcyB0aGUge3sgbW9kZSA9PT0gXCJyZXZpZXdlckZyZXF1ZW5jeVwiID8gXCJwb2xpY3lcIiA6IHR5cGUgfX0gYmVpbmdcclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZWxheS10ZXh0IHZ4LWZ3LTUwMFwiXHJcbiAgICAgICAgPnt7IGR1ZURhdGVUZXh0Py5rZXlzIH19IHdpdGggZGVsYXk8L3NwYW5cclxuICAgICAgPi5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwibm90Q29tcGxldGVkUmVxdWlyZWRcIiBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbSB2eC1tdC01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxyXG4gICAgICB7eyBkdWVEYXRlVGV4dC53aW5kb3dDbG9zZXMgfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1ib3R0b20taXRlbS1ib3ggdngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTMgdngtcHQtNCB2eC1wYi00IHZ4LWQtYmxvY2tcIlxyXG4gICAgPlxyXG4gICAgICBUaGUge3sgcGFnZVR5cGUgfX0gY2Fubm90IGJlIHt7IGR1ZURhdGVUZXh0Py5rZXlzIH19XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPnt7IG5vdENvbXBsZXRlZFZhbHVlIH19PC9zcGFuPlxyXG4gICAgICB7eyBub3RDb21wbGV0ZWRWYWx1ZSA8IDIgPyBcImRheVwiIDogXCJkYXlzXCIgfX1cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mdy01MDBcIj5hZnRlcjwvc3Bhbj4gdGhlIGR1ZSBkYXRlLiBXaGVyZSB0aGlzIG9jY3VycywgdGhpc1xyXG4gICAgICB3aWxsIHNob3cgYXMgdGhlIHt7IHR5cGUgfX0gYmVpbmdcclxuICAgICAgPHNwYW4gY2xhc3M9XCJub3Rjb21wbGV0ZWQtdGV4dCB2eC1mdy01MDBcIlxyXG4gICAgICAgID5ub3RcclxuICAgICAgICB7e1xyXG4gICAgICAgICAgZHVlRGF0ZVRleHQ/LmtleXMgPT09IFwicmV2aWV3ZWRcIiA/IFwiY29tcGxldGVkXCIgOiBkdWVEYXRlVGV4dD8ua2V5c1xyXG4gICAgICAgIH19PC9zcGFuXHJcbiAgICAgID4uXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJpc0RlYWN0aXZhdGVkICYmIG1vZGUgPT09ICdyZXNwb25zaWJpbGl0eSdcIlxyXG4gICAgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0gdngtbXQtNVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgICAgQVVUT01BVElDIERFQUNUSVZBVEU6XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmcmVxdWVuY3ktYm90dG9tLWl0ZW0tYm94IHZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtcC0zIHZ4LXB0LTQgdngtcGItNCB2eC1kLWJsb2NrXCJcclxuICAgID5cclxuICAgICAgVGhpcyB7eyB0eXBlIH19IHdpbGwgYmUgYXV0b21hdGljYWxseSBkZWFjdGl2YXRlZCwgaWYgaXQgaXMgbm90XHJcbiAgICAgIHt7IGR1ZURhdGVUZXh0Py5rZXlzIH19XHJcbiAgICAgIGZvclxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzcz1cImNvdW50TnVtXCJcclxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICBbaWRdPVwiJ2RlYWN0aXZhdGUnICsgaWRcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGVhY3RpdmF0ZVZhbHVlXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50LCAnZGVhY3RpdmF0ZWQnKVwiXHJcbiAgICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIGNvbnNlY3V0aXZlIGR1ZSBkYXRlcy5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gRm9yIFBvbGljeSAtLT5cclxuPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1kdWUtZGF0ZVwiICpuZ0lmPVwibW9kZSA9PSAncG9saWN5JyAmJiBmYWxzZVwiPlxyXG4gIDxkaXYgKm5nSWY9XCJjb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWR1ZS1kYXRlLXJvd1wiPlxyXG4gICAgPHA+VGhlIHBvbGljeSBjYW4gYmUgPGkgY2xhc3M9XCJjb21wbGV0ZWRcIj5hdHRlc3RlZDwvaT48L3A+XHJcbiAgICA8aW5wdXRcclxuICAgICAgW2lkXT1cIidjb21wbGV0ZS0nICsgaWRcIlxyXG4gICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJjb21wbGV0ZWRWYWx1ZVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQsICdjb21wbGV0ZWQnKVwiXHJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICBtaW49XCIwXCJcclxuICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAvPlxyXG4gICAgPHA+e3sgY29tcGxldGVkVmFsdWUgPCAyID8gXCJkYXlcIiA6IFwiZGF5c1wiIH19IGJlZm9yZSB0aGUgZHVlIGRhdGUuPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJub3RDb21wbGV0ZWRSZXF1aXJlZFwiIGNsYXNzPVwiZnJlcXVlbmN5LWR1ZS1kYXRlLXJvd1wiPlxyXG4gICAgPHA+VGhlIHBvbGljeSBhdHRlc3RhdGlvbiB3aWxsIDxpPmZhaWw8L2k+PC9wPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICBbaWRdPVwiJ25vdC1jb21wbGV0ZWQtJyArIGlkXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJub3RDb21wbGV0ZWRWYWx1ZVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQsICdub3QgY29tcGxldGVkJylcIlxyXG4gICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgbWluPVwiMFwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgLz5cclxuICAgIDxwPlxyXG4gICAgICB7eyBub3RDb21wbGV0ZWRWYWx1ZSA8IDIgPyBcImRheVwiIDogXCJkYXlzXCIgfX0gYWZ0ZXIgdGhlIGR1ZSBkYXRlIGlmIGl0IGlzXHJcbiAgICAgIG5vdCBjb21wbGV0ZWQuXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWR1ZS1kYXRlXCIgKm5nSWY9XCJtb2RlID09ICdyZXZpZXdlckZyZXF1ZW5jeScgJiYgZmFsc2VcIj5cclxuICA8ZGl2ICpuZ0lmPVwiY29tcGxldGVkUmVxdWlyZWRcIiBjbGFzcz1cImZyZXF1ZW5jeS1kdWUtZGF0ZS1yb3dcIj5cclxuICAgIDxwPlRoZSBwb2xpY3kgY2FuIGJlIDxpIGNsYXNzPVwiY29tcGxldGVkXCI+cmV2aWV3ZWQ8L2k+PC9wPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIFtpZF09XCInY29tcGxldGUtJyArIGlkXCJcclxuICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiY29tcGxldGVkVmFsdWVcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50LCAnY29tcGxldGVkJylcIlxyXG4gICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgbWluPVwiMFwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgLz5cclxuICAgIDxwPnt7IGNvbXBsZXRlZFZhbHVlIDwgMiA/IFwiZGF5XCIgOiBcImRheXNcIiB9fSBiZWZvcmUgdGhlIHJldmlldyBkYXRlLjwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwibm90Q29tcGxldGVkUmVxdWlyZWRcIiBjbGFzcz1cImZyZXF1ZW5jeS1kdWUtZGF0ZS1yb3dcIj5cclxuICAgIDxwPlRoZSBwb2xpY3kgcmV2aWV3IHdpbGwgPGk+ZmFpbDwvaT48L3A+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgIFtpZF09XCInbm90LWNvbXBsZXRlZC0nICsgaWRcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cIm5vdENvbXBsZXRlZFZhbHVlXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudCwgJ25vdCBjb21wbGV0ZWQnKVwiXHJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICBtaW49XCIwXCJcclxuICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiXHJcbiAgICAvPlxyXG4gICAgPHA+XHJcbiAgICAgIHt7IG5vdENvbXBsZXRlZFZhbHVlIDwgMiA/IFwiZGF5XCIgOiBcImRheXNcIiB9fSBhZnRlciB0aGUgcmV2aWV3IGRhdGUgaWYgaXRcclxuICAgICAgaXMgbm90IGNvbXBsZXRlZC5cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -33,14 +33,11 @@ export class FrequencyLifecycleComponent {
33
33
  this.endDateConfig['min'] = moment(new Date(new Date(this.startDate).getTime() + 86400000));
34
34
  this.getEndDate(this.startDate);
35
35
  this.changeEndDateObj(this.endDate);
36
- console.log('endDate ==>', this.endDate);
37
36
  }
38
37
  getEndDate(event) {
39
38
  const time = moment(this.endDate).format('DD-MM-YYYY HH:mm:ss');
40
39
  const getUnixTime = moment(time.split(' ')[0] + ' 00:00:00', 'DD-MM-YYYY HH:mm:ss').unix();
41
- console.log('end date ==>time', time, getUnixTime);
42
40
  this.startDateUnix = moment(event).unix();
43
- console.log(' this.startDateUnix ==>', this.startDate, this.startDateUnix);
44
41
  if (this.startDateUnix >= getUnixTime) {
45
42
  this.endDate = moment(new Date(this.startDate).getTime() + 86400000);
46
43
  }
@@ -52,23 +49,17 @@ export class FrequencyLifecycleComponent {
52
49
  this.endDateObject = new Date(moment(date).unix() * 1000);
53
50
  }
54
51
  ngOnChanges(change) {
55
- console.log('changes ==>', change, this.selectedLifecycleType);
56
52
  this.endBy = moment(this.endDate)
57
53
  .format('DD-MMMM-YYYYTHH:mm:ssZ')
58
54
  .split('T')[0];
59
55
  }
60
- ngDoCheck() {
61
- // console.log("this.endDate ==> DoCcheck", this.endDate, this.startDate)
62
- }
63
56
  openDatePicker() {
64
57
  const newDate = moment(this.startDate);
65
- console.log('newDate ==>', newDate);
66
58
  this.datePicker.api.moveCalendarTo(newDate);
67
59
  this.datePicker.api.open();
68
60
  this.datePickerOverlay = true;
69
61
  }
70
62
  openDatePicker1() {
71
- console.log('end date ==>', this.endDate);
72
63
  this.datePicker1.api.moveCalendarTo(this.endDate);
73
64
  this.datePicker1.api.open();
74
65
  this.datePickerOverlay = true;
@@ -91,11 +82,9 @@ export class FrequencyLifecycleComponent {
91
82
  }
92
83
  // ends after selection
93
84
  endsAfter(event) {
94
- console.log('lifecycle occurrance', event);
95
85
  if (!Number.isNaN(Number(this.occurrance)) &&
96
86
  this.occurrance !== 0 &&
97
87
  Number(this.occurrance) > 0) {
98
- console.log('IN');
99
88
  this.selectedOccurance.emit({
100
89
  type: this.selectedLifecycleType,
101
90
  endsBy: this.endBy,
@@ -104,49 +93,38 @@ export class FrequencyLifecycleComponent {
104
93
  });
105
94
  }
106
95
  else {
107
- console.log('outt');
108
96
  this.occurrance = 10;
109
97
  }
110
98
  return this.occurrance;
111
99
  }
112
100
  // End by change
113
101
  endByChange(event) {
114
- console.log(' On select ==>', event);
115
102
  this.datePicker1.api.open();
116
103
  this.datePickerOverlay = true;
117
104
  this.endDate = event.date;
118
105
  this.changeEndDateObj(this.endDate);
119
- // console.log(event, );
120
106
  this.endBy = moment(event.date).format('DD-MMMM-YYYY');
121
- // console.log(this.endBy);
122
107
  const dateObject = {
123
108
  type: this.selectedLifecycleType,
124
109
  endsBy: this.endBy,
125
110
  endafter: this.occurrance,
126
111
  startFrom: this.startDateUnix,
127
112
  };
128
- console.log('dateObject ==>', dateObject);
129
113
  this.selectedOccurance.emit(dateObject);
130
- // return this.endBy
131
114
  }
132
115
  // start from change event
133
116
  startFromChange(event) {
134
- console.log(' start date change', event, this.endDate);
135
117
  const time = moment(this.endDate).format('DD-MM-YYYY HH:mm:ss');
136
118
  const getUnixTime = moment(time.split(' ')[0] + ' 00:00:00', 'DD-MM-YYYY HH:mm:ss').unix();
137
- console.log('end date ==>time', time, getUnixTime);
138
119
  this.startDateUnix = moment(event.date).unix();
139
- console.log(' this.startDateUnix ==>', this.startDate, this.startDateUnix);
140
120
  if (this.startDateUnix >= getUnixTime) {
141
121
  this.endDate = moment(this.startDateUnix * 1000 + 86400000);
142
122
  this.changeEndDateObj(this.endDate);
143
- console.log('this.endDate ==>', this.endDate, this.startDate);
144
123
  this.endBy = moment(this.endDate)
145
124
  .format('DD-MMMM-YYYYTHH:mm:ssZ')
146
125
  .split('T')[0];
147
126
  }
148
127
  this.endDateConfig['min'] = Object.assign(moment(new Date(new Date(event.date).getTime() + 86400000)));
149
- console.log('this.endDateConfig ==>', this.endDateConfig);
150
128
  this.selectedOccurance.emit({
151
129
  type: this.selectedLifecycleType,
152
130
  endsBy: this.endBy,
@@ -154,9 +132,6 @@ export class FrequencyLifecycleComponent {
154
132
  startFrom: this.startDateUnix,
155
133
  });
156
134
  }
157
- endDateModelChange(event) {
158
- console.log('endDateModelChange ==>', event);
159
- }
160
135
  }
161
136
  FrequencyLifecycleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyLifecycleComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
162
137
  FrequencyLifecycleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FrequencyLifecycleComponent, selector: "app-frequency-lifecycle", inputs: { startDate: "startDate", endDate: "endDate", endBy: "endBy", occurrance: "occurrance", selectedLifecycleType: "selectedLifecycleType", id: "id", mode: "mode" }, outputs: { selectedOccurance: "selectedOccurance" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "datePicker1", first: true, predicate: ["datePicker1"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"frequency-lifecycle-responsibility vx-mt-5\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n {{ textDetails?.header }}\r\n </div>\r\n <div\r\n class=\"frequency-lifecycle-responsibility-inner vx-p-3 vx-pt-2 vx-d-flex vx-align-center vx-justify-between\"\r\n >\r\n <div class=\"frequency-lifecycle-responsibility-item\" [class.with-policy]=\"mode === 'policy' || mode === 'reviewerFrequency'\">\r\n <div class=\"vx-d-block\">\r\n <div\r\n *ngIf=\"mode === 'responsibility'\"\r\n class=\"heading vx-fs-12 vx-label-txt vx-mb-1\"\r\n >\r\n Starts From\r\n </div>\r\n <div\r\n class=\"lifecycle-box vx-d-flex vx-align-center vx-p-2\"\r\n (click)=\"openDatePicker(); datePickerOverlay = true\"\r\n [id]=\"'form-field' + id\"\r\n >\r\n <i class=\"icons vx-fs-16 vx-paragraph-txt vx-mr-3\">&#xe996;</i>\r\n <input\r\n class=\"start-date-input\"\r\n type=\"text\"\r\n [value]=\"startDate | date : 'dd MMM yyyy'\"\r\n [placeholder]=\"startDate | date : 'dd MMM yyyy'\"\r\n readonly\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"mode === 'responsibility'\"\r\n class=\"frequency-lifecycle-responsibility-item\"\r\n >\r\n <div class=\"item-inner vx-d-block\">\r\n <div class=\"heading vx-fs-12 vx-label-txt vx-mb-1\">Ends By</div>\r\n <app-cs-radio\r\n [checked]=\"selectedLifecycleType == 0\"\r\n (checkedEvent)=\"typeSelected(0)\"\r\n >\r\n <div\r\n class=\"date-field\"\r\n (click)=\"openDatePicker1(); datePickerOverlay = true\"\r\n >\r\n <i class=\"icons calendar-icon vx-fs-16 vx-paragraph-txt\"\r\n >&#xe92d;</i\r\n >\r\n <input\r\n type=\"text\"\r\n [value]=\"endDateObject | date : 'dd MMM yyyy'\"\r\n [placeholder]=\"endDateObject | date : 'dd MMM yyyy'\"\r\n readonly\r\n />\r\n </div>\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"mode === 'responsibility'\"\r\n class=\"frequency-lifecycle-responsibility-item\"\r\n >\r\n <div class=\"item-inner vx-d-block\">\r\n <div class=\"heading vx-fs-12 vx-label-txt vx-mb-1\">Ends After</div>\r\n <app-cs-radio\r\n [checked]=\"selectedLifecycleType == 1\"\r\n (checkedEvent)=\"typeSelected(1)\"\r\n >\r\n <input\r\n class=\"input-field\"\r\n type=\"number\"\r\n [(ngModel)]=\"occurrance\"\r\n (focusout)=\"endsAfter($event)\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n <span class=\"vx-fs-11 vx-paragraph-txt vx-ml-2\">Occurrences</span>\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"mode === 'responsibility'\"\r\n class=\"frequency-lifecycle-responsibility-item\"\r\n >\r\n <div class=\"item-inner vx-d-block\">\r\n <div class=\"heading vx-fs-12 vx-label-txt vx-mb-1\">Ongoing</div>\r\n <app-cs-radio\r\n [checked]=\"selectedLifecycleType == 2\"\r\n (checkedEvent)=\"typeSelected(2)\"\r\n >\r\n <span class=\"vx-fs-11 vx-paragraph-txt vx-ml-2\"\r\n >The responsibility will perpetually exist.</span\r\n >\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- start date date picker -->\r\n<dp-date-picker\r\n #datePicker\r\n [id]=\"'start-date-' + id\"\r\n [placeholder]=\"startDate | date : 'dd MMM yyyy'\"\r\n [(ngModel)]=\"startDate\"\r\n [config]=\"startDateConfig\"\r\n (onSelect)=\"\r\n openDatePicker();\r\n startFromChange($event);\r\n showDateError = false;\r\n datePickerOverlay = false\r\n \"\r\n></dp-date-picker>\r\n<div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatepicker()\"\r\n *ngIf=\"datePickerOverlay\"\r\n></div>\r\n\r\n<!-- end date date picker -->\r\n<dp-date-picker\r\n #datePicker1\r\n [(ngModel)]=\"endDate\"\r\n [placeholder]=\"endDateObject | date : 'dd MMM yyyy'\"\r\n [id]=\"'end-by-input-' + id\"\r\n [config]=\"endDateConfig\"\r\n [minDate]=\"endDateConfig['min']\"\r\n (onSelect)=\"\r\n endByChange($event); showDateError = false; datePickerOverlay = false\r\n \"\r\n></dp-date-picker>\r\n<div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatepicker()\"\r\n *ngIf=\"datePickerOverlay\"\r\n></div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .frequency-lifecycle-responsibility-inner{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-lifecycle-responsibility-inner mat-radio-group{display:flex;justify-content:space-between}::ng-deep .frequency-lifecycle-responsibility-item{position:relative;height:3.375rem}::ng-deep .frequency-lifecycle-responsibility-item.with-policy{height:unset;margin-top:.25rem}::ng-deep .frequency-lifecycle-responsibility-item:first-of-type{width:8.5rem}::ng-deep .frequency-lifecycle-responsibility-item:first-of-type label:after,::ng-deep .frequency-lifecycle-responsibility-item:first-of-type label:before{display:none}::ng-deep .frequency-lifecycle-responsibility-item:first-of-type label .heading{padding-left:0}::ng-deep .frequency-lifecycle-responsibility-item:nth-child(2){width:8.5rem}::ng-deep .frequency-lifecycle-responsibility-item:nth-child(3){width:11.25rem}::ng-deep .frequency-lifecycle-responsibility-item:last-of-type{width:14.25rem}::ng-deep .frequency-lifecycle-responsibility-item .item-inner{position:relative}::ng-deep .frequency-lifecycle-responsibility-item .item-inner .heading{padding-left:1.75rem}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio{position:absolute;top:0;left:0;width:100%;height:3.375rem}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item{width:100%;position:relative}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item .radio{position:absolute;top:-17px;left:0;width:1rem;height:1rem}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item .radiomark{position:absolute;top:2px;left:0;width:1rem;height:1rem}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item .value{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;width:calc(100% + 1rem);max-width:100%!important;height:2rem;cursor:pointer;text-transform:none;margin:22px 0 0 -1rem!important}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item .value .date-field{display:flex;align-items:center;position:relative;width:100%;height:100%;pointer-events:none}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item .value .date-field .calendar-icon{position:absolute;top:7px;left:.5rem}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item .value .date-field input{background:transparent;border-radius:0;border:none;color:#747576;font-size:11px;width:100%;height:1.875rem;padding:0 .5rem 0 2.25rem;position:absolute;top:0;left:0;cursor:pointer}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item input:checked~span.value{pointer-events:auto;margin:22px 0 0!important}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item input:checked~span.value .date-field,::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .radio-item input:checked~span.value .input-field{pointer-events:auto!important}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .input-field{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#747576;display:inline-block;font-size:13px;text-align:center;width:2.75rem;height:1.25rem;padding:0 .125rem;margin:0 .5rem;outline:none;pointer-events:none}::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .input-field::-webkit-inner-spin-button,::ng-deep .frequency-lifecycle-responsibility-item .item-inner app-cs-radio .input-field::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-lifecycle-responsibility-item .lifecycle-box{border-radius:.25rem;border:1px solid #dbdbdb;height:2rem;position:relative;cursor:pointer}::ng-deep .frequency-lifecycle-responsibility-item .lifecycle-box .start-date-input{background:transparent;border-radius:0;border:none;color:#747576;font-size:11px;width:100%;outline:none;cursor:pointer}::ng-deep .frequency-lifecycle{border-top:1px solid #f1f1f1}::ng-deep .frequency-lifecycle-head{background:#fbfbfb;padding:8px 20px}::ng-deep .frequency-lifecycle-title{margin:0;padding:0;font-size:12px;line-height:16px;color:#747576;text-transform:uppercase}::ng-deep .frequency-lifecycle-body{padding:10px 20px;display:flex}::ng-deep .frequency-lifecycle-body .column{width:25%;padding:0;position:relative}::ng-deep .frequency-lifecycle-body .column label.text{color:#747576;font-size:11px;text-transform:uppercase;margin:0 0 4px;font-weight:500;line-height:16px;display:block}::ng-deep .frequency-lifecycle-body .column+.column{padding-left:28px}::ng-deep .frequency-lifecycle-body .column:first-child{width:20%}::ng-deep .frequency-lifecycle-body .column:last-child{width:30%}::ng-deep .frequency-lifecycle-body .column .block,::ng-deep .frequency-lifecycle-body .column span.value{display:flex;font-size:13px;color:#747576;border:1px solid #f1f1f1;border-radius:2px;padding:0 4px 0 16px;box-sizing:border-box;min-height:48px;justify-content:center;align-items:center;background:#fff;cursor:pointer;text-transform:none;margin:0!important}::ng-deep .frequency-lifecycle-body .column .block .date-picker,::ng-deep .frequency-lifecycle-body .column span.value .date-picker{display:flex;align-items:center;position:relative}::ng-deep .frequency-lifecycle-body .column .block .date-picker i,::ng-deep .frequency-lifecycle-body .column span.value .date-picker i{font-size:16px;margin-right:8px}::ng-deep .frequency-lifecycle-body .column .block .date-picker input,::ng-deep .frequency-lifecycle-body .column span.value .date-picker input{border:none;outline:none;width:100%;background:transparent;font-size:12px;cursor:pointer;line-height:40px}::ng-deep .frequency-lifecycle-body .column .block.active,::ng-deep .frequency-lifecycle-body .column span.value.active{border:1px solid #97d2a0;background:#d6f2da}::ng-deep .frequency-lifecycle-body .column app-cs-radio{display:flex}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item span.radio,::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item svg{position:absolute;top:14px;left:-10px;height:20px;width:20px}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item span.value{max-width:100%;pointer-events:none;font-size:13px;color:#747576;width:100%}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item input:checked~span.value{pointer-events:auto;border:1px solid #97d2a0;background:#d6f2da}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item input.day{-moz-appearance:textfield;border:none;width:40px;padding:4px;text-align:center;border-bottom:2px solid #dcdcdc;line-height:26px;color:#161b2f;font-weight:400;outline:none;background:transparent;margin:0 4px 0 0;font-size:13px}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item input.day::-webkit-outer-spin-button,::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item input.day::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}::ng-deep .frequency-lifecycle-body .column app-cs-radio label.radio-item span{font-size:13px;color:#747576}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-26px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0!important;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DatePickerComponent, selector: "dp-date-picker", inputs: ["mode", "placeholder", "disabled", "config", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
@@ -186,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
186
161
  }], selectedOccurance: [{
187
162
  type: Output
188
163
  }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktbGlmZWN5Y2xlL2ZyZXF1ZW5jeS1saWZlY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWxpZmVjeWNsZS9mcmVxdWVuY3ktbGlmZWN5Y2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUVuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFPcEQsTUFBTSxPQUFPLDJCQUEyQjtJQXdCdEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFwQnRELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQU0zQixxQkFBcUI7UUFDWixjQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUVoRSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLDBCQUFx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QUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDOzt3SEF0TFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsMGZDckJ4Qyw0bkpBeUlBOzJGRHBIYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCO3VHQUtWLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDRyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBV2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIERvQ2hlY2ssXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBsaWZlY3ljbGVUZXh0IH0gZnJvbSAnLi9saWZlY3ljbC5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5TGlmZWN5Y2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIERvQ2hlY2sge1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyMScpIGRhdGVQaWNrZXIxITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuXHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgc3RhcnREYXRlVW5peCA9IERhdGUubm93KCk7XHJcbiAgZW5kRGF0ZU9iamVjdDogYW55O1xyXG4gIHN0YXJ0RGF0ZUNvbmZpZzogYW55O1xyXG4gIGVuZERhdGVDb25maWc6IGFueTtcclxuICB0ZXh0RGV0YWlsczogYW55O1xyXG5cclxuICAvLyBBbGwgaW5wdXQgdmFyaWFibGVcclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIEBJbnB1dCgpIGVuZERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGUpLmdldFRpbWUoKSArIDg2NDAwMDAwKTtcclxuICBASW5wdXQoKSBlbmRCeTogYW55O1xyXG4gIEBJbnB1dCgpIG9jY3VycmFuY2UgPSAxMDtcclxuICBASW5wdXQoKSBzZWxlY3RlZExpZmVjeWNsZVR5cGUgPSAyOyAvLyAwID0gRW5kIGJ5ICwgIEVuZCBBZnRlciwgMiA9IHBlcnBldHVhbFxyXG4gIEBJbnB1dCgpIGlkID0gMDtcclxuICBASW5wdXQoKSBtb2RlOiBhbnk7XHJcblxyXG4gIC8vICBsaWZlY3ljbGUgb3V0cHV0XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkT2NjdXJhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHREZXRhaWxzID0gbGlmZWN5Y2xlVGV4dFt0aGlzLm1vZGVdO1xyXG4gICAgdGhpcy5zdGFydERhdGVDb25maWcgPSBPYmplY3QuYXNzaWduKHtcclxuICAgICAgLi4udGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRhdGVDb25maWcsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZW5kRGF0ZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZGF0ZUNvbmZpZyB9KTtcclxuICAgIHRoaXMuc3RhcnREYXRlQ29uZmlnWydtaW4nXSA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCk7XHJcbiAgICAvL3RoaXMuc3RhcnREYXRlVW5peCA9IHRoaXMuc3RhcnREYXRlLmdldERhdGUoKS50b1N0cmluZygpXHJcbiAgICB0aGlzLmVuZERhdGVDb25maWdbJ21pbiddID0gbW9tZW50KFxyXG4gICAgICBuZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSkuZ2V0VGltZSgpICsgODY0MDAwMDApXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZXRFbmREYXRlKHRoaXMuc3RhcnREYXRlKTtcclxuICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gICAgY29uc29sZS5sb2coJ2VuZERhdGUgPT0+JywgdGhpcy5lbmREYXRlKTtcclxuICB9XHJcblxyXG4gIGdldEVuZERhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGltZSA9IG1vbWVudCh0aGlzLmVuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWSBISDptbTpzcycpO1xyXG4gICAgY29uc3QgZ2V0VW5peFRpbWUgPSBtb21lbnQoXHJcbiAgICAgIHRpbWUuc3BsaXQoJyAnKVswXSArICcgMDA6MDA6MDAnLFxyXG4gICAgICAnREQtTU0tWVlZWSBISDptbTpzcydcclxuICAgICkudW5peCgpO1xyXG4gICAgY29uc29sZS5sb2coJ2VuZCBkYXRlID09PnRpbWUnLCB0aW1lLCBnZXRVbml4VGltZSk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZVVuaXggPSBtb21lbnQoZXZlbnQpLnVuaXgoKTtcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5zdGFydERhdGVVbml4ID09PicsIHRoaXMuc3RhcnREYXRlLCB0aGlzLnN0YXJ0RGF0ZVVuaXgpO1xyXG4gICAgaWYgKHRoaXMuc3RhcnREYXRlVW5peCA+PSBnZXRVbml4VGltZSkge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGUpLmdldFRpbWUoKSArIDg2NDAwMDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG1vbWVudCh0aGlzLmVuZERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlRW5kRGF0ZU9iaihkYXRlOiBhbnkpIHtcclxuICAgIHRoaXMuZW5kRGF0ZU9iamVjdCA9IG5ldyBEYXRlKG1vbWVudChkYXRlKS51bml4KCkgKiAxMDAwKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZTogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc29sZS5sb2coJ2NoYW5nZXMgPT0+JywgY2hhbmdlLCB0aGlzLnNlbGVjdGVkTGlmZWN5Y2xlVHlwZSk7XHJcbiAgICB0aGlzLmVuZEJ5ID0gbW9tZW50KHRoaXMuZW5kRGF0ZSlcclxuICAgICAgLmZvcm1hdCgnREQtTU1NTS1ZWVlZVEhIOm1tOnNzWicpXHJcbiAgICAgIC5zcGxpdCgnVCcpWzBdO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCkge1xyXG4gICAgLy8gIGNvbnNvbGUubG9nKFwidGhpcy5lbmREYXRlID09PiBEb0NjaGVja1wiLCB0aGlzLmVuZERhdGUsIHRoaXMuc3RhcnREYXRlKVxyXG4gIH1cclxuXHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KHRoaXMuc3RhcnREYXRlKTtcclxuICAgIGNvbnNvbGUubG9nKCduZXdEYXRlID09PicsIG5ld0RhdGUpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5tb3ZlQ2FsZW5kYXJUbyhuZXdEYXRlKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyMSgpIHtcclxuICAgIGNvbnNvbGUubG9nKCdlbmQgZGF0ZSA9PT4nLCB0aGlzLmVuZERhdGUpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyMS5hcGkubW92ZUNhbGVuZGFyVG8odGhpcy5lbmREYXRlKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlcjEuYXBpLm9wZW4oKTtcclxuXHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICB9XHJcbiAgY2xvc2VEYXRlcGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5jbG9zZSgpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyMS5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIGxpZmVjeWNsZSB0eXBlXHJcbiAgdHlwZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMaWZlY3ljbGVUeXBlID0gZXZlbnQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2NjdXJhbmNlLmVtaXQoe1xyXG4gICAgICB0eXBlOiBldmVudCxcclxuICAgICAgZW5kc0J5OiB0aGlzLmVuZEJ5LFxyXG4gICAgICBlbmRhZnRlcjogdGhpcy5vY2N1cnJhbmNlLFxyXG4gICAgICBzdGFydEZyb206IHRoaXMuc3RhcnREYXRlVW5peCxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMaWZlY3ljbGVUeXBlO1xyXG4gIH1cclxuXHJcbiAgLy8gZW5kcyBhZnRlciBzZWxlY3Rpb25cclxuICBlbmRzQWZ0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ2xpZmVjeWNsZSBvY2N1cnJhbmNlJywgZXZlbnQpO1xyXG4gICAgaWYgKFxyXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcih0aGlzLm9jY3VycmFuY2UpKSAmJlxyXG4gICAgICB0aGlzLm9jY3VycmFuY2UgIT09IDAgJiZcclxuICAgICAgTnVtYmVyKHRoaXMub2NjdXJyYW5jZSkgPiAwXHJcbiAgICApIHtcclxuICAgICAgY29uc29sZS5sb2coJ0lOJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPY2N1cmFuY2UuZW1pdCh7XHJcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgICAgZW5kc0J5OiB0aGlzLmVuZEJ5LFxyXG4gICAgICAgIGVuZGFmdGVyOiB0aGlzLm9jY3VycmFuY2UsXHJcbiAgICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coJ291dHQnKTtcclxuICAgICAgdGhpcy5vY2N1cnJhbmNlID0gMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5vY2N1cnJhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8gRW5kIGJ5IGNoYW5nZVxyXG4gIGVuZEJ5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCcgT24gc2VsZWN0ID09PicsIGV2ZW50KTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlcjEuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5lbmREYXRlID0gZXZlbnQuZGF0ZTtcclxuICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhldmVudCwgKTtcclxuICAgIHRoaXMuZW5kQnkgPSBtb21lbnQoZXZlbnQuZGF0ZSkuZm9ybWF0KCdERC1NTU1NLVlZWVknKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZW5kQnkpO1xyXG4gICAgY29uc3QgZGF0ZU9iamVjdCA9IHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9O1xyXG4gICAgY29uc29sZS5sb2coJ2RhdGVPYmplY3QgPT0+JywgZGF0ZU9iamVjdCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2NjdXJhbmNlLmVtaXQoZGF0ZU9iamVjdCk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5lbmRCeVxyXG4gIH1cclxuXHJcbiAgLy8gc3RhcnQgZnJvbSBjaGFuZ2UgZXZlbnRcclxuICBzdGFydEZyb21DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJyBzdGFydCBkYXRlIGNoYW5nZScsIGV2ZW50LCB0aGlzLmVuZERhdGUpO1xyXG4gICAgY29uc3QgdGltZSA9IG1vbWVudCh0aGlzLmVuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWSBISDptbTpzcycpO1xyXG4gICAgY29uc3QgZ2V0VW5peFRpbWUgPSBtb21lbnQoXHJcbiAgICAgIHRpbWUuc3BsaXQoJyAnKVswXSArICcgMDA6MDA6MDAnLFxyXG4gICAgICAnREQtTU0tWVlZWSBISDptbTpzcydcclxuICAgICkudW5peCgpO1xyXG4gICAgY29uc29sZS5sb2coJ2VuZCBkYXRlID09PnRpbWUnLCB0aW1lLCBnZXRVbml4VGltZSk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZVVuaXggPSBtb21lbnQoZXZlbnQuZGF0ZSkudW5peCgpO1xyXG4gICAgY29uc29sZS5sb2coJyB0aGlzLnN0YXJ0RGF0ZVVuaXggPT0+JywgdGhpcy5zdGFydERhdGUsIHRoaXMuc3RhcnREYXRlVW5peCk7XHJcbiAgICBpZiAodGhpcy5zdGFydERhdGVVbml4ID49IGdldFVuaXhUaW1lKSB7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG1vbWVudCh0aGlzLnN0YXJ0RGF0ZVVuaXggKiAxMDAwICsgODY0MDAwMDApO1xyXG5cclxuICAgICAgdGhpcy5jaGFuZ2VFbmREYXRlT2JqKHRoaXMuZW5kRGF0ZSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGlzLmVuZERhdGUgPT0+JywgdGhpcy5lbmREYXRlLCB0aGlzLnN0YXJ0RGF0ZSk7XHJcbiAgICAgIHRoaXMuZW5kQnkgPSBtb21lbnQodGhpcy5lbmREYXRlKVxyXG4gICAgICAgIC5mb3JtYXQoJ0RELU1NTU0tWVlZWVRISDptbTpzc1onKVxyXG4gICAgICAgIC5zcGxpdCgnVCcpWzBdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbmREYXRlQ29uZmlnWydtaW4nXSA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIG1vbWVudChuZXcgRGF0ZShuZXcgRGF0ZShldmVudC5kYXRlKS5nZXRUaW1lKCkgKyA4NjQwMDAwMCkpXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZW5kRGF0ZUNvbmZpZyA9PT4nLCB0aGlzLmVuZERhdGVDb25maWcpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGVuZERhdGVNb2RlbENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnZW5kRGF0ZU1vZGVsQ2hhbmdlID09PicsIGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHkgdngtbXQtNVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICB7eyB0ZXh0RGV0YWlscz8uaGVhZGVyIH19XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWlubmVyIHZ4LXAtMyB2eC1wdC0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eS1pdGVtXCIgW2NsYXNzLndpdGgtcG9saWN5XT1cIm1vZGUgPT09ICdwb2xpY3knIHx8IG1vZGUgPT09ICdyZXZpZXdlckZyZXF1ZW5jeSdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtYmxvY2tcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cIm1vZGUgPT09ICdyZXNwb25zaWJpbGl0eSdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJoZWFkaW5nIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dCB2eC1tYi0xXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTdGFydHMgRnJvbVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibGlmZWN5Y2xlLWJveCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXAtMlwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlXCJcclxuICAgICAgICAgIFtpZF09XCInZm9ybS1maWVsZCcgKyBpZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTNcIj4mI3hlOTk2OzwvaT5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cInN0YXJ0LWRhdGUtaW5wdXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIm1vZGUgPT09ICdyZXNwb25zaWJpbGl0eSdcIlxyXG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHktaXRlbVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWlubmVyIHZ4LWQtYmxvY2tcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtbWItMVwiPkVuZHMgQnk8L2Rpdj5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZExpZmVjeWNsZVR5cGUgPT0gMFwiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInR5cGVTZWxlY3RlZCgwKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImRhdGUtZmllbGRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlbkRhdGVQaWNrZXIxKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXItaWNvbiB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0XCJcclxuICAgICAgICAgICAgICA+JiN4ZTkyZDs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIm1vZGUgPT09ICdyZXNwb25zaWJpbGl0eSdcIlxyXG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHktaXRlbVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWlubmVyIHZ4LWQtYmxvY2tcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtbWItMVwiPkVuZHMgQWZ0ZXI8L2Rpdj5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZExpZmVjeWNsZVR5cGUgPT0gMVwiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInR5cGVTZWxlY3RlZCgxKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIlxyXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvY2N1cnJhbmNlXCJcclxuICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImVuZHNBZnRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiXHJcbiAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiPk9jY3VycmVuY2VzPC9zcGFuPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIm1vZGUgPT09ICdyZXNwb25zaWJpbGl0eSdcIlxyXG4gICAgICBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHktaXRlbVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWlubmVyIHZ4LWQtYmxvY2tcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtbWItMVwiPk9uZ29pbmc8L2Rpdj5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZExpZmVjeWNsZVR5cGUgPT0gMlwiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInR5cGVTZWxlY3RlZCgyKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTJcIlxyXG4gICAgICAgICAgICA+VGhlIHJlc3BvbnNpYmlsaXR5IHdpbGwgcGVycGV0dWFsbHkgZXhpc3QuPC9zcGFuXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSBzdGFydCBkYXRlIGRhdGUgcGlja2VyIC0tPlxyXG48ZHAtZGF0ZS1waWNrZXJcclxuICAjZGF0ZVBpY2tlclxyXG4gIFtpZF09XCInc3RhcnQtZGF0ZS0nICsgaWRcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJzdGFydERhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgWyhuZ01vZGVsKV09XCJzdGFydERhdGVcIlxyXG4gIFtjb25maWddPVwic3RhcnREYXRlQ29uZmlnXCJcclxuICAob25TZWxlY3QpPVwiXHJcbiAgICBvcGVuRGF0ZVBpY2tlcigpO1xyXG4gICAgc3RhcnRGcm9tQ2hhbmdlKCRldmVudCk7XHJcbiAgICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlXHJcbiAgXCJcclxuPjwvZHAtZGF0ZS1waWNrZXI+XHJcbjxkaXZcclxuICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKVwiXHJcbiAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbj48L2Rpdj5cclxuXHJcbjwhLS0gZW5kIGRhdGUgZGF0ZSBwaWNrZXIgLS0+XHJcbjxkcC1kYXRlLXBpY2tlclxyXG4gICNkYXRlUGlja2VyMVxyXG4gIFsobmdNb2RlbCldPVwiZW5kRGF0ZVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVPYmplY3QgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgW2lkXT1cIidlbmQtYnktaW5wdXQtJyArIGlkXCJcclxuICBbY29uZmlnXT1cImVuZERhdGVDb25maWdcIlxyXG4gIFttaW5EYXRlXT1cImVuZERhdGVDb25maWdbJ21pbiddXCJcclxuICAob25TZWxlY3QpPVwiXHJcbiAgICBlbmRCeUNoYW5nZSgkZXZlbnQpOyBzaG93RGF0ZUVycm9yID0gZmFsc2U7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcclxuICBcIlxyXG4+PC9kcC1kYXRlLXBpY2tlcj5cclxuPGRpdlxyXG4gIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgKGNsaWNrKT1cImNsb3NlRGF0ZXBpY2tlcigpXCJcclxuICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuPjwvZGl2PlxyXG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktbGlmZWN5Y2xlL2ZyZXF1ZW5jeS1saWZlY3ljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LWxpZmVjeWNsZS9mcmVxdWVuY3ktbGlmZWN5Y2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUVuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFPcEQsTUFBTSxPQUFPLDJCQUEyQjtJQXdCdEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFwQnRELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQU0zQixxQkFBcUI7UUFDWixjQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUVoRSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLDBCQUFx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QUFZO2dCQUNHLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFXZixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHSSxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBsaWZlY3ljbGVUZXh0IH0gZnJvbSAnLi9saWZlY3ljbC5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LWxpZmVjeWNsZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5TGlmZWN5Y2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyMScpIGRhdGVQaWNrZXIxITogRGF0ZVBpY2tlckNvbXBvbmVudDtcclxuXHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgc3RhcnREYXRlVW5peCA9IERhdGUubm93KCk7XHJcbiAgZW5kRGF0ZU9iamVjdDogYW55O1xyXG4gIHN0YXJ0RGF0ZUNvbmZpZzogYW55O1xyXG4gIGVuZERhdGVDb25maWc6IGFueTtcclxuICB0ZXh0RGV0YWlsczogYW55O1xyXG5cclxuICAvLyBBbGwgaW5wdXQgdmFyaWFibGVcclxuICBASW5wdXQoKSBzdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIEBJbnB1dCgpIGVuZERhdGUgPSBtb21lbnQobmV3IERhdGUodGhpcy5zdGFydERhdGUpLmdldFRpbWUoKSArIDg2NDAwMDAwKTtcclxuICBASW5wdXQoKSBlbmRCeTogYW55O1xyXG4gIEBJbnB1dCgpIG9jY3VycmFuY2UgPSAxMDtcclxuICBASW5wdXQoKSBzZWxlY3RlZExpZmVjeWNsZVR5cGUgPSAyOyAvLyAwID0gRW5kIGJ5ICwgIEVuZCBBZnRlciwgMiA9IHBlcnBldHVhbFxyXG4gIEBJbnB1dCgpIGlkID0gMDtcclxuICBASW5wdXQoKSBtb2RlOiBhbnk7XHJcblxyXG4gIC8vICBsaWZlY3ljbGUgb3V0cHV0XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkT2NjdXJhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHREZXRhaWxzID0gbGlmZWN5Y2xlVGV4dFt0aGlzLm1vZGVdO1xyXG4gICAgdGhpcy5zdGFydERhdGVDb25maWcgPSBPYmplY3QuYXNzaWduKHtcclxuICAgICAgLi4udGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmRhdGVDb25maWcsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZW5kRGF0ZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oeyAuLi50aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZGF0ZUNvbmZpZyB9KTtcclxuICAgIHRoaXMuc3RhcnREYXRlQ29uZmlnWydtaW4nXSA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCk7XHJcbiAgICAvL3RoaXMuc3RhcnREYXRlVW5peCA9IHRoaXMuc3RhcnREYXRlLmdldERhdGUoKS50b1N0cmluZygpXHJcbiAgICB0aGlzLmVuZERhdGVDb25maWdbJ21pbiddID0gbW9tZW50KFxyXG4gICAgICBuZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSkuZ2V0VGltZSgpICsgODY0MDAwMDApXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZXRFbmREYXRlKHRoaXMuc3RhcnREYXRlKTtcclxuICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW5kRGF0ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB0aW1lID0gbW9tZW50KHRoaXMuZW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZIEhIOm1tOnNzJyk7XHJcbiAgICBjb25zdCBnZXRVbml4VGltZSA9IG1vbWVudChcclxuICAgICAgdGltZS5zcGxpdCgnICcpWzBdICsgJyAwMDowMDowMCcsXHJcbiAgICAgICdERC1NTS1ZWVlZIEhIOm1tOnNzJ1xyXG4gICAgKS51bml4KCk7XHJcbiAgICB0aGlzLnN0YXJ0RGF0ZVVuaXggPSBtb21lbnQoZXZlbnQpLnVuaXgoKTtcclxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZVVuaXggPj0gZ2V0VW5peFRpbWUpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlKS5nZXRUaW1lKCkgKyA4NjQwMDAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZERhdGUgPSBtb21lbnQodGhpcy5lbmREYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUVuZERhdGVPYmooZGF0ZTogYW55KSB7XHJcbiAgICB0aGlzLmVuZERhdGVPYmplY3QgPSBuZXcgRGF0ZShtb21lbnQoZGF0ZSkudW5peCgpICogMTAwMCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2U6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIHRoaXMuZW5kQnkgPSBtb21lbnQodGhpcy5lbmREYXRlKVxyXG4gICAgICAuZm9ybWF0KCdERC1NTU1NLVlZWVlUSEg6bW06c3NaJylcclxuICAgICAgLnNwbGl0KCdUJylbMF07XHJcbiAgfVxyXG5cclxuICBvcGVuRGF0ZVBpY2tlcigpIHtcclxuICAgIGNvbnN0IG5ld0RhdGUgPSBtb21lbnQodGhpcy5zdGFydERhdGUpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5tb3ZlQ2FsZW5kYXJUbyhuZXdEYXRlKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkub3BlbigpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyMSgpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlcjEuYXBpLm1vdmVDYWxlbmRhclRvKHRoaXMuZW5kRGF0ZSk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXIxLmFwaS5vcGVuKCk7XHJcblxyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IHRydWU7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlcjEuYXBpLmNsb3NlKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBsaWZlY3ljbGUgdHlwZVxyXG4gIHR5cGVTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGlmZWN5Y2xlVHlwZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KHtcclxuICAgICAgdHlwZTogZXZlbnQsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGlmZWN5Y2xlVHlwZTtcclxuICB9XHJcblxyXG4gIC8vIGVuZHMgYWZ0ZXIgc2VsZWN0aW9uXHJcbiAgZW5kc0FmdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgIU51bWJlci5pc05hTihOdW1iZXIodGhpcy5vY2N1cnJhbmNlKSkgJiZcclxuICAgICAgdGhpcy5vY2N1cnJhbmNlICE9PSAwICYmXHJcbiAgICAgIE51bWJlcih0aGlzLm9jY3VycmFuY2UpID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPY2N1cmFuY2UuZW1pdCh7XHJcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgICAgZW5kc0J5OiB0aGlzLmVuZEJ5LFxyXG4gICAgICAgIGVuZGFmdGVyOiB0aGlzLm9jY3VycmFuY2UsXHJcbiAgICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vY2N1cnJhbmNlID0gMTA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5vY2N1cnJhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8gRW5kIGJ5IGNoYW5nZVxyXG4gIGVuZEJ5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlcjEuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5lbmREYXRlID0gZXZlbnQuZGF0ZTtcclxuICAgIHRoaXMuY2hhbmdlRW5kRGF0ZU9iaih0aGlzLmVuZERhdGUpO1xyXG4gICAgdGhpcy5lbmRCeSA9IG1vbWVudChldmVudC5kYXRlKS5mb3JtYXQoJ0RELU1NTU0tWVlZWScpO1xyXG4gICAgY29uc3QgZGF0ZU9iamVjdCA9IHtcclxuICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZExpZmVjeWNsZVR5cGUsXHJcbiAgICAgIGVuZHNCeTogdGhpcy5lbmRCeSxcclxuICAgICAgZW5kYWZ0ZXI6IHRoaXMub2NjdXJyYW5jZSxcclxuICAgICAgc3RhcnRGcm9tOiB0aGlzLnN0YXJ0RGF0ZVVuaXgsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZWxlY3RlZE9jY3VyYW5jZS5lbWl0KGRhdGVPYmplY3QpO1xyXG4gIH1cclxuXHJcbiAgLy8gc3RhcnQgZnJvbSBjaGFuZ2UgZXZlbnRcclxuICBzdGFydEZyb21DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGltZSA9IG1vbWVudCh0aGlzLmVuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWSBISDptbTpzcycpO1xyXG4gICAgY29uc3QgZ2V0VW5peFRpbWUgPSBtb21lbnQoXHJcbiAgICAgIHRpbWUuc3BsaXQoJyAnKVswXSArICcgMDA6MDA6MDAnLFxyXG4gICAgICAnREQtTU0tWVlZWSBISDptbTpzcydcclxuICAgICkudW5peCgpO1xyXG4gICAgdGhpcy5zdGFydERhdGVVbml4ID0gbW9tZW50KGV2ZW50LmRhdGUpLnVuaXgoKTtcclxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZVVuaXggPj0gZ2V0VW5peFRpbWUpIHtcclxuICAgICAgdGhpcy5lbmREYXRlID0gbW9tZW50KHRoaXMuc3RhcnREYXRlVW5peCAqIDEwMDAgKyA4NjQwMDAwMCk7XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZUVuZERhdGVPYmoodGhpcy5lbmREYXRlKTtcclxuICAgICAgdGhpcy5lbmRCeSA9IG1vbWVudCh0aGlzLmVuZERhdGUpXHJcbiAgICAgICAgLmZvcm1hdCgnREQtTU1NTS1ZWVlZVEhIOm1tOnNzWicpXHJcbiAgICAgICAgLnNwbGl0KCdUJylbMF07XHJcbiAgICB9XHJcbiAgICB0aGlzLmVuZERhdGVDb25maWdbJ21pbiddID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAgbW9tZW50KG5ldyBEYXRlKG5ldyBEYXRlKGV2ZW50LmRhdGUpLmdldFRpbWUoKSArIDg2NDAwMDAwKSlcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2NjdXJhbmNlLmVtaXQoe1xyXG4gICAgICB0eXBlOiB0aGlzLnNlbGVjdGVkTGlmZWN5Y2xlVHlwZSxcclxuICAgICAgZW5kc0J5OiB0aGlzLmVuZEJ5LFxyXG4gICAgICBlbmRhZnRlcjogdGhpcy5vY2N1cnJhbmNlLFxyXG4gICAgICBzdGFydEZyb206IHRoaXMuc3RhcnREYXRlVW5peCxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eSB2eC1tdC01XCI+XHJcbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cclxuICAgIHt7IHRleHREZXRhaWxzPy5oZWFkZXIgfX1cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZyZXF1ZW5jeS1saWZlY3ljbGUtcmVzcG9uc2liaWxpdHktaW5uZXIgdngtcC0zIHZ4LXB0LTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktbGlmZWN5Y2xlLXJlc3BvbnNpYmlsaXR5LWl0ZW1cIiBbY2xhc3Mud2l0aC1wb2xpY3ldPVwibW9kZSA9PT0gJ3BvbGljeScgfHwgbW9kZSA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9ja1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3Jlc3BvbnNpYmlsaXR5J1wiXHJcbiAgICAgICAgICBjbGFzcz1cImhlYWRpbmcgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LW1iLTFcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFN0YXJ0cyBGcm9tXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJsaWZlY3ljbGUtYm94IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcC0yXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpOyBkYXRlUGlja2VyT3ZlcmxheSA9IHRydWVcIlxyXG4gICAgICAgICAgW2lkXT1cIidmb3JtLWZpZWxkJyArIGlkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTE2IHZ4LXBhcmFncmFwaC10eHQgdngtbXItM1wiPiYjeGU5OTY7PC9pPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGNsYXNzPVwic3RhcnQtZGF0ZS1pbnB1dFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN0YXJ0RGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInN0YXJ0RGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3Jlc3BvbnNpYmlsaXR5J1wiXHJcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eS1pdGVtXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0taW5uZXIgdngtZC1ibG9ja1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dCB2eC1tYi0xXCI+RW5kcyBCeTwvZGl2PlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkTGlmZWN5Y2xlVHlwZSA9PSAwXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwidHlwZVNlbGVjdGVkKDApXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZGF0ZS1maWVsZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcjEoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjYWxlbmRhci1pY29uIHZ4LWZzLTE2IHZ4LXBhcmFncmFwaC10eHRcIlxyXG4gICAgICAgICAgICAgID4mI3hlOTJkOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiZW5kRGF0ZU9iamVjdCB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZW5kRGF0ZU9iamVjdCB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3Jlc3BvbnNpYmlsaXR5J1wiXHJcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eS1pdGVtXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0taW5uZXIgdngtZC1ibG9ja1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dCB2eC1tYi0xXCI+RW5kcyBBZnRlcjwvZGl2PlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkTGlmZWN5Y2xlVHlwZSA9PSAxXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwidHlwZVNlbGVjdGVkKDEpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9jY3VycmFuY2VcIlxyXG4gICAgICAgICAgICAoZm9jdXNvdXQpPVwiZW5kc0FmdGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yXCI+T2NjdXJyZW5jZXM8L3NwYW4+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwibW9kZSA9PT0gJ3Jlc3BvbnNpYmlsaXR5J1wiXHJcbiAgICAgIGNsYXNzPVwiZnJlcXVlbmN5LWxpZmVjeWNsZS1yZXNwb25zaWJpbGl0eS1pdGVtXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0taW5uZXIgdngtZC1ibG9ja1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dCB2eC1tYi0xXCI+T25nb2luZzwvZGl2PlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkTGlmZWN5Y2xlVHlwZSA9PSAyXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwidHlwZVNlbGVjdGVkKDIpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMlwiXHJcbiAgICAgICAgICAgID5UaGUgcmVzcG9uc2liaWxpdHkgd2lsbCBwZXJwZXR1YWxseSBleGlzdC48L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIHN0YXJ0IGRhdGUgZGF0ZSBwaWNrZXIgLS0+XHJcbjxkcC1kYXRlLXBpY2tlclxyXG4gICNkYXRlUGlja2VyXHJcbiAgW2lkXT1cIidzdGFydC1kYXRlLScgKyBpZFwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInN0YXJ0RGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICBbKG5nTW9kZWwpXT1cInN0YXJ0RGF0ZVwiXHJcbiAgW2NvbmZpZ109XCJzdGFydERhdGVDb25maWdcIlxyXG4gIChvblNlbGVjdCk9XCJcclxuICAgIG9wZW5EYXRlUGlja2VyKCk7XHJcbiAgICBzdGFydEZyb21DaGFuZ2UoJGV2ZW50KTtcclxuICAgIHNob3dEYXRlRXJyb3IgPSBmYWxzZTtcclxuICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcclxuICBcIlxyXG4+PC9kcC1kYXRlLXBpY2tlcj5cclxuPGRpdlxyXG4gIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgKGNsaWNrKT1cImNsb3NlRGF0ZXBpY2tlcigpXCJcclxuICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuPjwvZGl2PlxyXG5cclxuPCEtLSBlbmQgZGF0ZSBkYXRlIHBpY2tlciAtLT5cclxuPGRwLWRhdGUtcGlja2VyXHJcbiAgI2RhdGVQaWNrZXIxXHJcbiAgWyhuZ01vZGVsKV09XCJlbmREYXRlXCJcclxuICBbcGxhY2Vob2xkZXJdPVwiZW5kRGF0ZU9iamVjdCB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcclxuICBbaWRdPVwiJ2VuZC1ieS1pbnB1dC0nICsgaWRcIlxyXG4gIFtjb25maWddPVwiZW5kRGF0ZUNvbmZpZ1wiXHJcbiAgW21pbkRhdGVdPVwiZW5kRGF0ZUNvbmZpZ1snbWluJ11cIlxyXG4gIChvblNlbGVjdCk9XCJcclxuICAgIGVuZEJ5Q2hhbmdlKCRldmVudCk7IHNob3dEYXRlRXJyb3IgPSBmYWxzZTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVxyXG4gIFwiXHJcbj48L2RwLWRhdGUtcGlja2VyPlxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ2eC1vdmVybGF5XCJcclxuICAoY2xpY2spPVwiY2xvc2VEYXRlcGlja2VyKClcIlxyXG4gICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIlxyXG4+PC9kaXY+XHJcbiJdfQ==