vcomply-workflow-engine 2.6.9 → 2.6.10

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 (57) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +320 -81
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +1 -1
  4. package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
  5. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +1 -1
  6. package/esm2015/lib/log-an-issue/log-an-issue.component.js +1 -1
  7. package/esm2015/lib/log-an-issue/log-an-issue.component.ngfactory.js +6 -6
  8. package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.js +4 -4
  9. package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.js +4 -4
  10. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.js +3 -3
  11. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngsummary.json +1 -1
  12. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.js +4 -4
  13. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +3 -3
  14. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngsummary.json +1 -1
  15. package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.js +2 -2
  16. package/esm2015/lib/sharedComponents/checkbox-list/checkbox-list.component.js +3 -3
  17. package/esm2015/lib/sharedComponents/checkbox-list/checkbox-list.component.ngfactory.js +11 -49
  18. package/esm2015/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.ngfactory.js +4 -4
  19. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +8 -3
  20. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngfactory.js +26 -12
  21. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.ngsummary.json +1 -1
  22. package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
  23. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +191 -27
  24. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +78 -74
  25. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngsummary.json +1 -1
  26. package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
  27. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +1 -1
  28. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +1 -1
  29. package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +1 -1
  30. package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngfactory.js +4 -4
  31. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +83 -28
  32. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +121 -119
  33. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
  34. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +1 -1
  35. package/esm2015/lib/workflow-engine.module.ngfactory.js +3 -3
  36. package/esm2015/lib/workflow-engine.module.ngsummary.json +1 -1
  37. package/esm2015/lib/workflow-policy/workflow-policy.component.js +6 -6
  38. package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +5 -5
  39. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +1 -1
  40. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +1 -1
  41. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +1 -1
  42. package/esm2015/lib/workflow-program/workflow-program.component.js +1 -1
  43. package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +5 -5
  44. package/esm2015/lib/workflow-risk/workflow-risk.component.js +1 -1
  45. package/esm2015/lib/workflow-risk/workflow-risk.component.ngfactory.js +5 -5
  46. package/esm2015/lib/workflow-services/responsibility.service.js +8 -3
  47. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
  48. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.ngfactory.js +4 -4
  49. package/fesm2015/vcomply-workflow-engine.js +311 -82
  50. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  51. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +2 -0
  52. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +50 -1
  53. package/lib/workflow-compliance/workflow-compliance.component.d.ts +7 -0
  54. package/lib/workflow-policy/workflow-policy.component.d.ts +1 -1
  55. package/lib/workflow-services/responsibility.service.d.ts +1 -1
  56. package/package.json +2 -2
  57. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -580,7 +580,7 @@ export class EditorService {
580
580
  if (this.formsPage.elements.length !== 0) {
581
581
  this.formsPage.elements.forEach((element) => {
582
582
  PAGE_ARRAY.push(element.page);
583
- this.currentPageDetails.pageNumber = element === null || element === void 0 ? void 0 : element.page;
583
+ this.currentPageDetails.pageNumber = element.page;
584
584
  if (this.formsPage.pageDetailsList.length === 0) {
585
585
  this.formsPage.pageDetailsList.push(this.currentPageDetails);
586
586
  }
@@ -633,4 +633,4 @@ EditorService.ctorParameters = () => [
633
633
  { type: HttpClient },
634
634
  { type: Configurations, decorators: [{ type: Optional }] }
635
635
  ];
636
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL3NlcnZpY2VzL2VkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUN6RCw4REFBOEQ7QUFJOUQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsSUFBZ0IsRUFBYSxNQUF1QjtRQUFwRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBS3BDLHVCQUFrQixHQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMvRSwwQkFBcUIsR0FBRyxXQUFXLENBQUM7UUFDN0Isd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCwwQkFBcUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekQsc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixvQkFBZSxHQUFH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QUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O01BR0U7SUFDRixPQUFPLENBQUMsQ0FBUztRQUNmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsUUFBYSxFQUFFLElBQVM7UUFDbkMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7O1lBL29CRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVRRLFVBQVU7WUFLVixjQUFjLHVCQU9pQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbnMnO1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcclxuICAgZW52ICE6YW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGN1cnJlbnRQYWdlRGV0YWlsczogYW55ID0geyBwYWdlTmFtZTogJycsIHBhZ2VOdW1iZXI6IDEsIHBhZ2VEZXNjcmlwdGlvbjogJycgfTtcclxuICBwcmVmaXhGb3JRdWVzdGlvbk5hbWUgPSAnUXVlc3Rpb25fJztcclxuICBwdWJsaWMgYWN0aXZlUXVlc3Rpb25JbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigtNSk7XHJcbiAgYWN0aXZlUXVlc3Rpb25TdHJlYW0kID0gdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHB1YmxpYyBjdXJyZW50UGFnZU51bWJlcjogbnVtYmVyID0gMTtcclxuICBwdWJsaWMgYWN0aXZlUXVlc3Rpb24gPSAwO1xyXG4gIHNob3dBZGRQYWdlT3B0aW9uID0gdHJ1ZTtcclxuICBzaG93UGFnZURldGFpbHMgPSBmYWxzZTtcclxuICBwdWJsaWMgc2NvcmUgPSB7XHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlOiAwXHJcbiAgfVxyXG4gIHB1YmxpYyBhbGxQYWdlczogYW55ID0gW107XHJcbiAgc3RlcElkZW50aWZpZXIgPSAncGFnZXNjcmVlbic7IC8vIHRoaXMgdmFsdWUgY2FuIGJlIFwid2VsY29tZXNjcmVlblwiLFwidGhhbmt5b3VzY3JlZW5cIixcInBhZ2VzY3JlZW5cIiBvbmx5XHJcbiAgYXNzZXNzbWVudElkICE6IGFueTtcclxuICBwdWJsaWMgc2V0dGluZ3M6IGFueSA9IHtcclxuICAgIGFzc2Vzc21lbnRNb2RlOiBmYWxzZSxcclxuICAgIGRlZmF1bHRTY29yZTogMSxcclxuICAgIG5lZ2F0aXZlU2NvcmVDcml0ZXJpYTogJ0ZBSUxFRCcsXHJcbiAgICBuZWdhdGl2ZVNjb3JlOiAwLFxyXG4gICAgd2VpZ2h0YWdlRW5hYmxlZDogZmFsc2UsXHJcbiAgICBzZXR0aW5nc0VuYWJsZWQ6IGZhbHNlXHJcbiAgfVxyXG5cclxuICBmb3Jtc1BhZ2U6IGFueSA9IHtcclxuICAgIHZlcnNpb246IDIsXHJcbiAgICBxdWVzdGlvblJhbmRvbWl6ZTogdHJ1ZSxcclxuICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgIGhhc1dlbGNvbWU6IGZhbHNlLFxyXG4gICAgaGFzV2VsY29tZURlc2NyaXB0aW9uOiB0cnVlLFxyXG4gICAgd2VsY29tZVRleHQ6ICcnLFxyXG4gICAgaGFzV2VsY29tZUltYWdlOiB0cnVlLFxyXG4gICAgd2VsY29tZUltYWdlOiAnJyxcclxuICAgIHdlbGNvbWVEZXNjcmlwdGlvbjogJycsXHJcbiAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgaGFzVGhhbmt5b3VJbWFnZTogZmFsc2UsXHJcbiAgICB0aGFua3lvdVRleHQ6ICcnLFxyXG4gICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICBoYXNUaGFua3lvdURlc2NyaXB0aW9uOiB0cnVlLFxyXG4gICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICBlbGVtZW50czogW10sXHJcbiAgICBwYWdlRGV0YWlsc0xpc3Q6IFtdLFxyXG4gICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgc2V0dGluZ3M6IHRoaXMuc2V0dGluZ3MsXHJcbiAgICByZXNwb25zZVNlZ21lbnQ6IHRoaXMuaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KClcclxuICB9O1xyXG5cclxuICBpbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgbWF4U2NvcmU6IDEwLFxyXG4gICAgICBzZWdtZW50czogW1xyXG5cclxuICAgICAgXVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBsb2FkSGFuZGxlcihmb3JtRGF0YTogYW55LCBkZXN0aW5hdGlvbjogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBkZXN0aW5hdGlvbiwgZm9ybURhdGEpO1xyXG4gICAgLy9yZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcImVudlwiICsgZGVzdGluYXRpb24sIGZvcm1EYXRhKTtcclxuICB9XHJcblxyXG4gIGFkZFF1ZXN0aW9uKGV2dDogYW55LCBpbmRleD86IG51bWJlcikge1xyXG4gICAgc3dpdGNoIChldnQudHJpbSgpKSB7XHJcbiAgICAgIGNhc2UgJ3dlbGNvbWUnOiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZU51bWJlciA9IC0xO1xyXG4gICAgICAgIHRoaXMuc3RlcElkZW50aWZpZXIgPSAnd2VsY29tZXNjcmVlbic7XHJcbiAgICAgICAgdGhpcy5mb3Jtc1BhZ2UuaGFzV2VsY29tZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAndGhhbmt5b3UnOiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZU51bWJlciA9IC0yO1xyXG4gICAgICAgIHRoaXMuc3RlcElkZW50aWZpZXIgPSAndGhhbmt5b3VzY3JlZW4nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ211bHRpcGxlLWNob2ljZSc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVNdWx0aXBsZUNob2ljZShpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnY2hlY2tib3gnOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlQ2hlY2tib3goaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3N0YXItcmF0aW5nJzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVN0YXJSYXRpbmcoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3NpbmdsZS10ZXh0Ym94Jzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVNpbmdsZVRleHRib3goaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2NvbW1lbnQtYm94Jzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZUNvbW1lbnRib3goaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ21hdHJpeC1kcm9wZG93bic6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVNYXRyaXhEcm9wZG93bihpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZHJvcGRvd24nOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRHJvcGRvd24oaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3NsaWRlcic6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTbGlkZXIoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3JhdGluZy1zY2FsZSc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVSYXRpbmdTY2FsZShpbmRleClcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdtdWx0aXBsZS10ZXh0Ym94Jzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZU11bHRpcGxlVGV4dGJveChpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZGF0ZS10aW1lJzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZURhdGVUaW1lKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdmaWxlLXVwbG9hZCc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVGaWxlVXBsb2FkKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdyYW5raW5nJzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVJhbmtpbmcoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3N0YXItcmF0aW5nJzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZVN0YXJSYXRpbmcoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUb1BhZ2Vmcm9tV2VsY29tZSgpIHtcclxuICAgIGlmIChbJ3RoYW5reW91c2NyZWVuJywgJ3dlbGNvbWVzY3JlZW4nXS5pbmNsdWRlcyh0aGlzLnN0ZXBJZGVudGlmaWVyKSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5hbGxQYWdlcy5sZW5ndGg7XHJcbiAgICAgIHRoaXMuc3RlcElkZW50aWZpZXIgPSAncGFnZXNjcmVlbic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayB3aGV0aGVyIHRvIGRpc3BsYXkgUGFnZSBEZXRhaWxzIG9yIEFkZCBQYWdlIHRpbHRlIG9wdGlvblxyXG4gICAqL1xyXG4gIGNoZWNrRm9yUGFnZURldGFpbHMoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZURldGFpbHMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmN1cnJlbnRQYWdlRGV0YWlscy5wYWdlTmFtZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5zaG93QWRkUGFnZU9wdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd1BhZ2VEZXRhaWxzID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dBZGRQYWdlT3B0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd1BhZ2VEZXRhaWxzID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgbXVsdGlwbGUgY2hvaWNlXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVNdWx0aXBsZUNob2ljZShpbmRleD86IGFueSkge1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdtdWx0aXBsZS1jaG9pY2UnLCBuYW1lOiBgYCwgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlciwgb3RoZXJDb25maWc6IHsgY29sb3I6ICcjMDAwMDAwJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogdGhpcy5zY29yZS5kZWZhdWx0U2NvcmUgfSxcclxuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsIHRpdGxlOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsIGhhc0NvbW1lbnRzOiBmYWxzZSwgY29tbWVudHM6ICcnLFxyXG4gICAgICByYW5kb21pemU6IGZhbHNlLCBoYXNPdGhlcjogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLCB2aXNpYmlsaXR5TG9naWM6IFtdLCBjaG9pY2VzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgaGVscGluZ0xhYmVsOiAnJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogdGhpcy5zY29yZS5kZWZhdWx0U2NvcmUsIGNvbG9yOiB0aGlzLmdlbmVyYXRlUmFuZG9tQ29sb3IoKVxyXG4gICAgICAgIH1dXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIGNoZWNrYm94XHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVDaGVja2JveChpbmRleD86IGFueSkge1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdjaGVja2JveCcsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLCBvdGhlckNvbmZpZzogeyBjb2xvcjogJyMwMDAwMDAnLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiB0aGlzLnNjb3JlLmRlZmF1bHRTY29yZSB9LFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLCBjaG9pY2VzOlxyXG4gICAgICAgIFt7XHJcbiAgICAgICAgICB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgICBoZWxwaW5nTGFiZWw6ICcnLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiB0aGlzLnNjb3JlLmRlZmF1bHRTY29yZSwgY29sb3I6IHRoaXMuZ2VuZXJhdGVSYW5kb21Db2xvcigpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgc3RhciByYXRpbmdcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqIFtOb3RlXTogUmF0aW5nIGxhYmVsIHR5cGUgY2FuIHRha2UgMiB2YWx1ZXMgJ3NwZWNpZmljJy8nc2NhbGUnXHJcbiAgICovXHJcbiAgY3JlYXRlU3RhclJhdGluZyhpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ3N0YXItcmF0aW5nJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSxcclxuICAgICAgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJywgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIGN1cnNvclR5cGU6ICdudW1iZXInLFxyXG4gICAgICBjdXJzb3JDb2xvcjogJyNmZjgwMDAnLCBzY2FsZTogMiwgc3RhclZhbHVlOiAnJywgaGFzUmF0aW5nTGFiZWw6IGZhbHNlLCByYXRpbmdMYWJlbFR5cGU6ICdzcGVjaWZpYycsXHJcbiAgICAgIHNjYWxlUmFuZ2VGcm9tOiAnTm90IGF0IGFsbCBsaWtlbHknLFxyXG4gICAgICBzY2FsZVJhbmdlVG86ICdFeHRyZW1lIExpa2VseScsIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgaXNWaXNpYmxlOiB0cnVlLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IHRydWUsIGhlbHBpbmdMYWJlbDogJycgfSxcclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBzaW5nbGUgdGV4dGJveFxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlU2luZ2xlVGV4dGJveChpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGhhc1ZhbGlkYXRpb246IGZhbHNlLCB2YWxpZGF0aW9uVHlwZTogJycsIGlzUmVxdWlyZWQ6IGZhbHNlLCBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLCBtaW5DaGFyYWN0ZXJMZW5ndGg6IDAsXHJcbiAgICAgIG1heENoYXJhY3Rlckxlbmd0aDogMTAwLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIGNob2ljZXM6IFt7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiB0cnVlLCBoZWxwaW5nTGFiZWw6ICcnIH1dXHJcbiAgICB9O1xyXG5cclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuXHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgY29tbWVudCBib3hcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZUNvbW1lbnRib3goaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdjb21tZW50LWJveCcsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCwgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAwLCByYW5kb21pemU6IGZhbHNlLCBoYXNPdGhlcjogZmFsc2UsXHJcbiAgICAgIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLCBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRDb21tZW50OiBmYWxzZSwgdXNlckNvbW1lbnRzOiAnJywgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgY2hvaWNlczogW1xyXG4gICAgICAgIHsgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnLCBpbWFnZVVSTDogJycgfSxcclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgbWF0cml4IG9mIGRyb3Bkb3duXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVNYXRyaXhEcm9wZG93bihpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ21hdHJpeC1kcm9wZG93bicsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLCBvdGhlckNvbmZpZzogeyBjb2xvcjogJyMwMDAwMDAnLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiAxIH0sXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIGNob2ljZXM6IFt7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9XSxcclxuICAgICAgY29sdW1uczogW3tcclxuICAgICAgICB0aXRsZTogJycsIHZhbHVlOiAxLCB3ZWlnaHQ6IDAsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyxcclxuICAgICAgICBjaG9pY2VzOiBbeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycgfV1cclxuICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIGRyb3Bkb3duXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVEcm9wZG93bihpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ2Ryb3Bkb3duJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsIG90aGVyQ29uZmlnOiB7IGNvbG9yOiAnIzAwMDAwMCcsIGlzRmFpbGVkOiBmYWxzZSwgc2NvcmU6IHRoaXMuc2NvcmUuZGVmYXVsdFNjb3JlIH0sXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIGNob2ljZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycsXHJcbiAgICAgICAgICBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiB0aGlzLnNjb3JlLmRlZmF1bHRTY29yZSwgY29sb3I6IHRoaXMuZ2VuZXJhdGVSYW5kb21Db2xvcigpXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIHNsaWRlclxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlU2xpZGVyKGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnc2xpZGVyJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIGNob2ljZXM6IFt7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9XSxcclxuICAgICAgY2VudGVyUmFuZ2U6IGZhbHNlLCBhZGp1c3RTY2FsZTogZmFsc2UsIG51bWVyaWNCb3hFbmFibGVkOiBmYWxzZSwgbGVmdDogMCwgY2VudGVyOiAwLCByaWdodDogMTAwLFxyXG4gICAgICBzY2FsZVJhbmdlTWluOiAwLCBzY2FsZVJhbmdlTWF4OiAxMDAsIHN0ZXBTaXplOiAxMCwgc3RhcnRQb3NpdGlvbjogMCwgZWRpdG9yVmFsdWU6IDBcclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgbWF0cml4IHJhdGluZyBzY2FsZVxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlUmF0aW5nU2NhbGUoaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdyYXRpbmctc2NhbGUnLCBuYW1lOiAnJywgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlcixcclxuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsIHRpdGxlOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsIGhhc0NvbW1lbnRzOiBmYWxzZSwgY29tbWVudHM6ICcnLFxyXG4gICAgICByYW5kb21pemU6IGZhbHNlLCBoYXNPdGhlcjogZmFsc2UsIGhhc1JhdGluZ0xhYmVsOiBmYWxzZSwgcmF0aW5nTGFiZWxUeXBlOiAnJyxcclxuICAgICAgb3RoZXJWYWx1ZTogJ090aGVyJywgaGFzV2VpZ2h0OiBmYWxzZSwgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBjaG9pY2VzOiBbeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycgfV0sXHJcbiAgICAgIGNvbHVtbnM6IFt7IHRpdGxlOiAnJywgdmFsdWU6IDEsIHdlaWdodDogMCwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnIH1dXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIHJhbmtpbmdcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZVJhbmtpbmcoaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdyYW5raW5nJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBoYXNSYXRpbmdMYWJlbDogZmFsc2UsIGFsaWdubWVudDogZmFsc2UsXHJcbiAgICAgIHJldmVyc2U6IGZhbHNlLCBvbmx5TnVtYmVyOiB0cnVlLCBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRDb21tZW50OiBmYWxzZSwgdXNlckNvbW1lbnRzOiAnJywgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgY2hvaWNlczogW1xyXG4gICAgICAgIHsgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnIH0sXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgbXVsdGlwbGUgdGV4dGJveFxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlTXVsdGlwbGVUZXh0Ym94KGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnbXVsdGlwbGUtdGV4dGJveCcsIG5hbWU6ICcnLFxyXG4gICAgICBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLCBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJywgb3RoZXJWYWx1ZTogJ090aGVyJywgaGFzUmF0aW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSwgb25seU51bWJlcjogdHJ1ZSwgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9LFxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIGRhdGUvdGltZVxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlRGF0ZVRpbWUoaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdkYXRlLXRpbWUnLCBuYW1lOiAnJywgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlcixcclxuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsIHRpdGxlOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsIGhhc0NvbW1lbnRzOiBmYWxzZSwgY29tbWVudHM6ICcnLFxyXG4gICAgICByYW5kb21pemU6IGZhbHNlLCBoYXNPdGhlcjogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGhhc1JhdGluZ0xhYmVsOiBmYWxzZSwgYWxpZ25tZW50OiBmYWxzZSxcclxuICAgICAgcmV2ZXJzZTogZmFsc2UsIG9ubHlOdW1iZXI6IHRydWUsIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLFxyXG4gICAgICB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLCBoYXNEYXRlOiB0cnVlLCBoYXNUaW1lOiBmYWxzZSwgZGF0ZUZvcm1hdDogJ0REL01NL1lZWVknLCB0aW1lRm9ybWF0OiAyNCxcclxuICAgICAgY2hvaWNlczogW1xyXG4gICAgICAgIHsgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnIH0sXHJcblxyXG4gICAgICBdLFxyXG4gICAgICBkYXRlOiB7IHRpdGxlOiAnJywgdmFsdWU6ICcnIH0sXHJcbiAgICAgIHRpbWU6IHsgdGl0bGU6ICcnLCB2YWx1ZTogJycgfVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBmaWxlIHVwbG9hZFxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlRmlsZVVwbG9hZChpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ2ZpbGUtdXBsb2FkJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0luc3RydWN0aW9uOiBmYWxzZSwgaW5zdHJ1Y3Rpb246ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGZpbGVUeXBlUmVzdHJpY3Rpb25zOiBmYWxzZSwgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9XSxcclxuICAgICAgYWxsb3dlZEZpbGVUeXBlczoge1xyXG4gICAgICAgIHBkZjogdHJ1ZSxcclxuICAgICAgICBkb2M6IHRydWUsXHJcbiAgICAgICAgcG5nOiB0cnVlLFxyXG4gICAgICAgIGpwZzogdHJ1ZSxcclxuICAgICAgICBnaWY6IHRydWVcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBpbWFnZSBjaG9pY2VcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZUltYWdlQ2hvaWNlKGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnaW1hZ2UtY2hvaWNlJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJywgaW1hZ2VVUkw6ICcnIH1cclxuXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBDcmVhdGVzIGFuZCBhZGRzIHRoZSBxdWVzdGlvbiB0byBsaXN0IG9mIHF1ZXN0aW9ucyBpZiBhIHF1ZXN0aW9uJ3MgaW5kZXggaXMgdW5kZWZpbmVkXHJcbiAqIEBwYXJhbSBlbGVtZW50IERldGFpbHMgb2YgcXVlc3Rpb24gdG8gYmUgY3JlYXRlZFxyXG4gKi9cclxuICBvcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudDogYW55KSB7XHJcblxyXG4gICAgZWxlbWVudC5uYW1lID0gdGhpcy5nZW5lcmF0ZVF1ZXN0aW9uTmFtZSh0aGlzLmZvcm1zUGFnZS5lbGVtZW50cy5sZW5ndGggKyAxKSxcclxuICAgICAgdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMucHVzaChlbGVtZW50KTtcclxuICAgIHRoaXMuc2V0QWN0aXZlUXVlc3Rpb25CYXNlZE9uUGFnZUxlbmd0aCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbmQgYWRkcyB0aGUgcXVlc3Rpb24gdG8gbGlzdCBvZiBxdWVzdGlvbnMgaWYgYSBxdWVzdGlvbidzIGluZGV4IGlzIHByZXNlbnRcclxuICAgKiBAcGFyYW0gZWxlbWVudCBEZXRhaWxzIG9mIHF1ZXN0aW9uIHRvIGJlIGNyZWF0ZWRcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gc2hvdWxkIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBvcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQ6IGFueSwgaW5kZXg6IGFueSkge1xyXG5cclxuICAgIGVsZW1lbnQubmFtZSA9IHRoaXMuZ2VuZXJhdGVRdWVzdGlvbk5hbWUoaW5kZXggKyAxKTtcclxuICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLnNwbGljZShpbmRleCArIDEsIDAsIGVsZW1lbnQpO1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbiA9IGluZGV4ICsgMTtcclxuICAgIHRoaXMuYWN0aXZlUXVlc3Rpb25JbmRleC5uZXh0KGluZGV4ICsgMSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAgKiBTZXRzIHRoZSBhY3RpdmUgcXVlc3Rpb24gYmFzZWQgb24gcGFydGljdWxhciBwYWdlXHJcbiAgICAqL1xyXG4gIHNldEFjdGl2ZVF1ZXN0aW9uQmFzZWRPblBhZ2VMZW5ndGgoKSB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5jdXJyZW50UGFnZU51bWJlcjsgaSsrKSB7XHJcbiAgICAgIGNvdW50ICs9IFsuLi50aGlzLmZvcm1zUGFnZS5lbGVtZW50c10ucmVkdWNlKFxyXG4gICAgICAgIChjb3VudGVyOiBhbnksIGN1cnJlbnRFbGVtZW50OiBhbnkpID0+IChpID09PSBjdXJyZW50RWxlbWVudC5wYWdlID8gY291bnRlciArIDEgOiBjb3VudGVyKSwgMCkgLSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbiA9IGNvdW50ICsgdGhpcy5jdXJyZW50UGFnZU51bWJlciAtIDE7XHJcbiAgICB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dChjb3VudCArIHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgLSAxKTtcclxuXHJcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAvLyB9LCAxNTApO1xyXG4gICAgLy8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICAvKipcclxuKiBTb3J0cyB0aGUgcXVlc3Rpb25zIGJhc2VkIG9uIHBhZ2UgbnVtYmVyXHJcbiovXHJcbiAgc29ydFF1ZXN0aW9uKCkge1xyXG4gICAgdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGEucGFnZSAtIGIucGFnZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgcXVlc3Rpb24gbmFtZSBmb3IgbmV3bHkgYWRkZWQgcXVlc3Rpb25cclxuICAgKiBAcGFyYW0gcXVlc3Rpb25JbmRleCBJbmRleCBvZiBxdWVzdGlvbiB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVRdWVzdGlvbk5hbWUocXVlc3Rpb25JbmRleDogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHF1ZXN0aW9uTmFtZXMgPSB0aGlzLmZvcm1zUGFnZS5lbGVtZW50cy5tYXAoKGE6IGFueSkgPT4gYS5uYW1lKTtcclxuICAgIGlmIChxdWVzdGlvbk5hbWVzLmluY2x1ZGVzKGAke3RoaXMucHJlZml4Rm9yUXVlc3Rpb25OYW1lfSR7cXVlc3Rpb25JbmRleH1gKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZVF1ZXN0aW9uTmFtZShxdWVzdGlvbkluZGV4ICsgMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBuYW1lID0gJ1F1ZXN0aW9uXycgKyBxdWVzdGlvbkluZGV4LnRvU3RyaW5nKCk7XHJcbiAgICAgIHJldHVybiBuYW1lO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZW5lcmF0ZVJhbmRvbUNvbG9yKCkge1xyXG4gICAgLy9yZXR1cm4gJyMnICsgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTY3NzcyMTUpLnRvU3RyaW5nKDE2KTtcclxuICAgIHJldHVybiAnIzAwMDAwMCdcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBTZXRzIHRoZSBxdWVzdGlvbiBhcyBhY3RpdmUgYmFzZWQgb24gdGhlIHBhcnRpY3VsYXIgaW5kZXhcclxuICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSBxdWVzdGlvbiB0byBiZSBtYXJrZWQgYXMgYWN0aXZlIHF1ZXN0aW9uXHJcbiAqL1xyXG4gIHNldGFjdGl2ZVF1ZXN0aW9uKGluZGV4PzogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZVF1ZXN0aW9uID0gaW5kZXg7XHJcbiAgICB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dChpbmRleCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gKiBEdXBsaWNhdGVzIGEgcXVlc3Rpb24gd2l0aCBwYXJ0aWN1bGFyIGluZGV4XHJcbiAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBxdWVzdGlvbiB0byBiZSBkdXBsaWNhdGVkXHJcbiAqL1xyXG4gIGNvcHlRdWVzdGlvbihpbmRleDogYW55KSB7XHJcbiAgICB0aGlzLnNldGFjdGl2ZVF1ZXN0aW9uKGluZGV4ICsgMSk7XHJcbiAgICBjb25zdCBDT1BZX0VMRU1FTlQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzW2luZGV4XSkpO1xyXG4gICAgaWYgKENPUFlfRUxFTUVOVC5lcnJvckFycmF5KSB7XHJcbiAgICAgIGRlbGV0ZSBDT1BZX0VMRU1FTlQuZXJyb3JBcnJheTtcclxuICAgIH1cclxuICAgIENPUFlfRUxFTUVOVC52aXNpYmlsaXR5TG9naWMgPSBbXTtcclxuICAgIGNvbnN0IGVsZW1lbnRzTmFtZXM6IGFueSA9IFtdO1xyXG4gICAgdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGVsZW1lbnRzTmFtZXMucHVzaChlbGVtZW50Lm5hbWUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNoZWNrRm9yU2FtZU5hbWUoZWxlbWVudHNOYW1lcywgQ09QWV9FTEVNRU5UKTtcclxuICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLnNwbGljZShpbmRleCArIDEsIDAsIENPUFlfRUxFTUVOVCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEFzc2lnbnMgYSB1bmlxdWUgbmFtZSB0byB0aGUgZHVwbGljYXRlZCBxdWVzdGlvblxyXG4gICAqIEBwYXJhbSBlbGVtZW50c05hbWVzIExpc3Qgb2YgcXVlc3Rpb24gbmFtZXNcclxuICAgKiBAcGFyYW0gQ09QWV9FTEVNRU5UIERldGFpbHMgb2YgcXVlc3Rpb24gZHVwbGljYXRlZFxyXG4gICAqL1xyXG4gIGNoZWNrRm9yU2FtZU5hbWUoZWxlbWVudHNOYW1lczogYW55LCBDT1BZX0VMRU1FTlQ6IGFueSkge1xyXG4gICAgaWYgKGVsZW1lbnRzTmFtZXMuaW5jbHVkZXMoQ09QWV9FTEVNRU5ULm5hbWUpKSB7XHJcbiAgICAgIGNvbnN0IENPUFlfRUxFTUVOVF9OQU1FID0gQ09QWV9FTEVNRU5ULm5hbWUuc3BsaXQoJ18nKTtcclxuICAgICAgQ09QWV9FTEVNRU5UX05BTUVbQ09QWV9FTEVNRU5UX05BTUUubGVuZ3RoIC0gMV0gPSAocGFyc2VJbnQoQ09QWV9FTEVNRU5UX05BTUVbQ09QWV9FTEVNRU5UX05BTUUubGVuZ3RoIC0gMV0sIDEwKSArIDEpLnRvU3RyaW5nKCk7XHJcbiAgICAgIENPUFlfRUxFTUVOVC5uYW1lID0gQ09QWV9FTEVNRU5UX05BTUUuam9pbignXycpO1xyXG4gICAgICB0aGlzLmNoZWNrRm9yU2FtZU5hbWUoZWxlbWVudHNOYW1lcywgQ09QWV9FTEVNRU5UKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAqIERlbGV0ZXMgdGhlIHF1ZXN0aW9uIG9uIGNsaWNrIG9mIGRlbGV0ZSBidXR0b25cclxuICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHF1ZXN0aW9uIHRvIGJlIGRlbGV0ZWRcclxuICovXHJcbiAgZGVsZXRlUXVlc3Rpb24oaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVMb2dpY0Zyb21EZXBlbmRlbnRRdWVzdGlvbihpbmRleCk7XHJcbiAgICB0aGlzLmZvcm1zUGFnZS5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuICAvKipcclxuICogUmVtb3ZlcyB0aGUgbG9naWMgZGF0YSBmb3IgYSBwYXJ0aWN1bGFyIHF1ZXN0aW9uIGZyb20gb3RoZXIgcXVlc3Rpb25zXHJcbiAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBxdWVzdGlvbiB3aG9zZSBsb2dpYyBkYXRhIG5lZWRzIHRvIGJlIHJlbW92ZWQgZnJvbSBvdGhlciBxdWVzdGlvbnNcclxuICovXHJcbiAgcmVtb3ZlTG9naWNGcm9tRGVwZW5kZW50UXVlc3Rpb24oaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMuZm9yRWFjaCgocXVlc3Rpb25FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHF1ZXN0aW9uRWxlbWVudC52aXNpYmlsaXR5TG9naWMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXN0aW9uRWxlbWVudC52aXNpYmlsaXR5TG9naWMgPSBxdWVzdGlvbkVsZW1lbnQudmlzaWJpbGl0eUxvZ2ljLmZpbHRlcigobG9naWM6IGFueSkgPT5cclxuICAgICAgICAgIGxvZ2ljLnF1ZXN0aW9uTmFtZSAhPT0gdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHNbaW5kZXhdLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiogQWRkcyBhIG5ldyBwYWdlXHJcbiovXHJcbiAgYWRkUGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlTnVtYmVyID09PSAtMSB8fCB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyID09PSAtMikge1xyXG4gICAgICAvL3RoaXMuY3VycmVudFBhZ2VOdW1iZXIgPSB0aGlzLm51bWJlck9mUGFnZXMoKSArIDE7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgPSB0aGlzLmFsbFBhZ2VzLmxlbmd0aCArIDE7XHJcbiAgICAgIHRoaXMuYWxsUGFnZXMucHVzaCh0aGlzLmN1cnJlbnRQYWdlTnVtYmVyKTtcclxuICAgICAgdGhpcy5udW1iZXJPZlBhZ2VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5hbGxQYWdlcy5sZW5ndGggKyAxO1xyXG4gICAgICB0aGlzLmFsbFBhZ2VzLnB1c2godGhpcy5jdXJyZW50UGFnZU51bWJlcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0ZXBJZGVudGlmaWVyID0gJ3BhZ2VzY3JlZW4nO1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoLTEwKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgKiBDb3VudHMgdGhlIG51bWJlciBvZiBwYWdlcyBpbiBhIHN1cnZleS9mb3JtXHJcbiAgKi9cclxuICBudW1iZXJPZlBhZ2VzKCk6IGFueSB7XHJcbiAgICBjb25zdCBQQUdFX0FSUkFZOiBhbnkgPSBbXTtcclxuICAgIGlmICh0aGlzLmZvcm1zUGFnZS5lbGVtZW50cy5sZW5ndGggIT09IDApIHtcclxuICAgICAgdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgUEFHRV9BUlJBWS5wdXNoKGVsZW1lbnQucGFnZSk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZURldGFpbHMucGFnZU51bWJlciA9IGVsZW1lbnQ/LnBhZ2U7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5wdXNoKHRoaXMuY3VycmVudFBhZ2VEZXRhaWxzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFsbFBhZ2VzID0gWy4uLm5ldyBTZXQoUEFHRV9BUlJBWSldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBodHRwT3B0aW9ucyA9IHtcclxuICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsIHRva2VuOiB0aGlzLmdldEF1dGhvcml6YXRpb25Ub2tlbigpIH0pXHJcbiAgfTtcclxuXHJcbiAgZmV0Y2hBc3Nlc3NtZW50RGF0YShpZDogc3RyaW5nKSB7XHJcbiAgICAvL21vZGU9YXNzZXNzbWVudC9mZXRjaFF1ZXN0aW9uc0J5QXNzZXNzbWVudElkJmlkPTYxZjNmNzg3MWM2MDAyMDAwOWEyMDU0M1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXCJlbnZcIiArICdhc3Nlc3NtZW50L2ZldGNoUXVlc3Rpb25zQnlBc3Nlc3NtZW50SWQmaWQ9JyArIGlkLCB0aGlzLmh0dHBPcHRpb25zKS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHNhdmVBc3Nlc3NtZW50KGlkOiBhbnksIHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiZW52XCIgKyAnYXNzZXNzbWVudC91cGRhdGUmaWQ9JyArIGlkLCBwYXlsb2FkLCB0aGlzLmh0dHBPcHRpb25zKVxyXG4gICAgLy8/bW9kZT1hc3Nlc3NtZW50L3VwZGF0ZSZpZD02MWYzZjc4NzFjNjAwMjAwMDlhMjA1NDNcclxuICB9XHJcblxyXG4gIGdldEF1dGhvcml6YXRpb25Ub2tlbigpIHtcclxuICAgIGNvbnN0IFRPS0VOID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBsZXQgY3VycmVudFVzZXI7XHJcbiAgICBUT0tFTiAhPT0gbnVsbCA/IChjdXJyZW50VXNlciA9IEpTT04ucGFyc2UoVE9LRU4pKSA6IChjdXJyZW50VXNlciA9IHt9KTtcclxuICAgIHJldHVybiBjdXJyZW50VXNlci50b2tlbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogRXh0cmFjdHMgdGhlIHRleHQgZnJvbSBhIHBhcnRpY3VsYXIgaHRtbCBjb250ZW50XHJcbiAgKiBAcGFyYW0gcyBodG1sIGNvbnRlbnQgZnJvbSB3aGljaCB0ZXh0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZFxyXG4gICovXHJcbiAgZXh0cmFjdChzOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBzcGFuLmlubmVySFRNTCA9IHM7XHJcbiAgICByZXR1cm4gc3Bhbi50ZXh0Q29udGVudCB8fCBzcGFuLmlubmVyVGV4dDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTW92ZXMgUXVlc3Rpb24gdG8gYSBwYXJ0aWN1bGFyIGluZGV4IGluIGFuIGFycmF5XHJcbiAgICogQHBhcmFtIHByZXZpb3VzIEluZGV4IGZyb20gd2hpY2ggUXVlc3Rpb24gc2hvdWxkIGJlIG1vdmVkXHJcbiAgICogQHBhcmFtIG5leHQgIEluZGV4IGJlZm9yZSB3aGljaCBRdWVzdGlvbiBzaG91bGQgYmUgbW92ZWRcclxuICAgKi9cclxuICBtb3ZlUXVlc3Rpb24ocHJldmlvdXM6IGFueSwgbmV4dDogYW55KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMsIHByZXZpb3VzLCBuZXh0KTtcclxuICB9XHJcbn1cclxuIl19
636
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL3NlcnZpY2VzL2VkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUN6RCw4REFBOEQ7QUFJOUQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBb0IsSUFBZ0IsRUFBYSxNQUF1QjtRQUFwRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBS3BDLHVCQUFrQixHQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMvRSwwQkFBcUIsR0FBRyxXQUFXLENBQUM7UUFDN0Isd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCwwQkFBcUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekQsc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixvQkFBZSxHQUFH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QyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEUsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O01BR0U7SUFDRixPQUFPLENBQUMsQ0FBUztRQUNmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsUUFBYSxFQUFFLElBQVM7UUFDbkMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7O1lBL29CRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVRRLFVBQVU7WUFLVixjQUFjLHVCQU9pQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbnMnO1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ3NyYy9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcclxuICAgZW52ICE6YW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykgeyBcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG4gIH1cclxuICBjdXJyZW50UGFnZURldGFpbHM6IGFueSA9IHsgcGFnZU5hbWU6ICcnLCBwYWdlTnVtYmVyOiAxLCBwYWdlRGVzY3JpcHRpb246ICcnIH07XHJcbiAgcHJlZml4Rm9yUXVlc3Rpb25OYW1lID0gJ1F1ZXN0aW9uXyc7XHJcbiAgcHVibGljIGFjdGl2ZVF1ZXN0aW9uSW5kZXggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oLTUpO1xyXG4gIGFjdGl2ZVF1ZXN0aW9uU3RyZWFtJCA9IHRoaXMuYWN0aXZlUXVlc3Rpb25JbmRleC5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgY3VycmVudFBhZ2VOdW1iZXI6IG51bWJlciA9IDE7XHJcbiAgcHVibGljIGFjdGl2ZVF1ZXN0aW9uID0gMDtcclxuICBzaG93QWRkUGFnZU9wdGlvbiA9IHRydWU7XHJcbiAgc2hvd1BhZ2VEZXRhaWxzID0gZmFsc2U7XHJcbiAgcHVibGljIHNjb3JlID0ge1xyXG4gICAgZGVmYXVsdFNjb3JlOiAxLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMFxyXG4gIH1cclxuICBwdWJsaWMgYWxsUGFnZXM6IGFueSA9IFtdO1xyXG4gIHN0ZXBJZGVudGlmaWVyID0gJ3BhZ2VzY3JlZW4nOyAvLyB0aGlzIHZhbHVlIGNhbiBiZSBcIndlbGNvbWVzY3JlZW5cIixcInRoYW5reW91c2NyZWVuXCIsXCJwYWdlc2NyZWVuXCIgb25seVxyXG4gIGFzc2Vzc21lbnRJZCAhOiBhbnk7XHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgZm9ybXNQYWdlOiBhbnkgPSB7XHJcbiAgICB2ZXJzaW9uOiAyLFxyXG4gICAgcXVlc3Rpb25SYW5kb21pemU6IHRydWUsXHJcbiAgICBhbm9ueW1vdXNSZXNwb25zZTogZmFsc2UsXHJcbiAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgIGhhc1dlbGNvbWVEZXNjcmlwdGlvbjogdHJ1ZSxcclxuICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgIGhhc1dlbGNvbWVJbWFnZTogdHJ1ZSxcclxuICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICB3ZWxjb21lRGVzY3JpcHRpb246ICcnLFxyXG4gICAgaGFzVGhhbmtzOiBmYWxzZSxcclxuICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgdGhhbmt5b3VUZXh0OiAnJyxcclxuICAgIHRoYW5reW91SW1hZ2U6ICcnLFxyXG4gICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogdHJ1ZSxcclxuICAgIHRoYW5reW91RGVzY3JpcHRpb246ICcnLFxyXG4gICAgZWxlbWVudHM6IFtdLFxyXG4gICAgcGFnZURldGFpbHNMaXN0OiBbXSxcclxuICAgIGN1c3RvbVJlc3BvbnNlU2V0OiBbXSxcclxuICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgcmVzcG9uc2VTZWdtZW50OiB0aGlzLmluaXRpYWxpemVFbXB0eVJlc3BvbnNlU2VnbWVudCgpXHJcbiAgfTtcclxuXHJcbiAgaW5pdGlhbGl6ZUVtcHR5UmVzcG9uc2VTZWdtZW50KCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIG1heFNjb3JlOiAxMCxcclxuICAgICAgc2VnbWVudHM6IFtcclxuXHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZEhhbmRsZXIoZm9ybURhdGE6IGFueSwgZGVzdGluYXRpb246IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgZGVzdGluYXRpb24sIGZvcm1EYXRhKTtcclxuICAgIC8vcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXCJlbnZcIiArIGRlc3RpbmF0aW9uLCBmb3JtRGF0YSk7XHJcbiAgfVxyXG5cclxuICBhZGRRdWVzdGlvbihldnQ6IGFueSwgaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIHN3aXRjaCAoZXZ0LnRyaW0oKSkge1xyXG4gICAgICBjYXNlICd3ZWxjb21lJzoge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgPSAtMTtcclxuICAgICAgICB0aGlzLnN0ZXBJZGVudGlmaWVyID0gJ3dlbGNvbWVzY3JlZW4nO1xyXG4gICAgICAgIHRoaXMuZm9ybXNQYWdlLmhhc1dlbGNvbWUgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3RoYW5reW91Jzoge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgPSAtMjtcclxuICAgICAgICB0aGlzLnN0ZXBJZGVudGlmaWVyID0gJ3RoYW5reW91c2NyZWVuJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdtdWx0aXBsZS1jaG9pY2UnOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlTXVsdGlwbGVDaG9pY2UoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94Jzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZUNoZWNrYm94KGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzdGFyLXJhdGluZyc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTdGFyUmF0aW5nKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzaW5nbGUtdGV4dGJveCc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTaW5nbGVUZXh0Ym94KGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdjb21tZW50LWJveCc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVDb21tZW50Ym94KGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdtYXRyaXgtZHJvcGRvd24nOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlTWF0cml4RHJvcGRvd24oaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoge1xyXG4gICAgICAgIHRoaXMuc2V0VG9QYWdlZnJvbVdlbGNvbWUoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZURyb3Bkb3duKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzbGlkZXInOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlU2xpZGVyKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdyYXRpbmctc2NhbGUnOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUmF0aW5nU2NhbGUoaW5kZXgpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnbXVsdGlwbGUtdGV4dGJveCc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVNdWx0aXBsZVRleHRib3goaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2RhdGUtdGltZSc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVEYXRlVGltZShpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZmlsZS11cGxvYWQnOiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb1BhZ2Vmcm9tV2VsY29tZSgpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRlRmlsZVVwbG9hZChpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAncmFua2luZyc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVSYW5raW5nKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzdGFyLXJhdGluZyc6IHtcclxuICAgICAgICB0aGlzLnNldFRvUGFnZWZyb21XZWxjb21lKCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTdGFyUmF0aW5nKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VG9QYWdlZnJvbVdlbGNvbWUoKSB7XHJcbiAgICBpZiAoWyd0aGFua3lvdXNjcmVlbicsICd3ZWxjb21lc2NyZWVuJ10uaW5jbHVkZXModGhpcy5zdGVwSWRlbnRpZmllcikpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZU51bWJlciA9IHRoaXMuYWxsUGFnZXMubGVuZ3RoO1xyXG4gICAgICB0aGlzLnN0ZXBJZGVudGlmaWVyID0gJ3BhZ2VzY3JlZW4nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgd2hldGhlciB0byBkaXNwbGF5IFBhZ2UgRGV0YWlscyBvciBBZGQgUGFnZSB0aWx0ZSBvcHRpb25cclxuICAgKi9cclxuICBjaGVja0ZvclBhZ2VEZXRhaWxzKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2VEZXRhaWxzID09PSB1bmRlZmluZWQgfHwgdGhpcy5jdXJyZW50UGFnZURldGFpbHMucGFnZU5hbWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuc2hvd0FkZFBhZ2VPcHRpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dQYWdlRGV0YWlscyA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93QWRkUGFnZU9wdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNob3dQYWdlRGV0YWlscyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIG11bHRpcGxlIGNob2ljZVxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlTXVsdGlwbGVDaG9pY2UoaW5kZXg/OiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnbXVsdGlwbGUtY2hvaWNlJywgbmFtZTogYGAsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsIG90aGVyQ29uZmlnOiB7IGNvbG9yOiAnIzAwMDAwMCcsIGlzRmFpbGVkOiBmYWxzZSwgc2NvcmU6IHRoaXMuc2NvcmUuZGVmYXVsdFNjb3JlIH0sXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSwgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgY2hvaWNlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICAgIGhlbHBpbmdMYWJlbDogJycsIGlzRmFpbGVkOiBmYWxzZSwgc2NvcmU6IHRoaXMuc2NvcmUuZGVmYXVsdFNjb3JlLCBjb2xvcjogdGhpcy5nZW5lcmF0ZVJhbmRvbUNvbG9yKClcclxuICAgICAgICB9XVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBjaGVja2JveFxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlQ2hlY2tib3goaW5kZXg/OiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnY2hlY2tib3gnLCBuYW1lOiAnJywgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlciwgb3RoZXJDb25maWc6IHsgY29sb3I6ICcjMDAwMDAwJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogdGhpcy5zY29yZS5kZWZhdWx0U2NvcmUgfSxcclxuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsIHRpdGxlOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsIGhhc0NvbW1lbnRzOiBmYWxzZSwgY29tbWVudHM6ICcnLFxyXG4gICAgICByYW5kb21pemU6IGZhbHNlLCBoYXNPdGhlcjogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBmYWxzZSwgdXNlckNvbW1lbnRzOiAnJywgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgY2hvaWNlczpcclxuICAgICAgICBbe1xyXG4gICAgICAgICAgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgaGVscGluZ0xhYmVsOiAnJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogdGhpcy5zY29yZS5kZWZhdWx0U2NvcmUsIGNvbG9yOiB0aGlzLmdlbmVyYXRlUmFuZG9tQ29sb3IoKVxyXG4gICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIHN0YXIgcmF0aW5nXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKiBbTm90ZV06IFJhdGluZyBsYWJlbCB0eXBlIGNhbiB0YWtlIDIgdmFsdWVzICdzcGVjaWZpYycvJ3NjYWxlJ1xyXG4gICAqL1xyXG4gIGNyZWF0ZVN0YXJSYXRpbmcoaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdzdGFyLXJhdGluZycsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLCBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCBjdXJzb3JUeXBlOiAnbnVtYmVyJyxcclxuICAgICAgY3Vyc29yQ29sb3I6ICcjZmY4MDAwJywgc2NhbGU6IDIsIHN0YXJWYWx1ZTogJycsIGhhc1JhdGluZ0xhYmVsOiBmYWxzZSwgcmF0aW5nTGFiZWxUeXBlOiAnc3BlY2lmaWMnLFxyXG4gICAgICBzY2FsZVJhbmdlRnJvbTogJ05vdCBhdCBhbGwgbGlrZWx5JyxcclxuICAgICAgc2NhbGVSYW5nZVRvOiAnRXh0cmVtZSBMaWtlbHknLCB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBjaG9pY2VzOiBbXHJcbiAgICAgICAgeyB0aXRsZTogJycsIGlzVmlzaWJsZTogdHJ1ZSwgdmFsdWU6IDAsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiB0cnVlLCBoZWxwaW5nTGFiZWw6ICcnIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIGlzVmlzaWJsZTogdHJ1ZSwgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiB0cnVlLCBoZWxwaW5nTGFiZWw6ICcnIH0sXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgc2luZ2xlIHRleHRib3hcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZVNpbmdsZVRleHRib3goaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdzaW5nbGUtdGV4dGJveCcsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBjaG9pY2VzOiBbeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogdHJ1ZSwgaGVscGluZ0xhYmVsOiAnJyB9XVxyXG4gICAgfTtcclxuXHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcblxyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIGNvbW1lbnQgYm94XHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVDb21tZW50Ym94KGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnY29tbWVudC1ib3gnLCBuYW1lOiAnJywgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlcixcclxuICAgICAgaXNSZXF1aXJlZDogZmFsc2UsIHRpdGxlOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsIGhhc0NvbW1lbnRzOiBmYWxzZSwgY29tbWVudHM6ICcnLFxyXG4gICAgICBoYXNDaGFyYWN0ZXJMZW5ndGg6IGZhbHNlLCBtaW5DaGFyYWN0ZXJMZW5ndGg6IDAsIG1heENoYXJhY3Rlckxlbmd0aDogMCwgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLFxyXG4gICAgICBvdGhlclZhbHVlOiAnT3RoZXInLCBhbGlnbm1lbnQ6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSwgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJywgaW1hZ2VVUkw6ICcnIH0sXHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIG1hdHJpeCBvZiBkcm9wZG93blxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlTWF0cml4RHJvcGRvd24oaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdtYXRyaXgtZHJvcGRvd24nLCBuYW1lOiAnJywgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlciwgb3RoZXJDb25maWc6IHsgY29sb3I6ICcjMDAwMDAwJywgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogMSB9LFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBjaG9pY2VzOiBbeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycgfV0sXHJcbiAgICAgIGNvbHVtbnM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLCB2YWx1ZTogMSwgd2VpZ2h0OiAwLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycsXHJcbiAgICAgICAgY2hvaWNlczogW3sgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnIH1dXHJcbiAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBkcm9wZG93blxyXG4gICAqIEBwYXJhbSBpbmRleCBJbmRleCBhdCB3aGljaCBxdWVzdGlvbiBuZWVkcyB0byBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgY3JlYXRlRHJvcGRvd24oaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdkcm9wZG93bicsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLCBvdGhlckNvbmZpZzogeyBjb2xvcjogJyMwMDAwMDAnLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiB0aGlzLnNjb3JlLmRlZmF1bHRTY29yZSB9LFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBjaG9pY2VzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnLFxyXG4gICAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogdGhpcy5zY29yZS5kZWZhdWx0U2NvcmUsIGNvbG9yOiB0aGlzLmdlbmVyYXRlUmFuZG9tQ29sb3IoKVxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBzbGlkZXJcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZVNsaWRlcihpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ3NsaWRlcicsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLFxyXG4gICAgICBjaG9pY2VzOiBbeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycgfV0sXHJcbiAgICAgIGNlbnRlclJhbmdlOiBmYWxzZSwgYWRqdXN0U2NhbGU6IGZhbHNlLCBudW1lcmljQm94RW5hYmxlZDogZmFsc2UsIGxlZnQ6IDAsIGNlbnRlcjogMCwgcmlnaHQ6IDEwMCxcclxuICAgICAgc2NhbGVSYW5nZU1pbjogMCwgc2NhbGVSYW5nZU1heDogMTAwLCBzdGVwU2l6ZTogMTAsIHN0YXJ0UG9zaXRpb246IDAsIGVkaXRvclZhbHVlOiAwXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIG1hdHJpeCByYXRpbmcgc2NhbGVcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZVJhdGluZ1NjYWxlKGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAncmF0aW5nLXNjYWxlJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBoYXNSYXRpbmdMYWJlbDogZmFsc2UsIHJhdGluZ0xhYmVsVHlwZTogJycsXHJcbiAgICAgIG90aGVyVmFsdWU6ICdPdGhlcicsIGhhc1dlaWdodDogZmFsc2UsIGFsaWdubWVudDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBmYWxzZSwgdXNlckNvbW1lbnRzOiAnJywgdmlzaWJpbGl0eUxvZ2ljOiBbXSxcclxuICAgICAgY2hvaWNlczogW3sgdGl0bGU6ICcnLCB2YWx1ZTogMSwgaXNTZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwLCBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLCBoZWxwaW5nTGFiZWw6ICcnIH1dLFxyXG4gICAgICBjb2x1bW5zOiBbeyB0aXRsZTogJycsIHZhbHVlOiAxLCB3ZWlnaHQ6IDAsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9XVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSByYW5raW5nXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVSYW5raW5nKGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAncmFua2luZycsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgaGFzUmF0aW5nTGFiZWw6IGZhbHNlLCBhbGlnbm1lbnQ6IGZhbHNlLFxyXG4gICAgICByZXZlcnNlOiBmYWxzZSwgb25seU51bWJlcjogdHJ1ZSwgaXNSZXNwb25kZW50QXR0YWNobWVudDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSxcclxuICAgICAgaXNSZXNwb25kZW50Q29tbWVudDogZmFsc2UsIHVzZXJDb21tZW50czogJycsIHZpc2liaWxpdHlMb2dpYzogW10sIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9LFxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBxdWVzdGlvbiBvZiB0eXBlIG11bHRpcGxlIHRleHRib3hcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZU11bHRpcGxlVGV4dGJveChpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ211bHRpcGxlLXRleHRib3gnLCBuYW1lOiAnJyxcclxuICAgICAgcGFnZTogdGhpcy5jdXJyZW50UGFnZU51bWJlciwgaXNSZXF1aXJlZDogZmFsc2UsIHRpdGxlOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsIG90aGVyVmFsdWU6ICdPdGhlcicsIGhhc1JhdGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsIG9ubHlOdW1iZXI6IHRydWUsIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sXHJcbiAgICAgIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLCB2aXNpYmlsaXR5TG9naWM6IFtdLCBjaG9pY2VzOiBbXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycgfSxcclxuICAgICAgXVxyXG4gICAgfTtcclxuICAgIChpbmRleCA9PT0gdW5kZWZpbmVkKSA/IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQpIDogdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhEZWZpbmVkKGVsZW1lbnQsIGluZGV4KTtcclxuICAgIHRoaXMuc29ydFF1ZXN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcXVlc3Rpb24gb2YgdHlwZSBkYXRlL3RpbWVcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZURhdGVUaW1lKGluZGV4PzogYW55KSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0ge1xyXG4gICAgICB0eXBlOiAnZGF0ZS10aW1lJywgbmFtZTogJycsIHBhZ2U6IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIsXHJcbiAgICAgIGlzUmVxdWlyZWQ6IGZhbHNlLCB0aXRsZTogJycsIGhhc0Rlc2NyaXB0aW9uOiBmYWxzZSwgZGVzY3JpcHRpb246ICcnLCBoYXNDb21tZW50czogZmFsc2UsIGNvbW1lbnRzOiAnJyxcclxuICAgICAgcmFuZG9taXplOiBmYWxzZSwgaGFzT3RoZXI6IGZhbHNlLCBvdGhlclZhbHVlOiAnT3RoZXInLCBoYXNSYXRpbmdMYWJlbDogZmFsc2UsIGFsaWdubWVudDogZmFsc2UsXHJcbiAgICAgIHJldmVyc2U6IGZhbHNlLCBvbmx5TnVtYmVyOiB0cnVlLCBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBmYWxzZSxcclxuICAgICAgdXNlckNvbW1lbnRzOiAnJywgdmlzaWJpbGl0eUxvZ2ljOiBbXSwgaGFzRGF0ZTogdHJ1ZSwgaGFzVGltZTogZmFsc2UsIGRhdGVGb3JtYXQ6ICdERC9NTS9ZWVlZJywgdGltZUZvcm1hdDogMjQsXHJcbiAgICAgIGNob2ljZXM6IFtcclxuICAgICAgICB7IHRpdGxlOiAnJywgdmFsdWU6IDEsIGlzU2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCwgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSwgaGVscGluZ0xhYmVsOiAnJyB9LFxyXG5cclxuICAgICAgXSxcclxuICAgICAgZGF0ZTogeyB0aXRsZTogJycsIHZhbHVlOiAnJyB9LFxyXG4gICAgICB0aW1lOiB7IHRpdGxlOiAnJywgdmFsdWU6ICcnIH1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgZmlsZSB1cGxvYWRcclxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggYXQgd2hpY2ggcXVlc3Rpb24gbmVlZHMgdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGNyZWF0ZUZpbGVVcGxvYWQoaW5kZXg/OiBhbnkpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB7XHJcbiAgICAgIHR5cGU6ICdmaWxlLXVwbG9hZCcsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNJbnN0cnVjdGlvbjogZmFsc2UsIGluc3RydWN0aW9uOiAnJywgaGFzRGVzY3JpcHRpb246IGZhbHNlLCBkZXNjcmlwdGlvbjogJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBmYWxzZSwgY29tbWVudHM6ICcnLCByYW5kb21pemU6IGZhbHNlLCBoYXNPdGhlcjogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBmaWxlVHlwZVJlc3RyaWN0aW9uczogZmFsc2UsIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBjaG9pY2VzOiBbXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycgfV0sXHJcbiAgICAgIGFsbG93ZWRGaWxlVHlwZXM6IHtcclxuICAgICAgICBwZGY6IHRydWUsXHJcbiAgICAgICAgZG9jOiB0cnVlLFxyXG4gICAgICAgIHBuZzogdHJ1ZSxcclxuICAgICAgICBqcGc6IHRydWUsXHJcbiAgICAgICAgZ2lmOiB0cnVlXHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICAoaW5kZXggPT09IHVuZGVmaW5lZCkgPyB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleFVuZGVmaW5lZChlbGVtZW50KSA6IHRoaXMub3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50LCBpbmRleCk7XHJcbiAgICB0aGlzLnNvcnRRdWVzdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHF1ZXN0aW9uIG9mIHR5cGUgaW1hZ2UgY2hvaWNlXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIG5lZWRzIHRvIGJlIGNyZWF0ZWRcclxuICAgKi9cclxuICBjcmVhdGVJbWFnZUNob2ljZShpbmRleD86IGFueSkge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgdHlwZTogJ2ltYWdlLWNob2ljZScsIG5hbWU6ICcnLCBwYWdlOiB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyLFxyXG4gICAgICBpc1JlcXVpcmVkOiBmYWxzZSwgdGl0bGU6ICcnLCBoYXNEZXNjcmlwdGlvbjogZmFsc2UsIGRlc2NyaXB0aW9uOiAnJywgaGFzQ29tbWVudHM6IGZhbHNlLCBjb21tZW50czogJycsXHJcbiAgICAgIHJhbmRvbWl6ZTogZmFsc2UsIGhhc090aGVyOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBmYWxzZSwgcmV2ZXJzZTogZmFsc2UsXHJcbiAgICAgIGlzUmVzcG9uZGVudEF0dGFjaG1lbnQ6IGZhbHNlLCB1c2VyQXR0YWNoZWRGaWxlczogW10sIGlzUmVzcG9uZGVudENvbW1lbnQ6IGZhbHNlLCB1c2VyQ29tbWVudHM6ICcnLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBjaG9pY2VzOiBbXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHZhbHVlOiAxLCBpc1NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAsIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsIGhlbHBpbmdMYWJlbDogJycsIGltYWdlVVJMOiAnJyB9XHJcblxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gICAgKGluZGV4ID09PSB1bmRlZmluZWQpID8gdGhpcy5vcGVyYXRpb25PbkNyZWF0ZUlmSW5kZXhVbmRlZmluZWQoZWxlbWVudCkgOiB0aGlzLm9wZXJhdGlvbk9uQ3JlYXRlSWZJbmRleERlZmluZWQoZWxlbWVudCwgaW5kZXgpO1xyXG4gICAgdGhpcy5zb3J0UXVlc3Rpb24oKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICogQ3JlYXRlcyBhbmQgYWRkcyB0aGUgcXVlc3Rpb24gdG8gbGlzdCBvZiBxdWVzdGlvbnMgaWYgYSBxdWVzdGlvbidzIGluZGV4IGlzIHVuZGVmaW5lZFxyXG4gKiBAcGFyYW0gZWxlbWVudCBEZXRhaWxzIG9mIHF1ZXN0aW9uIHRvIGJlIGNyZWF0ZWRcclxuICovXHJcbiAgb3BlcmF0aW9uT25DcmVhdGVJZkluZGV4VW5kZWZpbmVkKGVsZW1lbnQ6IGFueSkge1xyXG5cclxuICAgIGVsZW1lbnQubmFtZSA9IHRoaXMuZ2VuZXJhdGVRdWVzdGlvbk5hbWUodGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMubGVuZ3RoICsgMSksXHJcbiAgICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLnB1c2goZWxlbWVudCk7XHJcbiAgICB0aGlzLnNldEFjdGl2ZVF1ZXN0aW9uQmFzZWRPblBhZ2VMZW5ndGgoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIGFkZHMgdGhlIHF1ZXN0aW9uIHRvIGxpc3Qgb2YgcXVlc3Rpb25zIGlmIGEgcXVlc3Rpb24ncyBpbmRleCBpcyBwcmVzZW50XHJcbiAgICogQHBhcmFtIGVsZW1lbnQgRGV0YWlscyBvZiBxdWVzdGlvbiB0byBiZSBjcmVhdGVkXHJcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IGF0IHdoaWNoIHF1ZXN0aW9uIHNob3VsZCBiZSBjcmVhdGVkXHJcbiAgICovXHJcbiAgb3BlcmF0aW9uT25DcmVhdGVJZkluZGV4RGVmaW5lZChlbGVtZW50OiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICBlbGVtZW50Lm5hbWUgPSB0aGlzLmdlbmVyYXRlUXVlc3Rpb25OYW1lKGluZGV4ICsgMSk7XHJcbiAgICB0aGlzLmZvcm1zUGFnZS5lbGVtZW50cy5zcGxpY2UoaW5kZXggKyAxLCAwLCBlbGVtZW50KTtcclxuICAgIHRoaXMuYWN0aXZlUXVlc3Rpb24gPSBpbmRleCArIDE7XHJcbiAgICB0aGlzLmFjdGl2ZVF1ZXN0aW9uSW5kZXgubmV4dChpbmRleCArIDEpO1xyXG4gIH1cclxuICAvKipcclxuICAgICogU2V0cyB0aGUgYWN0aXZlIHF1ZXN0aW9uIGJhc2VkIG9uIHBhcnRpY3VsYXIgcGFnZVxyXG4gICAgKi9cclxuICBzZXRBY3RpdmVRdWVzdGlvbkJhc2VkT25QYWdlTGVuZ3RoKCkge1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXI7IGkrKykge1xyXG4gICAgICBjb3VudCArPSBbLi4udGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHNdLnJlZHVjZShcclxuICAgICAgICAoY291bnRlcjogYW55LCBjdXJyZW50RWxlbWVudDogYW55KSA9PiAoaSA9PT0gY3VycmVudEVsZW1lbnQucGFnZSA/IGNvdW50ZXIgKyAxIDogY291bnRlciksIDApIC0gMTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlUXVlc3Rpb24gPSBjb3VudCArIHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgLSAxO1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoY291bnQgKyB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyIC0gMSk7XHJcblxyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgLy8gfSwgMTUwKTtcclxuICAgIC8vIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiogU29ydHMgdGhlIHF1ZXN0aW9ucyBiYXNlZCBvbiBwYWdlIG51bWJlclxyXG4qL1xyXG4gIHNvcnRRdWVzdGlvbigpIHtcclxuICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiBhLnBhZ2UgLSBiLnBhZ2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGEgdW5pcXVlIHF1ZXN0aW9uIG5hbWUgZm9yIG5ld2x5IGFkZGVkIHF1ZXN0aW9uXHJcbiAgICogQHBhcmFtIHF1ZXN0aW9uSW5kZXggSW5kZXggb2YgcXVlc3Rpb24gdG8gYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIGdlbmVyYXRlUXVlc3Rpb25OYW1lKHF1ZXN0aW9uSW5kZXg6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBxdWVzdGlvbk5hbWVzID0gdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMubWFwKChhOiBhbnkpID0+IGEubmFtZSk7XHJcbiAgICBpZiAocXVlc3Rpb25OYW1lcy5pbmNsdWRlcyhgJHt0aGlzLnByZWZpeEZvclF1ZXN0aW9uTmFtZX0ke3F1ZXN0aW9uSW5kZXh9YCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbk5hbWUocXVlc3Rpb25JbmRleCArIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbmFtZSA9ICdRdWVzdGlvbl8nICsgcXVlc3Rpb25JbmRleC50b1N0cmluZygpO1xyXG4gICAgICByZXR1cm4gbmFtZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2VuZXJhdGVSYW5kb21Db2xvcigpIHtcclxuICAgIC8vcmV0dXJuICcjJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDE2Nzc3MjE1KS50b1N0cmluZygxNik7XHJcbiAgICByZXR1cm4gJyMwMDAwMDAnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICogU2V0cyB0aGUgcXVlc3Rpb24gYXMgYWN0aXZlIGJhc2VkIG9uIHRoZSBwYXJ0aWN1bGFyIGluZGV4XHJcbiAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgcXVlc3Rpb24gdG8gYmUgbWFya2VkIGFzIGFjdGl2ZSBxdWVzdGlvblxyXG4gKi9cclxuICBzZXRhY3RpdmVRdWVzdGlvbihpbmRleD86IGFueSkge1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbiA9IGluZGV4O1xyXG4gICAgdGhpcy5hY3RpdmVRdWVzdGlvbkluZGV4Lm5leHQoaW5kZXgpO1xyXG4gIH1cclxuICAvKipcclxuICogRHVwbGljYXRlcyBhIHF1ZXN0aW9uIHdpdGggcGFydGljdWxhciBpbmRleFxyXG4gKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgcXVlc3Rpb24gdG8gYmUgZHVwbGljYXRlZFxyXG4gKi9cclxuICBjb3B5UXVlc3Rpb24oaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5zZXRhY3RpdmVRdWVzdGlvbihpbmRleCArIDEpO1xyXG4gICAgY29uc3QgQ09QWV9FTEVNRU5UID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1zUGFnZS5lbGVtZW50c1tpbmRleF0pKTtcclxuICAgIGlmIChDT1BZX0VMRU1FTlQuZXJyb3JBcnJheSkge1xyXG4gICAgICBkZWxldGUgQ09QWV9FTEVNRU5ULmVycm9yQXJyYXk7XHJcbiAgICB9XHJcbiAgICBDT1BZX0VMRU1FTlQudmlzaWJpbGl0eUxvZ2ljID0gW107XHJcbiAgICBjb25zdCBlbGVtZW50c05hbWVzOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBlbGVtZW50c05hbWVzLnB1c2goZWxlbWVudC5uYW1lKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaGVja0ZvclNhbWVOYW1lKGVsZW1lbnRzTmFtZXMsIENPUFlfRUxFTUVOVCk7XHJcbiAgICB0aGlzLmZvcm1zUGFnZS5lbGVtZW50cy5zcGxpY2UoaW5kZXggKyAxLCAwLCBDT1BZX0VMRU1FTlQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBBc3NpZ25zIGEgdW5pcXVlIG5hbWUgdG8gdGhlIGR1cGxpY2F0ZWQgcXVlc3Rpb25cclxuICAgKiBAcGFyYW0gZWxlbWVudHNOYW1lcyBMaXN0IG9mIHF1ZXN0aW9uIG5hbWVzXHJcbiAgICogQHBhcmFtIENPUFlfRUxFTUVOVCBEZXRhaWxzIG9mIHF1ZXN0aW9uIGR1cGxpY2F0ZWRcclxuICAgKi9cclxuICBjaGVja0ZvclNhbWVOYW1lKGVsZW1lbnRzTmFtZXM6IGFueSwgQ09QWV9FTEVNRU5UOiBhbnkpIHtcclxuICAgIGlmIChlbGVtZW50c05hbWVzLmluY2x1ZGVzKENPUFlfRUxFTUVOVC5uYW1lKSkge1xyXG4gICAgICBjb25zdCBDT1BZX0VMRU1FTlRfTkFNRSA9IENPUFlfRUxFTUVOVC5uYW1lLnNwbGl0KCdfJyk7XHJcbiAgICAgIENPUFlfRUxFTUVOVF9OQU1FW0NPUFlfRUxFTUVOVF9OQU1FLmxlbmd0aCAtIDFdID0gKHBhcnNlSW50KENPUFlfRUxFTUVOVF9OQU1FW0NPUFlfRUxFTUVOVF9OQU1FLmxlbmd0aCAtIDFdLCAxMCkgKyAxKS50b1N0cmluZygpO1xyXG4gICAgICBDT1BZX0VMRU1FTlQubmFtZSA9IENPUFlfRUxFTUVOVF9OQU1FLmpvaW4oJ18nKTtcclxuICAgICAgdGhpcy5jaGVja0ZvclNhbWVOYW1lKGVsZW1lbnRzTmFtZXMsIENPUFlfRUxFTUVOVCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gKiBEZWxldGVzIHRoZSBxdWVzdGlvbiBvbiBjbGljayBvZiBkZWxldGUgYnV0dG9uXHJcbiAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBxdWVzdGlvbiB0byBiZSBkZWxldGVkXHJcbiAqL1xyXG4gIGRlbGV0ZVF1ZXN0aW9uKGluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMucmVtb3ZlTG9naWNGcm9tRGVwZW5kZW50UXVlc3Rpb24oaW5kZXgpO1xyXG4gICAgdGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcbiAgLyoqXHJcbiAqIFJlbW92ZXMgdGhlIGxvZ2ljIGRhdGEgZm9yIGEgcGFydGljdWxhciBxdWVzdGlvbiBmcm9tIG90aGVyIHF1ZXN0aW9uc1xyXG4gKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgcXVlc3Rpb24gd2hvc2UgbG9naWMgZGF0YSBuZWVkcyB0byBiZSByZW1vdmVkIGZyb20gb3RoZXIgcXVlc3Rpb25zXHJcbiAqL1xyXG4gIHJlbW92ZUxvZ2ljRnJvbURlcGVuZGVudFF1ZXN0aW9uKGluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLmZvckVhY2goKHF1ZXN0aW9uRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChxdWVzdGlvbkVsZW1lbnQudmlzaWJpbGl0eUxvZ2ljLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBxdWVzdGlvbkVsZW1lbnQudmlzaWJpbGl0eUxvZ2ljID0gcXVlc3Rpb25FbGVtZW50LnZpc2liaWxpdHlMb2dpYy5maWx0ZXIoKGxvZ2ljOiBhbnkpID0+XHJcbiAgICAgICAgICBsb2dpYy5xdWVzdGlvbk5hbWUgIT09IHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzW2luZGV4XS5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4qIEFkZHMgYSBuZXcgcGFnZVxyXG4qL1xyXG4gIGFkZFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZU51bWJlciA9PT0gLTEgfHwgdGhpcy5jdXJyZW50UGFnZU51bWJlciA9PT0gLTIpIHtcclxuICAgICAgLy90aGlzLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5udW1iZXJPZlBhZ2VzKCkgKyAxO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlTnVtYmVyID0gdGhpcy5hbGxQYWdlcy5sZW5ndGggKyAxO1xyXG4gICAgICB0aGlzLmFsbFBhZ2VzLnB1c2godGhpcy5jdXJyZW50UGFnZU51bWJlcik7XHJcbiAgICAgIHRoaXMubnVtYmVyT2ZQYWdlcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZU51bWJlciA9IHRoaXMuYWxsUGFnZXMubGVuZ3RoICsgMTtcclxuICAgICAgdGhpcy5hbGxQYWdlcy5wdXNoKHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGVwSWRlbnRpZmllciA9ICdwYWdlc2NyZWVuJztcclxuICAgIHRoaXMuYWN0aXZlUXVlc3Rpb25JbmRleC5uZXh0KC0xMCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICogQ291bnRzIHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gYSBzdXJ2ZXkvZm9ybVxyXG4gICovXHJcbiAgbnVtYmVyT2ZQYWdlcygpOiBhbnkge1xyXG4gICAgY29uc3QgUEFHRV9BUlJBWTogYW55ID0gW107XHJcbiAgICBpZiAodGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgIHRoaXMuZm9ybXNQYWdlLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIFBBR0VfQVJSQVkucHVzaChlbGVtZW50LnBhZ2UpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VEZXRhaWxzLnBhZ2VOdW1iZXIgPSBlbGVtZW50LnBhZ2U7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuZm9ybXNQYWdlLnBhZ2VEZXRhaWxzTGlzdC5wdXNoKHRoaXMuY3VycmVudFBhZ2VEZXRhaWxzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFsbFBhZ2VzID0gWy4uLm5ldyBTZXQoUEFHRV9BUlJBWSldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBodHRwT3B0aW9ucyA9IHtcclxuICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsIHRva2VuOiB0aGlzLmdldEF1dGhvcml6YXRpb25Ub2tlbigpIH0pXHJcbiAgfTtcclxuXHJcbiAgZmV0Y2hBc3Nlc3NtZW50RGF0YShpZDogc3RyaW5nKSB7XHJcbiAgICAvL21vZGU9YXNzZXNzbWVudC9mZXRjaFF1ZXN0aW9uc0J5QXNzZXNzbWVudElkJmlkPTYxZjNmNzg3MWM2MDAyMDAwOWEyMDU0M1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXCJlbnZcIiArICdhc3Nlc3NtZW50L2ZldGNoUXVlc3Rpb25zQnlBc3Nlc3NtZW50SWQmaWQ9JyArIGlkLCB0aGlzLmh0dHBPcHRpb25zKS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHNhdmVBc3Nlc3NtZW50KGlkOiBhbnksIHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiZW52XCIgKyAnYXNzZXNzbWVudC91cGRhdGUmaWQ9JyArIGlkLCBwYXlsb2FkLCB0aGlzLmh0dHBPcHRpb25zKVxyXG4gICAgLy8/bW9kZT1hc3Nlc3NtZW50L3VwZGF0ZSZpZD02MWYzZjc4NzFjNjAwMjAwMDlhMjA1NDNcclxuICB9XHJcblxyXG4gIGdldEF1dGhvcml6YXRpb25Ub2tlbigpIHtcclxuICAgIGNvbnN0IFRPS0VOID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJyk7XHJcbiAgICBsZXQgY3VycmVudFVzZXI7XHJcbiAgICBUT0tFTiAhPT0gbnVsbCA/IChjdXJyZW50VXNlciA9IEpTT04ucGFyc2UoVE9LRU4pKSA6IChjdXJyZW50VXNlciA9IHt9KTtcclxuICAgIHJldHVybiBjdXJyZW50VXNlci50b2tlbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogRXh0cmFjdHMgdGhlIHRleHQgZnJvbSBhIHBhcnRpY3VsYXIgaHRtbCBjb250ZW50XHJcbiAgKiBAcGFyYW0gcyBodG1sIGNvbnRlbnQgZnJvbSB3aGljaCB0ZXh0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZFxyXG4gICovXHJcbiAgZXh0cmFjdChzOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICBzcGFuLmlubmVySFRNTCA9IHM7XHJcbiAgICByZXR1cm4gc3Bhbi50ZXh0Q29udGVudCB8fCBzcGFuLmlubmVyVGV4dDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTW92ZXMgUXVlc3Rpb24gdG8gYSBwYXJ0aWN1bGFyIGluZGV4IGluIGFuIGFycmF5XHJcbiAgICogQHBhcmFtIHByZXZpb3VzIEluZGV4IGZyb20gd2hpY2ggUXVlc3Rpb24gc2hvdWxkIGJlIG1vdmVkXHJcbiAgICogQHBhcmFtIG5leHQgIEluZGV4IGJlZm9yZSB3aGljaCBRdWVzdGlvbiBzaG91bGQgYmUgbW92ZWRcclxuICAgKi9cclxuICBtb3ZlUXVlc3Rpb24ocHJldmlvdXM6IGFueSwgbmV4dDogYW55KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5mb3Jtc1BhZ2UuZWxlbWVudHMsIHByZXZpb3VzLCBuZXh0KTtcclxuICB9XHJcbn1cclxuIl19
@@ -59,8 +59,8 @@ export class CheckboxListComponent {
59
59
  CheckboxListComponent.decorators = [
60
60
  { type: Component, args: [{
61
61
  selector: 'app-checkbox-list',
62
- template: "<div class=\"add-risk-rc\" [class.animate]=\"animation\">\r\n <div class=\"add-risk-rc-head\">\r\n <h3 class=\"add-risk-rc-title\">{{config?.panelTitle}}</h3>\r\n <!-- <button class=\"add-risk-rc-close\" (click)=close()>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <div class=\"add-risk-rc-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" placeholder=\"{{config?.searchPlaceholder}}\" [(ngModel)]=\"searchItem\" />\r\n </div>\r\n <ng-container *ngIf=\"(itemsList | search:searchItem:displayKey) as searchList\">\r\n <div class=\"body-top\" *ngIf=\"config?.selectAllEnabled && searchList?.length > 0 && searchItem?.trim()?.length === 0 \">\r\n <app-cs-checkbox [ngValue]=\"itemsList?.length === selectedItems?.length && selectedItems?.length > 0\"\r\n (ngValueChange)=\"selectAll($event)\"><strong> {{itemsList?.length === selectedItems?.length &&\r\n selectedItems?.length > 0?'Deselect All':'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"add-risk-rc-list\" [class.two-column]=\"twoColumn\" *ngIf=\"searchList?.length > 0\">\r\n <li *ngFor=\"let item of searchList\" #ulElement>\r\n <app-cs-checkbox *ngIf=\"config.workflow !== 'policy'\" [ngValue]=\"selectedItems.includes(item[identifierKey])\"\r\n (ngValueChange)=\"selectItem(item[identifierKey],$event)\"\r\n [appTooltip]=\"tooltipKey ? item[tooltipKey]: item[displayKey]\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n {{item[displayKey]}}{{item?.parent_items?.length && config.workflow === 'policy'? ' < ' + item?.parent_items?.join(' < '):'' }}\r\n </app-cs-checkbox>\r\n <app-cs-checkbox *ngIf=\"config.workflow === 'policy'\" [ngValue]=\"selectedItems.includes(item[identifierKey])\"\r\n (ngValueChange)=\"selectItem(item[identifierKey],$event)\">\r\n <ul class=\"add-category-name\">\r\n <li *ngFor=\"let data of item?.parent_items; let i = index\" [appTooltip]=\"data\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\r\n <i *ngIf=\"i > 0;\" class=\"icons\">&#xe910;</i>{{data}}\r\n </li>\r\n <li [appTooltip]=\"item[displayKey]\" placement=\"bottom-left\" type=\"black\" delay=\"0\" [tooltipMandatory]=\"true\">\r\n <i *ngIf=\"item?.parent_items?.length > 0\" class=\"icons\">&#xe910;</i> {{item[displayKey]}}\r\n </li>\r\n </ul>\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"searchList.length === 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"config?.noDataText?.length > 0 ? config?.noDataText:'No data to display'\"></app-no-data>\r\n </ng-container>\r\n </div>\r\n\r\n <app-floating-bar [selectedData]=\"selectedItems|listMapper:itemsList:identifierKey\" [displayElementKey]=\"displayKey\"\r\n [singularText]=\"config?.floatingTextSingular\"\r\n [pluralText]=\"config?.floatingTextPlural ?config?.floatingTextPlural:'Users selected'\" (closeEvent)=\"save()\"\r\n (closeList)=\"close()\" [isDisabled]=\"selectedItems.length === 0 || itemsList.length === 0 \"\r\n (deleteEvent)=\"deleteItem($event)\"></app-floating-bar>\r\n</div>\r\n",
63
- styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-risk-rc{border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .add-risk-rc-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .add-risk-rc-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .add-risk-rc-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .add-risk-rc-body{padding:24px 36px 16px;height:calc(100vh - 112px)}::ng-deep .add-risk-rc-body .search-block{position:relative}::ng-deep .add-risk-rc-body .search-block input{height:44px;line-height:24px;padding:10px 15px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .add-risk-rc-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .add-risk-rc-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .add-risk-rc-body .body-top{display:flex;justify-content:space-between;padding:16px 0 0}::ng-deep .add-risk-rc-body .body-top app-cs-checkbox{display:flex}::ng-deep .add-risk-rc-body .body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:14px;font-weight:600;white-space:nowrap}::ng-deep .add-risk-rc-body ul{padding:0;margin:0}::ng-deep .add-risk-rc-body ul.add-risk-rc-list{padding:16px 0 0;display:block;align-items:flex-start;flex-wrap:wrap;max-height:calc(100vh - 248px);overflow:auto}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li{width:100%;padding:0 0 16px;list-style:none}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio{display:flex}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox label,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio label{width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox label span.value,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-category-name,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-category-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-category-name li,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-category-name li{list-style:none;color:#747576;font-size:14px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:auto;padding:0 8px 0 0;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-category-name li i,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-category-name li i{font-size:8px;padding-right:8px}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-category-name li:first-child,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-category-name li:first-child{color:#4681ef;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-category-name li:last-of-type,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-category-name li:last-of-type{color:#66bf72}::ng-deep .add-risk-rc-body ul.add-risk-rc-list.two-column{display:flex;flex-wrap:wrap}::ng-deep .add-risk-rc-body ul.add-risk-rc-list.two-column li{width:50%;padding-right:20px}::ng-deep .add-risk-rc-body app-no-data .no-data-wrapper{height:calc(100vh - 182px)}::ng-deep .add-risk-rc.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .add-risk-rc .message-footer{background:#1e5dd3;border-radius:5px;margin:0 0 0 30px;width:calc(100% - 60px);position:relative;bottom:0}::ng-deep .add-risk-rc .message-footer .message{padding:15px;display:flex;align-items:flex-start}::ng-deep .add-risk-rc .message-footer .message i{width:auto;font-size:16px;color:#fff}::ng-deep .add-risk-rc .message-footer .message span{color:#fff;font-size:12px;line-height:18px;padding-left:9px;font-weight:300}::ng-deep .add-risk-rc .message-footer .footer{border-top:1px solid #1483ef;display:flex;justify-content:space-between;align-items:center;padding:10px 15px}::ng-deep .add-risk-rc .message-footer .footer span{color:#fff;font-size:14px}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper{display:flex}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button{width:60px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;font-weight:500;border:1px solid #fff;text-transform:uppercase;border-radius:2px;outline:none;padding:0;margin:0}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button.outline{background:#1e5dd3;color:#fff}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button.fill{background:#fff;color:#1e5dd3}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}"]
62
+ template: "<div class=\"add-risk-rc\" [class.animate]=\"animation\">\r\n <div class=\"add-risk-rc-head\">\r\n <h3 class=\"add-risk-rc-title\">{{config?.panelTitle}}</h3>\r\n <!-- <button class=\"add-risk-rc-close\" (click)=close()>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <div class=\"add-risk-rc-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" placeholder=\"{{config?.searchPlaceholder}}\" [(ngModel)]=\"searchItem\" />\r\n </div>\r\n <ng-container *ngIf=\"(itemsList | search:searchItem:displayKey) as searchList\">\r\n <div class=\"body-top\" *ngIf=\"config?.selectAllEnabled && searchList?.length > 0 && searchItem?.trim()?.length === 0 \">\r\n <app-cs-checkbox [ngValue]=\"itemsList?.length === selectedItems?.length && selectedItems?.length > 0\"\r\n (ngValueChange)=\"selectAll($event)\"><strong> {{itemsList?.length === selectedItems?.length &&\r\n selectedItems?.length > 0?'Deselect All':'Select All'}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <ul class=\"add-risk-rc-list\" [class.two-column]=\"twoColumn\" *ngIf=\"searchList?.length > 0\">\r\n <li *ngFor=\"let item of searchList\" #ulElement>\r\n <app-cs-checkbox [ngValue]=\"selectedItems.includes(item[identifierKey])\"\r\n (ngValueChange)=\"selectItem(item[identifierKey],$event)\"\r\n [appTooltip]=\"tooltipKey ? item[tooltipKey]: item[displayKey]\" placement=\"bottom-left\" delay=\"0\"\r\n [tooltipMandatory]=\"true\">\r\n {{item[displayKey]}}\r\n </app-cs-checkbox>\r\n </li>\r\n </ul>\r\n <app-no-data *ngIf=\"searchList.length === 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"config?.noDataText?.length > 0 ? config?.noDataText:'No data to display'\"></app-no-data>\r\n </ng-container>\r\n </div>\r\n\r\n <app-floating-bar [selectedData]=\"selectedItems|listMapper:itemsList:identifierKey\" [displayElementKey]=\"displayKey\"\r\n [singularText]=\"config?.floatingTextSingular\"\r\n [pluralText]=\"config?.floatingTextPlural ?config?.floatingTextPlural:'Users selected'\" (closeEvent)=\"save()\"\r\n (closeList)=\"close()\" [isDisabled]=\"selectedItems.length === 0 || itemsList.length === 0 \"\r\n (deleteEvent)=\"deleteItem($event)\"></app-floating-bar>\r\n</div>\r\n",
63
+ styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .add-risk-rc{border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0}::ng-deep .add-risk-rc-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .add-risk-rc-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .add-risk-rc-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .add-risk-rc-body{padding:24px 36px 16px;height:calc(100vh - 112px)}::ng-deep .add-risk-rc-body .search-block{position:relative}::ng-deep .add-risk-rc-body .search-block input{height:44px;line-height:24px;padding:10px 15px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .add-risk-rc-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .add-risk-rc-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .add-risk-rc-body .body-top{display:flex;justify-content:space-between;padding:16px 0 0}::ng-deep .add-risk-rc-body .body-top app-cs-checkbox{display:flex}::ng-deep .add-risk-rc-body .body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:14px;font-weight:600;white-space:nowrap}::ng-deep .add-risk-rc-body ul{padding:0;margin:0}::ng-deep .add-risk-rc-body ul.add-risk-rc-list{padding:16px 0 0;display:block;align-items:flex-start;flex-wrap:wrap;max-height:calc(100vh - 248px);overflow:auto}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li{width:100%;padding:0 0 16px;list-style:none}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio{display:flex}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox label,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio label{width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox label span.value,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;line-height:18px!important}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name{display:flex;justify-content:flex-start;width:auto;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li{list-style:none;color:#747576;font-size:14px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:auto;padding:0 8px 0 0;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li i,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li i{font-size:8px;padding-right:8px}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li:first-child,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li:first-child{color:#4681ef;max-width:100%}::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-checkbox ul.add-risk-rc-name li:last-of-type,::ng-deep .add-risk-rc-body ul.add-risk-rc-list li app-cs-radio ul.add-risk-rc-name li:last-of-type{color:#66bf72}::ng-deep .add-risk-rc-body ul.add-risk-rc-list.two-column{display:flex;flex-wrap:wrap}::ng-deep .add-risk-rc-body ul.add-risk-rc-list.two-column li{width:50%;padding-right:20px}::ng-deep .add-risk-rc-body app-no-data .no-data-wrapper{height:calc(100vh - 182px)}::ng-deep .add-risk-rc.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .add-risk-rc .message-footer{background:#1e5dd3;border-radius:5px;margin:0 0 0 30px;width:calc(100% - 60px);position:relative;bottom:0}::ng-deep .add-risk-rc .message-footer .message{padding:15px;display:flex;align-items:flex-start}::ng-deep .add-risk-rc .message-footer .message i{width:auto;font-size:16px;color:#fff}::ng-deep .add-risk-rc .message-footer .message span{color:#fff;font-size:12px;line-height:18px;padding-left:9px;font-weight:300}::ng-deep .add-risk-rc .message-footer .footer{border-top:1px solid #1483ef;display:flex;justify-content:space-between;align-items:center;padding:10px 15px}::ng-deep .add-risk-rc .message-footer .footer span{color:#fff;font-size:14px}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper{display:flex}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button{width:60px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;font-weight:500;border:1px solid #fff;text-transform:uppercase;border-radius:2px;outline:none;padding:0;margin:0}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button.outline{background:#1e5dd3;color:#fff}::ng-deep .add-risk-rc .message-footer .footer .button-wrapper button.fill{background:#fff;color:#1e5dd3}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}"]
64
64
  },] }
65
65
  ];
66
66
  CheckboxListComponent.ctorParameters = () => [];
@@ -75,4 +75,4 @@ CheckboxListComponent.propDecorators = {
75
75
  closeList: [{ type: Output }],
76
76
  saveList: [{ type: Output }]
77
77
  };
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxNQUFNLE9BQU8scUJBQXFCO0lBWWhDO1FBWFMsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBSSxJQUFJLENBQUM7SUFDRixDQUFDO0lBRWpCLFFBQVE7UUFDTixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRS9FLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBUyxFQUFFLE9BQWdCO1FBQ3BDLElBQUksT0FBTyxFQUFDO1lBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBRTlEO2FBQUk7WUFDRCxNQUFNLFNBQVMsR0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUFFO1NBQ25FO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sU0FBUyxHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFDO1lBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQUU7SUFDbkUsQ0FBQztJQUdELElBQUk7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBVSxFQUFFLGFBQWtCO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFRO1FBQ2pCLElBQUcsR0FBRyxLQUFLLElBQUksRUFBQztZQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBSTtZQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBRUYsQ0FBQzs7O1lBL0RELFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixnekhBQTZDOzthQUU5Qzs7Ozt3QkFFRSxLQUFLOzRCQUNMLEtBQUs7NEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7cUJBQ0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrYm94LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaXRlbXNMaXN0OiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBpZGVudGlmaWVyS2V5ID0gJyc7XHJcbiAgQElucHV0KCkgZGlzcGxheUtleSA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBLZXkgPSAnJztcclxuICBASW5wdXQoKSBjb25maWcgITogYW55O1xyXG4gIEBJbnB1dCgpIHR3b0NvbHVtbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNhdmVMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHNlYXJjaEl0ZW0gPSAnJztcclxuICBhbmltYXRpb24gPSAgdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9ICB0aGlzLmFycmF5VG9JZCh0aGlzLnNlbGVjdGVkSXRlbXMsIHRoaXMuaWRlbnRpZmllcktleSk7XHJcblxyXG4gIH1cclxuICBzZWxlY3RJdGVtKGl0ZW06IGFueSwgY2hlY2tlZDogYm9vbGVhbil7XHJcbiAgICBpZiAoY2hlY2tlZCl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBBcnJheS5mcm9tKG5ldyBTZXQodGhpcy5zZWxlY3RlZEl0ZW1zKSk7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gIHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoKGVsOiBhbnkpID0+IGVsID09PSBpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSl7dGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZShpdGVtSW5kZXgsIDEpOyB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlbGV0ZUl0ZW0oaXRlbTogYW55KXtcclxuICAgIGNvbnN0IGl0ZW1JbmRleCA9ICB0aGlzLnNlbGVjdGVkSXRlbXMuZmluZEluZGV4KChlbDogYW55KSA9PiBlbCA9PT0gaXRlbVt0aGlzLmlkZW50aWZpZXJLZXldKTtcclxuICAgIGlmIChpdGVtSW5kZXggIT09IC0xKXt0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7IH1cclxuIH1cclxuXHJcblxyXG4gc2F2ZSgpe1xyXG4gICAgdGhpcy5zYXZlTGlzdC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiB9XHJcblxyXG4gY2xvc2UoKXtcclxuICAgdGhpcy5jbG9zZUxpc3QuZW1pdCgpO1xyXG4gfVxyXG5cclxuXHJcbiBhcnJheVRvSWQoYXJyYXk6IGFueSwgaWRlbnRpZmllcktleTogYW55KXtcclxuICAgIHJldHVybiBhcnJheS5tYXAoKGE6IGFueSkgPT4gYVtpZGVudGlmaWVyS2V5XSk7XHJcbiB9XHJcbiBzZWxlY3RBbGwoZXZ0OiBhbnkpe1xyXG4gIGlmKGV2dCA9PT0gdHJ1ZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zTGlzdC5tYXAoKGU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gZVt0aGlzLmlkZW50aWZpZXJLZXldO1xyXG4gICAgfSk7XHJcbiAgfWVsc2V7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICB9XHJcblxyXG4gfVxyXG59XHJcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxNQUFNLE9BQU8scUJBQXFCO0lBWWhDO1FBWFMsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBSSxJQUFJLENBQUM7SUFDRixDQUFDO0lBRWpCLFFBQVE7UUFDTixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRS9FLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBUyxFQUFFLE9BQWdCO1FBQ3BDLElBQUksT0FBTyxFQUFDO1lBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBRTlEO2FBQUk7WUFDRCxNQUFNLFNBQVMsR0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUFFO1NBQ25FO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sU0FBUyxHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFDO1lBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQUU7SUFDbkUsQ0FBQztJQUdELElBQUk7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBVSxFQUFFLGFBQWtCO1FBQ3JDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFRO1FBQ2pCLElBQUcsR0FBRyxLQUFLLElBQUksRUFBQztZQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBSTtZQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO0lBRUYsQ0FBQzs7O1lBL0RELFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qixzc0ZBQTZDOzthQUU5Qzs7Ozt3QkFFRSxLQUFLOzRCQUNMLEtBQUs7NEJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7cUJBQ0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNoZWNrYm94LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrYm94TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaXRlbXNMaXN0OiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBpZGVudGlmaWVyS2V5ID0gJyc7XHJcbiAgQElucHV0KCkgZGlzcGxheUtleSA9ICcnO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXBLZXkgPSAnJztcclxuICBASW5wdXQoKSBjb25maWcgITogYW55O1xyXG4gIEBJbnB1dCgpIHR3b0NvbHVtbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNhdmVMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHNlYXJjaEl0ZW0gPSAnJztcclxuICBhbmltYXRpb24gPSAgdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9ICB0aGlzLmFycmF5VG9JZCh0aGlzLnNlbGVjdGVkSXRlbXMsIHRoaXMuaWRlbnRpZmllcktleSk7XHJcblxyXG4gIH1cclxuICBzZWxlY3RJdGVtKGl0ZW06IGFueSwgY2hlY2tlZDogYm9vbGVhbil7XHJcbiAgICBpZiAoY2hlY2tlZCl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBBcnJheS5mcm9tKG5ldyBTZXQodGhpcy5zZWxlY3RlZEl0ZW1zKSk7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gIHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoKGVsOiBhbnkpID0+IGVsID09PSBpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSl7dGhpcy5zZWxlY3RlZEl0ZW1zLnNwbGljZShpdGVtSW5kZXgsIDEpOyB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlbGV0ZUl0ZW0oaXRlbTogYW55KXtcclxuICAgIGNvbnN0IGl0ZW1JbmRleCA9ICB0aGlzLnNlbGVjdGVkSXRlbXMuZmluZEluZGV4KChlbDogYW55KSA9PiBlbCA9PT0gaXRlbVt0aGlzLmlkZW50aWZpZXJLZXldKTtcclxuICAgIGlmIChpdGVtSW5kZXggIT09IC0xKXt0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7IH1cclxuIH1cclxuXHJcblxyXG4gc2F2ZSgpe1xyXG4gICAgdGhpcy5zYXZlTGlzdC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiB9XHJcblxyXG4gY2xvc2UoKXtcclxuICAgdGhpcy5jbG9zZUxpc3QuZW1pdCgpO1xyXG4gfVxyXG5cclxuXHJcbiBhcnJheVRvSWQoYXJyYXk6IGFueSwgaWRlbnRpZmllcktleTogYW55KXtcclxuICAgIHJldHVybiBhcnJheS5tYXAoKGE6IGFueSkgPT4gYVtpZGVudGlmaWVyS2V5XSk7XHJcbiB9XHJcbiBzZWxlY3RBbGwoZXZ0OiBhbnkpe1xyXG4gIGlmKGV2dCA9PT0gdHJ1ZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zTGlzdC5tYXAoKGU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gZVt0aGlzLmlkZW50aWZpZXJLZXldO1xyXG4gICAgfSk7XHJcbiAgfWVsc2V7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICB9XHJcblxyXG4gfVxyXG59XHJcbiJdfQ==
@@ -25,66 +25,28 @@ function View_CheckboxListComponent_2(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵel
25
25
  var pd_0 = (_co.selectAll($event) !== false);
26
26
  ad = (pd_0 && ad);
27
27
  } return ad; }, i2.View_CsCheckboxComponent_0, i2.RenderType_CsCheckboxComponent)), i1.ɵdid(2, 114688, null, 0, i3.CsCheckboxComponent, [], { ngValue: [0, "ngValue"] }, { ngValueChange: "ngValueChange" }), (_l()(), i1.ɵeld(3, 0, null, 0, 1, "strong", [], null, null, null, null, null)), (_l()(), i1.ɵted(4, null, [" ", ""]))], function (_ck, _v) { var _co = _v.component; var currVal_0 = ((((_co.itemsList == null) ? null : _co.itemsList.length) === ((_co.selectedItems == null) ? null : _co.selectedItems.length)) && (((_co.selectedItems == null) ? null : _co.selectedItems.length) > 0)); _ck(_v, 2, 0, currVal_0); }, function (_ck, _v) { var _co = _v.component; var currVal_1 = (((((_co.itemsList == null) ? null : _co.itemsList.length) === ((_co.selectedItems == null) ? null : _co.selectedItems.length)) && (((_co.selectedItems == null) ? null : _co.selectedItems.length) > 0)) ? "Deselect All" : "Select All"); _ck(_v, 4, 0, currVal_1); }); }
28
- function View_CheckboxListComponent_5(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 3, "app-cs-checkbox", [["delay", "0"], ["placement", "bottom-left"]], null, [[null, "ngValueChange"], [null, "mouseenter"], [null, "mouseover"], [null, "mouseleave"], [null, "mouseout"], [null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("mouseenter" === en)) {
29
- var pd_0 = (i1.ɵnov(_v, 2).onMouseEnter() !== false);
28
+ function View_CheckboxListComponent_4(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, [["ulElement", 1]], null, 4, "li", [], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 3, "app-cs-checkbox", [["delay", "0"], ["placement", "bottom-left"]], null, [[null, "ngValueChange"], [null, "mouseenter"], [null, "mouseover"], [null, "mouseleave"], [null, "mouseout"], [null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("mouseenter" === en)) {
29
+ var pd_0 = (i1.ɵnov(_v, 3).onMouseEnter() !== false);
30
30
  ad = (pd_0 && ad);
31
31
  } if (("mouseover" === en)) {
32
- var pd_1 = (i1.ɵnov(_v, 2).onMouseOver() !== false);
32
+ var pd_1 = (i1.ɵnov(_v, 3).onMouseOver() !== false);
33
33
  ad = (pd_1 && ad);
34
34
  } if (("mouseleave" === en)) {
35
- var pd_2 = (i1.ɵnov(_v, 2).onMouseLeave() !== false);
35
+ var pd_2 = (i1.ɵnov(_v, 3).onMouseLeave() !== false);
36
36
  ad = (pd_2 && ad);
37
37
  } if (("mouseout" === en)) {
38
- var pd_3 = (i1.ɵnov(_v, 2).onMouseOut() !== false);
38
+ var pd_3 = (i1.ɵnov(_v, 3).onMouseOut() !== false);
39
39
  ad = (pd_3 && ad);
40
40
  } if (("click" === en)) {
41
- var pd_4 = (i1.ɵnov(_v, 2).onClick() !== false);
41
+ var pd_4 = (i1.ɵnov(_v, 3).onClick() !== false);
42
42
  ad = (pd_4 && ad);
43
43
  } if (("ngValueChange" === en)) {
44
- var pd_5 = (_co.selectItem(_v.parent.context.$implicit[_co.identifierKey], $event) !== false);
44
+ var pd_5 = (_co.selectItem(_v.context.$implicit[_co.identifierKey], $event) !== false);
45
45
  ad = (pd_5 && ad);
46
- } return ad; }, i2.View_CsCheckboxComponent_0, i2.RenderType_CsCheckboxComponent)), i1.ɵdid(1, 114688, null, 0, i3.CsCheckboxComponent, [], { ngValue: [0, "ngValue"] }, { ngValueChange: "ngValueChange" }), i1.ɵdid(2, 81920, null, 0, i4.ToolTipDirective, [i1.ElementRef, i1.Renderer2], { tooltipTitle: [0, "tooltipTitle"], placement: [1, "placement"], tooltipMandatory: [2, "tooltipMandatory"] }, null), (_l()(), i1.ɵted(3, 0, [" ", "", " "]))], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.selectedItems.includes(_v.parent.context.$implicit[_co.identifierKey]); _ck(_v, 1, 0, currVal_0); var currVal_1 = (_co.tooltipKey ? _v.parent.context.$implicit[_co.tooltipKey] : _v.parent.context.$implicit[_co.displayKey]); var currVal_2 = "bottom-left"; var currVal_3 = true; _ck(_v, 2, 0, currVal_1, currVal_2, currVal_3); }, function (_ck, _v) { var _co = _v.component; var currVal_4 = _v.parent.context.$implicit[_co.displayKey]; var currVal_5 = ((((_v.parent.context.$implicit == null) ? null : ((_v.parent.context.$implicit.parent_items == null) ? null : _v.parent.context.$implicit.parent_items.length)) && (_co.config.workflow === "policy")) ? (" < " + ((_v.parent.context.$implicit == null) ? null : ((_v.parent.context.$implicit.parent_items == null) ? null : _v.parent.context.$implicit.parent_items.join(" < ")))) : ""); _ck(_v, 3, 0, currVal_4, currVal_5); }); }
47
- function View_CheckboxListComponent_8(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uE910"]))], null, null); }
48
- function View_CheckboxListComponent_7(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 4, "li", [["delay", "0"], ["placement", "bottom-left"], ["type", "black"]], null, [[null, "mouseenter"], [null, "mouseover"], [null, "mouseleave"], [null, "mouseout"], [null, "click"]], function (_v, en, $event) { var ad = true; if (("mouseenter" === en)) {
49
- var pd_0 = (i1.ɵnov(_v, 1).onMouseEnter() !== false);
50
- ad = (pd_0 && ad);
51
- } if (("mouseover" === en)) {
52
- var pd_1 = (i1.ɵnov(_v, 1).onMouseOver() !== false);
53
- ad = (pd_1 && ad);
54
- } if (("mouseleave" === en)) {
55
- var pd_2 = (i1.ɵnov(_v, 1).onMouseLeave() !== false);
56
- ad = (pd_2 && ad);
57
- } if (("mouseout" === en)) {
58
- var pd_3 = (i1.ɵnov(_v, 1).onMouseOut() !== false);
59
- ad = (pd_3 && ad);
60
- } if (("click" === en)) {
61
- var pd_4 = (i1.ɵnov(_v, 1).onClick() !== false);
62
- ad = (pd_4 && ad);
63
- } return ad; }, null, null)), i1.ɵdid(1, 81920, null, 0, i4.ToolTipDirective, [i1.ElementRef, i1.Renderer2], { tooltipTitle: [0, "tooltipTitle"], placement: [1, "placement"], type: [2, "type"], tooltipMandatory: [3, "tooltipMandatory"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_8)), i1.ɵdid(3, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵted(4, null, ["", " "]))], function (_ck, _v) { var currVal_0 = _v.context.$implicit; var currVal_1 = "bottom-left"; var currVal_2 = "black"; var currVal_3 = true; _ck(_v, 1, 0, currVal_0, currVal_1, currVal_2, currVal_3); var currVal_4 = (_v.context.index > 0); _ck(_v, 3, 0, currVal_4); }, function (_ck, _v) { var currVal_5 = _v.context.$implicit; _ck(_v, 4, 0, currVal_5); }); }
64
- function View_CheckboxListComponent_9(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uE910"]))], null, null); }
65
- function View_CheckboxListComponent_6(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 9, "app-cs-checkbox", [], null, [[null, "ngValueChange"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("ngValueChange" === en)) {
66
- var pd_0 = (_co.selectItem(_v.parent.context.$implicit[_co.identifierKey], $event) !== false);
67
- ad = (pd_0 && ad);
68
- } return ad; }, i2.View_CsCheckboxComponent_0, i2.RenderType_CsCheckboxComponent)), i1.ɵdid(1, 114688, null, 0, i3.CsCheckboxComponent, [], { ngValue: [0, "ngValue"] }, { ngValueChange: "ngValueChange" }), (_l()(), i1.ɵeld(2, 0, null, 0, 7, "ul", [["class", "add-category-name"]], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_7)), i1.ɵdid(4, 278528, null, 0, i5.NgForOf, [i1.ViewContainerRef, i1.TemplateRef, i1.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), (_l()(), i1.ɵeld(5, 0, null, null, 4, "li", [["delay", "0"], ["placement", "bottom-left"], ["type", "black"]], null, [[null, "mouseenter"], [null, "mouseover"], [null, "mouseleave"], [null, "mouseout"], [null, "click"]], function (_v, en, $event) { var ad = true; if (("mouseenter" === en)) {
69
- var pd_0 = (i1.ɵnov(_v, 6).onMouseEnter() !== false);
70
- ad = (pd_0 && ad);
71
- } if (("mouseover" === en)) {
72
- var pd_1 = (i1.ɵnov(_v, 6).onMouseOver() !== false);
73
- ad = (pd_1 && ad);
74
- } if (("mouseleave" === en)) {
75
- var pd_2 = (i1.ɵnov(_v, 6).onMouseLeave() !== false);
76
- ad = (pd_2 && ad);
77
- } if (("mouseout" === en)) {
78
- var pd_3 = (i1.ɵnov(_v, 6).onMouseOut() !== false);
79
- ad = (pd_3 && ad);
80
- } if (("click" === en)) {
81
- var pd_4 = (i1.ɵnov(_v, 6).onClick() !== false);
82
- ad = (pd_4 && ad);
83
- } return ad; }, null, null)), i1.ɵdid(6, 81920, null, 0, i4.ToolTipDirective, [i1.ElementRef, i1.Renderer2], { tooltipTitle: [0, "tooltipTitle"], placement: [1, "placement"], type: [2, "type"], tooltipMandatory: [3, "tooltipMandatory"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_9)), i1.ɵdid(8, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵted(9, null, [" ", " "]))], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.selectedItems.includes(_v.parent.context.$implicit[_co.identifierKey]); _ck(_v, 1, 0, currVal_0); var currVal_1 = ((_v.parent.context.$implicit == null) ? null : _v.parent.context.$implicit.parent_items); _ck(_v, 4, 0, currVal_1); var currVal_2 = _v.parent.context.$implicit[_co.displayKey]; var currVal_3 = "bottom-left"; var currVal_4 = "black"; var currVal_5 = true; _ck(_v, 6, 0, currVal_2, currVal_3, currVal_4, currVal_5); var currVal_6 = (((_v.parent.context.$implicit == null) ? null : ((_v.parent.context.$implicit.parent_items == null) ? null : _v.parent.context.$implicit.parent_items.length)) > 0); _ck(_v, 8, 0, currVal_6); }, function (_ck, _v) { var _co = _v.component; var currVal_7 = _v.parent.context.$implicit[_co.displayKey]; _ck(_v, 9, 0, currVal_7); }); }
84
- function View_CheckboxListComponent_4(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, [["ulElement", 1]], null, 4, "li", [], null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_5)), i1.ɵdid(2, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_6)), i1.ɵdid(4, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = (_co.config.workflow !== "policy"); _ck(_v, 2, 0, currVal_0); var currVal_1 = (_co.config.workflow === "policy"); _ck(_v, 4, 0, currVal_1); }, null); }
46
+ } return ad; }, i2.View_CsCheckboxComponent_0, i2.RenderType_CsCheckboxComponent)), i1.ɵdid(2, 114688, null, 0, i3.CsCheckboxComponent, [], { ngValue: [0, "ngValue"] }, { ngValueChange: "ngValueChange" }), i1.ɵdid(3, 81920, null, 0, i4.ToolTipDirective, [i1.ElementRef, i1.Renderer2], { tooltipTitle: [0, "tooltipTitle"], placement: [1, "placement"], tooltipMandatory: [2, "tooltipMandatory"] }, null), (_l()(), i1.ɵted(4, 0, [" ", " "]))], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.selectedItems.includes(_v.context.$implicit[_co.identifierKey]); _ck(_v, 2, 0, currVal_0); var currVal_1 = (_co.tooltipKey ? _v.context.$implicit[_co.tooltipKey] : _v.context.$implicit[_co.displayKey]); var currVal_2 = "bottom-left"; var currVal_3 = true; _ck(_v, 3, 0, currVal_1, currVal_2, currVal_3); }, function (_ck, _v) { var _co = _v.component; var currVal_4 = _v.context.$implicit[_co.displayKey]; _ck(_v, 4, 0, currVal_4); }); }
85
47
  function View_CheckboxListComponent_3(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, "ul", [["class", "add-risk-rc-list"]], [[2, "two-column", null]], null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_4)), i1.ɵdid(2, 278528, null, 0, i5.NgForOf, [i1.ViewContainerRef, i1.TemplateRef, i1.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null)], function (_ck, _v) { var currVal_1 = _v.parent.context.ngIf; _ck(_v, 2, 0, currVal_1); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.twoColumn; _ck(_v, 0, 0, currVal_0); }); }
86
- function View_CheckboxListComponent_10(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-no-data", [], null, null, null, i6.View_NoDataComponent_0, i6.RenderType_NoDataComponent)), i1.ɵdid(1, 114688, null, 0, i7.NoDataComponent, [], { noDataImage: [0, "noDataImage"], noDataText: [1, "noDataText"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = "https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg"; var currVal_1 = ((((_co.config == null) ? null : ((_co.config.noDataText == null) ? null : _co.config.noDataText.length)) > 0) ? ((_co.config == null) ? null : _co.config.noDataText) : "No data to display"); _ck(_v, 1, 0, currVal_0, currVal_1); }, null); }
87
- function View_CheckboxListComponent_1(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 6, null, null, null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_2)), i1.ɵdid(2, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_3)), i1.ɵdid(4, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_10)), i1.ɵdid(6, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(0, null, null, 0))], function (_ck, _v) { var _co = _v.component; var tmp_0_0; var currVal_0 = ((((_co.config == null) ? null : _co.config.selectAllEnabled) && (((_v.context.ngIf == null) ? null : _v.context.ngIf.length) > 0)) && (((_co.searchItem == null) ? null : (((tmp_0_0 = _co.searchItem.trim()) == null) ? null : tmp_0_0.length)) === 0)); _ck(_v, 2, 0, currVal_0); var currVal_1 = (((_v.context.ngIf == null) ? null : _v.context.ngIf.length) > 0); _ck(_v, 4, 0, currVal_1); var currVal_2 = (_v.context.ngIf.length === 0); _ck(_v, 6, 0, currVal_2); }, null); }
48
+ function View_CheckboxListComponent_5(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-no-data", [], null, null, null, i6.View_NoDataComponent_0, i6.RenderType_NoDataComponent)), i1.ɵdid(1, 114688, null, 0, i7.NoDataComponent, [], { noDataImage: [0, "noDataImage"], noDataText: [1, "noDataText"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_0 = "https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg"; var currVal_1 = ((((_co.config == null) ? null : ((_co.config.noDataText == null) ? null : _co.config.noDataText.length)) > 0) ? ((_co.config == null) ? null : _co.config.noDataText) : "No data to display"); _ck(_v, 1, 0, currVal_0, currVal_1); }, null); }
49
+ function View_CheckboxListComponent_1(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 6, null, null, null, null, null, null, null)), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_2)), i1.ɵdid(2, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_3)), i1.ɵdid(4, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CheckboxListComponent_5)), i1.ɵdid(6, 16384, null, 0, i5.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null), (_l()(), i1.ɵand(0, null, null, 0))], function (_ck, _v) { var _co = _v.component; var tmp_0_0; var currVal_0 = ((((_co.config == null) ? null : _co.config.selectAllEnabled) && (((_v.context.ngIf == null) ? null : _v.context.ngIf.length) > 0)) && (((_co.searchItem == null) ? null : (((tmp_0_0 = _co.searchItem.trim()) == null) ? null : tmp_0_0.length)) === 0)); _ck(_v, 2, 0, currVal_0); var currVal_1 = (((_v.context.ngIf == null) ? null : _v.context.ngIf.length) > 0); _ck(_v, 4, 0, currVal_1); var currVal_2 = (_v.context.ngIf.length === 0); _ck(_v, 6, 0, currVal_2); }, null); }
88
50
  export function View_CheckboxListComponent_0(_l) { return i1.ɵvid(0, [i1.ɵpid(0, i8.SearchPipe, []), (_l()(), i1.ɵeld(1, 0, null, null, 19, "div", [["class", "add-risk-rc"]], [[2, "animate", null]], null, null, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 2, "div", [["class", "add-risk-rc-head"]], null, null, null, null, null)), (_l()(), i1.ɵeld(3, 0, null, null, 1, "h3", [["class", "add-risk-rc-title"]], null, null, null, null, null)), (_l()(), i1.ɵted(4, null, ["", ""])), (_l()(), i1.ɵeld(5, 0, null, null, 12, "div", [["class", "add-risk-rc-body"]], null, null, null, null, null)), (_l()(), i1.ɵeld(6, 0, null, null, 8, "div", [["class", "search-block"]], null, null, null, null, null)), (_l()(), i1.ɵeld(7, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uE90B"])), (_l()(), i1.ɵeld(9, 0, null, null, 5, "input", [["type", "text"]], [[8, "placeholder", 0], [2, "ng-untouched", null], [2, "ng-touched", null], [2, "ng-pristine", null], [2, "ng-dirty", null], [2, "ng-valid", null], [2, "ng-invalid", null], [2, "ng-pending", null]], [[null, "ngModelChange"], [null, "input"], [null, "blur"], [null, "compositionstart"], [null, "compositionend"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("input" === en)) {
89
51
  var pd_0 = (i1.ɵnov(_v, 10)._handleInput($event.target.value) !== false);
90
52
  ad = (pd_0 && ad);
@@ -113,4 +75,4 @@ export function View_CheckboxListComponent_0(_l) { return i1.ɵvid(0, [i1.ɵpid(
113
75
  export function View_CheckboxListComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-checkbox-list", [], null, null, null, View_CheckboxListComponent_0, RenderType_CheckboxListComponent)), i1.ɵdid(1, 114688, null, 0, i13.CheckboxListComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
114
76
  var CheckboxListComponentNgFactory = i1.ɵccf("app-checkbox-list", i13.CheckboxListComponent, View_CheckboxListComponent_Host_0, { itemsList: "itemsList", selectedItems: "selectedItems", identifierKey: "identifierKey", displayKey: "displayKey", tooltipKey: "tooltipKey", config: "config", twoColumn: "twoColumn" }, { closeList: "closeList", saveList: "saveList" }, []);
115
77
  export { CheckboxListComponentNgFactory as CheckboxListComponentNgFactory };
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9jaGVja2JveC1saXN0L2NoZWNrYm94LWxpc3QuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2tib3gtbGlzdC9jaGVja2JveC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQ2FZLGlHQUtNLEtBSkYsb0pBR2tCLFlBRmQ7O3dCQUFtQztNQUR2Qyx1TUFHa0IsTUFGc0IsNEVBQ2dDLEtBRHhCLGlDQUNlLG1EQUY5QyxzTkFBb0YsSUFBckcsWUFHa0IsRUFIRCxTQUFvRixtREFDckQsbVJBQ2U7Z0VBSzNEOzs7Ozs7Ozs7Ozs7Ozt3QkFLa0I7TUFKZDs7d0JBQXdEO01BRDVELDhZQUtrQixJQUZZLG1DQUU5QixtREFMc0QsMEVBQXVELGtCQUE3RyxZQUtrQixFQUxvQyxTQUF1RCxHQUV6RywrR0FBOEQsZUFBQyw2QkFBdUIsRUFDdEYsb0JBQXlCLEVBSDdCLFlBS2tCLEVBSGQsU0FBOEQsRUFBQyxTQUF1QixFQUN0RixTQUF5QixtREFBQyw4ZUFFOUI7Z0VBS1UsNEZBQTRDLEtBQVosbUNBQVE7Z0VBRDVDOzs7Ozs7Ozs7Ozs7Ozs7dVBBRUssSUFERCxxTEFBNEMsSUFBQSxpQ0FDaEQsMkJBRjJELGtCQUFtQixvQkFBQyw2QkFBdUIsRUFBQyx1QkFBWSxFQUFXLG9CQUF5QixFQUF2SixZQUVLLEVBRnNELFNBQW1CLEVBQUMsU0FBdUIsRUFBQyxTQUFZLEVBQVcsU0FBeUIsR0FDaEoscUNBQWMsR0FBakIsWUFBNEMsRUFBekMsU0FBYywyQkFBMkIsNkRBQ2hEO2dFQUVFLDRGQUFvRSxLQUFaLG1DQUFRO2dFQVB4RSxvSkFVa0IsWUFUbEI7O3dCQUF3RDtNQUR4RCx1TUFVa0IsTUFSZCxzR0FPSyxLQU5ILG1OQUVLLElBQ0w7Ozs7Ozs7Ozs7Ozs7Ozt1UEFFSyxJQURILHFMQUFvRSxJQUFBLGtDQUN0RSxtREFSZ0QsMEVBQXVELGtCQUE3RyxZQVVrQixFQVZvQyxTQUF1RCxHQUduRyxrRUFBc0QseUNBQTFELFlBRUssRUFGRCxTQUFzRCxHQUdyRCwrQ0FBK0IsY0FBQyw2QkFBdUIsRUFBQyx1QkFBWSxFQUFXLG9CQUF5QixFQUE3RyxZQUVLLEVBRkEsU0FBK0IsRUFBQyxTQUF1QixFQUFDLFNBQVksRUFBVyxTQUF5QixHQUN4RyxtTEFBc0MsR0FBekMsWUFBb0UsRUFBakUsU0FBc0MsbURBQTJCLG9GQUN0RTtnRUFmVix5RkFrQkssS0FqQkQscUxBS2tCLElBQ2xCLHFMQVVrQixpREFoQkQsaURBQW9DLEdBQXJELFlBS2tCLEVBTEQsU0FBb0MsR0FNcEMsaURBQW9DLEdBQXJELFlBVWtCLEVBVkQsU0FBb0M7Z0VBUjdELDZIQW9CSyxLQW5CRCxtTkFrQksseUJBbEJELGtCQUFnQyxzQkFBcEMsWUFrQkssRUFsQkQsU0FBZ0MsbURBRFgsbUJBQThCLFlBQTNELFlBb0JLLEVBcEJ3QixTQUE4QjtpRUFxQjNELGtRQUUwRyxpREFEdEcsb0dBQW9HLEVBQ3BHLDZNQUF1RixHQUYzRixZQUUwRyxFQUR0RyxTQUFvRyxFQUNwRyxTQUF1RjtnRUE5Qi9GLDZFQStCZSxLQTlCWCxxTEFLTSxJQUNOLHFMQW9CSyxJQUNMLHNMQUUwRyxzRkE3QnBGLG9SQUErRixJQUFySCxZQUtNLEVBTGdCLFNBQStGLEdBTXpELGdGQUE4QixHQUExRixZQW9CSyxFQXBCdUQsU0FBOEIsR0FxQjdFLDZDQUErQixHQUE1QyxZQUUwRyxFQUY3RixTQUErQjtzR0F4Q3hELHVIQW1ETSxLQWxERix5R0FLTSxLQUpGLHlHQUF5RCxLQUEzQixnQ0FBc0IsTUFLeEQsMEdBcUNNLEtBcENGLHFHQUdNLEtBRkYsNEZBQTZCLEtBQVosbUNBQVEsTUFDekI7Ozs7Ozs7Ozs7O3dCQUEwRjtNQUEzQjs7d0JBQXdCO01BQXZGLDRpQkFBMEYsSUFFOUYsc0xBK0JlLEdBL0JELGFBQWdFLElBa0NsRiwrTEFJMEQsWUFGaUM7O3dCQUFxQjtNQUM1Rzs7d0JBQXFCO01BQ3JCOzt3QkFBa0M7TUFKdEMsb1pBSTBELEtBSnhDLGlDQUFpRSxpREFwQ1osb0JBQXdCLGFBQXZGLGFBQTBGLEVBQTNCLFVBQXdCLEdBRTdFLHFHQUFnRSxlQUE5RSxhQStCZSxFQS9CRCxVQUFnRSxHQWtDaEUsbUdBQWlFLGtCQUFDLG9CQUFnQyxhQUNoSCxtREFBNkMsK0JBQzdDLGtLQUFzRixHQUNoRSxpRkFBb0UsSUFIOUYsYUFJMEQsRUFKeEMsVUFBaUUsRUFBQyxVQUFnQyxFQUNoSCxVQUE2QyxFQUM3QyxVQUFzRixFQUNoRSxVQUFvRSxtREFqRHpFLG1CQUEyQixZQUFwRCxZQW1ETSxFQW5EbUIsU0FBMkIsR0FFZCw4RkFBc0IsR0FRN0IsNkdBQTJDLEdBQTlELG9WQUEwRixFQUF2RSxTQUEyQyxFQUE5RCwyRUFBMEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iLCI8ZGl2IGNsYXNzPVwiYWRkLXJpc2stcmNcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhZGQtcmlzay1yYy1oZWFkXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiYWRkLXJpc2stcmMtdGl0bGVcIj57e2NvbmZpZz8ucGFuZWxUaXRsZX19PC9oMz5cclxuICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJhZGQtcmlzay1yYy1jbG9zZVwiIChjbGljayk9Y2xvc2UoKT5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1yaXNrLXJjLWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJsb2NrXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7e2NvbmZpZz8uc2VhcmNoUGxhY2Vob2xkZXJ9fVwiIFsobmdNb2RlbCldPVwic2VhcmNoSXRlbVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpdGVtc0xpc3QgfCBzZWFyY2g6c2VhcmNoSXRlbTpkaXNwbGF5S2V5KSBhcyBzZWFyY2hMaXN0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib2R5LXRvcFwiICpuZ0lmPVwiY29uZmlnPy5zZWxlY3RBbGxFbmFibGVkICYmIHNlYXJjaExpc3Q/Lmxlbmd0aCA+IDAgJiYgc2VhcmNoSXRlbT8udHJpbSgpPy5sZW5ndGggPT09IDAgXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cIml0ZW1zTGlzdD8ubGVuZ3RoID09PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIj48c3Ryb25nPiB7e2l0ZW1zTGlzdD8ubGVuZ3RoID09PSBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gMD8nRGVzZWxlY3QgQWxsJzonU2VsZWN0IEFsbCd9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhZGQtcmlzay1yYy1saXN0XCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHdvQ29sdW1uXCIgKm5nSWY9XCJzZWFyY2hMaXN0Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gIG9mIHNlYXJjaExpc3RcIiAjdWxFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggKm5nSWY9XCJjb25maWcud29ya2Zsb3cgIT09ICdwb2xpY3knXCIgW25nVmFsdWVdPVwic2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtW2lkZW50aWZpZXJLZXldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEl0ZW0oaXRlbVtpZGVudGlmaWVyS2V5XSwkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwidG9vbHRpcEtleSA/IGl0ZW1bdG9vbHRpcEtleV06IGl0ZW1bZGlzcGxheUtleV1cIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW2Rpc3BsYXlLZXldfX17e2l0ZW0/LnBhcmVudF9pdGVtcz8ubGVuZ3RoICYmIGNvbmZpZy53b3JrZmxvdyA9PT0gJ3BvbGljeSc/ICcgPCAnICsgaXRlbT8ucGFyZW50X2l0ZW1zPy5qb2luKCcgPCAnKTonJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggKm5nSWY9XCJjb25maWcud29ya2Zsb3cgPT09ICdwb2xpY3knXCIgW25nVmFsdWVdPVwic2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtW2lkZW50aWZpZXJLZXldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0SXRlbShpdGVtW2lkZW50aWZpZXJLZXldLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWRkLWNhdGVnb3J5LW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGRhdGEgb2YgaXRlbT8ucGFyZW50X2l0ZW1zOyBsZXQgaSA9IGluZGV4XCIgW2FwcFRvb2x0aXBdPVwiZGF0YVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImkgPiAwO1wiIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTEwOzwvaT57e2RhdGF9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICBbYXBwVG9vbHRpcF09XCJpdGVtW2Rpc3BsYXlLZXldXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiB0eXBlPVwiYmxhY2tcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0/LnBhcmVudF9pdGVtcz8ubGVuZ3RoID4gMFwiIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTEwOzwvaT4ge3tpdGVtW2Rpc3BsYXlLZXldfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPGFwcC1uby1kYXRhICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJjb25maWc/Lm5vRGF0YVRleHQ/Lmxlbmd0aCA+IDAgPyBjb25maWc/Lm5vRGF0YVRleHQ6J05vIGRhdGEgdG8gZGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGFwcC1mbG9hdGluZy1iYXIgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZEl0ZW1zfGxpc3RNYXBwZXI6aXRlbXNMaXN0OmlkZW50aWZpZXJLZXlcIiBbZGlzcGxheUVsZW1lbnRLZXldPVwiZGlzcGxheUtleVwiXHJcbiAgICAgICAgW3Npbmd1bGFyVGV4dF09XCJjb25maWc/LmZsb2F0aW5nVGV4dFNpbmd1bGFyXCJcclxuICAgICAgICBbcGx1cmFsVGV4dF09XCJjb25maWc/LmZsb2F0aW5nVGV4dFBsdXJhbCA/Y29uZmlnPy5mbG9hdGluZ1RleHRQbHVyYWw6J1VzZXJzIHNlbGVjdGVkJ1wiIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXHJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgW2lzRGlzYWJsZWRdPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDAgfHwgaXRlbXNMaXN0Lmxlbmd0aCA9PT0gMCBcIlxyXG4gICAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVJdGVtKCRldmVudClcIj48L2FwcC1mbG9hdGluZy1iYXI+XHJcbjwvZGl2PlxyXG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9jaGVja2JveC1saXN0L2NoZWNrYm94LWxpc3QuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2tib3gtbGlzdC9jaGVja2JveC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dFQ2FZLGlHQUtNLEtBSkYsb0pBR2tCLFlBRmQ7O3dCQUFtQztNQUR2Qyx1TUFHa0IsTUFGc0IsNEVBQ2dDLEtBRHhCLGlDQUNlLG1EQUY5QyxzTkFBb0YsSUFBckcsWUFHa0IsRUFIRCxTQUFvRixtREFDckQsbVJBQ2U7Z0VBSS9ELHlGQU9LLEtBTkQ7Ozs7Ozs7Ozs7Ozs7O3dCQUtrQjtNQUpkOzt3QkFBd0Q7TUFENUQsOFlBS2tCLElBRlksK0JBRTlCLG1EQUxpQixtRUFBdUQsa0JBQXhFLFlBS2tCLEVBTEQsU0FBdUQsR0FFcEUsaUdBQThELGVBQUMsNkJBQXVCLEVBQ3RGLG9CQUF5QixFQUg3QixZQUtrQixFQUhkLFNBQThELEVBQUMsU0FBdUIsRUFDdEYsU0FBeUIsbURBQUMsNkVBRTlCO2dFQVBSLDZIQVNLLEtBUkQsbU5BT0sseUJBUEQsa0JBQWdDLHNCQUFwQyxZQU9LLEVBUEQsU0FBZ0MsbURBRFgsbUJBQThCLFlBQTNELFlBU0ssRUFUd0IsU0FBOEI7Z0VBVTNELGtRQUUwRyxpREFEdEcsb0dBQW9HLEVBQ3BHLDZNQUF1RixHQUYzRixZQUUwRyxFQUR0RyxTQUFvRyxFQUNwRyxTQUF1RjtnRUFuQi9GLDZFQW9CZSxLQW5CWCxxTEFLTSxJQUNOLHFMQVNLLElBQ0wscUxBRTBHLHNGQWxCcEYsb1JBQStGLElBQXJILFlBS00sRUFMZ0IsU0FBK0YsR0FNekQsZ0ZBQThCLEdBQTFGLFlBU0ssRUFUdUQsU0FBOEIsR0FVN0UsNkNBQStCLEdBQTVDLFlBRTBHLEVBRjdGLFNBQStCO3NHQTdCeEQsdUhBd0NNLEtBdkNGLHlHQUtNLEtBSkYseUdBQXlELEtBQTNCLGdDQUFzQixNQUt4RCwwR0EwQk0sS0F6QkYscUdBR00sS0FGRiw0RkFBNkIsS0FBWixtQ0FBUSxNQUN6Qjs7Ozs7Ozs7Ozs7d0JBQTBGO01BQTNCOzt3QkFBd0I7TUFBdkYsNGlCQUEwRixJQUU5RixzTEFvQmUsR0FwQkQsYUFBZ0UsSUF1QmxGLCtMQUkwRCxZQUZpQzs7d0JBQXFCO01BQzVHOzt3QkFBcUI7TUFDckI7O3dCQUFrQztNQUp0QyxvWkFJMEQsS0FKeEMsaUNBQWlFLGlEQXpCWixvQkFBd0IsYUFBdkYsYUFBMEYsRUFBM0IsVUFBd0IsR0FFN0UscUdBQWdFLGVBQTlFLGFBb0JlLEVBcEJELFVBQWdFLEdBdUJoRSxtR0FBaUUsa0JBQUMsb0JBQWdDLGFBQ2hILG1EQUE2QywrQkFDN0Msa0tBQXNGLEdBQ2hFLGlGQUFvRSxJQUg5RixhQUkwRCxFQUp4QyxVQUFpRSxFQUFDLFVBQWdDLEVBQ2hILFVBQTZDLEVBQzdDLFVBQXNGLEVBQ2hFLFVBQW9FLG1EQXRDekUsbUJBQTJCLFlBQXBELFlBd0NNLEVBeENtQixTQUEyQixHQUVkLDhGQUFzQixHQVE3Qiw2R0FBMkMsR0FBOUQsb1ZBQTBGLEVBQXZFLFNBQTJDLEVBQTlELDJFQUEwRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGkwIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaTAuQ29tcG9uZW50RmFjdG9yeTtcbiIsIjxkaXYgY2xhc3M9XCJhZGQtcmlzay1yY1wiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1yaXNrLXJjLWhlYWRcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJhZGQtcmlzay1yYy10aXRsZVwiPnt7Y29uZmlnPy5wYW5lbFRpdGxlfX08L2gzPlxyXG4gICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImFkZC1yaXNrLXJjLWNsb3NlXCIgKGNsaWNrKT1jbG9zZSgpPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWRkLXJpc2stcmMtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2tcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cInt7Y29uZmlnPy5zZWFyY2hQbGFjZWhvbGRlcn19XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hJdGVtXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGl0ZW1zTGlzdCB8IHNlYXJjaDpzZWFyY2hJdGVtOmRpc3BsYXlLZXkpIGFzIHNlYXJjaExpc3RcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvZHktdG9wXCIgKm5nSWY9XCJjb25maWc/LnNlbGVjdEFsbEVuYWJsZWQgJiYgc2VhcmNoTGlzdD8ubGVuZ3RoID4gMCAmJiBzZWFyY2hJdGVtPy50cmltKCk/Lmxlbmd0aCA9PT0gMCBcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3ggW25nVmFsdWVdPVwiaXRlbXNMaXN0Py5sZW5ndGggPT09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJiBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiPjxzdHJvbmc+IHt7aXRlbXNMaXN0Py5sZW5ndGggPT09IHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwPydEZXNlbGVjdCBBbGwnOidTZWxlY3QgQWxsJ319PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImFkZC1yaXNrLXJjLWxpc3RcIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0d29Db2x1bW5cIiAqbmdJZj1cInNlYXJjaExpc3Q/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSAgb2Ygc2VhcmNoTGlzdFwiICN1bEVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveCBbbmdWYWx1ZV09XCJzZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGl0ZW1baWRlbnRpZmllcktleV0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0SXRlbShpdGVtW2lkZW50aWZpZXJLZXldLCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJ0b29sdGlwS2V5ID8gaXRlbVt0b29sdGlwS2V5XTogaXRlbVtkaXNwbGF5S2V5XVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW1bZGlzcGxheUtleV19fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPGFwcC1uby1kYXRhICpuZ0lmPVwic2VhcmNoTGlzdC5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJjb25maWc/Lm5vRGF0YVRleHQ/Lmxlbmd0aCA+IDAgPyBjb25maWc/Lm5vRGF0YVRleHQ6J05vIGRhdGEgdG8gZGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGFwcC1mbG9hdGluZy1iYXIgW3NlbGVjdGVkRGF0YV09XCJzZWxlY3RlZEl0ZW1zfGxpc3RNYXBwZXI6aXRlbXNMaXN0OmlkZW50aWZpZXJLZXlcIiBbZGlzcGxheUVsZW1lbnRLZXldPVwiZGlzcGxheUtleVwiXHJcbiAgICAgICAgW3Npbmd1bGFyVGV4dF09XCJjb25maWc/LmZsb2F0aW5nVGV4dFNpbmd1bGFyXCJcclxuICAgICAgICBbcGx1cmFsVGV4dF09XCJjb25maWc/LmZsb2F0aW5nVGV4dFBsdXJhbCA/Y29uZmlnPy5mbG9hdGluZ1RleHRQbHVyYWw6J1VzZXJzIHNlbGVjdGVkJ1wiIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXHJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgW2lzRGlzYWJsZWRdPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDAgfHwgaXRlbXNMaXN0Lmxlbmd0aCA9PT0gMCBcIlxyXG4gICAgICAgIChkZWxldGVFdmVudCk9XCJkZWxldGVJdGVtKCRldmVudClcIj48L2FwcC1mbG9hdGluZy1iYXI+XHJcbjwvZGl2PlxyXG4iXX0=