vcomply-workflow-engine 2.1.91 → 2.1.92

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 (26) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +275 -144
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +2 -2
  4. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.js +59 -22
  5. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.js +17 -43
  6. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngsummary.json +1 -1
  7. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.js +4 -2
  8. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js +1 -1
  9. package/esm2015/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.js +17 -0
  10. package/esm2015/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.ngsummary.json +1 -0
  11. package/esm2015/lib/workflow-program/workflow-program.component.js +195 -119
  12. package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +41 -41
  13. package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +1 -1
  14. package/esm2015/lib/workflow-services/programs.service.js +9 -1
  15. package/esm2015/lib/workflow-services/programs.service.ngsummary.json +1 -1
  16. package/esm2015/vcomply-workflow-engine.js +6 -5
  17. package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
  18. package/fesm2015/vcomply-workflow-engine.js +279 -141
  19. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  20. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +4 -2
  21. package/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.d.ts +4 -0
  22. package/lib/workflow-program/workflow-program.component.d.ts +8 -10
  23. package/lib/workflow-services/programs.service.d.ts +2 -0
  24. package/package.json +1 -1
  25. package/vcomply-workflow-engine.d.ts +5 -4
  26. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -239,7 +239,7 @@ function View_WorkflowEngineContainerComponent_17(_l) { return i2.ɵvid(0, [(_l(
239
239
  } if (("refreshForm" === en)) {
240
240
  var pd_6 = (_co.onResetForm() !== false);
241
241
  ad = (pd_6 && ad);
242
- } return ad; }, i36.View_WorkflowProgramComponent_0, i36.RenderType_WorkflowProgramComponent)), i2.ɵdid(1, 4308992, [[12, 4], ["program", 4]], 0, i37.WorkflowProgramComponent, [i38.FormBuilder, i39.ProgramsService, i8.AuthService, i11.UiKitService], { mode: [0, "mode"], programId: [1, "programId"] }, { pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", showConfirmationAlert: "showConfirmationAlert", disconnectRefresh: "disconnectRefresh", refreshForm: "refreshForm" })], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.mode; var currVal_1 = _co.id; _ck(_v, 1, 0, currVal_0, currVal_1); }, null); }
242
+ } return ad; }, i36.View_WorkflowProgramComponent_0, i36.RenderType_WorkflowProgramComponent)), i2.ɵdid(1, 114688, [[12, 4], ["program", 4]], 0, i37.WorkflowProgramComponent, [i38.FormBuilder, i39.ProgramsService, i8.AuthService, i11.UiKitService], { mode: [0, "mode"], programId: [1, "programId"] }, { pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", showConfirmationAlert: "showConfirmationAlert", disconnectRefresh: "disconnectRefresh", refreshForm: "refreshForm" })], function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.mode; var currVal_1 = _co.id; _ck(_v, 1, 0, currVal_0, currVal_1); }, null); }
243
243
  function View_WorkflowEngineContainerComponent_18(_l) { return i2.ɵvid(0, [(_l()(), i2.ɵeld(0, 0, null, null, 1, "button", [["class", "submit"]], [[2, "disabled", null]], [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
244
244
  var pd_0 = (_co.submit() !== false);
245
245
  ad = (pd_0 && ad);
@@ -327,4 +327,4 @@ export function View_WorkflowEngineContainerComponent_Host_0(_l) { return i2.ɵv
327
327
  } return ad; }, View_WorkflowEngineContainerComponent_0, RenderType_WorkflowEngineContainerComponent)), i2.ɵdid(1, 4308992, null, 0, i47.WorkflowEngineContainerComponent, [i11.UiKitService, i12.SnackBarService, i8.AuthService], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
328
328
  var WorkflowEngineContainerComponentNgFactory = i2.ɵccf("app-vcomply-workflow-engine-container", i47.WorkflowEngineContainerComponent, View_WorkflowEngineContainerComponent_Host_0, { workflowType: "workflowType", mode: "mode", id: "id", openedFrom: "openedFrom", allowedWorkflows: "allowedWorkflows", frameworkDetails: "frameworkDetails", selectedRC: "selectedRC", secondaryOpenPortal: "secondaryOpenPortal", defaultRiskType: "defaultRiskType", moveToRegisterMode: "moveToRegisterMode", reponsibilityData: "reponsibilityData", pid: "pid", issueData: "issueData", entrustButtonName: "entrustButtonName", config: "config", convertFileData: "convertFileData", selectedCategory: "selectedCategory", selectedProgram: "selectedProgram" }, { closeWorkflow: "closeWorkflow" }, []);
329
329
  export { WorkflowEngineContainerComponentNgFactory as WorkflowEngineContainerComponentNgFactory };
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5uZ2ZhY3RvcnkudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJFQ1VRLDBLQUtNLEtBSEYscUpBRWtCLFlBRGQ7O3dCQUFzQztNQUQxQyxpVkFFa0IsbURBRlcsbUJBQXdDLHVCQUErRCxtQkFBeUIsYUFBdEYsb0NBQTZCLEdBQUUsbUJBQTZCLGVBQW5JLFlBRWtCLEVBRlcsU0FBd0MsRUFBK0QsU0FBeUIsRUFBdEYsU0FBNkIsRUFBRSxTQUE2QixtREFGbEUscUZBQWtFLCtCQUNuSSxtRUFBcUQscUNBQUMsd0RBQTBDLHlCQURwRyxZQUtNLEVBTCtELFNBQWtFLEVBQ25JLFNBQXFELEVBQUMsU0FBMEM7MkVBcUJoRixtSkFFTSxZQUZ1Qzs7d0JBQXdCO01BQXJFLHdCQUVNLEtBREYsc0pBQTREOzJFQU81RCx3S0FBNkgsWUFBMUY7O3dCQUF3QjtNQUEzRCx3QkFBNkgsS0FBM0MsNEZBQTZCLEtBQVosbUNBQVEsTUFBSSxrQ0FBSzsyRUFMeEgsNkdBTU0sS0FKRix1R0FFTSxLQURGLGlIQUFvRixLQUF4QyxnQ0FBaUMsTUFFakYsZ01BQTZILGlEQUFqRSxvQkFBcUIsZUFBakYsWUFBNkgsRUFBakUsU0FB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b0VBQXFELHFDQUNyRCx5VUFBK0ssK0JBRm5MLGFBaUdNLEVBaEdGLFVBQXFELEVBQ3JELFVBQStLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxyXG48ZGl2IGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW92ZXJsYXlcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZVwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiIFtjbGFzcy5iZ109XCIoIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dDYXRlZ29yeUxpc3QpICYmICghcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1jb250YWluZXJcIiBbbmdTd2l0Y2hdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCIgW2NsYXNzLndpdGgtcHJldmlldy1hc3Nlc3NtZW50XT1cIihhdXRoPy5wcmV2aWV3UGFuZWwgfCBhc3luYykgPT09IHRydWVcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIiBpZCA9IFwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiIGNsYXNzPVwiY2xvc2VcIiBbYXBwVG9vbHRpcF09XCInW0VzY10gdG8gY2xvc2UnXCIgcGxhY2VtZW50PVwibGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZSB8fCAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zbWlsZXktb3BlbmVkXT1cInJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXkgfHwgbG9nSXNzdWVDb21wb25lbnQ/LnNob3dTbWlsZXkgfHwgY29tcGxpYW5jZT8uc2hvd1NtaWxleSB8fCAocG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVxyXG4gICAgICAgICB8fCByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHwgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fCBwcm9ncmFtPy5zaG93U21pbGV5XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTNmOzwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiISh1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbilcIiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1tb3JlXCIgW2hpZGRlbl09XCJzaG93TW9yZU9wdGlvbiA9PT0gZmFsc2UgfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIiBbY2xhc3MucmVhZC1vbmx5XT1cInVpS2l0U2VydmljZT8uaXNMb2FkZXJcIj5cclxuICAgICAgICAgICAgPGFwcC1tb3JlLW9wdGlvbiAjbW9yZU9wdGlvbiBbY3VycmVudFdvcmtmbG93XT1cImN1cnJlbnRXb3JrZmxvdy5jb2RlXCIgIFtpc0VkaXRNb2RlXT1cIm1vZGUgPT09J0VESVQnXCIgIFtpc1JDU2VsZWN0ZWRdPVwiaXNSQ1NlbGVjdGVkXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRPcHRpb24pPVwiYWRkTW9yZUluZm8oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1tb3JlLW9wdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1mb3JtXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxyXG4gICAgICAgICAgICBbY2xhc3Mubm8tc2hhZG93XT1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQU1SJ3x8IGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQ01SJyB8fCBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FBQScgfHwgdWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAoc2Nyb2xsKT1cInNjcm9sbEZvcm0oKVwiPlxyXG4gICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKG9wZW5lZEZyb20pXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISh1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMpXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICNkcm9wZG93blJvd1xyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJtb2RlID09PSAnRURJVCcgfHwgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgZGlzYWJsZVdvcmtmbG93Q2hhbmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCIgI2Ryb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIFdvcmtmbG93PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cIiFjdXJyZW50V29ya2Zsb3dcIiAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIFdvcmtmbG93XCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZCBmaXJzdC1maWVsZFwiICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0ge3tjdXJyZW50V29ya2Zsb3cgfCBqc29ufX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPnt7Y3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIiAqbmdJZj1cIiF3b3JrZmxvd0xpc3RcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0NBUFInICYmIGN1cnJlbnRCdXNpbmVzc0N5Y2xlXCIgY2xhc3M9XCJwcm9ncmFtLWJ1c2luZXNzLWN5Y2xlIHZ4LWZzLTExIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMSB2eC1wbC0yIHZ4LXByLTFcIj48aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTFcIj4mI3hlOTYzOzwvaT4gVGhpcyBwcm9ncmFtIGlzIGJlaW5nIHNldC11cCBmb3IgdGhlIGJ1c2luZXNzIGN5Y2xlOiA8c3BhbiBjbGFzcz1cInZ4LWZ3LTYwMCB2eC1tbC0xXCI+e3tjdXJyZW50QnVzaW5lc3NDeWNsZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtY3JlYXRlLWRvY3VtZW50cz48L2FwcC1jcmVhdGUtZG9jdW1lbnRzPiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1idWxrLXZpZXc+PC9hcHAtYnVsay12aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXc+PC9hcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgIDxhcHAtd29ya2Zsb3ctY29tcGxpYW5jZSAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiIFtpc0VudHJ1c3RdPVwiZW50cnVzdEJ1dHRvbk5hbWUudG9Mb3dlckNhc2UoKSA9PSAnZW50cnVzdCcgXCIgIFtyZXNwb25zaWJpbGl0eUlkXT1cImlkXCIgW21vZGVdPVwibW9kZVwiIFtmcmFtZXdvcmtEZXRhaWxzXT1cImZyYW1ld29ya0RldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiICNyZXNwb25zaWJpbGl0eVxyXG4gICAgICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIiBbc2VsZWN0ZWRSQ109XCJzZWxlY3RlZFJDXCJcclxuICAgICAgICAgICAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCIgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIiAocmVzZXRGb3JtKT1cIm9uUmVzZXRGb3JtKClcIiAob25SZW1vdmluZ0NoZWNrcG9pbnQpPVwib25SZW1vdmluZ0NoZWNrcG9pbnQoJGV2ZW50LCBmYWxzZSwgdHJ1ZSlcIiAoaXNBc3Nlc3NtZW50RGlzYWJsZWQpPVwiaXNBc3Nlc3NtZW50RGlzYWJsZWQoJGV2ZW50KVwiIChjaGVja3BvaW50Q291bnRVcGRhdGVkKT1cImNoZWNrcG9pbnRDb3VudCA9ICRldmVudDtcIiBbc2VsZWN0ZWRQcm9ncmFtXT1cInNlbGVjdGVkUHJvZ3JhbVwiPjwvYXBwLXdvcmtmbG93LWNvbXBsaWFuY2U+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2sgW3NlY29uZGFyeU9wZW5Qb3J0YWxdPVwic2Vjb25kYXJ5T3BlblBvcnRhbFwiIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAqbmdTd2l0Y2hDYXNlPVwiJ0FBUidcIiAjcmlzayAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIiAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIiAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiIFttb2RlXT1cIm1vZGVcIiBbcmlza0lkXT1cImlkXCI+PC9hcHAtd29ya2Zsb3ctcmlzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtd29ya2Zsb3ctcG9saWN5IChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCIgI3BvbGljeVxyXG4gICAgICAgICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIiAgKHNoaWZ0VG9FZGl0TW9kZSk9XCJzaGlmdFRvRWRpdE1vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgW3BvbGljeUlkXT1cImlkXCIgW21vZGVdPVwibW9kZVwiIFtjb252ZXJ0RmlsZURhdGFdPVwiY29udmVydEZpbGVEYXRhXCIgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIihwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIj48L2FwcC13b3JrZmxvdy1wb2xpY3k+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXdvcmtmbG93LXN1cnZleS1mb3JtICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiICNzdXJ2ZXlGb3JtPjwvYXBwLXdvcmtmbG93LXN1cnZleS1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1hZGQtbXVsdGlwbGUtcmlzayAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCIgI211bHRpcGxlUmlza1xyXG4gICAgICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIj48L2FwcC1hZGQtbXVsdGlwbGUtcmlzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBOZXcgTG9nIGFuIElzc3VlIC0tPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1sb2ctYW4taXNzdWUgW2lzc3VlRGV0YWlsc109XCJpc3N1ZURhdGFcIiAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIiBbcmVwb25zaWJpbGl0eURhdGFdPVwicmVwb25zaWJpbGl0eURhdGFcIiBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCIgW2lzc3VlSWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICNsb2dBbklzc3VlIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCIgWyhtb2RlKV09XCJtb2RlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+XHJcbiAgICAgICAgICAgICAgICA8IS0tIE9sZCBMb2cgYW4gaXNzdWUgLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtbG9nLWFuLWlzc3VlICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiIFtyZXNwb25zaWJpbGl0aWVzRGF0YV09XCJyZXBvbnNpYmlsdHlEYXRhXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAjbG9nQW5Jc3N1ZSAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+IC0tPlxyXG5cclxuICAgICAgICAgICAgPGFwcC13b3JrZmxvdy1hc3Nlc3NtZW50IFthc3Nlc3NtZW50SWRdPVwiaWRcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKm5nU3dpdGNoQ2FzZT1cIidBQUEnXCIgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIiAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiIFttb2RlXT1cIm1vZGVcIiAjYXNzZXNzbWVudD48L2FwcC13b3JrZmxvdy1hc3Nlc3NtZW50PlxyXG4gICAgICAgICAgICA8YXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50ICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIiAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCIgI2ltcG9ydEFzc2Vzc21lbnQ+PC9hcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQ+XHJcbiAgICAgICAgICAgIDwhLS0gPGFwcC13b3JrZmxvdy1wcm9ncmFtICNwcm9ncmFtICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIj48L2FwcC13b3JrZmxvdy1wcm9ncmFtPiAtLT5cclxuICAgICAgICAgICAgPGFwcC13b3JrZmxvdy1wcm9ncmFtICNwcm9ncmFtICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCIgW21vZGVdPVwibW9kZVwiIFtwcm9ncmFtSWRdPVwiaWRcIj48L2FwcC13b3JrZmxvdy1wcm9ncmFtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiICpuZ1N3aXRjaENhc2U9XCInQUFSJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIj57e21vZGU9PT0nRURJVCcgJiYgb3BlbmVkRnJvbSAhPT0gJ01PVkVfVE9fUkVHSVNURVInID8gJ1VwZGF0ZScgOiAnQWRkJ319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXJpc2tCdWxrVXBsb2FkPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQU1SJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCI+QnJvd3NlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQ01SJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCI+QnJvd3NlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCI+e3tlbnRydXN0QnV0dG9uTmFtZSAhPT0gJycgPyBlbnRydXN0QnV0dG9uTmFtZSA6ICdFbnRydXN0J319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCI+e3soY29udmVydEZpbGVEYXRhLmZpbGVOYW1lKT8nTkVYVCc6KChtb2RlPT0nRURJVCcpPyAnVXBkYXRlJzonQ29udGludWUgdG8gZHJhZnQnKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0NBUydcIj5cclxuICAgICAgICAgICAgICAgQ29udGludWUgdG8gZHJhZnQgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCI+e3ttb2RlPT09J0VESVQnID8gJ1VwZGF0ZScgOiAnQWRkJ319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIiAoY2xpY2spPVwic3VibWl0KClcIj57e21vZGUgPT09ICdFRElUJyA/ICdVcGRhdGUnIDogJ0NvbnRpbnVlIHRvIGRyYWZ0J319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gIGNsYXNzPVwic3VibWl0XCIgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCIgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0lBQScpXCJcclxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiPkJyb3dzZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAgY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCIgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcclxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIj5TYXZlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiICpuZ0lmPVwid29ya2Zsb3dMaXN0XCIgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIiBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImRyb3Bkb3duTGVmdFwiIFtzdHlsZS53aWR0aC5weF09XCJkcm9wZG93bldpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCB3b3JrZmxvdyBvZiB3b3JrZmxvd1R5cGVMaXN0XCIgKGNsaWNrKT1cImNoYW5nZVdvcmtmbG93KCRldmVudCx3b3JrZmxvdylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbdmFsdWVdPVwid29ya2Zsb3c/LmNvZGVcIiBbY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGU9PT13b3JrZmxvdz8uY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3b3JrZmxvdz8ud29ya2Zsb3dOYW1lfX08L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1vdmVybGF5XCIgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIiAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhcHAtY29uZmlybWF0aW9uLWFsZXJ0IChhY3Rpb24pPVwiY29uZmlybVdvcmtmbG93Q2hhbmdlKCRldmVudClcIiAqbmdJZj1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxyXG4gICAgICAgICAgICBbbWVzc2FnZV09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8ubWVzc2FnZVwiIFtjb25maWddPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWdcIj48L2FwcC1jb25maXJtYXRpb24tYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5uZ2ZhY3RvcnkudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzJFQ1VRLDBLQUtNLEtBSEYscUpBRWtCLFlBRGQ7O3dCQUFzQztNQUQxQyxpVkFFa0IsbURBRlcsbUJBQXdDLHVCQUErRCxtQkFBeUIsYUFBdEYsb0NBQTZCLEdBQUUsbUJBQTZCLGVBQW5JLFlBRWtCLEVBRlcsU0FBd0MsRUFBK0QsU0FBeUIsRUFBdEYsU0FBNkIsRUFBRSxTQUE2QixtREFGbEUscUZBQWtFLCtCQUNuSSxtRUFBcUQscUNBQUMsd0RBQTBDLHlCQURwRyxZQUtNLEVBTCtELFNBQWtFLEVBQ25JLFNBQXFELEVBQUMsU0FBMEM7MkVBcUJoRixtSkFFTSxZQUZ1Qzs7d0JBQXdCO01BQXJFLHdCQUVNLEtBREYsc0pBQTREOzJFQU81RCx3S0FBNkgsWUFBMUY7O3dCQUF3QjtNQUEzRCx3QkFBNkgsS0FBM0MsNEZBQTZCLEtBQVosbUNBQVEsTUFBSSxrQ0FBSzsyRUFMeEgsNkdBTU0sS0FKRix1R0FFTSxLQURGLGlIQUFvRixLQUF4QyxnQ0FBaUMsTUFFakYsZ01BQTZILGlEQUFqRSxvQkFBcUIsZUFBakYsWUFBNkgsRUFBakUsU0FB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b0VBQXFELHFDQUNyRCx5VUFBK0ssK0JBRm5MLGFBaUdNLEVBaEdGLFVBQXFELEVBQ3JELFVBQStLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxyXG48ZGl2IGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW92ZXJsYXlcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZVwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiIFtjbGFzcy5iZ109XCIoIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dDYXRlZ29yeUxpc3QpICYmICghcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1jb250YWluZXJcIiBbbmdTd2l0Y2hdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCIgW2NsYXNzLndpdGgtcHJldmlldy1hc3Nlc3NtZW50XT1cIihhdXRoPy5wcmV2aWV3UGFuZWwgfCBhc3luYykgPT09IHRydWVcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIiBpZCA9IFwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiIGNsYXNzPVwiY2xvc2VcIiBbYXBwVG9vbHRpcF09XCInW0VzY10gdG8gY2xvc2UnXCIgcGxhY2VtZW50PVwibGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZSB8fCAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5zbWlsZXktb3BlbmVkXT1cInJpc2tDb21wb25lbnQ/LnNob3dTbWlsZXkgfHwgbG9nSXNzdWVDb21wb25lbnQ/LnNob3dTbWlsZXkgfHwgY29tcGxpYW5jZT8uc2hvd1NtaWxleSB8fCAocG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVxyXG4gICAgICAgICB8fCByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHwgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHwgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fCBwcm9ncmFtPy5zaG93U21pbGV5XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTNmOzwvaT5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiISh1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbilcIiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1tb3JlXCIgW2hpZGRlbl09XCJzaG93TW9yZU9wdGlvbiA9PT0gZmFsc2UgfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIiBbY2xhc3MucmVhZC1vbmx5XT1cInVpS2l0U2VydmljZT8uaXNMb2FkZXJcIj5cclxuICAgICAgICAgICAgPGFwcC1tb3JlLW9wdGlvbiAjbW9yZU9wdGlvbiBbY3VycmVudFdvcmtmbG93XT1cImN1cnJlbnRXb3JrZmxvdy5jb2RlXCIgIFtpc0VkaXRNb2RlXT1cIm1vZGUgPT09J0VESVQnXCIgIFtpc1JDU2VsZWN0ZWRdPVwiaXNSQ1NlbGVjdGVkXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRPcHRpb24pPVwiYWRkTW9yZUluZm8oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1tb3JlLW9wdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1mb3JtXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxyXG4gICAgICAgICAgICBbY2xhc3Mubm8tc2hhZG93XT1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQU1SJ3x8IGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQ01SJyB8fCBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FBQScgfHwgdWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAoc2Nyb2xsKT1cInNjcm9sbEZvcm0oKVwiPlxyXG4gICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKG9wZW5lZEZyb20pXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISh1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHMpXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICNkcm9wZG93blJvd1xyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJtb2RlID09PSAnRURJVCcgfHwgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgZGlzYWJsZVdvcmtmbG93Q2hhbmdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCIgI2Ryb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIFdvcmtmbG93PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cIiFjdXJyZW50V29ya2Zsb3dcIiAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIFdvcmtmbG93XCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZCBmaXJzdC1maWVsZFwiICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0ge3tjdXJyZW50V29ya2Zsb3cgfCBqc29ufX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPnt7Y3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZWRpdFdvcmtmbG93KClcIiAqbmdJZj1cIiF3b3JrZmxvd0xpc3RcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0NBUFInICYmIGN1cnJlbnRCdXNpbmVzc0N5Y2xlXCIgY2xhc3M9XCJwcm9ncmFtLWJ1c2luZXNzLWN5Y2xlIHZ4LWZzLTExIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMSB2eC1wbC0yIHZ4LXByLTFcIj48aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTFcIj4mI3hlOTYzOzwvaT4gVGhpcyBwcm9ncmFtIGlzIGJlaW5nIHNldC11cCBmb3IgdGhlIGJ1c2luZXNzIGN5Y2xlOiA8c3BhbiBjbGFzcz1cInZ4LWZ3LTYwMCB2eC1tbC0xXCI+e3tjdXJyZW50QnVzaW5lc3NDeWNsZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtY3JlYXRlLWRvY3VtZW50cz48L2FwcC1jcmVhdGUtZG9jdW1lbnRzPiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1idWxrLXZpZXc+PC9hcHAtYnVsay12aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXc+PC9hcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PiAtLT5cclxuICAgICAgICAgICAgICAgIDxhcHAtd29ya2Zsb3ctY29tcGxpYW5jZSAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiIFtpc0VudHJ1c3RdPVwiZW50cnVzdEJ1dHRvbk5hbWUudG9Mb3dlckNhc2UoKSA9PSAnZW50cnVzdCcgXCIgIFtyZXNwb25zaWJpbGl0eUlkXT1cImlkXCIgW21vZGVdPVwibW9kZVwiIFtmcmFtZXdvcmtEZXRhaWxzXT1cImZyYW1ld29ya0RldGFpbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiICNyZXNwb25zaWJpbGl0eVxyXG4gICAgICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIiBbc2VsZWN0ZWRSQ109XCJzZWxlY3RlZFJDXCJcclxuICAgICAgICAgICAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCIgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIiAocmVzZXRGb3JtKT1cIm9uUmVzZXRGb3JtKClcIiAob25SZW1vdmluZ0NoZWNrcG9pbnQpPVwib25SZW1vdmluZ0NoZWNrcG9pbnQoJGV2ZW50LCBmYWxzZSwgdHJ1ZSlcIiAoaXNBc3Nlc3NtZW50RGlzYWJsZWQpPVwiaXNBc3Nlc3NtZW50RGlzYWJsZWQoJGV2ZW50KVwiIChjaGVja3BvaW50Q291bnRVcGRhdGVkKT1cImNoZWNrcG9pbnRDb3VudCA9ICRldmVudDtcIiBbc2VsZWN0ZWRQcm9ncmFtXT1cInNlbGVjdGVkUHJvZ3JhbVwiPjwvYXBwLXdvcmtmbG93LWNvbXBsaWFuY2U+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2sgW3NlY29uZGFyeU9wZW5Qb3J0YWxdPVwic2Vjb25kYXJ5T3BlblBvcnRhbFwiIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAqbmdTd2l0Y2hDYXNlPVwiJ0FBUidcIiAjcmlzayAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIiAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIiAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiIFttb2RlXT1cIm1vZGVcIiBbcmlza0lkXT1cImlkXCI+PC9hcHAtd29ya2Zsb3ctcmlzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtd29ya2Zsb3ctcG9saWN5IChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCIgI3BvbGljeVxyXG4gICAgICAgICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIiAgKHNoaWZ0VG9FZGl0TW9kZSk9XCJzaGlmdFRvRWRpdE1vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgW3BvbGljeUlkXT1cImlkXCIgW21vZGVdPVwibW9kZVwiIFtjb252ZXJ0RmlsZURhdGFdPVwiY29udmVydEZpbGVEYXRhXCIgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIihwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIj48L2FwcC13b3JrZmxvdy1wb2xpY3k+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXdvcmtmbG93LXN1cnZleS1mb3JtICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiICNzdXJ2ZXlGb3JtPjwvYXBwLXdvcmtmbG93LXN1cnZleS1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1hZGQtbXVsdGlwbGUtcmlzayAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCIgI211bHRpcGxlUmlza1xyXG4gICAgICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIj48L2FwcC1hZGQtbXVsdGlwbGUtcmlzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBOZXcgTG9nIGFuIElzc3VlIC0tPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1sb2ctYW4taXNzdWUgW2lzc3VlRGV0YWlsc109XCJpc3N1ZURhdGFcIiAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIiBbcmVwb25zaWJpbGl0eURhdGFdPVwicmVwb25zaWJpbGl0eURhdGFcIiBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCIgW2lzc3VlSWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICNsb2dBbklzc3VlIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCIgWyhtb2RlKV09XCJtb2RlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+XHJcbiAgICAgICAgICAgICAgICA8IS0tIE9sZCBMb2cgYW4gaXNzdWUgLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtbG9nLWFuLWlzc3VlICpuZ1N3aXRjaENhc2U9XCInTEFJJ1wiIFtyZXNwb25zaWJpbGl0aWVzRGF0YV09XCJyZXBvbnNpYmlsdHlEYXRhXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXHJcbiAgICAgICAgICAgICAgICAjbG9nQW5Jc3N1ZSAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+IC0tPlxyXG5cclxuICAgICAgICAgICAgPGFwcC13b3JrZmxvdy1hc3Nlc3NtZW50IFthc3Nlc3NtZW50SWRdPVwiaWRcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKm5nU3dpdGNoQ2FzZT1cIidBQUEnXCIgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIiAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiIFttb2RlXT1cIm1vZGVcIiAjYXNzZXNzbWVudD48L2FwcC13b3JrZmxvdy1hc3Nlc3NtZW50PlxyXG4gICAgICAgICAgICA8YXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50ICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIiAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCIgI2ltcG9ydEFzc2Vzc21lbnQ+PC9hcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQ+XHJcbiAgICAgICAgICAgIDwhLS0gPGFwcC13b3JrZmxvdy1wcm9ncmFtICNwcm9ncmFtICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIj48L2FwcC13b3JrZmxvdy1wcm9ncmFtPiAtLT5cclxuICAgICAgICAgICAgPGFwcC13b3JrZmxvdy1wcm9ncmFtICNwcm9ncmFtICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCIgW21vZGVdPVwibW9kZVwiIFtwcm9ncmFtSWRdPVwiaWRcIj48L2FwcC13b3JrZmxvdy1wcm9ncmFtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiICpuZ1N3aXRjaENhc2U9XCInQUFSJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIj57e21vZGU9PT0nRURJVCcgJiYgb3BlbmVkRnJvbSAhPT0gJ01PVkVfVE9fUkVHSVNURVInID8gJ1VwZGF0ZScgOiAnQWRkJ319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXJpc2tCdWxrVXBsb2FkPy5jYXRlZ29yeT8uc2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQU1SJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCI+QnJvd3NlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQ01SJylcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCI+QnJvd3NlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCI+e3tlbnRydXN0QnV0dG9uTmFtZSAhPT0gJycgPyBlbnRydXN0QnV0dG9uTmFtZSA6ICdFbnRydXN0J319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwic3VibWl0KClcIlxyXG4gICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCI+e3soY29udmVydEZpbGVEYXRhLmZpbGVOYW1lKT8nTkVYVCc6KChtb2RlPT0nRURJVCcpPyAnVXBkYXRlJzonQ29udGludWUgdG8gZHJhZnQnKX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0NBUydcIj5cclxuICAgICAgICAgICAgICAgQ29udGludWUgdG8gZHJhZnQgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCI+e3ttb2RlPT09J0VESVQnID8gJ1VwZGF0ZScgOiAnQWRkJ319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIiAoY2xpY2spPVwic3VibWl0KClcIj57e21vZGUgPT09ICdFRElUJyA/ICdVcGRhdGUnIDogJ0NvbnRpbnVlIHRvIGRyYWZ0J319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gIGNsYXNzPVwic3VibWl0XCIgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCIgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0lBQScpXCJcclxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiPkJyb3dzZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAgY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCIgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcclxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIj5TYXZlPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiICpuZ0lmPVwid29ya2Zsb3dMaXN0XCIgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIiBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImRyb3Bkb3duTGVmdFwiIFtzdHlsZS53aWR0aC5weF09XCJkcm9wZG93bldpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCB3b3JrZmxvdyBvZiB3b3JrZmxvd1R5cGVMaXN0XCIgKGNsaWNrKT1cImNoYW5nZVdvcmtmbG93KCRldmVudCx3b3JrZmxvdylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbdmFsdWVdPVwid29ya2Zsb3c/LmNvZGVcIiBbY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGU9PT13b3JrZmxvdz8uY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3b3JrZmxvdz8ud29ya2Zsb3dOYW1lfX08L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1vdmVybGF5XCIgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIiAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhcHAtY29uZmlybWF0aW9uLWFsZXJ0IChhY3Rpb24pPVwiY29uZmlybVdvcmtmbG93Q2hhbmdlKCRldmVudClcIiAqbmdJZj1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxyXG4gICAgICAgICAgICBbbWVzc2FnZV09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8ubWVzc2FnZVwiIFtjb25maWddPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWdcIj48L2FwcC1jb25maXJtYXRpb24tYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -33,14 +33,19 @@ export class AssessmentPickerComponent {
33
33
  this.onAssessmentSelect = new EventEmitter();
34
34
  this.cancelAssessment = new EventEmitter();
35
35
  this.selectedAssessmentArr = [];
36
- this.selectedAssessments = [];
36
+ this.selectedAssessmentCategoriesIds = [];
37
37
  this.selectedAssessmentIds = [];
38
+ this.selectedAssessment = [];
38
39
  this.dataPerPage = 30;
39
40
  }
40
41
  set setSelected(value) {
41
42
  if (value && (value === null || value === void 0 ? void 0 : value.length)) {
42
- this.selectedAssessments = [...value];
43
- this.selectedAssessmentIds = this.selectedAssessments.map((ele) => ele === null || ele === void 0 ? void 0 : ele.id);
43
+ this.selectedAssessmentArr = [...value];
44
+ this.setCategoryAndAssessment();
45
+ this.selectedAssessmentArr.forEach((ele, index) => {
46
+ this.openedCategory.push(ele === null || ele === void 0 ? void 0 : ele.category_id);
47
+ // this.showSubList(index,ele?.category_id);
48
+ });
44
49
  }
45
50
  }
46
51
  ngOnChanges(changes) {
@@ -77,12 +82,12 @@ export class AssessmentPickerComponent {
77
82
  *
78
83
  */
79
84
  showSubList(index, id) {
80
- console.log("this.openedCategory ==>", this.openedCategory);
81
- if (this.openedCategory.includes(index)) {
82
- this.openedCategory = this.openedCategory.filter(ele => ele !== index);
85
+ console.log("this.openedCategorydasasfsa ==>", this.openedCategory, index, id);
86
+ if (this.openedCategory.includes(id)) {
87
+ this.openedCategory = this.openedCategory.filter(ele => ele !== id);
83
88
  }
84
89
  else {
85
- this.openedCategory.push(index);
90
+ this.openedCategory.push(id);
86
91
  this.getAssessmentList(index, id);
87
92
  }
88
93
  console.log("this.openedCategory ==>", this.openedCategory);
@@ -131,12 +136,16 @@ export class AssessmentPickerComponent {
131
136
  this.assessmentService.getAssessmentCategory(this.assessmentPayload).subscribe((res) => {
132
137
  var _a;
133
138
  this.assessmentCategory = res;
134
- if ((_a = this.selectedAssessmentData) === null || _a === void 0 ? void 0 : _a.length) {
139
+ if ((_a = this.selectedAssessmentArr) === null || _a === void 0 ? void 0 : _a.length) {
135
140
  this.selectedAssessmentArr = [...new Set(this.selectedAssessmentData)];
136
- this.selectedAssessmentData.forEach((ele) => {
141
+ this.selectedAssessmentArr.forEach((ele) => {
137
142
  const index = res.data.findIndex((assessment) => assessment.id === ele.category_id);
138
143
  this.showSubList(index, ele.category_id);
139
144
  });
145
+ // this.selectedAssessmentArr.forEach((ele:any,index:any) => {
146
+ // this.openedCategory.push(ele?.category_id);
147
+ // this.showSubList(index,ele?.category_id);
148
+ // })
140
149
  }
141
150
  this.isLoader = false;
142
151
  });
@@ -151,9 +160,14 @@ export class AssessmentPickerComponent {
151
160
  search_title: "",
152
161
  };
153
162
  this.assessmentService.getAssessmentList(payload, id).subscribe((res) => {
154
- var _a;
155
- this.assessmentCategory.data[index].assessmentData = [...new Set(res)];
156
- if ((_a = this.selectedAssessmentData) === null || _a === void 0 ? void 0 : _a.length) {
163
+ var _a, _b, _c;
164
+ const index = (_b = (_a = this.assessmentCategory) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.findIndex((ele) => ele.id === id);
165
+ console.log("index", index, this.selectedAssessmentArr);
166
+ if (index > -1) {
167
+ this.assessmentCategory.data[index].assessmentData = [...new Set(res)];
168
+ }
169
+ console.log("ass");
170
+ if ((_c = this.selectedAssessmentArr) === null || _c === void 0 ? void 0 : _c.length) {
157
171
  const index = this.selectedAssessmentArr.findIndex((ele) => ele.category_id === id);
158
172
  if (index !== -1) {
159
173
  this.selectedAssessmentArr[index].assessmentIds = this.selectedAssessmentArr[index].assessmentIds.map((ele) => {
@@ -172,7 +186,6 @@ export class AssessmentPickerComponent {
172
186
  */
173
187
  selectAssessment(evt, payload, category) {
174
188
  var _a;
175
- console.log("payload ==>", payload);
176
189
  const index = this.selectedAssessmentArr.findIndex((ele) => ele.category_id === category.id);
177
190
  if (index > -1) {
178
191
  if ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) {
@@ -190,14 +203,38 @@ export class AssessmentPickerComponent {
190
203
  category_id: category.id,
191
204
  assessmentIds: [payload]
192
205
  });
206
+ this.setCategoryAndAssessment();
207
+ console.log("payload ==>", evt, payload, category);
208
+ // const index = this.selectedAssessmentArr.findIndex((ele: any) => ele.category_id === category.id);
209
+ // if(index > -1) {
210
+ // if(evt?.target?.checked) {
211
+ // this.selectedAssessmentArr[index].assessmentIds.push(payload)
212
+ // } else {
213
+ // this.selectedAssessmentArr[index].assessmentIds = this.selectedAssessmentArr[index].assessmentIds.filter((assessment: any) => assessment.id !== payload.id);
214
+ // if(this.selectedAssessmentArr[index].assessmentIds.length === 0) {
215
+ // this.selectedAssessmentArr.splice(index, 1);
216
+ // }
217
+ // }
218
+ // } else {
219
+ // this.selectedAssessmentArr.push({
220
+ // category_id: category.id,
221
+ // assessmentIds: [payload]
222
+ // })
223
+ // }
224
+ // const selectedData = JSON.parse(JSON.stringify(this.selectedAssessmentArr))
225
+ // this.selectedAssessmentData = selectedData.map((ele: any) => {
226
+ // ele.assessmentIds = ele.assessmentIds.map((assessment: any) => assessment.id )
227
+ // return ele;
228
+ // });
229
+ console.log(" this.selectedAssessmentArr this.selectedAssessmentArr", this.selectedAssessmentArr);
230
+ // evt?.target?.checked === true ? this.manipulateSelectedAssessment('ADD', payload) : this.manipulateSelectedAssessment('DELETE', payload)
193
231
  }
194
- const selectedData = JSON.parse(JSON.stringify(this.selectedAssessmentArr));
195
- this.selectedAssessmentData = selectedData.map((ele) => {
196
- ele.assessmentIds = ele.assessmentIds.map((assessment) => assessment.id);
197
- return ele;
198
- });
199
- console.log(" this.selectedAssessmentArr this.selectedAssessmentArr", this.selectedAssessmentData, selectedData);
200
- // evt?.target?.checked === true ? this.manipulateSelectedAssessment('ADD', payload) : this.manipulateSelectedAssessment('DELETE', payload)
232
+ }
233
+ setCategoryAndAssessment() {
234
+ var _a;
235
+ this.selectedAssessmentCategoriesIds = (_a = this.selectedAssessmentArr.filter((cat) => { var _a; return ((_a = cat === null || cat === void 0 ? void 0 : cat.assessmentIds) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _a === void 0 ? void 0 : _a.map((ele) => ele === null || ele === void 0 ? void 0 : ele.category_id);
236
+ this.selectedAssessmentIds = this.selectedAssessmentArr.map((cat) => cat === null || cat === void 0 ? void 0 : cat.assessmentIds.map((ele) => ele === null || ele === void 0 ? void 0 : ele.id));
237
+ this.selectedAssessment = this.selectedAssessmentArr.map((cat) => cat === null || cat === void 0 ? void 0 : cat.assessmentIds.map((ele) => ele));
201
238
  }
202
239
  // TODO: Display selected data in bottom floating bar with next enabled button having
203
240
  // TODO: Send data in payload of create Responsibility form
@@ -225,7 +262,7 @@ export class AssessmentPickerComponent {
225
262
  AssessmentPickerComponent.decorators = [
226
263
  { type: Component, args: [{
227
264
  selector: 'assessment-picker',
228
- template: "<app-preview *ngIf=\"isPreview\" [questionData]=\"previewQuestionData\" (previewBack)=\"previewBack()\"></app-preview>\r\n<div class=\"assessment-list\" [class.animate]=\"animation\">\r\n\r\n <ng-container >\r\n <div class=\"assessment-list-head\">\r\n <button class=\"back-btn\">\r\n <!-- <i class=\"icons\">&#xe91d;</i> -->\r\n </button>\r\n <h3 class=\"assessment-list-title\">Select an Assessment</h3>\r\n </div>\r\n <div class=\"assessment-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"searchAssessments\" (change)=\"onAssessmentSearch($event.target.value)\" placeholder=\"Search Assessment Category\" />\r\n </div>\r\n <pagination\r\n\r\n [pageCount]=\"assessmentCategory?.totalPage\"\r\n [total]=\"assessmentCategory?.totalRecords\"\r\n [start]=\"assessmentCategory?.start_value\"\r\n [end]=\"assessmentCategory?.end_value\"\r\n [activeAlphabet]=\"''\"\r\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\r\n (selectedPage)=\"onPageSelection($event)\"\r\n ></pagination>\r\n <div *ngIf=\"assessmentCategory.data.length === 0 && !isLoader\" class=\"assessment-list-part\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Assessments Found.'\"></app-no-data>\r\n </div>\r\n <div *ngIf=\"assessmentCategory.data.length || isLoader\" class=\"assessment-list-part\">\r\n <div *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\" class=\"assessment-list-selected\">\r\n <div class=\"assessment-list-heading\">Assessment already selected for this responsibility</div>\r\n <div class=\"assessment-list-item\">\r\n <div class=\"table-row\">\r\n <div class=\"table-column serial disabled\">\r\n <app-cs-radio [disabled]=\"true\" class=\"disabled\" [checked]=\"true\" [readonly]=\"true\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"selectedAssessment?.assessmentDetails?.assessment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.assessmentDetails?.assessment_name}}</div>\r\n <div class=\"within-part\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{selectedAssessment?.assessmentDetails?.questions}} {{selectedAssessment?.assessmentDetails?.questions > 1 ? 'Questions': 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(selectedAssessment?.assessmentDetails)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"assessment-list-heading\">Select an Assessment for this responsibility</div>\r\n\r\n <!--\r\n Assessment category list\r\n active class is used for highlighting opened element\r\n -->\r\n <ng-container *ngIf=\"!isLoader\">\r\n <div *ngFor=\"let data of assessmentCategory.data; let i = index;\" class=\"assessment-list-item\" [class.active]=\"openedCategory.includes(i) || data.id === selectedAssessment?.category_id\">\r\n <div class=\"table-row main-list\" (click)=\"showSubList(i, data?.id)\" [class.disabled]=\"data?.assessmentcount < 1\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sr-no' + i\" class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}</div>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"data.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.category_name}}</div>\r\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"data.parent_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.parent_tree}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <button [id]=\"'arrow' + i\" class=\"arrow\" [class.disabled] = \"data?.assessmentcount < 1\" [disabled]=\"data?.assessmentcount < 1\">\r\n <i *ngIf=\"!openedCategory.includes(i)\" class=\"icons\">&#xe970;</i>\r\n <i *ngIf=\"openedCategory.includes(i)\" class=\"icons\">&#xe9e8;</i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Assessment list start from here -->\r\n <div *ngIf=\"openedCategory.includes(i)\" class=\"sub-list\">\r\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\r\n <div class=\"table-row\" *ngFor=\"let assessment of data.assessmentData; let j = index\" [class.active]=\"(selectedAssessmentData |selectedAssessment: data.id).includes(assessment.id)\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sub-sr-no'+ i+j\" class=\"sr-no\" [appTooltip]=\"'1.1'\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n {{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\r\n <!-- <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"assessment?.id === selectedAssessment?.assessment_id && data?.id === selectedAssessment?.category_id\"\r\n (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio> -->\r\n <!-- (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\" -->\r\n\r\n <vui-checkbox [checked]=\"(selectedAssessmentData |selectedAssessment: data.id).includes(assessment.id)\" (change)=\"selectAssessment($event,assessment, data)\"></vui-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"value\" [appTooltip]=\"'Mission and message, communications to external audiences'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{assessment?.assessment_name}}</div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{assessment?.questions}} {{assessment?.questions > 1 ? 'Questions' : 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(assessment)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-sub-loader *ngIf=\"!data.assessmentData?.length\"></assessment-sub-loader>\r\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-loader *ngIf=\"isLoader\"></assessment-loader>\r\n </div>\r\n <!-- No data image -->\r\n <app-no-data *ngIf=\"!assessmentCategory.data.length && !isLoader\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Data to Display'\"></app-no-data>\r\n </div>\r\n <!--\r\n bottom floating bar which includes cancel, next button\r\n closing tab\r\n -->\r\n\r\n\r\n <vui-floating-bar (closeEvent)=\"save()\" (closeList)=\"close()\">\r\n <div class=\"counter\" *ngIf=\"selectedAssessments?.length\" appPopover (click)=\"assessmentCount.popover()\"\r\n placement=\"left\">{{selectedAssessments?.length}}</div>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedAssessments?.length === 1\">Assessment selected</span>\r\n <span *ngIf=\"selectedAssessments?.length > 1\">Assessments selected</span>\r\n </div>\r\n <app-popover #assessmentCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedAssessments; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\"\r\n (click)=\"selectAssessment({target:{checked:false}},element)\">&#xe90d;</i>\r\n {{element?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n </vui-floating-bar>\r\n\r\n </ng-container>\r\n</div>\r\n",
265
+ template: "<app-preview *ngIf=\"isPreview\" [questionData]=\"previewQuestionData\" (previewBack)=\"previewBack()\"></app-preview>\r\n<div class=\"assessment-list\" [class.animate]=\"animation\">\r\n\r\n <ng-container >\r\n <div class=\"assessment-list-head\">\r\n <button class=\"back-btn\">\r\n <!-- <i class=\"icons\">&#xe91d;</i> -->\r\n </button>\r\n <h3 class=\"assessment-list-title\">Select an Assessment</h3>\r\n </div>\r\n <div class=\"assessment-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"searchAssessments\" (change)=\"onAssessmentSearch($event.target.value)\" placeholder=\"Search Assessment Category\" />\r\n </div>\r\n <pagination\r\n\r\n [pageCount]=\"assessmentCategory?.totalPage\"\r\n [total]=\"assessmentCategory?.totalRecords\"\r\n [start]=\"assessmentCategory?.start_value\"\r\n [end]=\"assessmentCategory?.end_value\"\r\n [activeAlphabet]=\"''\"\r\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\r\n (selectedPage)=\"onPageSelection($event)\"\r\n ></pagination>\r\n <div *ngIf=\"assessmentCategory.data.length === 0 && !isLoader\" class=\"assessment-list-part\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Assessments Found.'\"></app-no-data>\r\n </div>\r\n <div *ngIf=\"assessmentCategory.data.length || isLoader\" class=\"assessment-list-part\">\r\n <div *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\" class=\"assessment-list-selected\">\r\n <div class=\"assessment-list-heading\">Assessment already selected for this responsibility</div>\r\n <div class=\"assessment-list-item\">\r\n <div class=\"table-row\">\r\n <div class=\"table-column serial disabled\">\r\n <app-cs-radio [disabled]=\"true\" class=\"disabled\" [checked]=\"true\" [readonly]=\"true\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"selectedAssessment?.assessmentDetails?.assessment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.assessmentDetails?.assessment_name}}</div>\r\n <div class=\"within-part\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{selectedAssessment?.assessmentDetails?.questions}} {{selectedAssessment?.assessmentDetails?.questions > 1 ? 'Questions': 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(selectedAssessment?.assessmentDetails)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"assessment-list-heading\">Select an Assessment for this responsibility</div>\r\n\r\n <!--\r\n Assessment category list\r\n active class is used for highlighting opened element\r\n -->\r\n <ng-container *ngIf=\"!isLoader\">\r\n <div *ngFor=\"let data of assessmentCategory.data; let i = index;\" class=\"assessment-list-item\" [class.active]=\"openedCategory.includes(data?.id) || data.id === selectedAssessment?.category_id\">\r\n <div class=\"table-row main-list\" (click)=\"showSubList(i, data?.id)\" [class.disabled]=\"data?.assessmentcount < 1\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sr-no' + i\" class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}</div>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"data.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.category_name}}</div>\r\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"data.parent_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.parent_tree}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <button [id]=\"'arrow' + i\" class=\"arrow\" [class.disabled] = \"data?.assessmentcount < 1\" [disabled]=\"data?.assessmentcount < 1\">\r\n <i *ngIf=\"!openedCategory.includes(data?.id)\" class=\"icons\">&#xe970;</i>\r\n <i *ngIf=\"openedCategory.includes(data?.id)\" class=\"icons\">&#xe9e8;</i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Assessment list start from here -->\r\n <div *ngIf=\"openedCategory.includes(data?.id)\" class=\"sub-list\">\r\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\r\n <div class=\"table-row\" *ngFor=\"let assessment of data.assessmentData; let j = index\" [class.active]=\"(selectedAssessmentData |selectedAssessment: data.id).includes(assessment.id)\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sub-sr-no'+ i+j\" class=\"sr-no active\" appTooltip=\"{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n {{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\r\n <!-- <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"assessment?.id === selectedAssessment?.assessment_id && data?.id === selectedAssessment?.category_id\"\r\n (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio> -->\r\n <!-- (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\" -->\r\n\r\n <vui-checkbox [checked]=\"(selectedAssessmentData |selectedAssessment: data.id).includes(assessment.id)\" (change)=\"selectAssessment($event,assessment, data)\"></vui-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"value\" [appTooltip]=\"'Mission and message, communications to external audiences'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{assessment?.assessment_name}}</div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{assessment?.questions}} {{assessment?.questions > 1 ? 'Questions' : 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(assessment)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-sub-loader *ngIf=\"!data.assessmentData?.length\"></assessment-sub-loader>\r\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-loader *ngIf=\"isLoader\"></assessment-loader>\r\n </div>\r\n <!-- No data image -->\r\n <app-no-data *ngIf=\"!assessmentCategory.data.length && !isLoader\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Data to Display'\"></app-no-data>\r\n </div>\r\n <!--\r\n bottom floating bar which includes cancel, next button\r\n closing tab\r\n -->\r\n\r\n\r\n <vui-floating-bar (closeEvent)=\"save()\" (closeList)=\"close()\">\r\n <!-- <div class=\"counter\" *ngIf=\"selectedAssessments?.length\" appPopover (click)=\"assessmentCount.popover()\"\r\n placement=\"left\">{{selectedAssessments?.length}}</div>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedAssessments?.length === 1\">Assessment selected</span>\r\n <span *ngIf=\"selectedAssessments?.length > 1\">Assessments selected</span>\r\n </div>\r\n <app-popover #assessmentCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedAssessments; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\"\r\n (click)=\"selectAssessment({target:{checked:false}},element)\">&#xe90d;</i>\r\n {{element?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover> -->\r\n\r\n </vui-floating-bar>\r\n\r\n </ng-container>\r\n</div>\r\n",
229
266
  styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .assessment-list{background:#fff;border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0;z-index:1}::ng-deep .assessment-list.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 .assessment-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .assessment-list-head button.back-btn{background:transparent;border-radius:0;border:0;color:#161b2f;font-size:16px;padding:0;margin:0 8px 0 0}::ng-deep .assessment-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .assessment-list-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .assessment-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px)}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-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 .assessment-list-body .search-block input::-moz-placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input:-ms-input-placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input::placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 228px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no vui-checkbox{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no vui-checkbox label.checkbox-item{position:unset}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-right:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{width:86px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no vui-checkbox,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no vui-checkbox{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li vui-checkbox{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li vui-checkbox .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}"]
230
267
  },] }
231
268
  ];
@@ -240,4 +277,4 @@ AssessmentPickerComponent.propDecorators = {
240
277
  onAssessmentSelect: [{ type: Output }],
241
278
  cancelAssessment: [{ type: Output }]
242
279
  };
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUXpELE1BQU0sT0FBTyx5QkFBeUI7SUFpRHBDLFlBQ1UsaUJBQW9DLEVBQ3BDLElBQWlCO1FBRGpCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQWxEM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ1AsV0FBTSxHQUFHLEtBQUssQ0FBQTtRQUN2QixtQkFBYyxHQUFrQixFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUc7WUFDbEIsWUFBWSxFQUFDLEVBQUU7WUFDZixPQUFPLEVBQUMsR0FBRztZQUNYLEtBQUssRUFBQyxRQUFRO1lBQ2QsV0FBVyxFQUFFLEVBQUU7WUFDZixlQUFlLEVBQUUsRUFBRTtTQUNwQixDQUFBO1FBRUQsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsdUJBQWtCLEdBQU87WUFDdkIsSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsQ0FBQztZQUNaLFlBQVksRUFBRSxDQUFDO1lBQ2YsV0FBVyxFQUFFLENBQUM7WUFDZCxTQUFTLEVBQUUsQ0FBQztZ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O3FDQWMxQixLQUFLO2lDQUVMLE1BQU07K0JBRU4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4vYXNzZXNzbWVudC5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Fzc2Vzc21lbnQtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fzc2Vzc21lbnQtcGlja2VyLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2Vzc21lbnRQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0YTogYW55O1xyXG4gIHN1Ykxpc3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0VkaXQgPSBmYWxzZVxyXG4gIG9wZW5lZENhdGVnb3J5OiBBcnJheTxudW1iZXI+ID0gW107XHJcbiAgYXNzZXNzbWVudFBheWxvYWQgPSB7XHJcbiAgICBzZWFyY2hfdGl0bGU6XCJcIixcclxuICAgIHBhZ2Vfbm86XCIxXCIsXHJcbiAgICBzdGF0ZTpcIkFDVElWRVwiLFxyXG4gICAgc2VhcmNoX3RleHQ6ICcnLFxyXG4gICAgYWxwaGFiZXRfZmlsdGVyOiAnJ1xyXG4gIH1cclxuXHJcbiAgZGF0YVBlclBhZ2UgPSAwO1xyXG5cclxuICBhc3Nlc3NtZW50Q2F0ZWdvcnk6IGFueSA9e1xyXG4gICAgZGF0YTogW10sXHJcbiAgICB0b3RhbFBhZ2U6IDAsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgICBzdGFydF92YWx1ZTogMCxcclxuICAgIGVuZF92YWx1ZTogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAwXHJcbiAgfTtcclxuICBpc0xvYWRlciA9IGZhbHNlXHJcblxyXG5cclxuICBASW5wdXQoJ3NlbGVjdGVkQXNzZXNzbWVudCcpIHNldCBzZXRTZWxlY3RlZCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudHMgPSBbLi4udmFsdWVdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudElkcyA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50cy5tYXAoKGVsZTphbnkpID0+IGVsZT8uaWQpO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBpc0RlbGV0ZWQgPSBmYWxzZTtcclxuXHJcbiAgc2VhcmNoQXNzZXNzbWVudHMgPSAnJztcclxuICBwcmV2aWV3UXVlc3Rpb25EYXRhICE6IGFueTtcclxuICBpc1ByZXZpZXcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEFzc2Vzc21lbnREYXRhOiBhbnkgPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQXNzZXNzbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIGNhbmNlbEFzc2Vzc21lbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudEFycjogYW55ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGggOkF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5kYXRhUGVyUGFnZSA9IDMwO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlcyA9PT09PlwiLCBjaGFuZ2VzLCB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGEsIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gIH1cclxuXHJcbiAgb25Bc3Nlc3NtZW50U2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBldmVudDtcclxuICB9XHJcblxyXG4gIHByZXZpZXcoZXZ0OmFueSl7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudFF1ZXN0aW9ucyhldnQ/LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInJlc1wiLHJlcyk7XHJcbiAgICAgICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQodHJ1ZSlcclxuICAgICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMucHJldmlld1F1ZXN0aW9uRGF0YSA9IHJlcztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJldmlld0JhY2soKXtcclxuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSB7fTtcclxuICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dChmYWxzZSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGluZGV4IDogQWNjZXB0IGluZGV4IG9mIGVsZW1lbnRQb3NpdGlvblxyXG4gICAqXHJcbiAgICovXHJcbiAgc2hvd1N1Ykxpc3QoaW5kZXg6IG51bWJlciwgaWQ6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLm9wZW5lZENhdGVnb3J5ID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5KVxyXG4gICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpbmRleCkpIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IHRoaXMub3BlbmVkQ2F0ZWdvcnkuZmlsdGVyKGVsZSA9PiBlbGUgIT09IGluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpbmRleCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoaW5kZXgsIGlkKVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLm9wZW5lZENhdGVnb3J5ID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5KVxyXG4gICAgcmV0dXJuICB0aGlzLm9wZW5lZENhdGVnb3J5XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBQYWdpbmF0aW9uXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnQgOiBwYWdlIG51bWJlciB0aGF0IGhhcyBiZWVuIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgb25QYWdlU2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMTExXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBldmVudC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBTZWFyY2hcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZWFyY2ggOiBzZWFyY2ggdGV4dFxyXG4gICAqL1xyXG4gIG9uQXNzZXNzbWVudFNlYXJjaChzZWFyY2g6IHN0cmluZykge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIyMjJcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IFwiMVwiO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5zZWFyY2hfdGl0bGUgPSBzZWFyY2g7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gc2VhcmNoO1xyXG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBGaWx0ZXIgYnkgYWxwaGFiZXRcclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBldmVudCA6IEFzc2Vzc21lbnQgY2F0ZWdvcnkgZmlsdGVyIG9mIEFscGhhYmV0XHJcbiAqL1xyXG4gIG9uQWxwaGFiZXRTZWxlY3RlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjMzM1wiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gXCIxXCI7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLmFscGhhYmV0X2ZpbHRlciA9IGV2ZW50O1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5zZWFyY2hfdGV4dCA9ICcnO1xyXG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBDYWxsIEFQSSBtZXRob2RcclxuICBnZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRDYXRlZ29yeSh0aGlzLmFzc2Vzc21lbnRQYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5ID0gcmVzO1xyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGE/Lmxlbmd0aCkge1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9ICBbLi4uIG5ldyBTZXQodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhKV1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuXHJcblxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZGF0YS5maW5kSW5kZXgoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCA9PT0gZWxlLmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAgIHRoaXMuc2hvd1N1Ykxpc3QoaW5kZXgsIGVsZS5jYXRlZ29yeV9pZCk7XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBDYWxsIFN1YiBkYXRhIEFQSSBtZXRob2RcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgOiBBc3Nlc3NtZW50IGNhdGVnb3J5IGlkXHJcbiAgICovXHJcbiAgZ2V0QXNzZXNzbWVudExpc3QoaW5kZXg6IG51bWJlciwgaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICB9XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRMaXN0KHBheWxvYWQsIGlkKS5zdWJzY3JpYmUoKHJlczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhW2luZGV4XS5hc3Nlc3NtZW50RGF0YSA9IFsuLi5uZXcgU2V0KHJlcyldO1xyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGE/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09PSBpZCk7XHJcbiAgICAgICAgaWYoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcyAgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcy5tYXAoKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZSA9IHJlcy5maW5kKChkYXRhOiBhbnkpID0+IGRhdGEuaWQgPT09IGVsZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50czphbnkgPSBbXTtcclxuICBzZWxlY3RlZEFzc2Vzc21lbnRJZHM6YW55ID0gW107XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICogQHBhcmFtIHBheWxvYWRcclxuICAgKi9cclxuICBzZWxlY3RBc3Nlc3NtZW50KGV2dDogYW55LCBwYXlsb2FkOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwicGF5bG9hZCA9PT5cIiwgcGF5bG9hZClcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09PSBjYXRlZ29yeS5pZCk7XHJcbiAgICBpZihpbmRleCA+IC0xKSB7XHJcbiAgICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMucHVzaChwYXlsb2FkKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMuZmlsdGVyKChhc3Nlc3NtZW50OiBhbnkpID0+IGFzc2Vzc21lbnQuaWQgIT09IHBheWxvYWQuaWQpO1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLnB1c2goe1xyXG4gICAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeS5pZCxcclxuICAgICAgICBhc3Nlc3NtZW50SWRzOiBbcGF5bG9hZF1cclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpKVxyXG4gICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhICA9IHNlbGVjdGVkRGF0YS5tYXAoKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGVsZS5hc3Nlc3NtZW50SWRzID0gZWxlLmFzc2Vzc21lbnRJZHMubWFwKChhc3Nlc3NtZW50OiBhbnkpID0+IGFzc2Vzc21lbnQuaWQgKVxyXG4gICAgICByZXR1cm4gZWxlO1xyXG4gICAgfSk7XHJcbiAgICBjb25zb2xlLmxvZyhcIiB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyclwiLCAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhLCBzZWxlY3RlZERhdGEgKVxyXG4gICAgLy8gZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUgPyB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEFzc2Vzc21lbnQoJ0FERCcsIHBheWxvYWQpIDogdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRBc3Nlc3NtZW50KCdERUxFVEUnLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xyXG5cclxuICAvLyBUT0RPOiBTZW5kIGRhdGEgaW4gcGF5bG9hZCBvZiBjcmVhdGUgUmVzcG9uc2liaWxpdHkgZm9ybVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5vbkFzc2Vzc21lbnRTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBc3Nlc3NtZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gICAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgICBhY2NcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudmFsdWVzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUXpELE1BQU0sT0FBTyx5QkFBeUI7SUFxRHBDLFlBQ1UsaUJBQW9DLEVBQ3BDLElBQWlCO1FBRGpCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQXREM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ1AsV0FBTSxHQUFHLEtBQUssQ0FBQTtRQUN2QixtQkFBYyxHQUFrQixFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUc7WUFDbEIsWUFBWSxFQUFDLEVBQUU7WUFDZixPQUFPLEVBQUMsR0FBRztZQUNYLEtBQUssRUFBQyxRQUFRO1lBQ2QsV0FBVyxFQUFFLEVBQUU7WUFDZixlQUFlLEVBQUUsRUFBRTtTQUNwQixDQUFBO1FBRUQsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsdUJBQWtCLEdBQU87WUFDdkIsSUFBSSxFQUFFLEVBQUU7WUFDUixTQUFTLEVBQUUsQ0FBQztZQUNaLFlBQVksRUFBRSxDQUFDO1lBQ2YsV0FBVyxFQUFFLENBQUM7WUFDZCxTQUFTLEVBQUUsQ0FBQztZ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QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQztZQUM3QyxHQUFHLENBQ0osRUFDRCxJQUFJLEdBQUcsRUFBRSxDQUNWO2FBQ0EsTUFBTSxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7OztZQTVUSixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsNDdYQUFpRDs7YUFFbEQ7OztZQVBRLGlCQUFpQjtZQURqQixXQUFXOzs7cUJBYWpCLEtBQUs7MEJBdUJMLEtBQUssU0FBQyxvQkFBb0I7cUNBa0IxQixLQUFLO2lDQUVMLE1BQU07K0JBRU4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4vYXNzZXNzbWVudC5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Fzc2Vzc21lbnQtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fzc2Vzc21lbnQtcGlja2VyLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2Vzc21lbnRQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0YTogYW55O1xyXG4gIHN1Ykxpc3QgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0VkaXQgPSBmYWxzZVxyXG4gIG9wZW5lZENhdGVnb3J5OiBBcnJheTxudW1iZXI+ID0gW107XHJcbiAgYXNzZXNzbWVudFBheWxvYWQgPSB7XHJcbiAgICBzZWFyY2hfdGl0bGU6XCJcIixcclxuICAgIHBhZ2Vfbm86XCIxXCIsXHJcbiAgICBzdGF0ZTpcIkFDVElWRVwiLFxyXG4gICAgc2VhcmNoX3RleHQ6ICcnLFxyXG4gICAgYWxwaGFiZXRfZmlsdGVyOiAnJ1xyXG4gIH1cclxuXHJcbiAgZGF0YVBlclBhZ2UgPSAwO1xyXG5cclxuICBhc3Nlc3NtZW50Q2F0ZWdvcnk6IGFueSA9e1xyXG4gICAgZGF0YTogW10sXHJcbiAgICB0b3RhbFBhZ2U6IDAsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgICBzdGFydF92YWx1ZTogMCxcclxuICAgIGVuZF92YWx1ZTogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAwXHJcbiAgfTtcclxuICBpc0xvYWRlciA9IGZhbHNlXHJcblxyXG5cclxuICBASW5wdXQoJ3NlbGVjdGVkQXNzZXNzbWVudCcpIHNldCBzZXRTZWxlY3RlZCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWU/Lmxlbmd0aCkge1xyXG4gICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gWy4uLnZhbHVlXTtcclxuICAgICB0aGlzLnNldENhdGVnb3J5QW5kQXNzZXNzbWVudCgpO1xyXG4gICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1N1Ykxpc3QoaW5kZXgsZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgfSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaXNEZWxldGVkID0gZmFsc2U7XHJcblxyXG4gIHNlYXJjaEFzc2Vzc21lbnRzID0gJyc7XHJcbiAgcHJldmlld1F1ZXN0aW9uRGF0YSAhOiBhbnk7XHJcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRBc3Nlc3NtZW50RGF0YTogYW55ID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBvbkFzc2Vzc21lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjYW5jZWxBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBzZWxlY3RlZEFzc2Vzc21lbnRBcnI6IGFueSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudFNlcnZpY2U6IEFzc2Vzc21lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoIDpBdXRoU2VydmljZVxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuZGF0YVBlclBhZ2UgPSAzMDtcclxuICB9XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoYW5nZXMgPT09PT5cIiwgY2hhbmdlcywgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhLCB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIG9uQXNzZXNzbWVudFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwcmV2aWV3KGV2dDphbnkpe1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvbnMoZXZ0Py5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJyZXNcIixyZXMpO1xyXG4gICAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpXHJcbiAgICAgICAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSByZXM7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByZXZpZXdCYWNrKCl7XHJcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0ge307XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpbmRleCA6IEFjY2VwdCBpbmRleCBvZiBlbGVtZW50UG9zaXRpb25cclxuICAgKlxyXG4gICAqL1xyXG4gIHNob3dTdWJMaXN0KGluZGV4OiBudW1iZXIsIGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5vcGVuZWRDYXRlZ29yeWRhc2FzZnNhID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5LGluZGV4LGlkKVxyXG4gICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpZCkpIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IHRoaXMub3BlbmVkQ2F0ZWdvcnkuZmlsdGVyKGVsZSA9PiBlbGUgIT09IGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoaW5kZXgsIGlkKVxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLm9wZW5lZENhdGVnb3J5ID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5KVxyXG4gICAgcmV0dXJuICB0aGlzLm9wZW5lZENhdGVnb3J5XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBQYWdpbmF0aW9uXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnQgOiBwYWdlIG51bWJlciB0aGF0IGhhcyBiZWVuIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgb25QYWdlU2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMTExXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBldmVudC50b1N0cmluZygpO1xyXG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBTZWFyY2hcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZWFyY2ggOiBzZWFyY2ggdGV4dFxyXG4gICAqL1xyXG4gIG9uQXNzZXNzbWVudFNlYXJjaChzZWFyY2g6IHN0cmluZykge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIyMjJcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IFwiMVwiO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5zZWFyY2hfdGl0bGUgPSBzZWFyY2g7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gc2VhcmNoO1xyXG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBGaWx0ZXIgYnkgYWxwaGFiZXRcclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBldmVudCA6IEFzc2Vzc21lbnQgY2F0ZWdvcnkgZmlsdGVyIG9mIEFscGhhYmV0XHJcbiAqL1xyXG4gIG9uQWxwaGFiZXRTZWxlY3RlZChldmVudDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjMzM1wiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gXCIxXCI7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLmFscGhhYmV0X2ZpbHRlciA9IGV2ZW50O1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5zZWFyY2hfdGV4dCA9ICcnO1xyXG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vIFRPRE86IENhbGwgQVBJIG1ldGhvZFxyXG4gIGdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudENhdGVnb3J5KHRoaXMuYXNzZXNzbWVudFBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkgPSByZXM7XHJcbiAgICAgIFxyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycj8ubGVuZ3RoKSB7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gIFsuLi4gbmV3IFNldCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGEpXVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcblxyXG5cclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gcmVzLmRhdGEuZmluZEluZGV4KChhc3Nlc3NtZW50OiBhbnkpID0+IGFzc2Vzc21lbnQuaWQgPT09IGVsZS5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dTdWJMaXN0KGluZGV4LCBlbGUuY2F0ZWdvcnlfaWQpO1xyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZvckVhY2goKGVsZTphbnksaW5kZXg6YW55KSA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgLy8gICB0aGlzLnNob3dTdWJMaXN0KGluZGV4LGVsZT8uY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIC8vIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiBDYWxsIFN1YiBkYXRhIEFQSSBtZXRob2RcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgOiBBc3Nlc3NtZW50IGNhdGVnb3J5IGlkXHJcbiAgICovXHJcbiAgZ2V0QXNzZXNzbWVudExpc3QoaW5kZXg6IG51bWJlciwgaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICB9XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRMaXN0KHBheWxvYWQsIGlkKS5zdWJzY3JpYmUoKHJlczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGlkKTtcclxuICAgICAgY29uc29sZS5sb2coXCJpbmRleFwiLGluZGV4LHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgICBpZihpbmRleCA+IC0xICl7XHJcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YVtpbmRleF0uYXNzZXNzbWVudERhdGEgPSBbLi4ubmV3IFNldChyZXMpXTtcclxuICAgICAgfVxyXG4gICAgIFxyXG4gICAgICBjb25zb2xlLmxvZyhcImFzc1wiLClcclxuICAgICAgaWYodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnI/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNhdGVnb3J5X2lkID09PSBpZCk7XHJcbiAgICAgICAgaWYoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcyAgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcy5tYXAoKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGVsZSA9IHJlcy5maW5kKChkYXRhOiBhbnkpID0+IGRhdGEuaWQgPT09IGVsZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50Q2F0ZWdvcmllc0lkczphbnkgPSBbXTtcclxuICBzZWxlY3RlZEFzc2Vzc21lbnRJZHM6YW55ID0gW107XHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50OmFueSA9IFtdO1xyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKiBTZWxlY3RzIGl0ZW0gb3IgZGVzZWxlY3QgYSBpdG1lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkXHJcbiAgICovXHJcbiAgc2VsZWN0QXNzZXNzbWVudChldnQ6IGFueSwgcGF5bG9hZDogYW55LCBjYXRlZ29yeTogYW55KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gY2F0ZWdvcnkuaWQpO1xyXG4gICAgaWYoaW5kZXggPiAtMSkge1xyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcy5wdXNoKHBheWxvYWQpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcy5maWx0ZXIoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCAhPT0gcGF5bG9hZC5pZCk7XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIucHVzaCh7XHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5LmlkLFxyXG4gICAgICAgIGFzc2Vzc21lbnRJZHM6IFtwYXlsb2FkXVxyXG4gICAgICB9KVxyXG5cclxuICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICBjb25zb2xlLmxvZyhcInBheWxvYWQgPT0+XCIsIGV2dCxwYXlsb2FkLGNhdGVnb3J5KVxyXG4gICAgLy8gY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIC8vIGlmKGluZGV4ID4gLTEpIHtcclxuICAgIC8vICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpIHtcclxuICAgIC8vICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcy5wdXNoKHBheWxvYWQpXHJcbiAgICAvLyAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcy5maWx0ZXIoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCAhPT0gcGF5bG9hZC5pZCk7XHJcbiAgICAvLyAgICAgaWYodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIucHVzaCh7XHJcbiAgICAvLyAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5LmlkLFxyXG4gICAgLy8gICAgIGFzc2Vzc21lbnRJZHM6IFtwYXlsb2FkXVxyXG4gICAgLy8gICB9KVxyXG4gICAgLy8gfVxyXG4gICAgLy8gY29uc3Qgc2VsZWN0ZWREYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycikpXHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudERhdGEgID0gc2VsZWN0ZWREYXRhLm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgZWxlLmFzc2Vzc21lbnRJZHMgPSBlbGUuYXNzZXNzbWVudElkcy5tYXAoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCApXHJcbiAgICAvLyAgIHJldHVybiBlbGU7XHJcbiAgICAvLyB9KTtcclxuICAgIGNvbnNvbGUubG9nKFwiIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyXCIsICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciApXHJcbiAgICAvLyBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSA/IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkQXNzZXNzbWVudCgnQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEFzc2Vzc21lbnQoJ0RFTEVURScsIHBheWxvYWQpXHJcbiAgfVxyXG59XHJcblxyXG5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKXtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maWx0ZXIoKGNhdDphbnkpID0+IGNhdD8uYXNzZXNzbWVudElkcz8ubGVuZ3RoID4gMCk/Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5tYXAoKGNhdDphbnkpID0+IGNhdD8uYXNzZXNzbWVudElkcy5tYXAoKGVsZTphbnkpID0+IGVsZT8uaWQpKTtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLm1hcCgoY2F0OmFueSkgPT4gY2F0Py5hc3Nlc3NtZW50SWRzLm1hcCgoZWxlOmFueSkgPT4gZWxlKSk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xyXG5cclxuICAvLyBUT0RPOiBTZW5kIGRhdGEgaW4gcGF5bG9hZCBvZiBjcmVhdGUgUmVzcG9uc2liaWxpdHkgZm9ybVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5vbkFzc2Vzc21lbnRTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBc3Nlc3NtZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gICAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgICBhY2NcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudmFsdWVzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19