tnx-shared 5.0.32 → 5.0.34

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 (48) hide show
  1. package/bundles/tnx-shared.umd.js +212 -102
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/components/autocomplete-picker/autocomplete-picker.component.d.ts.map +1 -1
  6. package/components/dropdown/dropdown.component.d.ts.map +1 -1
  7. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts.map +1 -1
  8. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
  9. package/esm2015/components/access-denied-component/access-denied-v1/access-denied-v1.component.js +1 -1
  10. package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +34 -6
  11. package/esm2015/components/common-app-component/app-topbar-v1/app-topbar-v1.component.js +1 -1
  12. package/esm2015/components/common-app-component/app-topbar-v2/app-topbar-v2.component.js +1 -1
  13. package/esm2015/components/common-app-component/app.topbar.component.js +1 -1
  14. package/esm2015/components/common-app-component/common-app-component.js +3 -3
  15. package/esm2015/components/crud/advance-search/advance-search.component.js +1 -1
  16. package/esm2015/components/crud/crud-form/crud-form.component.js +4 -5
  17. package/esm2015/components/dropdown/dropdown.component.js +2 -1
  18. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.js +37 -3
  19. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +37 -3
  20. package/esm2015/components/file-explorer/services/file-explorer-new.service.js +2 -2
  21. package/esm2015/components/file-explorer/services/file-explorer.service.js +3 -3
  22. package/esm2015/components/file-explorer/services/my-drive.service.js +2 -2
  23. package/esm2015/components/not-found/not-found.component.js +1 -1
  24. package/esm2015/components/query-builders/query-builder/query-builder.component.js +1 -1
  25. package/esm2015/components/report-queue/report-queue.component.js +3 -3
  26. package/esm2015/components/splash-component/splash-component-v1/splash-component-v1.component.js +1 -1
  27. package/esm2015/components/splash-component/splash-component-v2/splash-component-v2.component.js +1 -1
  28. package/esm2015/components/splash-component/splash-component.component.js +1 -1
  29. package/esm2015/components/tn-tabview/tn-tabview.component.js +1 -1
  30. package/esm2015/components/user-picker/user-picker-box/user-picker-box.component.js +1 -1
  31. package/esm2015/components/workflow/services/entity-workflow-setting.service.js +2 -2
  32. package/esm2015/components/workflow/workflow-picker/workflow-picker.component.js +1 -1
  33. package/esm2015/components/workflow/workflow-setting-new/workflow-setting-new.component.js +1 -1
  34. package/esm2015/services/base.service.js +2 -2
  35. package/esm2015/services/common.service.js +3 -3
  36. package/esm2015/services/export.service.js +2 -2
  37. package/esm2015/services/file-object-v4.service.js +2 -2
  38. package/esm2015/services/print.service.js +2 -2
  39. package/esm2015/services/signalr.service.js +2 -2
  40. package/esm2015/services/template-text-v4.service.js +1 -1
  41. package/esm2015/services/template.service.js +2 -2
  42. package/esm2015/services/templateinstance.service.js +2 -2
  43. package/esm2015/services/user-v5.service.js +1 -1
  44. package/fesm2015/tnx-shared.js +147 -51
  45. package/fesm2015/tnx-shared.js.map +1 -1
  46. package/package.json +2 -2
  47. package/services/template-text-v4.service.d.ts.map +1 -1
  48. package/tnx-shared.metadata.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import * as printJS_ from 'print-js';
2
+ import printJS_ from 'print-js';
3
3
  import { CommonService } from './common.service';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./common.service";
@@ -70,4 +70,4 @@ PrintService.decorators = [
70
70
  PrintService.ctorParameters = () => [
71
71
  { type: CommonService }
72
72
  ];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFFakQscUJBQXFCO0FBQ3JCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUt6QixNQUFNLE9BQU8sWUFBWTtJQUVyQixZQUNZLGNBQTZCO1FBQTdCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO0lBQ3JDLENBQUM7SUFFTCxRQUFRLENBQUMsT0FBZTtRQUNwQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsYUFBcUIsRUFBRSxjQUFjLEdBQUcsSUFBSSxFQUFFLFlBQVksR0FBRyxJQUFJO1FBQzVFLE9BQU8sQ0FBQztZQUNKLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSTtZQUNuRCxjQUFjLEVBQUUsY0FBYztZQUM5QixZQUFZLEVBQUUsWUFBWTtTQUM3QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCLEVBQUUsU0FBaUIsRUFBRTtRQUM1QyxJQUFJLE1BQU0sRUFBRTtZQUNSLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzNEO2FBQU07WUFDSCxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLFdBQW1CLEVBQUUsU0FBaUIsRUFBRTtRQUNyRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUM7UUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxFQUFFLFVBQVUsR0FBRyxFQUFFO1FBQzdELE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWdCLEVBQUUsU0FBaUIsRUFBRSxFQUFFLFVBQVUsR0FBRyxFQUFFO1FBQzlELE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVcsRUFBRSxhQUErRCxJQUFJLEVBQUUsU0FBaUIsRUFBRSxFQUFFLGtCQUEwQixFQUFFLEVBQUUsWUFBb0IsRUFBRTtRQUNySyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDYixVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUNELE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7Ozs7WUE5REosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFQUSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBwcmludEpTXyBmcm9tICdwcmludC1qcyc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuL2NvbW1vbi5zZXJ2aWNlJztcclxuXHJcbi8vIGZpeCBmb3IgYnVpbGQgcHJvZFxyXG5jb25zdCBwcmludEpTID0gcHJpbnRKU187XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByaW50U2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwcmludFBkZihmaWxlVXJsOiBzdHJpbmcpIHtcclxuICAgICAgICBwcmludEpTKGZpbGVVcmwpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHBhcmFtIGJhc2U2NENvbnRlbnQgXHJcbiAgICAgKiBAcGFyYW0gb25Mb2FkaW5nU3RhcnQgZnVuY3Rpb24gY2FsbGJhY2sga2hpIGLhuq90IMSR4bqndSBsb2FkaW5nIGJhc2U2NCDEkeG7gyBpblxyXG4gICAgICogQHBhcmFtIG9uTG9hZGluZ0VuZCBmdW5jdGlvbiBjYWxsYmFjayBraGkgbG9hZGluZyBiYXNlIDY0IGRvbmVcclxuICAgICAqL1xyXG4gICAgcHJpbnRCYXNlNjRQZGYoYmFzZTY0Q29udGVudDogc3RyaW5nLCBvbkxvYWRpbmdTdGFydCA9IG51bGwsIG9uTG9hZGluZ0VuZCA9IG51bGwpIHtcclxuICAgICAgICBwcmludEpTKHtcclxuICAgICAgICAgICAgcHJpbnRhYmxlOiBiYXNlNjRDb250ZW50LCB0eXBlOiAncGRmJywgYmFzZTY0OiB0cnVlLFxyXG4gICAgICAgICAgICBvbkxvYWRpbmdTdGFydDogb25Mb2FkaW5nU3RhcnQsXHJcbiAgICAgICAgICAgIG9uTG9hZGluZ0VuZDogb25Mb2FkaW5nRW5kXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpbnRIdG1sKGlkRWxlbWVudDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZyA9ICcnKSB7XHJcbiAgICAgICAgaWYgKGhlYWRlcikge1xyXG4gICAgICAgICAgICBwcmludEpTKHsgcHJpbnRhYmxlOiBpZEVsZW1lbnQsIHR5cGU6ICdodG1sJywgaGVhZGVyIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHByaW50SlMoaWRFbGVtZW50LCAnaHRtbCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcmludEh0bWxDb250ZW50KGh0bWxDb250ZW50OiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nID0gJycpIHtcclxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZCgpO1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGh0bWxDb250ZW50O1xyXG4gICAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9ICctOTk5OTlweCc7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcclxuICAgICAgICBwcmludEpTKHsgcHJpbnRhYmxlOiBpZCwgdHlwZTogJ2h0bWwnLCBoZWFkZXIgfSk7XHJcbiAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcmludEltYWdlKGltYWdlVXJsOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nID0gJycsIGltYWdlU3R5bGUgPSAnJykge1xyXG4gICAgICAgIHByaW50SlMoeyBwcmludGFibGU6IGltYWdlVXJsLCB0eXBlOiAnaW1hZ2UnLCBoZWFkZXIsIGltYWdlU3R5bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpbnRJbWFnZXMoaW1hZ2VzOiBzdHJpbmdbXSwgaGVhZGVyOiBzdHJpbmcgPSAnJywgaW1hZ2VTdHlsZSA9ICcnKSB7XHJcbiAgICAgICAgcHJpbnRKUyh7IHByaW50YWJsZTogaW1hZ2VzLCB0eXBlOiAnaW1hZ2UnLCBoZWFkZXIsIGltYWdlU3R5bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpbnRKc29uRGF0YShkYXRhOiBhbnlbXSwgcHJvcGVydGllczogYW55W10gfCB7IGZpZWxkOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcgfVtdID0gbnVsbCwgaGVhZGVyOiBzdHJpbmcgPSAnJywgZ3JpZEhlYWRlclN0eWxlOiBzdHJpbmcgPSAnJywgZ3JpZFN0eWxlOiBzdHJpbmcgPSAnJykge1xyXG4gICAgICAgIGlmICghZGF0YSkgeyByZXR1cm47IH1cclxuICAgICAgICBpZiAoIXByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGRhdGFbMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwcmludEpTKHsgcHJpbnRhYmxlOiBkYXRhLCBwcm9wZXJ0aWVzLCB0eXBlOiAnanNvbicsIGdyaWRIZWFkZXJTdHlsZSwgZ3JpZFN0eWxlLCBoZWFkZXIgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9wcmludC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRWpELHFCQUFxQjtBQUNyQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFLekIsTUFBTSxPQUFPLFlBQVk7SUFFckIsWUFDWSxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtJQUNyQyxDQUFDO0lBRUwsUUFBUSxDQUFDLE9BQWU7UUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLGFBQXFCLEVBQUUsY0FBYyxHQUFHLElBQUksRUFBRSxZQUFZLEdBQUcsSUFBSTtRQUM1RSxPQUFPLENBQUM7WUFDSixTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUk7WUFDbkQsY0FBYyxFQUFFLGNBQWM7WUFDOUIsWUFBWSxFQUFFLFlBQVk7U0FDN0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQixFQUFFLFNBQWlCLEVBQUU7UUFDNUMsSUFBSSxNQUFNLEVBQUU7WUFDUixPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMzRDthQUFNO1lBQ0gsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLFNBQWlCLEVBQUU7UUFDckQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUM3QixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqRCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQixFQUFFLFNBQWlCLEVBQUUsRUFBRSxVQUFVLEdBQUcsRUFBRTtRQUM3RCxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFnQixFQUFFLFNBQWlCLEVBQUUsRUFBRSxVQUFVLEdBQUcsRUFBRTtRQUM5RCxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFXLEVBQUUsYUFBK0QsSUFBSSxFQUFFLFNBQWlCLEVBQUUsRUFBRSxrQkFBMEIsRUFBRSxFQUFFLFlBQW9CLEVBQUU7UUFDckssSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckM7UUFDRCxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDOzs7O1lBOURKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBUFEsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHByaW50SlNfIGZyb20gJ3ByaW50LWpzJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4vY29tbW9uLnNlcnZpY2UnO1xyXG5cclxuLy8gZml4IGZvciBidWlsZCBwcm9kXHJcbmNvbnN0IHByaW50SlMgPSBwcmludEpTXztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpbnRTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByaW50UGRmKGZpbGVVcmw6IHN0cmluZykge1xyXG4gICAgICAgIHByaW50SlMoZmlsZVVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0gYmFzZTY0Q29udGVudCBcclxuICAgICAqIEBwYXJhbSBvbkxvYWRpbmdTdGFydCBmdW5jdGlvbiBjYWxsYmFjayBraGkgYuG6r3QgxJHhuqd1IGxvYWRpbmcgYmFzZTY0IMSR4buDIGluXHJcbiAgICAgKiBAcGFyYW0gb25Mb2FkaW5nRW5kIGZ1bmN0aW9uIGNhbGxiYWNrIGtoaSBsb2FkaW5nIGJhc2UgNjQgZG9uZVxyXG4gICAgICovXHJcbiAgICBwcmludEJhc2U2NFBkZihiYXNlNjRDb250ZW50OiBzdHJpbmcsIG9uTG9hZGluZ1N0YXJ0ID0gbnVsbCwgb25Mb2FkaW5nRW5kID0gbnVsbCkge1xyXG4gICAgICAgIHByaW50SlMoe1xyXG4gICAgICAgICAgICBwcmludGFibGU6IGJhc2U2NENvbnRlbnQsIHR5cGU6ICdwZGYnLCBiYXNlNjQ6IHRydWUsXHJcbiAgICAgICAgICAgIG9uTG9hZGluZ1N0YXJ0OiBvbkxvYWRpbmdTdGFydCxcclxuICAgICAgICAgICAgb25Mb2FkaW5nRW5kOiBvbkxvYWRpbmdFbmRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcmludEh0bWwoaWRFbGVtZW50OiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nID0gJycpIHtcclxuICAgICAgICBpZiAoaGVhZGVyKSB7XHJcbiAgICAgICAgICAgIHByaW50SlMoeyBwcmludGFibGU6IGlkRWxlbWVudCwgdHlwZTogJ2h0bWwnLCBoZWFkZXIgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcHJpbnRKUyhpZEVsZW1lbnQsICdodG1sJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaW50SHRtbENvbnRlbnQoaHRtbENvbnRlbnQ6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcgPSAnJykge1xyXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCk7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbENvbnRlbnQ7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gJy05OTk5OXB4JztcclxuICAgICAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcclxuICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGlkKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG4gICAgICAgIHByaW50SlMoeyBwcmludGFibGU6IGlkLCB0eXBlOiAnaHRtbCcsIGhlYWRlciB9KTtcclxuICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaW50SW1hZ2UoaW1hZ2VVcmw6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcgPSAnJywgaW1hZ2VTdHlsZSA9ICcnKSB7XHJcbiAgICAgICAgcHJpbnRKUyh7IHByaW50YWJsZTogaW1hZ2VVcmwsIHR5cGU6ICdpbWFnZScsIGhlYWRlciwgaW1hZ2VTdHlsZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcmludEltYWdlcyhpbWFnZXM6IHN0cmluZ1tdLCBoZWFkZXI6IHN0cmluZyA9ICcnLCBpbWFnZVN0eWxlID0gJycpIHtcclxuICAgICAgICBwcmludEpTKHsgcHJpbnRhYmxlOiBpbWFnZXMsIHR5cGU6ICdpbWFnZScsIGhlYWRlciwgaW1hZ2VTdHlsZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcmludEpzb25EYXRhKGRhdGE6IGFueVtdLCBwcm9wZXJ0aWVzOiBhbnlbXSB8IHsgZmllbGQ6IHN0cmluZywgZGlzcGxheU5hbWU6IHN0cmluZyB9W10gPSBudWxsLCBoZWFkZXI6IHN0cmluZyA9ICcnLCBncmlkSGVhZGVyU3R5bGU6IHN0cmluZyA9ICcnLCBncmlkU3R5bGU6IHN0cmluZyA9ICcnKSB7XHJcbiAgICAgICAgaWYgKCFkYXRhKSB7IHJldHVybjsgfVxyXG4gICAgICAgIGlmICghcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoZGF0YVswXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByaW50SlMoeyBwcmludGFibGU6IGRhdGEsIHByb3BlcnRpZXMsIHR5cGU6ICdqc29uJywgZ3JpZEhlYWRlclN0eWxlLCBncmlkU3R5bGUsIGhlYWRlciB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { Injectable } from '@angular/core';
3
- import * as signalR from '@aspnet/signalr';
3
+ import signalR from '@aspnet/signalr';
4
4
  import { ModuleConfigService } from './module-config.service';
5
5
  import { AuthenService } from './authen.service';
6
6
  import * as i0 from "@angular/core";
@@ -147,4 +147,4 @@ SignalRService.ctorParameters = () => [
147
147
  { type: ModuleConfigService },
148
148
  { type: AuthenService }
149
149
  ];
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3NpZ25hbHIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUtqRCxNQUFNLE9BQU8sY0FBYztJQWlCdkIsWUFDWSxvQkFBeUMsRUFDekMsY0FBNkI7UUFEN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQWZ6QyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQW1IWCxTQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQXZHckQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ3pFLENBQUM7SUFFSyxJQUFJOztZQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGVB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QUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEYsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7Ozs7WUF2S0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFMUSxtQkFBbUI7WUFDbkIsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvbiB9IGZyb20gJ0Bhc3BuZXQvc2lnbmFscic7XHJcbmltcG9ydCAqIGFzIHNpZ25hbFIgZnJvbSAnQGFzcG5ldC9zaWduYWxyJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVuU2VydmljZSB9IGZyb20gJy4vYXV0aGVuLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWduYWxSU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9tb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZztcclxuICAgIHByaXZhdGUgX2h1YkNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb247XHJcblxyXG4gICAgY29ubmVjdGlvbnMgPSBbXTtcclxuICAgIGh1YnMgPSB7fTtcclxuICAgIGRlbGF5U3RhcnRlcnMgPSBbXTtcclxuICAgIGNvbm5lY3RlZCA9IGZhbHNlO1xyXG5cclxuICAgIG1heFJldHJ5VGltZXMgPSAxMDtcclxuICAgIHZpZXdDb2RlU3Viczoge1xyXG4gICAgICAgIHZpZXdDb2RlOiBzdHJpbmcsXHJcbiAgICAgICAgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWRcclxuICAgIH1bXTtcclxuXHJcbiAgICBodWJzU2V0dGluZzogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfYXV0aGVuU2VydmljZTogQXV0aGVuU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcclxuICAgICAgICB0aGlzLmh1YnNTZXR0aW5nID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LnNpZ25hbHJDb25maWcuaHVicztcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmh1YnNTZXR0aW5nICYmIHRoaXMuaHVic1NldHRpbmcuZW5hYmxlQ29tbW9uSHViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaHVic1snQ29tbW9uSHViJ10gPSB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oJ0NvbW1vbkh1YicpO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0Q29ubmVjdGlvbih0aGlzLmh1YnNbJ0NvbW1vbkh1YiddKTtcclxuICAgICAgICAgICAgdGhpcy5hdXRvUmVjb25uZWN0KHRoaXMuaHVic1snQ29tbW9uSHViJ10pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaHVic1NldHRpbmcgJiYgdGhpcy5odWJzU2V0dGluZy5lbmFibGVDb25zaXN0ZW5jeUh1Yikge1xyXG4gICAgICAgICAgICB0aGlzLmh1YnNbJ0NvbnNpc3RlbmN5SHViJ10gPSB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oJ0NvbnNpc3RlbmN5SHViJyk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRDb25uZWN0aW9uKHRoaXMuaHVic1snQ29uc2lzdGVuY3lIdWInXSk7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b1JlY29ubmVjdCh0aGlzLmh1YnNbJ0NvbnNpc3RlbmN5SHViJ10pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaHVic1NldHRpbmcgJiYgdGhpcy5odWJzU2V0dGluZy5lbmFibGVOb3RpZmljYXRpb25IdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5odWJzWydOb3RpZmljYXRpb25IdWInXSA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbignTm90aWZpY2F0aW9uSHViJyk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRDb25uZWN0aW9uKHRoaXMuaHVic1snTm90aWZpY2F0aW9uSHViJ10pO1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9SZWNvbm5lY3QodGhpcy5odWJzWydOb3RpZmljYXRpb25IdWInXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5odWJzU2V0dGluZyAmJiB0aGlzLmh1YnNTZXR0aW5nLmVuYWJsZVB1YmxpY0h1Yikge1xyXG4gICAgICAgICAgICB0aGlzLmh1YnNbJ1B1YmxpY0h1YiddID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKCdQdWJsaWNIdWInKTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydENvbm5lY3Rpb24odGhpcy5odWJzWydQdWJsaWNIdWInXSk7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b1JlY29ubmVjdCh0aGlzLmh1YnNbJ1B1YmxpY0h1YiddKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHdoaWxlICh0aGlzLmRlbGF5U3RhcnRlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGF5U3RhcnRlcnMucG9wKCkoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQodG9waWM6IHN0cmluZywgdmlld0NvZGU6IHN0cmluZywgY2FsbGJhY2s6IChkYXRhOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICBpZiAoIXRvcGljKSB7XHJcbiAgICAgICAgICAgIHRvcGljID0gJ0NvbW1vbkh1Yic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNIdWJFbmFibGVkKHRvcGljKSkgcmV0dXJuO1xyXG4gICAgICAgIGlmICghdGhpcy5jb25uZWN0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxheVN0YXJ0ZXJzLnB1c2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVWaWV3Q29kZSh0aGlzLmh1YnNbdG9waWNdLCB2aWV3Q29kZSwgY2FsbGJhY2spO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlVmlld0NvZGUodGhpcy5odWJzW3RvcGljXSwgdmlld0NvZGUsIGNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNIdWJFbmFibGVkKHRvcGljKSB7XHJcbiAgICAgICAgcmV0dXJuICh0b3BpYyA9PT0gJ0NvbW1vbkh1YicgJiYgdGhpcy5odWJzU2V0dGluZyAmJiB0aGlzLmh1YnNTZXR0aW5nLmVuYWJsZUNvbW1vbkh1YilcclxuICAgICAgICAgICAgfHwgKHRvcGljID09PSAnQ29uc2lzdGVuY3lIdWInICYmIHRoaXMuaHVic1NldHRpbmcgJiYgdGhpcy5odWJzU2V0dGluZy5lbmFibGVDb25zaXN0ZW5jeUh1YilcclxuICAgICAgICAgICAgfHwgKHRvcGljID09PSAnTm90aWZpY2F0aW9uSHViJyAmJiB0aGlzLmh1YnNTZXR0aW5nICYmIHRoaXMuaHVic1NldHRpbmcuZW5hYmxlTm90aWZpY2F0aW9uSHViKVxyXG4gICAgICAgICAgICB8fCAodG9waWMgPT09ICdQdWJsaWNIdWInKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RvcCgpIHtcclxuICAgICAgICB0aGlzLl9odWJDb25uZWN0aW9uLnN0b3AoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmVWaWV3Q29kZShodWJDb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uLCB2aWV3Q29kZTogc3RyaW5nLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMudmlld0NvZGVTdWJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlld0NvZGVTdWJzID0gW3sgdmlld0NvZGUsIGNhbGxiYWNrIH1dO1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZShodWJDb25uZWN0aW9uLCB2aWV3Q29kZSwgY2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmlld0NvZGVTdWJzLmZpbmRJbmRleCh4ID0+IHgudmlld0NvZGUgPT09IHZpZXdDb2RlKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29kZVN1YnMucHVzaCh7IHZpZXdDb2RlLCBjYWxsYmFjayB9KTtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmUoaHViQ29ubmVjdGlvbiwgdmlld0NvZGUsIGNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdW5TdWJzY3JpYmVWaWV3Q29kZSh0b3BpYzogc3RyaW5nLCB2aWV3Q29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0b3BpYykge1xyXG4gICAgICAgICAgICB0b3BpYyA9ICdDb21tb25IdWInO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBodWJDb25uZWN0aW9uID0gdGhpcy5odWJzW3RvcGljXTtcclxuICAgICAgICBpZiAodGhpcy52aWV3Q29kZVN1YnMpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29kZVN1YnMgPSB0aGlzLnZpZXdDb2RlU3Vicy5maWx0ZXIoeCA9PiB4LnZpZXdDb2RlICE9PSB2aWV3Q29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMudW5TdWJzY3JpYmUoaHViQ29ubmVjdGlvbiwgdmlld0NvZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUNvbm5lY3Rpb24odG9waWM6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5fYXV0aGVuU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgIHJldHVybiBuZXcgc2lnbmFsUi5IdWJDb25uZWN0aW9uQnVpbGRlcigpXHJcbiAgICAgICAgICAgIC53aXRoVXJsKGAke3RoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlEb21haW4ubm90aWZpY2F0aW9uRW5kcG9pbnR9LyR7dG9waWN9YCxcclxuICAgICAgICAgICAgICAgIHsgYWNjZXNzVG9rZW5GYWN0b3J5OiAoKSA9PiBhY2Nlc3NUb2tlbiB9KVxyXG4gICAgICAgICAgICAuYnVpbGQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGF1dG9SZWNvbm5lY3QoaHViQ29ubmVjdGlvbjogSHViQ29ubmVjdGlvbikge1xyXG4gICAgICAgIGh1YkNvbm5lY3Rpb24ub25jbG9zZShhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRDb25uZWN0aW9uKGh1YkNvbm5lY3Rpb24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgd2FpdCA9IG1zID0+IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCBtcykpO1xyXG5cclxuICAgIHByaXZhdGUgc3RhcnRDb25uZWN0aW9uKGh1YkNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24sIHJldHJ5Q291bnQgPSAxKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgLy8gbm90IHN1cmUgYWJvdXQgaXQgOikpKVxyXG4gICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXNwbmV0L1NpZ25hbFIvaXNzdWVzLzIzODlcclxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFdlYlNvY2tldCwgJ09QRU4nLCB7IHZhbHVlOiAxLCB9KTtcclxuXHJcbiAgICAgICAgICAgIGh1YkNvbm5lY3Rpb25cclxuICAgICAgICAgICAgICAgIC5zdGFydCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXhSZXRyeVRpbWVzIC0gcmV0cnlDb3VudCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLndhaXQocmV0cnlDb3VudCAqIHJldHJ5Q291bnQgKiAxMDAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4odGhpcy5zdGFydENvbm5lY3Rpb24uYmluZCh0aGlzLCBodWJDb25uZWN0aW9uLCArK3JldHJ5Q291bnQpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChyZWplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmliZShodWJDb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uLCB2aWV3Q29kZTogc3RyaW5nLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkge1xyXG4gICAgICAgIGlmICh2aWV3Q29kZSAmJiBodWJDb25uZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGh1YkNvbm5lY3Rpb24uaW52b2tlKCdKb2luUm9vbScsIHZpZXdDb2RlKS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIudG9TdHJpbmcoKSkpO1xyXG4gICAgICAgICAgICBodWJDb25uZWN0aW9uLm9uKHZpZXdDb2RlLCAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhkYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdW5TdWJzY3JpYmUoaHViQ29ubmVjdGlvbjogSHViQ29ubmVjdGlvbiwgdmlld0NvZGU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2aWV3Q29kZSAmJiBodWJDb25uZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGh1YkNvbm5lY3Rpb24uaW52b2tlKCdsZWF2ZVJvb20nLCB2aWV3Q29kZSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyLnRvU3RyaW5nKCkpKTtcclxuICAgICAgICAgICAgaHViQ29ubmVjdGlvbi5vZmYodmlld0NvZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3NpZ25hbHIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLE9BQU8sTUFBTSxpQkFBaUIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLakQsTUFBTSxPQUFPLGNBQWM7SUFpQnZCLFlBQ1ksb0JBQXlDLEVBQ3pDLGNBQTZCO1FBRDdCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFmekMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFtSFgsU0FBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUF2R3JELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUN6RSxDQUFDO0lBRUssSUFBSTs7WUFDTixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVB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QUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDOzs7O1lBdktKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBTFEsbUJBQW1CO1lBQ25CLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb24gfSBmcm9tICdAYXNwbmV0L3NpZ25hbHInO1xyXG5pbXBvcnQgc2lnbmFsUiBmcm9tICdAYXNwbmV0L3NpZ25hbHInO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoZW5TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoZW4uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZ25hbFJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xyXG4gICAgcHJpdmF0ZSBfaHViQ29ubmVjdGlvbjogSHViQ29ubmVjdGlvbjtcclxuXHJcbiAgICBjb25uZWN0aW9ucyA9IFtdO1xyXG4gICAgaHVicyA9IHt9O1xyXG4gICAgZGVsYXlTdGFydGVycyA9IFtdO1xyXG4gICAgY29ubmVjdGVkID0gZmFsc2U7XHJcblxyXG4gICAgbWF4UmV0cnlUaW1lcyA9IDEwO1xyXG4gICAgdmlld0NvZGVTdWJzOiB7XHJcbiAgICAgICAgdmlld0NvZGU6IHN0cmluZyxcclxuICAgICAgICBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZFxyXG4gICAgfVtdO1xyXG5cclxuICAgIGh1YnNTZXR0aW5nOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9hdXRoZW5TZXJ2aWNlOiBBdXRoZW5TZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVDb25maWcgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xyXG4gICAgICAgIHRoaXMuaHVic1NldHRpbmcgPSB0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuc2lnbmFsckNvbmZpZy5odWJzO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaHVic1NldHRpbmcgJiYgdGhpcy5odWJzU2V0dGluZy5lbmFibGVDb21tb25IdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5odWJzWydDb21tb25IdWInXSA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbignQ29tbW9uSHViJyk7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRDb25uZWN0aW9uKHRoaXMuaHVic1snQ29tbW9uSHViJ10pO1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9SZWNvbm5lY3QodGhpcy5odWJzWydDb21tb25IdWInXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5odWJzU2V0dGluZyAmJiB0aGlzLmh1YnNTZXR0aW5nLmVuYWJsZUNvbnNpc3RlbmN5SHViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaHVic1snQ29uc2lzdGVuY3lIdWInXSA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbignQ29uc2lzdGVuY3lIdWInKTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydENvbm5lY3Rpb24odGhpcy5odWJzWydDb25zaXN0ZW5jeUh1YiddKTtcclxuICAgICAgICAgICAgdGhpcy5hdXRvUmVjb25uZWN0KHRoaXMuaHVic1snQ29uc2lzdGVuY3lIdWInXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5odWJzU2V0dGluZyAmJiB0aGlzLmh1YnNTZXR0aW5nLmVuYWJsZU5vdGlmaWNhdGlvbkh1Yikge1xyXG4gICAgICAgICAgICB0aGlzLmh1YnNbJ05vdGlmaWNhdGlvbkh1YiddID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKCdOb3RpZmljYXRpb25IdWInKTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydENvbm5lY3Rpb24odGhpcy5odWJzWydOb3RpZmljYXRpb25IdWInXSk7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b1JlY29ubmVjdCh0aGlzLmh1YnNbJ05vdGlmaWNhdGlvbkh1YiddKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmh1YnNTZXR0aW5nICYmIHRoaXMuaHVic1NldHRpbmcuZW5hYmxlUHVibGljSHViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaHVic1snUHVibGljSHViJ10gPSB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24oJ1B1YmxpY0h1YicpO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0Q29ubmVjdGlvbih0aGlzLmh1YnNbJ1B1YmxpY0h1YiddKTtcclxuICAgICAgICAgICAgdGhpcy5hdXRvUmVjb25uZWN0KHRoaXMuaHVic1snUHVibGljSHViJ10pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgd2hpbGUgKHRoaXMuZGVsYXlTdGFydGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsYXlTdGFydGVycy5wb3AoKSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWQgPSB0cnVlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydCh0b3BpYzogc3RyaW5nLCB2aWV3Q29kZTogc3RyaW5nLCBjYWxsYmFjazogKGRhdGE6IGFueSkgPT4gdm9pZCkge1xyXG4gICAgICAgIGlmICghdG9waWMpIHtcclxuICAgICAgICAgICAgdG9waWMgPSAnQ29tbW9uSHViJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0h1YkVuYWJsZWQodG9waWMpKSByZXR1cm47XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGF5U3RhcnRlcnMucHVzaCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmliZVZpZXdDb2RlKHRoaXMuaHVic1t0b3BpY10sIHZpZXdDb2RlLCBjYWxsYmFjayk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVWaWV3Q29kZSh0aGlzLmh1YnNbdG9waWNdLCB2aWV3Q29kZSwgY2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc0h1YkVuYWJsZWQodG9waWMpIHtcclxuICAgICAgICByZXR1cm4gKHRvcGljID09PSAnQ29tbW9uSHViJyAmJiB0aGlzLmh1YnNTZXR0aW5nICYmIHRoaXMuaHVic1NldHRpbmcuZW5hYmxlQ29tbW9uSHViKVxyXG4gICAgICAgICAgICB8fCAodG9waWMgPT09ICdDb25zaXN0ZW5jeUh1YicgJiYgdGhpcy5odWJzU2V0dGluZyAmJiB0aGlzLmh1YnNTZXR0aW5nLmVuYWJsZUNvbnNpc3RlbmN5SHViKVxyXG4gICAgICAgICAgICB8fCAodG9waWMgPT09ICdOb3RpZmljYXRpb25IdWInICYmIHRoaXMuaHVic1NldHRpbmcgJiYgdGhpcy5odWJzU2V0dGluZy5lbmFibGVOb3RpZmljYXRpb25IdWIpXHJcbiAgICAgICAgICAgIHx8ICh0b3BpYyA9PT0gJ1B1YmxpY0h1YicpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdG9wKCkge1xyXG4gICAgICAgIHRoaXMuX2h1YkNvbm5lY3Rpb24uc3RvcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHN1YnNjcmliZVZpZXdDb2RlKGh1YkNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24sIHZpZXdDb2RlOiBzdHJpbmcsIGNhbGxiYWNrOiAoZGF0YTogYW55KSA9PiB2b2lkKSB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy52aWV3Q29kZVN1YnMpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29kZVN1YnMgPSBbeyB2aWV3Q29kZSwgY2FsbGJhY2sgfV07XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlKGh1YkNvbm5lY3Rpb24sIHZpZXdDb2RlLCBjYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy52aWV3Q29kZVN1YnMuZmluZEluZGV4KHggPT4geC52aWV3Q29kZSA9PT0gdmlld0NvZGUpID09PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb2RlU3Vicy5wdXNoKHsgdmlld0NvZGUsIGNhbGxiYWNrIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZShodWJDb25uZWN0aW9uLCB2aWV3Q29kZSwgY2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1blN1YnNjcmliZVZpZXdDb2RlKHRvcGljOiBzdHJpbmcsIHZpZXdDb2RlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIXRvcGljKSB7XHJcbiAgICAgICAgICAgIHRvcGljID0gJ0NvbW1vbkh1Yic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGh1YkNvbm5lY3Rpb24gPSB0aGlzLmh1YnNbdG9waWNdO1xyXG4gICAgICAgIGlmICh0aGlzLnZpZXdDb2RlU3Vicykge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdDb2RlU3VicyA9IHRoaXMudmlld0NvZGVTdWJzLmZpbHRlcih4ID0+IHgudmlld0NvZGUgIT09IHZpZXdDb2RlKTtcclxuICAgICAgICAgICAgdGhpcy51blN1YnNjcmliZShodWJDb25uZWN0aW9uLCB2aWV3Q29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbih0b3BpYzogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0aGlzLl9hdXRoZW5TZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBzaWduYWxSLkh1YkNvbm5lY3Rpb25CdWlsZGVyKClcclxuICAgICAgICAgICAgLndpdGhVcmwoYCR7dGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaURvbWFpbi5ub3RpZmljYXRpb25FbmRwb2ludH0vJHt0b3BpY31gLFxyXG4gICAgICAgICAgICAgICAgeyBhY2Nlc3NUb2tlbkZhY3Rvcnk6ICgpID0+IGFjY2Vzc1Rva2VuIH0pXHJcbiAgICAgICAgICAgIC5idWlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXV0b1JlY29ubmVjdChodWJDb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uKSB7XHJcbiAgICAgICAgaHViQ29ubmVjdGlvbi5vbmNsb3NlKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGFydENvbm5lY3Rpb24oaHViQ29ubmVjdGlvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB3YWl0ID0gbXMgPT4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydENvbm5lY3Rpb24oaHViQ29ubmVjdGlvbjogSHViQ29ubmVjdGlvbiwgcmV0cnlDb3VudCA9IDEpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBub3Qgc3VyZSBhYm91dCBpdCA6KSkpXHJcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hc3BuZXQvU2lnbmFsUi9pc3N1ZXMvMjM4OVxyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV2ViU29ja2V0LCAnT1BFTicsIHsgdmFsdWU6IDEsIH0pO1xyXG5cclxuICAgICAgICAgICAgaHViQ29ubmVjdGlvblxyXG4gICAgICAgICAgICAgICAgLnN0YXJ0KCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1heFJldHJ5VGltZXMgLSByZXRyeUNvdW50ID4gMCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FpdChyZXRyeUNvdW50ICogcmV0cnlDb3VudCAqIDEwMDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbih0aGlzLnN0YXJ0Q29ubmVjdGlvbi5iaW5kKHRoaXMsIGh1YkNvbm5lY3Rpb24sICsrcmV0cnlDb3VudCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihyZXNvbHZlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKHJlamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3Vic2NyaWJlKGh1YkNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24sIHZpZXdDb2RlOiBzdHJpbmcsIGNhbGxiYWNrOiAoZGF0YTogYW55KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgaWYgKHZpZXdDb2RlICYmIGh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgICAgICAgaHViQ29ubmVjdGlvbi5pbnZva2UoJ0pvaW5Sb29tJywgdmlld0NvZGUpLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVyci50b1N0cmluZygpKSk7XHJcbiAgICAgICAgICAgIGh1YkNvbm5lY3Rpb24ub24odmlld0NvZGUsIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1blN1YnNjcmliZShodWJDb25uZWN0aW9uOiBIdWJDb25uZWN0aW9uLCB2aWV3Q29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHZpZXdDb2RlICYmIGh1YkNvbm5lY3Rpb24pIHtcclxuICAgICAgICAgICAgaHViQ29ubmVjdGlvbi5pbnZva2UoJ2xlYXZlUm9vbScsIHZpZXdDb2RlKS5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIudG9TdHJpbmcoKSkpO1xyXG4gICAgICAgICAgICBodWJDb25uZWN0aW9uLm9mZih2aWV3Q29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -55,4 +55,4 @@ TemplateTextV4Service.ctorParameters = () => [
55
55
  { type: CommonService },
56
56
  { type: Injector }
57
57
  ];
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdGV4dC12NC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3RlbXBsYXRlLXRleHQtdjQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUsvQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBVztJQUtsRCxZQUNJLG9CQUF5QyxFQUNqQyxXQUF1QixFQUN2QixhQUEyQixFQUN6QixjQUE2QixFQUM3QixnQkFBaUMsRUFDakMsWUFBeUIsRUFDekIsY0FBNkIsRUFDL0IsUUFBa0I7UUFFMUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsZUFBZSxDQUFDLENBQUM7UUFSbkgsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBRzlCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsSUFBUztRQUN4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLHlCQUF5QixJQUFJLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNuQixJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLGdCQUFnQixDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ2pCLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsY0FBYyxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7OztZQXBDSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQU5RLG1CQUFtQjtZQWhCbkIsVUFBVTtZQWtCVixZQUFZO1lBSFosYUFBYTtZQUViLGVBQWU7WUFIZixXQUFXO1lBRFgsYUFBYTtZQVpELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IGV4dGVuZCB9IGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7IEV4cG9ydEl0ZW1UeXBlIH0gZnJvbSAnLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGaWxlRXhwbG9yZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZXhwbG9yZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlQ29uc3RhbnQgfSBmcm9tICcuLi9jb25maWdzL2NvbXBvbmVudC1jb250YW50cyc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XHJcbmltcG9ydCB7IEV4cG9ydE1hbnlNb2RlbCwgRXhwb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LWZpbGUtaW5mbyc7XHJcbmltcG9ydCB7IEV4cG9ydEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LWl0ZW0nO1xyXG5pbXBvcnQgeyBFeHBvcnRXaXRob3V0VGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9leHBvcnQtd2l0aG91dC10ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi9jcnVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWxlVjRTZXJ2aWNlIH0gZnJvbSAnLi9maWxlLW9iamVjdC12NC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpbnRTZXJ2aWNlIH0gZnJvbSAnLi9wcmludC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVUZXh0VjRTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xyXG5cclxuICAgIHJlYWRvbmx5IGVudmlyb25tZW50OiBhbnk7XHJcbiAgICByZWFkb25seSBfbW9kdWxlQ29uZmlnOiBNb2R1bGVDb25maWc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIF9wcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbGVWNFNlcnZpY2U6IEZpbGVWNFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9ub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2NydWRTZXJ2aWNlOiBDcnVkU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9odHRwQ2xpZW50LCBpbmplY3RvciwgYCR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQudjQuYXBpRG9tYWluLnRlbXBsYXRlRW5kcG9pbnR9L3RlbXBsYXRlVGV4dGApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBpbGVDb250ZW50QnlDb2RlKGNvZGU6IHN0cmluZywgZGF0YTogYW55KSA6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9Db21waWxlQ29udGVudEJ5Q29kZS8ke2NvZGV9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBpbGVTaW5nbGUoZGF0YTogYW55KSA6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9Db21waWxlU2luZ2xlYDtcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBpbGVNYW55KGRhdGE6IGFueSkgOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29tcGlsZU1hbnlgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdGV4dC12NC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3RlbXBsYXRlLXRleHQtdjQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUsvQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBVztJQUtsRCxZQUNJLG9CQUF5QyxFQUNqQyxXQUF1QixFQUN2QixhQUEyQixFQUN6QixjQUE2QixFQUM3QixnQkFBaUMsRUFDakMsWUFBeUIsRUFDekIsY0FBNkIsRUFDL0IsUUFBa0I7UUFFMUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsZUFBZSxDQUFDLENBQUM7UUFSbkgsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBRzlCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsSUFBUztRQUN4QyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLHlCQUF5QixJQUFJLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNuQixJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLGdCQUFnQixDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ2pCLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsY0FBYyxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7OztZQXBDSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQU5RLG1CQUFtQjtZQWhCbkIsVUFBVTtZQWtCVixZQUFZO1lBSFosYUFBYTtZQUViLGVBQWU7WUFIZixXQUFXO1lBRFgsYUFBYTtZQVpELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBleHRlbmQgfSBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQgeyBFeHBvcnRJdGVtVHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRmlsZUV4cGxvcmVyU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9zZXJ2aWNlcy9maWxlLWV4cGxvcmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZUNvbnN0YW50IH0gZnJvbSAnLi4vY29uZmlncy9jb21wb25lbnQtY29udGFudHMnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xyXG5pbXBvcnQgeyBFeHBvcnRNYW55TW9kZWwsIEV4cG9ydE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2V4cG9ydC1maWxlLWluZm8nO1xyXG5pbXBvcnQgeyBFeHBvcnRJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2V4cG9ydC1pdGVtJztcclxuaW1wb3J0IHsgRXhwb3J0V2l0aG91dFRlbXBsYXRlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LXdpdGhvdXQtdGVtcGxhdGUnO1xyXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4vY29tbW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZVY0U2VydmljZSB9IGZyb20gJy4vZmlsZS1vYmplY3QtdjQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4vbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4vcHJpbnQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlVGV4dFY0U2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuXHJcbiAgICByZWFkb25seSBlbnZpcm9ubWVudDogYW55O1xyXG4gICAgcmVhZG9ubHkgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBfcHJpbnRTZXJ2aWNlOiBQcmludFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9maWxlVjRTZXJ2aWNlOiBGaWxlVjRTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jcnVkU2VydmljZTogQ3J1ZFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaHR0cENsaWVudCwgaW5qZWN0b3IsIGAke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LnY0LmFwaURvbWFpbi50ZW1wbGF0ZUVuZHBvaW50fS90ZW1wbGF0ZVRleHRgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21waWxlQ29udGVudEJ5Q29kZShjb2RlOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9Db21waWxlQ29udGVudEJ5Q29kZS8ke2NvZGV9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBpbGVTaW5nbGUoZGF0YTogYW55KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGxldCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0NvbXBpbGVTaW5nbGVgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBpbGVNYW55KGRhdGE6IGFueSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBsZXQgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9Db21waWxlTWFueWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgZGF0YSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { Injectable } from '@angular/core';
4
- import * as FileSaver from 'file-saver';
4
+ import FileSaver from 'file-saver';
5
5
  import { FileExplorerService } from '../components/file-explorer/services/file-explorer.service';
6
6
  import { TemplateConstant } from '../configs/component-contants';
7
7
  import { CommonService } from './common.service';
@@ -182,4 +182,4 @@ TemplateService.ctorParameters = () => [
182
182
  { type: CrudService },
183
183
  { type: CommonService }
184
184
  ];
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy90ZW1wbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUtqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUsvQyxNQUFNLE9BQU8sZUFBZTtJQU14QixZQUNJLG9CQUF5QyxFQUNqQyxXQUF1QixFQUN2QixhQUEyQixFQUN6QixZQUFpQyxFQUNqQyxnQkFBaUMsRUFDakMsWUFBeUIsRUFDekIsY0FBNkI7UUFML0IsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFFdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsV0FBVyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFO1FBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsZ0JBQWdCLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBaUIsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsS0FBa0I7UUFDbEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxzQkFBc0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDbEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBZ0IsRUFBRSxDQUFDO2FBQ3BELFNBQVMsRUFBRTthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNSLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBTSxHQUFHLEVBQUMsRUFBRTtZQUNqQixNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBc0I7UUFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSwwQkFBMEIsQ0FBQztRQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVCLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDbEIsSUFBSSxDQUFpQixHQUFHLEVBQUUsS0FBSyxDQUFDO2FBQ2hDLFNBQVMsRUFBRTthQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNSLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRTtnQkFDYixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDL0M7UUFDTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBTSxHQUFHLEVBQUMsRUFBRTtZQUNqQixNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQVEsRUFBRSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsZUFBZTtRQUNsRSxPQUFPLEdBQUcsUUFBUSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0csOEJBQThCLENBQUMsS0FBSzs7WUFDdEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxpQ0FBaUMsQ0FBQztZQUVoRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFpQixHQUFHLEVBQUUsS0FBSyxDQUFDO2lCQUNuRCxTQUFTLEVBQUUsQ0FBQztRQUNyQixDQUFDO0tBQUE7SUFFRDs7Ozs7Ozs7T0FRRztJQUNHLDBCQUEwQixDQUFDLEtBQUs7O1lBQ2xDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsbUNBQW1DLENBQUM7WUFFbEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBaUIsR0FBRyxFQUFFLEtBQUssQ0FBQztpQkFDbkQsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQztLQUFBO0lBRUssMEJBQTBCLENBQUMsS0FBSzs7WUFDbEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxzQkFBc0IsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxXQUFXO2lCQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFnQixFQUFFLENBQUM7aUJBQ3BELFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7S0FBQTtJQUVELDJCQUEyQixDQUFDLFlBQW9CLEVBQUUsSUFBUyxFQUFFLGdCQUFnQixHQUFHLElBQUksRUFBRSxtQkFBbUIsR0FBRyxJQUFJO1FBQzVHLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsMkJBQTJCLFlBQVksZUFBZSxDQUFDO1FBRXJGLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDbEIsSUFBSSxDQUFpQixHQUFHLEVBQUUsSUFBSSxDQUFDO2FBQy9CLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3RGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsK0JBQStCLENBQUMsWUFBb0IsRUFBRSxJQUFXLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLG1CQUFtQixHQUFHLElBQUk7UUFDbEgsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxvQ0FBb0MsWUFBWSxlQUFlLENBQUM7UUFFOUYsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNsQixJQUFJLENBQWlCLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDL0IsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDVixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7YUFDdEY7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0I7UUFDMUIsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RSxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUEwQjtRQUN0QyxJQUFJLFFBQVEsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNsRixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsT0FBTztTQUNWO1FBRUQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQixRQUFRLENBQUMsUUFBUSxHQUFHLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEtBQWlDO1FBQzNDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsZ0JBQWdCLENBQUM7UUFFL0MsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFnQixFQUFFLENBQUM7YUFDcEQsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQU0sR0FBRyxFQUFDLEVBQUU7WUFDakIsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVLLG9CQUFvQixDQUFDLEtBQWlDOztZQUN4RCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLGdCQUFnQixDQUFDO1lBRS9DLE9BQU8sSUFBSSxDQUFDLFdBQVc7aUJBQ2xCLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQWdCLEVBQUUsQ0FBQztpQkFDcEQsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQztLQUFBOzs7O1lBNUtKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBTlEsbUJBQW1CO1lBWG5CLFVBQVU7WUFhVixZQUFZO1lBVlosbUJBQW1CO1lBU25CLGVBQWU7WUFGZixXQUFXO1lBRFgsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBGaWxlRXhwbG9yZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZXhwbG9yZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlQ29uc3RhbnQgfSBmcm9tICcuLi9jb25maWdzL2NvbXBvbmVudC1jb250YW50cyc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XHJcbmltcG9ydCB7IEV4cG9ydE1hbnlNb2RlbCwgRXhwb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LWZpbGUtaW5mbyc7XHJcbmltcG9ydCB7IEV4cG9ydFdpdGhvdXRUZW1wbGF0ZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2V4cG9ydC13aXRob3V0LXRlbXBsYXRlJztcclxuaW1wb3J0IHsgUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvcmVzcG9uc2UtcmVzdWx0JztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4vY29tbW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpbnRTZXJ2aWNlIH0gZnJvbSAnLi9wcmludC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVTZXJ2aWNlIHtcclxuXHJcbiAgICByZWFkb25seSBlbnZpcm9ubWVudDogYW55O1xyXG4gICAgcmVhZG9ubHkgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xyXG4gICAgcmVhZG9ubHkgc2VydmljZVVyaTogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBfcHJpbnRTZXJ2aWNlOiBQcmludFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9maWxlU2VydmljZTogRmlsZUV4cGxvcmVyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX25vdGlmaWVyU2VydmljZTogTm90aWZpZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY3J1ZFNlcnZpY2U6IENydWRTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudDtcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSBgJHt0aGlzLmVudmlyb25tZW50LmFwaURvbWFpbi50ZW1wbGF0ZUVuZHBvaW50fS90ZW1wbGF0ZWA7XHJcbiAgICB9XHJcblxyXG4gICAgbGFUZXhUb0Jhc2U2NEltYWdlKGxhVGV4OiBzdHJpbmcsIGZvbnQ6IG51bWJlciA9IDU0KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaSA9IGAke3RoaXMuc2VydmljZVVyaX0vTGF0ZXhUb0Jhc2U2NGA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpLCB7IGxhVGV4LCBmb250IH0pLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzY3JpcHRpb246IFh14bqldCBmaWxlIHPhu60gZOG7pW5nIHRoxrAgdmnhu4duIENYLCB4deG6pXQgeG9uZyB04buxIMSR4buZbmcgbeG7nyBwb3B1cCDEkeG7gyBsxrB1IGZpbGUuXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydEN4RXhjZWxCeUNvZGUobW9kZWw6IEV4cG9ydE1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsQnlDb2RlYDtcclxuICAgICAgICB0aGlzLnNldEZpbGVJbmZvKG1vZGVsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBtb2RlbCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicgfSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKHJlcywgdGhpcy5nZXRGdWxsRmlsZU5hbWUobW9kZWwuZmlsZU5hbWUgfHwgbW9kZWwuY29kZSkpO1xyXG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydE1hbnlDeEV4Y2VsQnlDb2RlKG1vZGVsOiBFeHBvcnRNYW55TW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydE1hbnlDeEV4Y2VsQnlDb2RlYDtcclxuICAgICAgICB0aGlzLnNldE1hbnlGaWxlSW5mbyhtb2RlbCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIG1vZGVsKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpbGVTZXJ2aWNlLmRvd25sb2FkRm9sZGVyKHJlcy5kYXRhLmZvbGRlcklkKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UocmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkuY2F0Y2goYXN5bmMgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IGVyci5lcnJvci50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShKU09OLnBhcnNlKGVycm9yVGV4dCB8fCAnJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGdWxsRmlsZU5hbWUoZmlsZU5hbWUsIGV4dGVuc2lvbiA9IFRlbXBsYXRlQ29uc3RhbnQuRVhDRUxfRVhURU5TSU9OKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke2ZpbGVOYW1lfSR7ZXh0ZW5zaW9ufWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXNjcmlwdGlvbjogRXhwb3J0IHPhu60gZHVuZyBDbG9zZWRYbWwuUmVwb3J0IChDeCkgduG7m2kgc2lnbmFsUiwgc+G7rSBk4bulbmcgY2hvIGZpbGUgZOG7ryBsaeG7h3UgbOG7m24uXHJcbiAgICAgKiBQYXJhbTogbW9kZWwgY2jhu6lhXHJcbiAgICAgKiAgLSBjb2RlIDogIGNvZGUgY+G7p2EgdGVtcGxhdGUgY+G6pXUgaMOsbmggYsOqbiBRdeG6o24gdHLhu4sgPiBCaeG7g3UgbeG6q3UgPiBCaeG7g3UgbeG6q3UgZXhjZWwuXHJcbiAgICAgKiAgLSBkYXRhIDogb2JqZWN0IGNo4bupYSBk4buvIGxp4buHdSDEkcOjIGNodXnhu4FuIHRow6BuaCBk4bqhbmcganNvbi5cclxuICAgICAqICAtIGZpbGVOYW1lOiB0w6puIGZpbGUgc2F1IGtoaSBleHBvcnQuXHJcbiAgICAgKiAgLSB0b3BpYzogZ3VpZCBkw7luZyDEkeG7gyBzdWJzY3JpYmUuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIEV4cG9ydEN4RXhjZWxCeUNvZGVXaXRoU2lnbmFsUihtb2RlbCk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxCeUNvZGVXaXRoU2lnbmFsUmA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgbW9kZWwpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc2NyaXB0aW9uOiBFeHBvcnQgc+G7rSBkdW5nIENsb3NlZFhtbC5SZXBvcnQgKEN4KSB24bubaSBIaWdoUGVyZm9ybWFuY2VTZXJ2aWNlLCBz4butIGThu6VuZyBjaG8gZmlsZSBk4buvIGxp4buHdSBs4bubbi5cclxuICAgICAqIFBhcmFtOiBtb2RlbCBjaOG7qWFcclxuICAgICAqICAtIGNvZGUgOiAgY29kZSBj4bunYSB0ZW1wbGF0ZSBj4bqldSBow6xuaCBiw6puIFF14bqjbiB0cuG7iyA+IEJp4buDdSBt4bqrdSA+IEJp4buDdSBt4bqrdSBleGNlbC5cclxuICAgICAqICAtIGRhdGEgOiBvYmplY3QgY2jhu6lhIGThu68gbGnhu4d1IMSRw6MgY2h1eeG7gW4gdGjDoG5oIGThuqFuZyBqc29uLlxyXG4gICAgICogIC0gZmlsZU5hbWU6IHTDqm4gZmlsZSBzYXUga2hpIGV4cG9ydC5cclxuICAgICAqICAtIHF1ZXVlTmFtZTogcXVldWUgY+G7p2EgdG9waWMuXHJcbiAgICAgKiAgLSB1bmlxdWVLZXk6IHVuaXF1ZSBrZXkgY2hvIHRhc2suXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIEV4cG9ydEN4RXhjZWxCeUNvZGVXaXRoSFBTKG1vZGVsKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0V2l0aEhpZ2hQZXJmb3JtYW5jZVNlcnZpY2VgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5wb3N0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIG1vZGVsKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZXhwb3J0Q3hFeGNlbEJ5Q29kZVByb21pc2UobW9kZWwpOiBQcm9taXNlPE9iamVjdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0Q3hFeGNlbEJ5Q29kZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0KHVybCwgbW9kZWwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nIH0pXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWxsVGVtcGxhdGVCeUNvZGVBbmRHZXRQZGYodGVtcGxhdGVDb2RlOiBzdHJpbmcsIGRhdGE6IGFueSwgb25Mb2FkaW5nRGF0YVBkZiA9IG51bGwsIG9uRW5kTG9hZGluZ0RhdGFQZGYgPSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9maWxsV29yZEJ5VGVtcGxhdGVDb2RlLyR7dGVtcGxhdGVDb2RlfT9pc1ByaW50PXRydWVgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4odXJsLCBkYXRhKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJpbnRTZXJ2aWNlLnByaW50QmFzZTY0UGRmKHJlcy5kYXRhLCBvbkxvYWRpbmdEYXRhUGRmLCBvbkVuZExvYWRpbmdEYXRhUGRmKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlsbFdvcmRCeVRlbXBsYXRlQ29kZU11bHRpRGF0YSh0ZW1wbGF0ZUNvZGU6IHN0cmluZywgZGF0YTogYW55W10sIG9uTG9hZGluZ0RhdGFQZGYgPSBudWxsLCBvbkVuZExvYWRpbmdEYXRhUGRmID0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vZmlsbFdvcmRCeVRlbXBsYXRlQ29kZU11bHRpRGF0YS8ke3RlbXBsYXRlQ29kZX0/aXNQcmludD10cnVlYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgZGF0YSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ByaW50U2VydmljZS5wcmludEJhc2U2NFBkZihyZXMuZGF0YSwgb25Mb2FkaW5nRGF0YVBkZiwgb25FbmRMb2FkaW5nRGF0YVBkZik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZpbGVJbmZvKG1vZGVsOiBFeHBvcnRNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIG1vZGVsLmRhdGEgPSBtb2RlbC5kYXRhID8gbW9kZWwuZGF0YSA6IEpTT04uc3RyaW5naWZ5KG1vZGVsLmRhdGFPYmplY3QpO1xyXG4gICAgICAgIGRlbGV0ZSBtb2RlbC5kYXRhT2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIHNldE1hbnlGaWxlSW5mbyhtYW55TW9kZWw6IEV4cG9ydE1hbnlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBoYXNNb2RlbCA9IG1hbnlNb2RlbCAmJiBtYW55TW9kZWwubHN0RmlsZUluZm8gJiYgbWFueU1vZGVsLmxzdEZpbGVJbmZvLmxlbmd0aDtcclxuICAgICAgICBpZiAoIWhhc01vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1hbnlNb2RlbC5sc3RGaWxlSW5mby5mb3JFYWNoKGZpbGVJbmZvID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxlSW5mbyhmaWxlSW5mbyk7XHJcbiAgICAgICAgICAgIGZpbGVJbmZvLmZpbGVOYW1lID0gYCR7ZmlsZUluZm8uZmlsZU5hbWV9XyR7dGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCl9LiR7VGVtcGxhdGVDb25zdGFudC5FWENFTF9FWFRFTlNJT059YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cG9ydCBk4buvIGxp4buHdSBraMO0bmcgZMO5bmcgdGVtcGxhdGUuXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydEN4RXhjZWwobW9kZWw6IEV4cG9ydFdpdGhvdXRUZW1wbGF0ZU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBtb2RlbCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicgfSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKHJlcywgdGhpcy5nZXRGdWxsRmlsZU5hbWUobW9kZWwuZmlsZU5hbWUgfHwgJ0V4cG9ydCcpKTtcclxuICAgICAgICAgICAgfSkuY2F0Y2goYXN5bmMgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IGVyci5lcnJvci50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShKU09OLnBhcnNlKGVycm9yVGV4dCB8fCAnJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBleHBvcnRDeEV4Y2VsUHJvbWlzZShtb2RlbDogRXhwb3J0V2l0aG91dFRlbXBsYXRlTW9kZWwpOiBQcm9taXNlPE9iamVjdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0Q3hFeGNlbGA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0KHVybCwgbW9kZWwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nIH0pXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy90ZW1wbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFLakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFLL0MsTUFBTSxPQUFPLGVBQWU7SUFNeEIsWUFDSSxvQkFBeUMsRUFDakMsV0FBdUIsRUFDdkIsYUFBMkIsRUFDekIsWUFBaUMsRUFDakMsZ0JBQWlDLEVBQ2pDLFlBQXlCLEVBQ3pCLGNBQTZCO1FBTC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRXZDLElBQUksQ0FBQyxhQUFhLEdBQUcs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QU5RLG1CQUFtQjtZQVhuQixVQUFVO1lBYVYsWUFBWTtZQVZaLG1CQUFtQjtZQVNuQixlQUFlO1lBRmYsV0FBVztZQURYLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IEZpbGVFeHBsb3JlclNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1leHBsb3Jlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVDb25zdGFudCB9IGZyb20gJy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRhbnRzJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcclxuaW1wb3J0IHsgRXhwb3J0TWFueU1vZGVsLCBFeHBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9leHBvcnQtZmlsZS1pbmZvJztcclxuaW1wb3J0IHsgRXhwb3J0V2l0aG91dFRlbXBsYXRlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LXdpdGhvdXQtdGVtcGxhdGUnO1xyXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi9jcnVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmludFNlcnZpY2UgfSBmcm9tICcuL3ByaW50LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVNlcnZpY2Uge1xyXG5cclxuICAgIHJlYWRvbmx5IGVudmlyb25tZW50OiBhbnk7XHJcbiAgICByZWFkb25seSBfbW9kdWxlQ29uZmlnOiBNb2R1bGVDb25maWc7XHJcbiAgICByZWFkb25seSBzZXJ2aWNlVXJpOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIF9wcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbGVTZXJ2aWNlOiBGaWxlRXhwbG9yZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jcnVkU2VydmljZTogQ3J1ZFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLl9tb2R1bGVDb25maWcgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcclxuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50O1xyXG4gICAgICAgIHRoaXMuc2VydmljZVVyaSA9IGAke3RoaXMuZW52aXJvbm1lbnQuYXBpRG9tYWluLnRlbXBsYXRlRW5kcG9pbnR9L3RlbXBsYXRlYDtcclxuICAgIH1cclxuXHJcbiAgICBsYVRleFRvQmFzZTY0SW1hZ2UobGFUZXg6IHN0cmluZywgZm9udDogbnVtYmVyID0gNTQpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYXBpID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9MYXRleFRvQmFzZTY0YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5wb3N0PFJlc3BvbnNlUmVzdWx0PihhcGksIHsgbGFUZXgsIGZvbnQgfSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXNjcmlwdGlvbjogWHXhuqV0IGZpbGUgc+G7rSBk4bulbmcgdGjGsCB2aeG7h24gQ1gsIHh14bqldCB4b25nIHThu7EgxJHhu5luZyBt4bufIHBvcHVwIMSR4buDIGzGsHUgZmlsZS5cclxuICAgICAqL1xyXG4gICAgZXhwb3J0Q3hFeGNlbEJ5Q29kZShtb2RlbDogRXhwb3J0TW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxCeUNvZGVgO1xyXG4gICAgICAgIHRoaXMuc2V0RmlsZUluZm8obW9kZWwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIG1vZGVsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMocmVzLCB0aGlzLmdldEZ1bGxGaWxlTmFtZShtb2RlbC5maWxlTmFtZSB8fCBtb2RlbC5jb2RlKSk7XHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGFzeW5jIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBlcnIuZXJyb3IudGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UoSlNPTi5wYXJzZShlcnJvclRleHQgfHwgJycpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0TWFueUN4RXhjZWxCeUNvZGUobW9kZWw6IEV4cG9ydE1hbnlNb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0TWFueUN4RXhjZWxCeUNvZGVgO1xyXG4gICAgICAgIHRoaXMuc2V0TWFueUZpbGVJbmZvKG1vZGVsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgbW9kZWwpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsZVNlcnZpY2UuZG93bmxvYWRGb2xkZXIocmVzLmRhdGEuZm9sZGVySWQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZ1bGxGaWxlTmFtZShmaWxlTmFtZSwgZXh0ZW5zaW9uID0gVGVtcGxhdGVDb25zdGFudC5FWENFTF9FWFRFTlNJT04pIHtcclxuICAgICAgICByZXR1cm4gYCR7ZmlsZU5hbWV9JHtleHRlbnNpb259YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc2NyaXB0aW9uOiBFeHBvcnQgc+G7rSBkdW5nIENsb3NlZFhtbC5SZXBvcnQgKEN4KSB24bubaSBzaWduYWxSLCBz4butIGThu6VuZyBjaG8gZmlsZSBk4buvIGxp4buHdSBs4bubbi5cclxuICAgICAqIFBhcmFtOiBtb2RlbCBjaOG7qWFcclxuICAgICAqICAtIGNvZGUgOiAgY29kZSBj4bunYSB0ZW1wbGF0ZSBj4bqldSBow6xuaCBiw6puIFF14bqjbiB0cuG7iyA+IEJp4buDdSBt4bqrdSA+IEJp4buDdSBt4bqrdSBleGNlbC5cclxuICAgICAqICAtIGRhdGEgOiBvYmplY3QgY2jhu6lhIGThu68gbGnhu4d1IMSRw6MgY2h1eeG7gW4gdGjDoG5oIGThuqFuZyBqc29uLlxyXG4gICAgICogIC0gZmlsZU5hbWU6IHTDqm4gZmlsZSBzYXUga2hpIGV4cG9ydC5cclxuICAgICAqICAtIHRvcGljOiBndWlkIGTDuW5nIMSR4buDIHN1YnNjcmliZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhTaWduYWxSKG1vZGVsKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhTaWduYWxSYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQucG9zdDxSZXNwb25zZVJlc3VsdD4odXJsLCBtb2RlbClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzY3JpcHRpb246IEV4cG9ydCBz4butIGR1bmcgQ2xvc2VkWG1sLlJlcG9ydCAoQ3gpIHbhu5tpIEhpZ2hQZXJmb3JtYW5jZVNlcnZpY2UsIHPhu60gZOG7pW5nIGNobyBmaWxlIGThu68gbGnhu4d1IGzhu5tuLlxyXG4gICAgICogUGFyYW06IG1vZGVsIGNo4bupYVxyXG4gICAgICogIC0gY29kZSA6ICBjb2RlIGPhu6dhIHRlbXBsYXRlIGPhuqV1IGjDrG5oIGLDqm4gUXXhuqNuIHRy4buLID4gQmnhu4N1IG3huqt1ID4gQmnhu4N1IG3huqt1IGV4Y2VsLlxyXG4gICAgICogIC0gZGF0YSA6IG9iamVjdCBjaOG7qWEgZOG7ryBsaeG7h3UgxJHDoyBjaHV54buBbiB0aMOgbmggZOG6oW5nIGpzb24uXHJcbiAgICAgKiAgLSBmaWxlTmFtZTogdMOqbiBmaWxlIHNhdSBraGkgZXhwb3J0LlxyXG4gICAgICogIC0gcXVldWVOYW1lOiBxdWV1ZSBj4bunYSB0b3BpYy5cclxuICAgICAqICAtIHVuaXF1ZUtleTogdW5pcXVlIGtleSBjaG8gdGFzay5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhIUFMobW9kZWwpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRXaXRoSGlnaFBlcmZvcm1hbmNlU2VydmljZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgbW9kZWwpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBleHBvcnRDeEV4Y2VsQnlDb2RlUHJvbWlzZShtb2RlbCk6IFByb21pc2U8T2JqZWN0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsQnlDb2RlYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBtb2RlbCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicgfSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbGxUZW1wbGF0ZUJ5Q29kZUFuZEdldFBkZih0ZW1wbGF0ZUNvZGU6IHN0cmluZywgZGF0YTogYW55LCBvbkxvYWRpbmdEYXRhUGRmID0gbnVsbCwgb25FbmRMb2FkaW5nRGF0YVBkZiA9IG51bGwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L2ZpbGxXb3JkQnlUZW1wbGF0ZUNvZGUvJHt0ZW1wbGF0ZUNvZGV9P2lzUHJpbnQ9dHJ1ZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIGRhdGEpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmludFNlcnZpY2UucHJpbnRCYXNlNjRQZGYocmVzLmRhdGEsIG9uTG9hZGluZ0RhdGFQZGYsIG9uRW5kTG9hZGluZ0RhdGFQZGYpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmaWxsV29yZEJ5VGVtcGxhdGVDb2RlTXVsdGlEYXRhKHRlbXBsYXRlQ29kZTogc3RyaW5nLCBkYXRhOiBhbnlbXSwgb25Mb2FkaW5nRGF0YVBkZiA9IG51bGwsIG9uRW5kTG9hZGluZ0RhdGFQZGYgPSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9maWxsV29yZEJ5VGVtcGxhdGVDb2RlTXVsdGlEYXRhLyR7dGVtcGxhdGVDb2RlfT9pc1ByaW50PXRydWVgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4odXJsLCBkYXRhKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJpbnRTZXJ2aWNlLnByaW50QmFzZTY0UGRmKHJlcy5kYXRhLCBvbkxvYWRpbmdEYXRhUGRmLCBvbkVuZExvYWRpbmdEYXRhUGRmKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsZUluZm8obW9kZWw6IEV4cG9ydE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgbW9kZWwuZGF0YSA9IG1vZGVsLmRhdGEgPyBtb2RlbC5kYXRhIDogSlNPTi5zdHJpbmdpZnkobW9kZWwuZGF0YU9iamVjdCk7XHJcbiAgICAgICAgZGVsZXRlIG1vZGVsLmRhdGFPYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TWFueUZpbGVJbmZvKG1hbnlNb2RlbDogRXhwb3J0TWFueU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGhhc01vZGVsID0gbWFueU1vZGVsICYmIG1hbnlNb2RlbC5sc3RGaWxlSW5mbyAmJiBtYW55TW9kZWwubHN0RmlsZUluZm8ubGVuZ3RoO1xyXG4gICAgICAgIGlmICghaGFzTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbWFueU1vZGVsLmxzdEZpbGVJbmZvLmZvckVhY2goZmlsZUluZm8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldEZpbGVJbmZvKGZpbGVJbmZvKTtcclxuICAgICAgICAgICAgZmlsZUluZm8uZmlsZU5hbWUgPSBgJHtmaWxlSW5mby5maWxlTmFtZX1fJHt0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKX0uJHtUZW1wbGF0ZUNvbnN0YW50LkVYQ0VMX0VYVEVOU0lPTn1gO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwb3J0IGThu68gbGnhu4d1IGtow7RuZyBkw7luZyB0ZW1wbGF0ZS5cclxuICAgICAqL1xyXG4gICAgZXhwb3J0Q3hFeGNlbChtb2RlbDogRXhwb3J0V2l0aG91dFRlbXBsYXRlTW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIG1vZGVsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMocmVzLCB0aGlzLmdldEZ1bGxGaWxlTmFtZShtb2RlbC5maWxlTmFtZSB8fCAnRXhwb3J0JykpO1xyXG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGV4cG9ydEN4RXhjZWxQcm9taXNlKG1vZGVsOiBFeHBvcnRXaXRob3V0VGVtcGxhdGVNb2RlbCk6IFByb21pc2U8T2JqZWN0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBtb2RlbCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicgfSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { HttpClient } from '@angular/common/http';
3
3
  import { Injectable } from '@angular/core';
4
- import * as FileSaver from 'file-saver';
4
+ import FileSaver from 'file-saver';
5
5
  import { GenerateLinkDownloadDTO } from '../components/file-explorer/models/generate-link-download-dto';
6
6
  import { DownloadLinkService } from '../components/file-explorer/services/download-link.service';
7
7
  import { FileExplorerService } from '../components/file-explorer/services/file-explorer.service';
@@ -271,4 +271,4 @@ TemplateInstanceService.ctorParameters = () => [
271
271
  { type: CommonService },
272
272
  { type: DownloadLinkService }
273
273
  ];
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVpbnN0YW5jZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3RlbXBsYXRlaW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFNakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBSy9DLE1BQU0sT0FBTyx1QkFBdUI7SUFPaEMsWUFDSSxvQkFBeUMsRUFDakMsV0FBdUIsRUFDdkIsYUFBMkIsRUFDekIsWUFBaUMsRUFDakMsZ0JBQWlDLEVBQ2pDLFlBQXlCLEVBQ3pCLGNBQTZCLEVBQy9CLG9CQUF5QztRQU56QyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUN6QixpQkFBWSxH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LENBQUM7UUFDWCxDQUFDO0tBQUE7Ozs7WUFuUUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFOUSxtQkFBbUI7WUFmbkIsVUFBVTtZQWlCVixZQUFZO1lBWFosbUJBQW1CO1lBVW5CLGVBQWU7WUFGZixXQUFXO1lBRFgsYUFBYTtZQVJiLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBFeHBvcnRJdGVtVHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgR2VuZXJhdGVMaW5rRG93bmxvYWREVE8gfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvbW9kZWxzL2dlbmVyYXRlLWxpbmstZG93bmxvYWQtZHRvJztcclxuaW1wb3J0IHsgRG93bmxvYWRMaW5rU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9zZXJ2aWNlcy9kb3dubG9hZC1saW5rLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWxlRXhwbG9yZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZXhwbG9yZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlQ29uc3RhbnQgfSBmcm9tICcuLi9jb25maWdzL2NvbXBvbmVudC1jb250YW50cyc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XHJcbmltcG9ydCB7IEV4cG9ydE1hbnlNb2RlbCwgRXhwb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LWZpbGUtaW5mbyc7XHJcbmltcG9ydCB7IEV4cG9ydEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZXhwb3J0LWl0ZW0nO1xyXG5pbXBvcnQgeyBFeHBvcnRXaXRob3V0VGVtcGxhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9leHBvcnQtd2l0aG91dC10ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL2NydWQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4vbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4vcHJpbnQuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlSW5zdGFuY2VTZXJ2aWNlIHtcclxuXHJcbiAgICByZWFkb25seSBlbnZpcm9ubWVudDogYW55O1xyXG4gICAgcmVhZG9ubHkgX21vZHVsZUNvbmZpZzogTW9kdWxlQ29uZmlnO1xyXG4gICAgLy9yZWFkb25seSBzZXJ2aWNlVXJpOiBzdHJpbmc7IC8vVOG6oW0gdGjhu51pIGsgxJHhu4MgcmVhZG9ubHkgxJHhu4MgY8OzIHRo4buDIHN3aXRjaCBzYW5nIHY0XHJcbiAgICBzZXJ2aWNlVXJpOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIF9wcmludFNlcnZpY2U6IFByaW50U2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbGVTZXJ2aWNlOiBGaWxlRXhwbG9yZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jcnVkU2VydmljZTogQ3J1ZFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2Rvd25sb2FkTGlua1NlcnZpY2U6IERvd25sb2FkTGlua1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX21vZHVsZUNvbmZpZyA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQ7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlVXJpID0gYCR7dGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaURvbWFpbi50ZW1wbGF0ZUVuZHBvaW50fS8ke3RoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlWZXJzaW9ufS9UZW1wbGF0ZUluc3RhbmNlYDtcclxuICAgIH1cclxuXHJcbiAgICB1c2VWNCgpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSBgJHt0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBpRG9tYWluLnRlbXBsYXRlVjRFbmRwb2ludH0vVGVtcGxhdGVgO1xyXG4gICAgfVxyXG5cclxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICBYVeG6pFQgRVhDRUw6IGtow7RuZyBkw7luZyBzaWduYWxSLCB04buxIMSR4buZbmcgbMawdSB4deG7kW5nXHJcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cclxuXHJcbiAgICAvKipcclxuICAgICAqIFh14bqldCBt4buZdCBmaWxlIHRy4buxYyB0aeG6v3Aga2jDtG5nLCB4b25nIHRow6wgdOG7sSBsxrB1IHh14buRbmcuXHJcbiAgICAgKiBAcGFyYW0gbW9kZWwgXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydEN4RXhjZWxCeUNvZGUobW9kZWw6IEV4cG9ydE1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsQnlDb2RlYDtcclxuICAgICAgICB0aGlzLnNldEZpbGVJbmZvKG1vZGVsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBtb2RlbCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicgfSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKHJlcywgdGhpcy5nZXRGdWxsRmlsZU5hbWUobW9kZWwuZmlsZU5hbWUgfHwgbW9kZWwuY29kZSkpO1xyXG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZpbGVJbmZvKG1vZGVsOiBFeHBvcnRNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIG1vZGVsLmRhdGEgPSBtb2RlbC5kYXRhID8gbW9kZWwuZGF0YSA6IEpTT04uc3RyaW5naWZ5KG1vZGVsLmRhdGFPYmplY3QpO1xyXG4gICAgICAgIGRlbGV0ZSBtb2RlbC5kYXRhT2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogWHXhuqV0IG5oaeG7gXUgZmlsZSwgeG9uZyB0aMOsIHThu7EgxJHhu5luZyB04bqjaSB24buBIGZvbGRlciDEkcOjIG7DqW4uXHJcbiAgICAgKiBAcGFyYW0gbW9kZWwgXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydE1hbnlDeEV4Y2VsQnlDb2RlKG1vZGVsOiBFeHBvcnRNYW55TW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydE1hbnlDeEV4Y2VsQnlDb2RlYDtcclxuICAgICAgICB0aGlzLnNldE1hbnlGaWxlSW5mbyhtb2RlbCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIG1vZGVsKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpbGVTZXJ2aWNlLmRvd25sb2FkRm9sZGVyKHJlcy5kYXRhLmZvbGRlcklkKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UocmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkuY2F0Y2goYXN5bmMgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IGVyci5lcnJvci50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShKU09OLnBhcnNlKGVycm9yVGV4dCB8fCAnJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRNYW55RmlsZUluZm8obWFueU1vZGVsOiBFeHBvcnRNYW55TW9kZWwpOiB2b2lkIHtcclxuICAgICAgICBsZXQgaGFzTW9kZWwgPSBtYW55TW9kZWwgJiYgbWFueU1vZGVsLmxzdEZpbGVJbmZvICYmIG1hbnlNb2RlbC5sc3RGaWxlSW5mby5sZW5ndGg7XHJcbiAgICAgICAgaWYgKCFoYXNNb2RlbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBtYW55TW9kZWwubHN0RmlsZUluZm8uZm9yRWFjaChmaWxlSW5mbyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsZUluZm8oZmlsZUluZm8pO1xyXG4gICAgICAgICAgICBmaWxlSW5mby5maWxlTmFtZSA9IGAke2ZpbGVJbmZvLmZpbGVOYW1lfV8ke3RoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZCgpfS4ke1RlbXBsYXRlQ29uc3RhbnQuRVhDRUxfRVhURU5TSU9OfWA7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RnVsbEZpbGVOYW1lKGZpbGVOYW1lLCBleHRlbnNpb24gPSBUZW1wbGF0ZUNvbnN0YW50LkVYQ0VMX0VYVEVOU0lPTikge1xyXG4gICAgICAgIHJldHVybiBgJHtmaWxlTmFtZX0ke2V4dGVuc2lvbn1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogWHXhuqV0IGZpbGUgZXhjZWwga2jDtG5nIGTDuW5nIHRlbXBsYXRlLCB04buxIMSR4buZbmcgdOG6o2kgeHXhu5FuZy5cclxuICAgICAqIEBwYXJhbSBtb2RlbCBcclxuICAgICAqL1xyXG4gICAgZXhwb3J0Q3hFeGNlbChtb2RlbDogRXhwb3J0V2l0aG91dFRlbXBsYXRlTW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIG1vZGVsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMocmVzLCB0aGlzLmdldEZ1bGxGaWxlTmFtZShtb2RlbC5maWxlTmFtZSB8fCAnRXhwb3J0JykpO1xyXG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYVeG6pFQgRVhDRUw6IGTDuW5nIGNobyByZXBvcnQgcXVldWUgXHJcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb21pc2UgeHXhuqV0IGZpbGUgZXhjZWwgZMO5bmcgc2lnbmFsUi5cclxuICAgICAqIC0gRGVzY3JpcHRpb246IEV4cG9ydCBz4butIGR1bmcgQ2xvc2VkWG1sLlJlcG9ydCAoQ3gpIHbhu5tpIHNpZ25hbFIsIHPhu60gZOG7pW5nIGNobyBmaWxlIGThu68gbGnhu4d1IGzhu5tuLlxyXG4gICAgICogLSBQYXJhbTogbW9kZWwgY2jhu6lhXHJcbiAgICAgKiAgICAgIC0gY29kZSA6ICBjb2RlIGPhu6dhIHRlbXBsYXRlIGPhuqV1IGjDrG5oIGLDqm4gUXXhuqNuIHRy4buLID4gQmnhu4N1IG3huqt1ID4gQmnhu4N1IG3huqt1IGV4Y2VsLlxyXG4gICAgICogICAgICAtIGRhdGEgOiBvYmplY3QgY2jhu6lhIGThu68gbGnhu4d1IMSRw6MgY2h1eeG7gW4gdGjDoG5oIGThuqFuZyBqc29uLlxyXG4gICAgICogICAgICAtIGZpbGVOYW1lOiB0w6puIGZpbGUgc2F1IGtoaSBleHBvcnQuXHJcbiAgICAgKiAgICAgIC0gdG9waWM6IGd1aWQgZMO5bmcgxJHhu4Mgc3Vic2NyaWJlLlxyXG4gICAgICovXHJcbiAgICBhc3luYyBFeHBvcnRDeEV4Y2VsQnlDb2RlV2l0aFNpZ25hbFIobW9kZWw6IEV4cG9ydE1vZGVsKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhTaWduYWxSYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQucG9zdDxSZXNwb25zZVJlc3VsdD4odXJsLCBtb2RlbClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvbWlzZSB4deG6pXQgZmlsZSBleGNlbCBraMO0bmcgZMO5bmcgc2lnbmFsUi5cclxuICAgICAqIEBwYXJhbSBtb2RlbCBcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZXhwb3J0Q3hFeGNlbEJ5Q29kZVByb21pc2UobW9kZWw6IEV4cG9ydE1vZGVsKTogUHJvbWlzZTxPYmplY3Q+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxCeUNvZGVgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIG1vZGVsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9taXNlIHh14bqldCBmaWxlIGV4Y2VsIGtow7RuZyBkw7luZyBzaWduYWxSIHbDoCBraMO0bmcgZMO5bmcgdGVtcGxhdGUuXHJcbiAgICAgKiBAcGFyYW0gbW9kZWwgXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGV4cG9ydEN4RXhjZWxQcm9taXNlKG1vZGVsOiBFeHBvcnRXaXRob3V0VGVtcGxhdGVNb2RlbCk6IFByb21pc2U8T2JqZWN0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBtb2RlbCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyBhcyAnanNvbicgfSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdvcmRcclxuICAgICAqIEBwYXJhbSB0ZW1wbGF0ZUNvZGUgXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBcclxuICAgICAqL1xyXG4gICAgZmlsbFRlbXBsYXRlQnlDb2RlQW5kR2V0UGRmKHRlbXBsYXRlQ29kZTogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L2ZpbGxXb3JkQnlUZW1wbGF0ZUNvZGUvJHt0ZW1wbGF0ZUNvZGV9P2lzUHJpbnQ9dHJ1ZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIGRhdGEpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKS50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmludFNlcnZpY2UucHJpbnRCYXNlNjRQZGYocmVzLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdvcmRcclxuICAgICAqIEBwYXJhbSB0ZW1wbGF0ZUNvZGUgXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBcclxuICAgICAqL1xyXG4gICAgZmlsbFRlbXBsYXRlQnlDb2RlKHRlbXBsYXRlQ29kZTogc3RyaW5nLCBkYXRhOiBhbnksIG5hbWU6IHN0cmluZyA9ICdFeHBvcnQnKSB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9maWxsV29yZEJ5VGVtcGxhdGVDb2RlLyR7dGVtcGxhdGVDb2RlfT9pc1ByaW50PWZhbHNlYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3QodXJsLCBkYXRhLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMocmVzLCB0aGlzLmdldEZ1bGxGaWxlTmFtZShuYW1lIHx8ICdFeHBvcnQnLCBUZW1wbGF0ZUNvbnN0YW50LldPUkRfRVhURU5TSU9OKSk7XHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGFzeW5jIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBlcnIuZXJyb3IudGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UoSlNPTi5wYXJzZShlcnJvclRleHQgfHwgJycpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGFUZXhUb0Jhc2U2NEltYWdlKGxhVGV4OiBzdHJpbmcsIGZvbnQ6IG51bWJlciA9IDU0KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGFwaSA9IGAke3RoaXMuc2VydmljZVVyaX0vTGF0ZXhUb0Jhc2U2NGA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpLCB7IGxhVGV4LCBmb250IH0pLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBhc3luYyBfZXhwb3J0KG1vZGVsOiBFeHBvcnRJdGVtKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vZXhwb3J0YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgbW9kZWwpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cG9ydCBhIHRyZWUgb2YgZm9sZGVycywgZmlsZXMgdXNpbmcgYmFja2dyb3VuZCBqb2IuXHJcbiAgICAgKiBAcGFyYW0gbW9kZWwgXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGV4cG9ydChtb2RlbDogRXhwb3J0SXRlbSkge1xyXG4gICAgICAgIHRoaXMuX2V4cG9ydChtb2RlbClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJzLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1Row6ptIHh14bqldCBmaWxlIHRow6BuaCBjw7RuZyEnKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UocnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnVGhhbyB0w6FjIGNoxrBhIHRow6BuaCBjw7RuZy4gVnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdSEnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2UubG9nSW5mb1NpbXBsZShlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBfZXhwb3J0Tm9ybWFsKG1vZGVsOiBFeHBvcnRJdGVtKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vZXhwb3J0Tm9ybWFsYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgbW9kZWwpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cG9ydCBhIHRyZWUgb2YgZm9sZGVycywgZmlsZXMgZGlyZWN0bHkuXHJcbiAgICAgKiBAcGFyYW0gZGF0YSBcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZXhwb3J0Tm9ybWFsKGRhdGE6IEV4cG9ydEl0ZW0pOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cG9ydE5vcm1hbChkYXRhKVxyXG4gICAgICAgICAgICAudGhlbihycyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocnMuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RJdGVtID0gcnMuZGF0YSBhcyBFeHBvcnRJdGVtO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuZG93bmxvYWQobmV3IEdlbmVyYXRlTGlua0Rvd25sb2FkRFRPKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUlkOiByb290SXRlbS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRlcklkOiByb290SXRlbS5mb2xkZXJJZFxyXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UocnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZygnVGhhbyB0w6FjIGNoxrBhIHRow6BuaCBjw7RuZy4gVnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdSEnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2UubG9nSW5mb1NpbXBsZShlcnIpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmdldFJlc3BvbnNlUmVzdWx0RnJvbUV4Y2VwdGlvbihlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxhbnk+cmVzcG9uc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVpbnN0YW5jZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3RlbXBsYXRlaW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBRW5DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTWpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQUsvQyxNQUFNLE9BQU8sdUJBQXVCO0lBT2hDLFlBQ0ksb0JBQXlDLEVBQ2pDLFdBQXVCLEVBQ3ZCLGFBQTJCLEVBQ3pCLFlBQWlDLEVBQ2pDLGdCQUFpQyxFQUNqQyxZQUF5QixFQUN6QixjQUE2QixFQUMvQixvQkFBeUM7UUFOekMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDekIsaUJBQVksR0FBWixZ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O1FBQ1gsQ0FBQztLQUFBOzs7O1lBblFKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBTlEsbUJBQW1CO1lBZm5CLFVBQVU7WUFpQlYsWUFBWTtZQVhaLG1CQUFtQjtZQVVuQixlQUFlO1lBRmYsV0FBVztZQURYLGFBQWE7WUFSYixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IEV4cG9ydEl0ZW1UeXBlIH0gZnJvbSAnLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZUxpbmtEb3dubG9hZERUTyB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9tb2RlbHMvZ2VuZXJhdGUtbGluay1kb3dubG9hZC1kdG8nO1xyXG5pbXBvcnQgeyBEb3dubG9hZExpbmtTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2Rvd25sb2FkLWxpbmsuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVFeHBsb3JlclNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1leHBsb3Jlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVDb25zdGFudCB9IGZyb20gJy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRhbnRzJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcclxuaW1wb3J0IHsgRXhwb3J0TWFueU1vZGVsLCBFeHBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9leHBvcnQtZmlsZS1pbmZvJztcclxuaW1wb3J0IHsgRXhwb3J0SXRlbSB9IGZyb20gJy4uL21vZGVscy9leHBvcnQtaXRlbSc7XHJcbmltcG9ydCB7IEV4cG9ydFdpdGhvdXRUZW1wbGF0ZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2V4cG9ydC13aXRob3V0LXRlbXBsYXRlJztcclxuaW1wb3J0IHsgUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvcmVzcG9uc2UtcmVzdWx0JztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4vY29tbW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpbnRTZXJ2aWNlIH0gZnJvbSAnLi9wcmludC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVJbnN0YW5jZVNlcnZpY2Uge1xyXG5cclxuICAgIHJlYWRvbmx5IGVudmlyb25tZW50OiBhbnk7XHJcbiAgICByZWFkb25seSBfbW9kdWxlQ29uZmlnOiBNb2R1bGVDb25maWc7XHJcbiAgICAvL3JlYWRvbmx5IHNlcnZpY2VVcmk6IHN0cmluZzsgLy9U4bqhbSB0aOG7nWkgayDEkeG7gyByZWFkb25seSDEkeG7gyBjw7MgdGjhu4Mgc3dpdGNoIHNhbmcgdjRcclxuICAgIHNlcnZpY2VVcmk6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgX3ByaW50U2VydmljZTogUHJpbnRTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZmlsZVNlcnZpY2U6IEZpbGVFeHBsb3JlclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9ub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2NydWRTZXJ2aWNlOiBDcnVkU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZG93bmxvYWRMaW5rU2VydmljZTogRG93bmxvYWRMaW5rU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudDtcclxuICAgICAgICB0aGlzLnNlcnZpY2VVcmkgPSBgJHt0aGlzLl9tb2R1bGVDb25maWcuZW52aXJvbm1lbnQuYXBpRG9tYWluLnRlbXBsYXRlRW5kcG9pbnR9LyR7dGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaVZlcnNpb259L1RlbXBsYXRlSW5zdGFuY2VgO1xyXG4gICAgfVxyXG5cclxuICAgIHVzZVY0KCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZVVyaSA9IGAke3RoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlEb21haW4udGVtcGxhdGVWNEVuZHBvaW50fS9UZW1wbGF0ZWA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXHJcbiAgICAvLyAgICAgICAgICAgICAgICAgIFhV4bqkVCBFWENFTDoga2jDtG5nIGTDuW5nIHNpZ25hbFIsIHThu7EgxJHhu5luZyBsxrB1IHh14buRbmdcclxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogWHXhuqV0IG3hu5l0IGZpbGUgdHLhu7FjIHRp4bq/cCBraMO0bmcsIHhvbmcgdGjDrCB04buxIGzGsHUgeHXhu5FuZy5cclxuICAgICAqIEBwYXJhbSBtb2RlbCBcclxuICAgICAqL1xyXG4gICAgZXhwb3J0Q3hFeGNlbEJ5Q29kZShtb2RlbDogRXhwb3J0TW9kZWwpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxCeUNvZGVgO1xyXG4gICAgICAgIHRoaXMuc2V0RmlsZUluZm8obW9kZWwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIG1vZGVsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMocmVzLCB0aGlzLmdldEZ1bGxGaWxlTmFtZShtb2RlbC5maWxlTmFtZSB8fCBtb2RlbC5jb2RlKSk7XHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGFzeW5jIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBlcnIuZXJyb3IudGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UoSlNPTi5wYXJzZShlcnJvclRleHQgfHwgJycpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsZUluZm8obW9kZWw6IEV4cG9ydE1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgbW9kZWwuZGF0YSA9IG1vZGVsLmRhdGEgPyBtb2RlbC5kYXRhIDogSlNPTi5zdHJpbmdpZnkobW9kZWwuZGF0YU9iamVjdCk7XHJcbiAgICAgICAgZGVsZXRlIG1vZGVsLmRhdGFPYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBYdeG6pXQgbmhp4buBdSBmaWxlLCB4b25nIHRow6wgdOG7sSDEkeG7mW5nIHThuqNpIHbhu4EgZm9sZGVyIMSRw6MgbsOpbi5cclxuICAgICAqIEBwYXJhbSBtb2RlbCBcclxuICAgICAqL1xyXG4gICAgZXhwb3J0TWFueUN4RXhjZWxCeUNvZGUobW9kZWw6IEV4cG9ydE1hbnlNb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0TWFueUN4RXhjZWxCeUNvZGVgO1xyXG4gICAgICAgIHRoaXMuc2V0TWFueUZpbGVJbmZvKG1vZGVsKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgbW9kZWwpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsZVNlcnZpY2UuZG93bmxvYWRGb2xkZXIocmVzLmRhdGEuZm9sZGVySWQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldE1hbnlGaWxlSW5mbyhtYW55TW9kZWw6IEV4cG9ydE1hbnlNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIGxldCBoYXNNb2RlbCA9IG1hbnlNb2RlbCAmJiBtYW55TW9kZWwubHN0RmlsZUluZm8gJiYgbWFueU1vZGVsLmxzdEZpbGVJbmZvLmxlbmd0aDtcclxuICAgICAgICBpZiAoIWhhc01vZGVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1hbnlNb2RlbC5sc3RGaWxlSW5mby5mb3JFYWNoKGZpbGVJbmZvID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxlSW5mbyhmaWxlSW5mbyk7XHJcbiAgICAgICAgICAgIGZpbGVJbmZvLmZpbGVOYW1lID0gYCR7ZmlsZUluZm8uZmlsZU5hbWV9XyR7dGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCl9LiR7VGVtcGxhdGVDb25zdGFudC5FWENFTF9FWFRFTlNJT059YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGdWxsRmlsZU5hbWUoZmlsZU5hbWUsIGV4dGVuc2lvbiA9IFRlbXBsYXRlQ29uc3RhbnQuRVhDRUxfRVhURU5TSU9OKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke2ZpbGVOYW1lfSR7ZXh0ZW5zaW9ufWA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBYdeG6pXQgZmlsZSBleGNlbCBraMO0bmcgZMO5bmcgdGVtcGxhdGUsIHThu7EgxJHhu5luZyB04bqjaSB4deG7kW5nLlxyXG4gICAgICogQHBhcmFtIG1vZGVsIFxyXG4gICAgICovXHJcbiAgICBleHBvcnRDeEV4Y2VsKG1vZGVsOiBFeHBvcnRXaXRob3V0VGVtcGxhdGVNb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0Q3hFeGNlbGA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0KHVybCwgbW9kZWwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nIH0pXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhyZXMsIHRoaXMuZ2V0RnVsbEZpbGVOYW1lKG1vZGVsLmZpbGVOYW1lIHx8ICdFeHBvcnQnKSk7XHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGFzeW5jIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBlcnIuZXJyb3IudGV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UoSlNPTi5wYXJzZShlcnJvclRleHQgfHwgJycpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhV4bqkVCBFWENFTDogZMO5bmcgY2hvIHJlcG9ydCBxdWV1ZSBcclxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvbWlzZSB4deG6pXQgZmlsZSBleGNlbCBkw7luZyBzaWduYWxSLlxyXG4gICAgICogLSBEZXNjcmlwdGlvbjogRXhwb3J0IHPhu60gZHVuZyBDbG9zZWRYbWwuUmVwb3J0IChDeCkgduG7m2kgc2lnbmFsUiwgc+G7rSBk4bulbmcgY2hvIGZpbGUgZOG7ryBsaeG7h3UgbOG7m24uXHJcbiAgICAgKiAtIFBhcmFtOiBtb2RlbCBjaOG7qWFcclxuICAgICAqICAgICAgLSBjb2RlIDogIGNvZGUgY+G7p2EgdGVtcGxhdGUgY+G6pXUgaMOsbmggYsOqbiBRdeG6o24gdHLhu4sgPiBCaeG7g3UgbeG6q3UgPiBCaeG7g3UgbeG6q3UgZXhjZWwuXHJcbiAgICAgKiAgICAgIC0gZGF0YSA6IG9iamVjdCBjaOG7qWEgZOG7ryBsaeG7h3UgxJHDoyBjaHV54buBbiB0aMOgbmggZOG6oW5nIGpzb24uXHJcbiAgICAgKiAgICAgIC0gZmlsZU5hbWU6IHTDqm4gZmlsZSBzYXUga2hpIGV4cG9ydC5cclxuICAgICAqICAgICAgLSB0b3BpYzogZ3VpZCBkw7luZyDEkeG7gyBzdWJzY3JpYmUuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIEV4cG9ydEN4RXhjZWxCeUNvZGVXaXRoU2lnbmFsUihtb2RlbDogRXhwb3J0TW9kZWwpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9FeHBvcnRDeEV4Y2VsQnlDb2RlV2l0aFNpZ25hbFJgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5wb3N0PFJlc3BvbnNlUmVzdWx0Pih1cmwsIG1vZGVsKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9taXNlIHh14bqldCBmaWxlIGV4Y2VsIGtow7RuZyBkw7luZyBzaWduYWxSLlxyXG4gICAgICogQHBhcmFtIG1vZGVsIFxyXG4gICAgICovXHJcbiAgICBhc3luYyBleHBvcnRDeEV4Y2VsQnlDb2RlUHJvbWlzZShtb2RlbDogRXhwb3J0TW9kZWwpOiBQcm9taXNlPE9iamVjdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vRXhwb3J0Q3hFeGNlbEJ5Q29kZWA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5wb3N0KHVybCwgbW9kZWwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nIH0pXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb21pc2UgeHXhuqV0IGZpbGUgZXhjZWwga2jDtG5nIGTDuW5nIHNpZ25hbFIgdsOgIGtow7RuZyBkw7luZyB0ZW1wbGF0ZS5cclxuICAgICAqIEBwYXJhbSBtb2RlbCBcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZXhwb3J0Q3hFeGNlbFByb21pc2UobW9kZWw6IEV4cG9ydFdpdGhvdXRUZW1wbGF0ZU1vZGVsKTogUHJvbWlzZTxPYmplY3Q+IHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0V4cG9ydEN4RXhjZWxgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIG1vZGVsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIGFzICdqc29uJyB9KVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV29yZFxyXG4gICAgICogQHBhcmFtIHRlbXBsYXRlQ29kZSBcclxuICAgICAqIEBwYXJhbSBkYXRhIFxyXG4gICAgICovXHJcbiAgICBmaWxsVGVtcGxhdGVCeUNvZGVBbmRHZXRQZGYodGVtcGxhdGVDb2RlOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vZmlsbFdvcmRCeVRlbXBsYXRlQ29kZS8ke3RlbXBsYXRlQ29kZX0/aXNQcmludD10cnVlYDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVybCwgZGF0YSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ByaW50U2VydmljZS5wcmludEJhc2U2NFBkZihyZXMuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV29yZFxyXG4gICAgICogQHBhcmFtIHRlbXBsYXRlQ29kZSBcclxuICAgICAqIEBwYXJhbSBkYXRhIFxyXG4gICAgICovXHJcbiAgICBmaWxsVGVtcGxhdGVCeUNvZGUodGVtcGxhdGVDb2RlOiBzdHJpbmcsIGRhdGE6IGFueSwgbmFtZTogc3RyaW5nID0gJ0V4cG9ydCcpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L2ZpbGxXb3JkQnlUZW1wbGF0ZUNvZGUvJHt0ZW1wbGF0ZUNvZGV9P2lzUHJpbnQ9ZmFsc2VgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdCh1cmwsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgYXMgJ2pzb24nIH0pXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhyZXMsIHRoaXMuZ2V0RnVsbEZpbGVOYW1lKG5hbWUgfHwgJ0V4cG9ydCcsIFRlbXBsYXRlQ29uc3RhbnQuV09SRF9FWFRFTlNJT04pKTtcclxuICAgICAgICAgICAgfSkuY2F0Y2goYXN5bmMgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IGVyci5lcnJvci50ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShKU09OLnBhcnNlKGVycm9yVGV4dCB8fCAnJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsYVRleFRvQmFzZTY0SW1hZ2UobGFUZXg6IHN0cmluZywgZm9udDogbnVtYmVyID0gNTQpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYXBpID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9MYXRleFRvQmFzZTY0YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5wb3N0PFJlc3BvbnNlUmVzdWx0PihhcGksIHsgbGFUZXgsIGZvbnQgfSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFzeW5jIF9leHBvcnQobW9kZWw6IEV4cG9ydEl0ZW0pOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9leHBvcnRgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4odXJsLCBtb2RlbClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwb3J0IGEgdHJlZSBvZiBmb2xkZXJzLCBmaWxlcyB1c2luZyBiYWNrZ3JvdW5kIGpvYi5cclxuICAgICAqIEBwYXJhbSBtb2RlbCBcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZXhwb3J0KG1vZGVsOiBFeHBvcnRJdGVtKSB7XHJcbiAgICAgICAgdGhpcy5fZXhwb3J0KG1vZGVsKVxyXG4gICAgICAgICAgICAudGhlbihycyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocnMuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93U3VjY2VzcygnVGjDqm0geHXhuqV0IGZpbGUgdGjDoG5oIGPDtG5nIScpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdUaGFvIHTDoWMgY2jGsGEgdGjDoG5oIGPDtG5nLiBWdWkgbMOybmcgdGjhu60gbOG6oWkgc2F1IScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29tbW9uU2VydmljZS5sb2dJbmZvU2ltcGxlKGVycik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIF9leHBvcnROb3JtYWwobW9kZWw6IEV4cG9ydEl0ZW0pOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9leHBvcnROb3JtYWxgO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4odXJsLCBtb2RlbClcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwb3J0IGEgdHJlZSBvZiBmb2xkZXJzLCBmaWxlcyBkaXJlY3RseS5cclxuICAgICAqIEBwYXJhbSBkYXRhIFxyXG4gICAgICovXHJcbiAgICBhc3luYyBleHBvcnROb3JtYWwoZGF0YTogRXhwb3J0SXRlbSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZXhwb3J0Tm9ybWFsKGRhdGEpXHJcbiAgICAgICAgICAgIC50aGVuKHJzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChycy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdEl0ZW0gPSBycy5kYXRhIGFzIEV4cG9ydEl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5kb3dubG9hZChuZXcgR2VuZXJhdGVMaW5rRG93bmxvYWREVE8oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlSWQ6IHJvb3RJdGVtLmZpbGVJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9sZGVySWQ6IHJvb3RJdGVtLmZvbGRlcklkXHJcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShycyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdUaGFvIHTDoWMgY2jGsGEgdGjDoG5oIGPDtG5nLiBWdWkgbMOybmcgdGjhu60gbOG6oWkgc2F1IScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29tbW9uU2VydmljZS5sb2dJbmZvU2ltcGxlKGVycik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuX2NvbW1vblNlcnZpY2UuZ2V0UmVzcG9uc2VSZXN1bHRGcm9tRXhjZXB0aW9uKGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5yZXNwb25zZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19