@lenne.tech/ng-base 14.21.4 → 14.22.0

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 (82) hide show
  1. package/esm2020/base-cms/base-cms-routing.module.mjs +5 -5
  2. package/esm2020/base-cms/base-cms.module.mjs +5 -5
  3. package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +4 -4
  4. package/esm2020/base-components/base-components.module.mjs +5 -5
  5. package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +4 -4
  6. package/esm2020/base-components/components/change-password/change-password.component.mjs +4 -4
  7. package/esm2020/base-components/components/checkbox/checkbox.component.mjs +4 -4
  8. package/esm2020/base-components/components/delete-account/delete-account.component.mjs +4 -4
  9. package/esm2020/base-components/components/fab-button/fab-button.component.mjs +4 -4
  10. package/esm2020/base-components/components/input/input.component.mjs +4 -4
  11. package/esm2020/base-components/components/loading-bar/loading-bar.component.mjs +4 -4
  12. package/esm2020/base-components/components/model-form/model-form.component.mjs +4 -4
  13. package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +4 -4
  14. package/esm2020/base-components/components/model-table/model-table.component.mjs +4 -4
  15. package/esm2020/base-components/components/refence-input/refence-input.component.mjs +4 -4
  16. package/esm2020/base-components/components/select/select.component.mjs +4 -4
  17. package/esm2020/base-components/components/skeleton-loader/skeleton-loader.component.mjs +4 -4
  18. package/esm2020/base-components/components/tags/tags.component.mjs +4 -4
  19. package/esm2020/base-components/components/textarea/textarea.component.mjs +4 -4
  20. package/esm2020/base-components/components/toast/toast.component.mjs +4 -4
  21. package/esm2020/base-components/components/upload-image/upload-image.component.mjs +4 -4
  22. package/esm2020/base-components/directives/back-button.directive.mjs +4 -4
  23. package/esm2020/base-components/directives/context-menu.directive.mjs +4 -4
  24. package/esm2020/base-components/directives/sort.directive.mjs +4 -4
  25. package/esm2020/base-components/directives/stop-propagation.directive.mjs +4 -4
  26. package/esm2020/base-components/pipes/ellipses.pipe.mjs +4 -4
  27. package/esm2020/base-prototype/base-prototype.module.mjs +5 -5
  28. package/esm2020/base-prototype/pages/email-verification/email-verification.component.mjs +4 -4
  29. package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +4 -4
  30. package/esm2020/base-prototype/pages/login/login.component.mjs +4 -4
  31. package/esm2020/base-prototype/pages/profile/profile.component.mjs +4 -4
  32. package/esm2020/base-prototype/pages/register/register.component.mjs +4 -4
  33. package/esm2020/base-prototype/pages/set-password/set-password.component.mjs +4 -4
  34. package/esm2020/shared/services/auth.service.mjs +4 -4
  35. package/esm2020/shared/services/breadcrumb.service.mjs +4 -4
  36. package/esm2020/shared/services/cms.service.mjs +4 -4
  37. package/esm2020/shared/services/file.service.mjs +4 -4
  38. package/esm2020/shared/services/forms.service.mjs +4 -4
  39. package/esm2020/shared/services/graphql-meta.service.mjs +4 -4
  40. package/esm2020/shared/services/graphql-plus.service.mjs +4 -4
  41. package/esm2020/shared/services/graphql.service.mjs +4 -4
  42. package/esm2020/shared/services/image.service.mjs +4 -4
  43. package/esm2020/shared/services/loader.service.mjs +4 -4
  44. package/esm2020/shared/services/navigation.service.mjs +4 -4
  45. package/esm2020/shared/services/scroll.service.mjs +4 -4
  46. package/esm2020/shared/services/storage.service.mjs +4 -4
  47. package/esm2020/shared/services/toast.service.mjs +4 -4
  48. package/esm2020/shared/services/user.service.mjs +4 -4
  49. package/esm2020/shared/services/ws.service.mjs +4 -4
  50. package/esm2020/src/base.module.mjs +5 -5
  51. package/esm2020/src/directives/lazy-load.directive.mjs +4 -4
  52. package/esm2020/src/directives/match-height.directive.mjs +4 -4
  53. package/esm2020/src/directives/resizable.directive.mjs +4 -4
  54. package/esm2020/src/guards/auth.guard.mjs +4 -4
  55. package/esm2020/src/guards/can-deactivate.guard.mjs +4 -4
  56. package/esm2020/src/guards/logout.guard.mjs +4 -4
  57. package/esm2020/src/pipes/date-ago.pipe.mjs +4 -4
  58. package/esm2020/src/pipes/safe-html.pipe.mjs +4 -4
  59. package/esm2020/src/services/fullscreen.service.mjs +4 -4
  60. package/esm2020/src/services/seo.service.mjs +4 -4
  61. package/esm2020/src/services/theme.service.mjs +4 -4
  62. package/fesm2015/lenne.tech-ng-base-base-cms.mjs +11 -11
  63. package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  64. package/fesm2015/lenne.tech-ng-base-base-components.mjs +70 -70
  65. package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
  66. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +22 -22
  67. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  68. package/fesm2015/lenne.tech-ng-base-shared.mjs +48 -48
  69. package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
  70. package/fesm2015/lenne.tech-ng-base.mjs +37 -37
  71. package/fesm2015/lenne.tech-ng-base.mjs.map +1 -1
  72. package/fesm2020/lenne.tech-ng-base-base-cms.mjs +11 -11
  73. package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  74. package/fesm2020/lenne.tech-ng-base-base-components.mjs +70 -70
  75. package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
  76. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +22 -22
  77. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  78. package/fesm2020/lenne.tech-ng-base-shared.mjs +48 -48
  79. package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
  80. package/fesm2020/lenne.tech-ng-base.mjs +37 -37
  81. package/fesm2020/lenne.tech-ng-base.mjs.map +1 -1
  82. package/package.json +1 -1
@@ -491,12 +491,12 @@ export class GraphQLService {
491
491
  return { fieldsString, schemaFields, usedFields };
492
492
  }
493
493
  }
494
- GraphQLService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: GraphQLService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }], target: i0.ɵɵFactoryTarget.Injectable });
495
- GraphQLService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: GraphQLService, providedIn: 'root' });
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: GraphQLService, decorators: [{
494
+ GraphQLService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }], target: i0.ɵɵFactoryTarget.Injectable });
495
+ GraphQLService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLService, providedIn: 'root' });
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: GraphQLService, decorators: [{
497
497
  type: Injectable,
498
498
  args: [{
499
499
  providedIn: 'root',
500
500
  }]
501
501
  }], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }]; } });
502
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUVqRDs7R0FFRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOztPQUVHO0lBQ0gsWUFBc0IsTUFBYyxFQUFZLGtCQUFzQztRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVksdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFMUY7O09BRUc7SUFDSSxPQUFPLENBQUMsaUJBQXlCLEVBQUUsVUFBMkIsRUFBRTtRQUNyRSxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxhQUFhO1FBQ2IsTUFBTSxNQUFNLEdBQUc7WUFDYixTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJO1lBQ1osR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsSUFBSTtZQUNYLEdBQUcsT0FBTztT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Q0FBQztnQ0FDNUIsTUFBTSxFQUFFLFdBQVcsR0FBRyxHQUFHO2dDQUN6QixNQUFNO2dDQUNOLFlBQVk7Z0NBQ1osR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO2dDQUNaLFVBQVU7NkJBQ1gsQ0FBQyxDQUFDLFlBQVk7NEJBQ2YsSUFBSTs0QkFDSixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzlCLEdBQUcsQ0FBQztpQkFDUDthQUNGO1NBQ0Y7UUFFRCxnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7MkdBamtCVSxjQUFjOytHQUFkLGNBQWMsY0FGYixNQUFNOzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBvbGxvLCBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJR3JhcGhRTE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyYXBocWwtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcmFwaFFMTWV0YVNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxFbnVtIH0gZnJvbSAnLi4vY2xhc3Nlcy9ncmFwaHFsLWVudW0uY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhRTFR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtdHlwZS5jbGFzcyc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdqcy1zaGEyNTYnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xuXG4vKipcbiAqIEdyYXBoUUwgc2VydmljZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR3JhcGhRTFNlcnZpY2Uge1xuICAvKipcbiAgICogSW5jbHVkZSBzZXJ2aWNlc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFwb2xsbzogQXBvbGxvLCBwcm90ZWN0ZWQgZ3JhcGhRTE1ldGFTZXJ2aWNlOiBHcmFwaFFMTWV0YVNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIEdyYXBoUUwgcmVxdWVzdFxuICAgKi9cbiAgcHVibGljIGdyYXBoUWwoZ3JhcGhxbE1ldGhvZE5hbWU6IHN0cmluZywgb3B0aW9uczogSUdyYXBoUUxPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIENoZWNrIHBhcmFtZXRlcnNcbiAgICBpZiAoIWdyYXBocWxNZXRob2ROYW1lKSB7XG4gICAgICB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBncmFwaHFsIG1ldGhvZCBuYW1lJykpO1xuICAgIH1cblxuICAgIC8vIEdldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcmd1bWVudHM6IG51bGwsXG4gICAgICBmaWVsZHM6IG51bGwsXG4gICAgICBsb2c6IGZhbHNlLFxuICAgICAgbW9kZWw6IG51bGwsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgYXJndW1lbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuYXJndW1lbnRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuYXJndW1lbnRzID0gbmV3IGNvbmZpZy5hcmd1bWVudHMoKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgZmllbGRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmllbGRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuZmllbGRzID0gbmV3IGNvbmZpZy5maWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLyBMb2dcbiAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfVxuXG4gICAgLy8gU2VuZCByZXF1ZXN0XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAvLyBHZXQgbWV0YVxuICAgICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSh7IGxvZzogY29uZmlnLmxvZyB9KS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgLy8gU2V0IEdyYXBoUUxSZXF1ZXN0VHlwZSBhdXRvbWF0aWNhbGx5XG4gICAgICAgIGlmICghY29uZmlnLnR5cGUpIHtcbiAgICAgICAgICBjb25zdCB0eXBlcyA9IG1ldGEuZ2V0UmVxdWVzdFR5cGVzVmlhTWV0aG9kKGdyYXBocWxNZXRob2ROYW1lKTtcbiAgICAgICAgICBpZiAoIXR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBHcmFwaFFMUmVxdWVzdFR5cGUgZGV0ZWN0ZWQnKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbmZpZy50eXBlID0gdHlwZXNbMF0gYXMgR3JhcGhRTFJlcXVlc3RUeXBlO1xuICAgICAgICAgIGlmIChjb25maWcudHlwZSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ05vIEdyYXBoUUxSZXF1ZXN0VHlwZSBkZXRlY3RlZCcpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdHcmFwaFFMUmVxdWVzdFR5cGUgJyArIGNvbmZpZy50eXBlICsgJyB1c2VkIGZvciAnICsgZ3JhcGhxbE1ldGhvZE5hbWUsIHR5cGVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIGZpZWxkc1xuICAgICAgICBsZXQgZmllbGRzO1xuICAgICAgICBsZXQgYWxsb3dlZEZpZWxkcztcblxuICAgICAgICAvLyBMb2cgbWV0YVxuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgbWV0YSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgYWxsb3dlZEZpZWxkcyA9IG1ldGEuZ2V0RmllbGRzKGdyYXBocWxNZXRob2ROYW1lLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkRmllbGRzIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpZWxkc0RhdGEgPSB0aGlzLnByZXBhcmVGaWVsZHMoY29uZmlnLmZpZWxkcywge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGZpZWxkcyA9IGZpZWxkc0RhdGEuZmllbGRzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkcyAmJiAhZmllbGRzLnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICAgIGZpZWxkcyA9ICd7JyArIGZpZWxkcyArICdcXG59JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZyBmaWVsZHNcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGZpZWxkcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGxvd2VkIGFyZ3NcbiAgICAgICAgY29uc3QgYWxsb3dlZEFyZ3MgPSBtZXRhLmdldEFyZ3MoZ3JhcGhxbE1ldGhvZE5hbWUsIHsgdHlwZTogY29uZmlnLnR5cGUgfSk7XG5cbiAgICAgICAgLy8gTG9nIGFsbG93ZWQgYXJnc1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgYWxsb3dlZEFyZ3MgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzRGF0YSA9IHRoaXMucHJlcGFyZUFyZ3VtZW50cyhjb25maWcuYXJndW1lbnRzLCB7XG4gICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEFyZ3MsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIExvZyBhcmdzIGRhdGFcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBhcmdzRGF0YS51c2VkQXJncy5zb3J0KCk7XG4gICAgICAgICAgYXJnc0RhdGEuc2NoZW1hQXJncy5zb3J0KCk7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBhcmdzRGF0YS5zY2hlbWFBcmdzLmZpbHRlcigoZmllbGQpID0+ICFhcmdzRGF0YS51c2VkQXJncy5pbmNsdWRlcyhmaWVsZCkpO1xuICAgICAgICAgIGNvbnN0IHVudXNlZCA9IHRoaXMuZ3JhcGhRTFR5cGVUb1N0cmluZ0FycmF5KGFsbG93ZWRBcmdzKVxuICAgICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgICAgLmZpbHRlcigoZmllbGQpID0+ICFhcmdzRGF0YS51c2VkQXJncy5pbmNsdWRlcyhmaWVsZCkpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgYXJnc0RhdGEsIGZpbHRlcmVkLCB1bnVzZWQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYXJncyA9IGFyZ3NEYXRhPy5hcmdzU3RyaW5nIHx8ICcnO1xuICAgICAgICBpZiAoYXJncyA9PT0gJ3t9Jykge1xuICAgICAgICAgIGFyZ3MgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZ1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgZ3JhcGhRTDogZ3JhcGhxbE1ldGhvZE5hbWUsIGFyZ3MsIGZpZWxkcywgdHlwZTogY29uZmlnLnR5cGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIHJlcXVlc3RcbiAgICAgICAgY29uc3QgcmVxdWVzdDogYW55ID0ge307XG5cbiAgICAgICAgLy8gUHJlcGFyZSBHcmFwaFFMXG4gICAgICAgIGNvbnN0IGdRbEZ1bmNCb2R5ID0gZmllbGRzXG4gICAgICAgICAgPyAnIHtcXG4nICsgZ3JhcGhxbE1ldGhvZE5hbWUgKyBhcmdzICsgZmllbGRzICsgJ1xcbn0nXG4gICAgICAgICAgOiAnIHtcXG4nICsgZ3JhcGhxbE1ldGhvZE5hbWUgKyBhcmdzICsgJ1xcbn0nO1xuICAgICAgICBsZXQgZ1FsQm9keSA9IGNvbmZpZy50eXBlICsgZ1FsRnVuY0JvZHk7XG5cbiAgICAgICAgLy8gSGFuZGxpbmcgZm9yIHZhcmlhYmxlcyAoZS5nLiBmb3IgZmlsZSB1cGxvYWRzKVxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYXJnc0RhdGEudmFyaWFibGVzKS5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBQcmVwYXJhdGlvbnNcbiAgICAgICAgICByZXF1ZXN0LnZhcmlhYmxlcyA9IHt9O1xuICAgICAgICAgIGxldCBtdWx0aXBhcnQgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIEFkZCBzdXJyb3VuZGluZ1xuICAgICAgICAgIGdRbEJvZHkgPSBjb25maWcudHlwZSArICcgUmVxdWVzdCgnO1xuICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgaXRlbV0gb2YgT2JqZWN0LmVudHJpZXMoYXJnc0RhdGEudmFyaWFibGVzKSkge1xuICAgICAgICAgICAgZ1FsQm9keSArPSAnXFxuJCcgKyBrZXkgKyAnOicgKyBpdGVtLnR5cGUgKyAnLCc7XG4gICAgICAgICAgICByZXF1ZXN0LnZhcmlhYmxlc1trZXldID0gaXRlbS52YWx1ZTtcbiAgICAgICAgICAgIGlmIChpdGVtLnR5cGUuc3RhcnRzV2l0aCgnVXBsb2FkJykpIHtcbiAgICAgICAgICAgICAgbXVsdGlwYXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZ1FsQm9keSA9IGdRbEJvZHkuc2xpY2UoMCwgLTEpICsgJ1xcbiknICsgZ1FsRnVuY0JvZHk7XG5cbiAgICAgICAgICAvLyBTZXQgTXVsdGlwYXJ0XG4gICAgICAgICAgaWYgKG11bHRpcGFydCkge1xuICAgICAgICAgICAgcmVxdWVzdC5jb250ZXh0ID0ge1xuICAgICAgICAgICAgICB1c2VNdWx0aXBhcnQ6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudE5vZGUgPSBncWwoZ1FsQm9keSk7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBkb2N1bWVudE5vZGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgZG9jdW1lbnQgbm9kZVxuICAgICAgICByZXF1ZXN0W2NvbmZpZy50eXBlXSA9IGRvY3VtZW50Tm9kZTtcblxuICAgICAgICAvLyBMb2dcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IHJlcXVlc3QgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZnVuYztcbiAgICAgICAgaWYgKGNvbmZpZy50eXBlID09PSBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04pIHtcbiAgICAgICAgICBmdW5jID0gJ211dGF0ZSc7XG4gICAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnR5cGUgPT09IEdyYXBoUUxSZXF1ZXN0VHlwZS5TVUJTQ1JJUFRJT04pIHtcbiAgICAgICAgICBmdW5jID0gJ3N1YnNjcmliZSc7XG4gICAgICAgICAgcmVxdWVzdC5xdWVyeSA9IGRvY3VtZW50Tm9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmdW5jID0gY29uZmlnLnR5cGU7XG4gICAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICAodGhpcy5hcG9sbG8gYXMgYW55KVtmdW5jXShyZXF1ZXN0KS5zdWJzY3JpYmUoXG4gICAgICAgICAgKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0Py5kYXRhPy5bZ3JhcGhxbE1ldGhvZE5hbWVdICE9PSB1bmRlZmluZWQgPyByZXN1bHQuZGF0YVtncmFwaHFsTWV0aG9kTmFtZV0gOiByZXN1bHQ7XG5cbiAgICAgICAgICAgIC8vIERpcmVjdCBkYXRhXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5tb2RlbCkge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1hcCBkYXRhIGFzIGFycmF5XG4gICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChcbiAgICAgICAgICAgICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tb2RlbC5tYXAoaXRlbSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWFwIGRhdGFcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY29uZmlnLm1vZGVsLm1hcChkYXRhKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb25maWcudHlwZSAhPT0gR3JhcGhRTFJlcXVlc3RUeXBlLlNVQlNDUklQVElPTikge1xuICAgICAgICAgICAgICAvLyBEb25lXG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZmllbGRzIC8gYXJncyBmcm9tIElHcmFwaFFMVHlwZUNvbGxlY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBncmFwaFFMVHlwZVRvU3RyaW5nQXJyYXkoZ3JhcGhRTFR5cGU6IEdyYXBoUUxUeXBlLCBjdXJyZW50ID0gJycsIHJlc3VsdCA9IFtdLCBjYWNoZU5vZGUgPSBbXSkge1xuICAgIGlmICghZ3JhcGhRTFR5cGUpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChjdXJyZW50Py5pbmNsdWRlcygnLicpKSB7XG4gICAgICBjYWNoZU5vZGUucHVzaChjdXJyZW50LnNwbGl0KCcuJylbMV0pO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudCkge1xuICAgICAgY2FjaGVOb2RlLnB1c2goY3VycmVudCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGdyYXBoUUxUeXBlLmZpZWxkcykpIHtcbiAgICAgIGlmIChjdXJyZW50ID09PSBrZXkgfHwgY2FjaGVOb2RlLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aGlzLmdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShncmFwaFFMVHlwZS5maWVsZHNba2V5XSwgY3VycmVudCA/IGN1cnJlbnQgKyAnLicgKyBrZXkgOiBrZXksIHJlc3VsdCwgY2FjaGVOb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGFyZ3VtZW50cyBmb3IgR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlcGFyZUFyZ3VtZW50cyhcbiAgICBhcmdzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgbGV2ZWw/OiBudW1iZXI7XG4gICAgICBsZXZlbEtleT86IHN0cmluZztcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNjaGVtYUFyZ3M/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRBcmdzPzogc3RyaW5nW107XG4gICAgICB2YXJpYWJsZXM/OiB7IFtrZXk6IHN0cmluZ106IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfTtcbiAgICB9ID0ge31cbiAgKToge1xuICAgIGFyZ3NTdHJpbmc6IHN0cmluZztcbiAgICBzY2hlbWFBcmdzOiBzdHJpbmdbXTtcbiAgICB1c2VkQXJnczogc3RyaW5nW107XG4gICAgdmFyaWFibGVzOiB7IFtrZXk6IHN0cmluZ106IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfTtcbiAgfSB7XG4gICAgLy8gSW5pdCBjb25maWcgdmFyaWFibGVzXG4gICAgY29uc3QgeyBhbGxvd2VkLCBsZXZlbEtleSwgbGV2ZWwsIHBhcmVudCwgc2NoZW1hQXJncywgdXNlZEFyZ3MsIHZhcmlhYmxlcyB9ID0ge1xuICAgICAgYWxsb3dlZDogbnVsbCxcbiAgICAgIGxldmVsS2V5OiAnJyxcbiAgICAgIGxldmVsOiAxLFxuICAgICAgcGFyZW50OiAnJyxcbiAgICAgIHNjaGVtYUFyZ3M6IFtdLFxuICAgICAgdXNlZEFyZ3M6IFtdLFxuICAgICAgdmFyaWFibGVzOiB7fSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGFyZ3NcbiAgICBpZiAoYXJncyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcnLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgfVxuXG4gICAgLy8gSW5pdCBhcmdzXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAvLyBQcm9jZXNzIGFycmF5XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWRLZXlzID0gYWxsb3dlZCA/IE9iamVjdC5rZXlzKGFsbG93ZWQuZmllbGRzKSA6IG51bGw7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJncykge1xuICAgICAgICBsZXQga2V5ID0gbnVsbDtcbiAgICAgICAgaWYgKGFsbG93ZWQpIHtcbiAgICAgICAgICBpZiAoIWFsbG93ZWRLZXlzIHx8IGFsbG93ZWRLZXlzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrZXkgPSBhbGxvd2VkS2V5cy5zaGlmdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyB2YWx1ZVxuICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICB0aGlzLnByZXBhcmVBcmd1bWVudHMoaXRlbSwge1xuICAgICAgICAgICAgYWxsb3dlZDoga2V5ID8gYWxsb3dlZC5maWVsZHNba2V5XSA6IG51bGwsXG4gICAgICAgICAgICBsZXZlbEtleToga2V5LFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50ICsga2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgYXJyYXkgcmVzdWx0XG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAvLyBDb21wbGV0ZSByZXN1bHQsIGVuY2Fwc3VsYXRlZCB2aWEgcm91bmQgYnJhY2tldHNcbiAgICAgICAgaWYgKGxldmVsID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJygnICsgcmVzdWx0LmpvaW4oJywgJykgKyAnKScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzLCB2YXJpYWJsZXMgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZXBlciByZXN1bHQgcGFydCwgZW5jYXBzdWxhdGVkIHZpYSBzcXVhcmUgYnJhY2tldHNcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJ1snICsgcmVzdWx0LmpvaW4oJywgJykgKyAnXScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzLCB2YXJpYWJsZXMgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgb2JqZWN0XG4gICAgZWxzZSBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBDaGVjayBmb3IgVXBsb2FkIHR5cGUgZm9yIHZhcmlhYmxlIGhhbmRsaW5nXG4gICAgICBpZiAoYWxsb3dlZD8udHlwZSA9PT0gJ1VwbG9hZCcpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGxldmVsS2V5ICsgJ18nICsgSGVscGVyLmdldFVJRCg2KTtcbiAgICAgICAgdmFyaWFibGVzW25hbWVdID0geyB0eXBlOiBhbGxvd2VkLnR5cGUgKyAoYWxsb3dlZC5pc1JlcXVpcmVkID8gJyEnIDogJycpLCB2YWx1ZTogYXJncyB9O1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnJCcgKyBuYW1lLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIG9iamVjdCBpcyBlbXB0eVxuICAgICAgaWYgKGFyZ3MgJiYgT2JqZWN0LmtleXMoYXJncykubGVuZ3RoID09PSAwICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihhcmdzKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAne30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgICB9XG5cbiAgICAgIC8vIFByb2Nlc3MgYWxsIG9iamVjdCBlbnRyaWVzXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhcmdzKSkge1xuICAgICAgICAvLyBJbml0IGRhdGEgZm9yIGN1cnJlbnQgZW50cnlcbiAgICAgICAgY29uc3QgY3VycmVudEtleSA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hQXJncy5wdXNoKGN1cnJlbnRLZXkpO1xuXG4gICAgICAgIC8vIElmIHRoZSBhbGxvd2VkIGtleSBoYW5kbGluZyBpcyBlbmFibGVkIGFuZCB0aGUgY3VycmVudCBrZXkgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIGFsbG93ZWQga2V5cyxcbiAgICAgICAgLy8gdGhlIGN1cnJlbnQga2V5IHdpbGwgYmUgc2tpcHBlZFxuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2tpcCB2YWx1ZSBpZiBub3QgZXhpc3RzXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgbnVsbCBlLmcuIGZvciByZXNldHRpbmdcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgbnVsbCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY3VycmVudCBrZXkgdG8gbWV0YWRhdGFcbiAgICAgICAgdXNlZEFyZ3MucHVzaChjdXJyZW50S2V5KTtcblxuICAgICAgICAvLyBQcm9jZXNzIEdyYXBoUUxFbnVtXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEdyYXBoUUxFbnVtKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgdmFsdWUudmFsdWUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSArICc6JyArIGBcIiR7c2hhMjU2KHZhbHVlIGFzIHN0cmluZyl9XCJgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgIGtleSArXG4gICAgICAgICAgICAgICc6IFsnICtcbiAgICAgICAgICAgICAgdmFsdWUubWFwKFxuICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWxLZXk6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50S2V5ICsgJy4nLFxuICAgICAgICAgICAgICAgICAgICBzY2hlbWFBcmdzLFxuICAgICAgICAgICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgfSkuYXJnc1N0cmluZ1xuICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgJ10nXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgYWRkaXRpb25hbCByZXN1bHQgc3RyaW5nXG4gICAgICAgIGxldCBhZGRpdGlvbmFsUmVzdWx0ID0ga2V5ICsgJzogJztcblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIGRhdGUgb2JqZWN0XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiXCJcIiR7KHZhbHVlIGFzIERhdGUpLnRvU3RyaW5nKCl9XCJcIlwiYDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbHVlIGlzIGEgc3RyaW5nXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBFbnVtIChkb2Vzbid0IG5lZWQgcXVvdGF0aW9uIG1hcmtzKVxuICAgICAgICAgIGlmIChhbGxvd2VkLmZpZWxkc1trZXldLmlzRW51bSkge1xuICAgICAgICAgICAgYWRkaXRpb25hbFJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTdHJpbmdcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiJHt2YWx1ZS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpfVwiYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIHNpbXBsZSBib29sZWFuIG9yIGEgbnVtYmVyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3RoZXJzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHByZXBhcmVPcHRpb25zID0ge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgIGxldmVsS2V5OiBrZXksXG4gICAgICAgICAgICBsZXZlbDogbGV2ZWwgKyAxLFxuICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50S2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKHZhbHVlLCBwcmVwYXJlT3B0aW9ucykuYXJnc1N0cmluZztcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgcHJlcGFyaW5nIGFyZ3VtZW50cycsIHZhbHVlLCBwcmVwYXJlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFB1c2ggZGVlcGVyIHBhcnQgaW50byByZXN1bHQgYXJyYXlcbiAgICAgICAgcmVzdWx0LnB1c2goYWRkaXRpb25hbFJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuY2Fwc3VsYXRpb24gb2YgdGhlIG9iamVjdCByZXN1bHRcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIC8vIENvbXBsZXRlIHJlc3VsdCwgZW5jYXBzdWxhdGVkIHZpYSByb3VuZCBicmFja2V0c1xuICAgICAgICBpZiAobGV2ZWwgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnKCcgKyByZXN1bHQuam9pbignLCAnKSArICcpJywgc2NoZW1hQXJncywgdXNlZEFyZ3MsIHZhcmlhYmxlcyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVlcGVyIHJlc3VsdCBwYXJ0LCBlbmNhcHN1bGF0ZWQgdmlhIGN1cmx5IGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICd7JyArIHJlc3VsdC5qb2luKCcsICcpICsgJ30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGFuZCBwcm9jZXNzIG90aGVyIC8gdW5rbm93biB2YWx1ZXMgYXMgSlNPTlxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogSlNPTi5zdHJpbmdpZnkoYXJncyksIHNjaGVtYUFyZ3MsIHVzZWRBcmdzLCB2YXJpYWJsZXMgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBmaWVsZHMgZm9yIEdyYXBoUUwgcmVxdWVzdFxuICAgKi9cbiAgcHJvdGVjdGVkIHByZXBhcmVGaWVsZHMoXG4gICAgZmllbGRzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgc2NoZW1hRmllbGRzPzogc3RyaW5nW107XG4gICAgICB1c2VkRmllbGRzPzogc3RyaW5nW107XG4gICAgICBwYXJlbnQ/OiBzdHJpbmc7XG4gICAgICBzcGFjZXM/OiBudW1iZXI7XG4gICAgICB0YWI/OiBudW1iZXI7XG4gICAgfSA9IHt9XG4gICk6IHsgc2NoZW1hRmllbGRzOiBzdHJpbmdbXTsgZmllbGRzU3RyaW5nOiBzdHJpbmc7IHVzZWRGaWVsZHM6IHN0cmluZ1tdIH0ge1xuICAgIC8vIENvbmZpZ1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgcGFyZW50LCBzY2hlbWFGaWVsZHMsIHNwYWNlcywgdGFiLCB1c2VkRmllbGRzIH0gPSB7XG4gICAgICBhbGxvd2VkOiBudWxsLFxuICAgICAgcGFyZW50OiAnJyxcbiAgICAgIHNjaGVtYUZpZWxkczogW10sXG4gICAgICBzcGFjZXM6IDIsXG4gICAgICB0YWI6IDEsXG4gICAgICB1c2VkRmllbGRzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEluaXQgZmllbGRzIHN0cmluZ1xuICAgIGxldCBmaWVsZHNTdHJpbmcgPSAnJztcblxuICAgIC8vIENoZWNrIGZpZWxkc1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgc3RyaW5nXG4gICAgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNbZmllbGRzXSkge1xuICAgICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZmllbGRzU3RyaW5nOiAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGZpZWxkcywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRzKSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGZpZWxkcykge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZmllbGRzU3RyaW5nID1cbiAgICAgICAgICAgIGZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgICBhbGxvd2VkLCAvLyBpdGVtIGlzIG9iamVjdCBvciBhcnJheVxuICAgICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICAgIHNwYWNlcyxcbiAgICAgICAgICAgICAgc2NoZW1hRmllbGRzLFxuICAgICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICAgIHVzZWRGaWVsZHMsXG4gICAgICAgICAgICB9KS5maWVsZHNTdHJpbmc7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXJlbnQgKyBpdGVtO1xuICAgICAgICBzY2hlbWFGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1tpdGVtXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGZpZWxkc1N0cmluZyA9XG4gICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgYWxsb3dlZDogbnVsbCwgLy8gaXRlbSBpcyBzdHJpbmdcbiAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhdGggKyAnLicsXG4gICAgICAgICAgICBzcGFjZXMsXG4gICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICB1c2VkRmllbGRzLFxuICAgICAgICAgIH0pLmZpZWxkc1N0cmluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIG9iamVjdFxuICAgIGVsc2UgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGRzKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hRmllbGRzLnB1c2goY3VycmVudFBhdGgpO1xuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXModmFsKS5sZW5ndGgpIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPSBmaWVsZHNTdHJpbmcgKyAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPVxuICAgICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArXG4gICAgICAgICAgICBrZXkgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICd7JyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHModmFsLCB7XG4gICAgICAgICAgICAgIGFsbG93ZWQ6IGFsbG93ZWQuZmllbGRzW2tleV0sIC8vIHZhbCBpcyBvYmplY3Qgb3IgYXJyYXlcbiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGF0aCArICcuJyxcbiAgICAgICAgICAgICAgc3BhY2VzLFxuICAgICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgICAgdXNlZEZpZWxkcyxcbiAgICAgICAgICAgIH0pLmZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAnICcucmVwZWF0KHNwYWNlcykucmVwZWF0KHRhYikgK1xuICAgICAgICAgICAgJ30nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHJlc3VsdFxuICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gIH1cbn1cbiJdfQ==
502
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUVqRDs7R0FFRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOztPQUVHO0lBQ0gsWUFBc0IsTUFBYyxFQUFZLGtCQUFzQztRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVksdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUFHLENBQUM7SUFFMUY7O09BRUc7SUFDSSxPQUFPLENBQUMsaUJBQXlCLEVBQUUsVUFBMkIsRUFBRTtRQUNyRSxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxhQUFhO1FBQ2IsTUFBTSxNQUFNLEdBQUc7WUFDYixTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxJQUFJO1lBQ1osR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsSUFBSTtZQUNYLEdBQUcsT0FBTztT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Q0FBQztnQ0FDNUIsTUFBTSxFQUFFLFdBQVcsR0FBRyxHQUFHO2dDQUN6QixNQUFNO2dDQUNOLFlBQVk7Z0NBQ1osR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO2dDQUNaLFVBQVU7NkJBQ1gsQ0FBQyxDQUFDLFlBQVk7NEJBQ2YsSUFBSTs0QkFDSixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzlCLEdBQUcsQ0FBQztpQkFDUDthQUNGO1NBQ0Y7UUFFRCxnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7NEdBamtCVSxjQUFjO2dIQUFkLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBvbGxvLCBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJR3JhcGhRTE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyYXBocWwtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcmFwaFFMTWV0YVNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxFbnVtIH0gZnJvbSAnLi4vY2xhc3Nlcy9ncmFwaHFsLWVudW0uY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhRTFR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtdHlwZS5jbGFzcyc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdqcy1zaGEyNTYnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xuXG4vKipcbiAqIEdyYXBoUUwgc2VydmljZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR3JhcGhRTFNlcnZpY2Uge1xuICAvKipcbiAgICogSW5jbHVkZSBzZXJ2aWNlc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFwb2xsbzogQXBvbGxvLCBwcm90ZWN0ZWQgZ3JhcGhRTE1ldGFTZXJ2aWNlOiBHcmFwaFFMTWV0YVNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIEdyYXBoUUwgcmVxdWVzdFxuICAgKi9cbiAgcHVibGljIGdyYXBoUWwoZ3JhcGhxbE1ldGhvZE5hbWU6IHN0cmluZywgb3B0aW9uczogSUdyYXBoUUxPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIENoZWNrIHBhcmFtZXRlcnNcbiAgICBpZiAoIWdyYXBocWxNZXRob2ROYW1lKSB7XG4gICAgICB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBncmFwaHFsIG1ldGhvZCBuYW1lJykpO1xuICAgIH1cblxuICAgIC8vIEdldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcmd1bWVudHM6IG51bGwsXG4gICAgICBmaWVsZHM6IG51bGwsXG4gICAgICBsb2c6IGZhbHNlLFxuICAgICAgbW9kZWw6IG51bGwsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgYXJndW1lbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuYXJndW1lbnRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuYXJndW1lbnRzID0gbmV3IGNvbmZpZy5hcmd1bWVudHMoKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgZmllbGRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmllbGRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuZmllbGRzID0gbmV3IGNvbmZpZy5maWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLyBMb2dcbiAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfVxuXG4gICAgLy8gU2VuZCByZXF1ZXN0XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAvLyBHZXQgbWV0YVxuICAgICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSh7IGxvZzogY29uZmlnLmxvZyB9KS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgLy8gU2V0IEdyYXBoUUxSZXF1ZXN0VHlwZSBhdXRvbWF0aWNhbGx5XG4gICAgICAgIGlmICghY29uZmlnLnR5cGUpIHtcbiAgICAgICAgICBjb25zdCB0eXBlcyA9IG1ldGEuZ2V0UmVxdWVzdFR5cGVzVmlhTWV0aG9kKGdyYXBocWxNZXRob2ROYW1lKTtcbiAgICAgICAgICBpZiAoIXR5cGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBHcmFwaFFMUmVxdWVzdFR5cGUgZGV0ZWN0ZWQnKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbmZpZy50eXBlID0gdHlwZXNbMF0gYXMgR3JhcGhRTFJlcXVlc3RUeXBlO1xuICAgICAgICAgIGlmIChjb25maWcudHlwZSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ05vIEdyYXBoUUxSZXF1ZXN0VHlwZSBkZXRlY3RlZCcpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdHcmFwaFFMUmVxdWVzdFR5cGUgJyArIGNvbmZpZy50eXBlICsgJyB1c2VkIGZvciAnICsgZ3JhcGhxbE1ldGhvZE5hbWUsIHR5cGVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIGZpZWxkc1xuICAgICAgICBsZXQgZmllbGRzO1xuICAgICAgICBsZXQgYWxsb3dlZEZpZWxkcztcblxuICAgICAgICAvLyBMb2cgbWV0YVxuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgbWV0YSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgYWxsb3dlZEZpZWxkcyA9IG1ldGEuZ2V0RmllbGRzKGdyYXBocWxNZXRob2ROYW1lLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkRmllbGRzIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpZWxkc0RhdGEgPSB0aGlzLnByZXBhcmVGaWVsZHMoY29uZmlnLmZpZWxkcywge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGZpZWxkcyA9IGZpZWxkc0RhdGEuZmllbGRzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkcyAmJiAhZmllbGRzLnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICAgIGZpZWxkcyA9ICd7JyArIGZpZWxkcyArICdcXG59JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZyBmaWVsZHNcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGZpZWxkcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGxvd2VkIGFyZ3NcbiAgICAgICAgY29uc3QgYWxsb3dlZEFyZ3MgPSBtZXRhLmdldEFyZ3MoZ3JhcGhxbE1ldGhvZE5hbWUsIHsgdHlwZTogY29uZmlnLnR5cGUgfSk7XG5cbiAgICAgICAgLy8gTG9nIGFsbG93ZWQgYXJnc1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgYWxsb3dlZEFyZ3MgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzRGF0YSA9IHRoaXMucHJlcGFyZUFyZ3VtZW50cyhjb25maWcuYXJndW1lbnRzLCB7XG4gICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEFyZ3MsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIExvZyBhcmdzIGRhdGFcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBhcmdzRGF0YS51c2VkQXJncy5zb3J0KCk7XG4gICAgICAgICAgYXJnc0RhdGEuc2NoZW1hQXJncy5zb3J0KCk7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBhcmdzRGF0YS5zY2hlbWFBcmdzLmZpbHRlcigoZmllbGQpID0+ICFhcmdzRGF0YS51c2VkQXJncy5pbmNsdWRlcyhmaWVsZCkpO1xuICAgICAgICAgIGNvbnN0IHVudXNlZCA9IHRoaXMuZ3JhcGhRTFR5cGVUb1N0cmluZ0FycmF5KGFsbG93ZWRBcmdzKVxuICAgICAgICAgICAgLnNvcnQoKVxuICAgICAgICAgICAgLmZpbHRlcigoZmllbGQpID0+ICFhcmdzRGF0YS51c2VkQXJncy5pbmNsdWRlcyhmaWVsZCkpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgYXJnc0RhdGEsIGZpbHRlcmVkLCB1bnVzZWQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYXJncyA9IGFyZ3NEYXRhPy5hcmdzU3RyaW5nIHx8ICcnO1xuICAgICAgICBpZiAoYXJncyA9PT0gJ3t9Jykge1xuICAgICAgICAgIGFyZ3MgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZ1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHsgZ3JhcGhRTDogZ3JhcGhxbE1ldGhvZE5hbWUsIGFyZ3MsIGZpZWxkcywgdHlwZTogY29uZmlnLnR5cGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIHJlcXVlc3RcbiAgICAgICAgY29uc3QgcmVxdWVzdDogYW55ID0ge307XG5cbiAgICAgICAgLy8gUHJlcGFyZSBHcmFwaFFMXG4gICAgICAgIGNvbnN0IGdRbEZ1bmNCb2R5ID0gZmllbGRzXG4gICAgICAgICAgPyAnIHtcXG4nICsgZ3JhcGhxbE1ldGhvZE5hbWUgKyBhcmdzICsgZmllbGRzICsgJ1xcbn0nXG4gICAgICAgICAgOiAnIHtcXG4nICsgZ3JhcGhxbE1ldGhvZE5hbWUgKyBhcmdzICsgJ1xcbn0nO1xuICAgICAgICBsZXQgZ1FsQm9keSA9IGNvbmZpZy50eXBlICsgZ1FsRnVuY0JvZHk7XG5cbiAgICAgICAgLy8gSGFuZGxpbmcgZm9yIHZhcmlhYmxlcyAoZS5nLiBmb3IgZmlsZSB1cGxvYWRzKVxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYXJnc0RhdGEudmFyaWFibGVzKS5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBQcmVwYXJhdGlvbnNcbiAgICAgICAgICByZXF1ZXN0LnZhcmlhYmxlcyA9IHt9O1xuICAgICAgICAgIGxldCBtdWx0aXBhcnQgPSBmYWxzZTtcblxuICAgICAgICAgIC8vIEFkZCBzdXJyb3VuZGluZ1xuICAgICAgICAgIGdRbEJvZHkgPSBjb25maWcudHlwZSArICcgUmVxdWVzdCgnO1xuICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgaXRlbV0gb2YgT2JqZWN0LmVudHJpZXMoYXJnc0RhdGEudmFyaWFibGVzKSkge1xuICAgICAgICAgICAgZ1FsQm9keSArPSAnXFxuJCcgKyBrZXkgKyAnOicgKyBpdGVtLnR5cGUgKyAnLCc7XG4gICAgICAgICAgICByZXF1ZXN0LnZhcmlhYmxlc1trZXldID0gaXRlbS52YWx1ZTtcbiAgICAgICAgICAgIGlmIChpdGVtLnR5cGUuc3RhcnRzV2l0aCgnVXBsb2FkJykpIHtcbiAgICAgICAgICAgICAgbXVsdGlwYXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZ1FsQm9keSA9IGdRbEJvZHkuc2xpY2UoMCwgLTEpICsgJ1xcbiknICsgZ1FsRnVuY0JvZHk7XG5cbiAgICAgICAgICAvLyBTZXQgTXVsdGlwYXJ0XG4gICAgICAgICAgaWYgKG11bHRpcGFydCkge1xuICAgICAgICAgICAgcmVxdWVzdC5jb250ZXh0ID0ge1xuICAgICAgICAgICAgICB1c2VNdWx0aXBhcnQ6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudE5vZGUgPSBncWwoZ1FsQm9keSk7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBkb2N1bWVudE5vZGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgZG9jdW1lbnQgbm9kZVxuICAgICAgICByZXF1ZXN0W2NvbmZpZy50eXBlXSA9IGRvY3VtZW50Tm9kZTtcblxuICAgICAgICAvLyBMb2dcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IHJlcXVlc3QgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZnVuYztcbiAgICAgICAgaWYgKGNvbmZpZy50eXBlID09PSBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04pIHtcbiAgICAgICAgICBmdW5jID0gJ211dGF0ZSc7XG4gICAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnR5cGUgPT09IEdyYXBoUUxSZXF1ZXN0VHlwZS5TVUJTQ1JJUFRJT04pIHtcbiAgICAgICAgICBmdW5jID0gJ3N1YnNjcmliZSc7XG4gICAgICAgICAgcmVxdWVzdC5xdWVyeSA9IGRvY3VtZW50Tm9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmdW5jID0gY29uZmlnLnR5cGU7XG4gICAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICAodGhpcy5hcG9sbG8gYXMgYW55KVtmdW5jXShyZXF1ZXN0KS5zdWJzY3JpYmUoXG4gICAgICAgICAgKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0Py5kYXRhPy5bZ3JhcGhxbE1ldGhvZE5hbWVdICE9PSB1bmRlZmluZWQgPyByZXN1bHQuZGF0YVtncmFwaHFsTWV0aG9kTmFtZV0gOiByZXN1bHQ7XG5cbiAgICAgICAgICAgIC8vIERpcmVjdCBkYXRhXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5tb2RlbCkge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE1hcCBkYXRhIGFzIGFycmF5XG4gICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChcbiAgICAgICAgICAgICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tb2RlbC5tYXAoaXRlbSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWFwIGRhdGFcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY29uZmlnLm1vZGVsLm1hcChkYXRhKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjb25maWcudHlwZSAhPT0gR3JhcGhRTFJlcXVlc3RUeXBlLlNVQlNDUklQVElPTikge1xuICAgICAgICAgICAgICAvLyBEb25lXG4gICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZmllbGRzIC8gYXJncyBmcm9tIElHcmFwaFFMVHlwZUNvbGxlY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBncmFwaFFMVHlwZVRvU3RyaW5nQXJyYXkoZ3JhcGhRTFR5cGU6IEdyYXBoUUxUeXBlLCBjdXJyZW50ID0gJycsIHJlc3VsdCA9IFtdLCBjYWNoZU5vZGUgPSBbXSkge1xuICAgIGlmICghZ3JhcGhRTFR5cGUpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChjdXJyZW50Py5pbmNsdWRlcygnLicpKSB7XG4gICAgICBjYWNoZU5vZGUucHVzaChjdXJyZW50LnNwbGl0KCcuJylbMV0pO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudCkge1xuICAgICAgY2FjaGVOb2RlLnB1c2goY3VycmVudCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGdyYXBoUUxUeXBlLmZpZWxkcykpIHtcbiAgICAgIGlmIChjdXJyZW50ID09PSBrZXkgfHwgY2FjaGVOb2RlLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aGlzLmdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShncmFwaFFMVHlwZS5maWVsZHNba2V5XSwgY3VycmVudCA/IGN1cnJlbnQgKyAnLicgKyBrZXkgOiBrZXksIHJlc3VsdCwgY2FjaGVOb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGFyZ3VtZW50cyBmb3IgR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlcGFyZUFyZ3VtZW50cyhcbiAgICBhcmdzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgbGV2ZWw/OiBudW1iZXI7XG4gICAgICBsZXZlbEtleT86IHN0cmluZztcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNjaGVtYUFyZ3M/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRBcmdzPzogc3RyaW5nW107XG4gICAgICB2YXJpYWJsZXM/OiB7IFtrZXk6IHN0cmluZ106IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfTtcbiAgICB9ID0ge31cbiAgKToge1xuICAgIGFyZ3NTdHJpbmc6IHN0cmluZztcbiAgICBzY2hlbWFBcmdzOiBzdHJpbmdbXTtcbiAgICB1c2VkQXJnczogc3RyaW5nW107XG4gICAgdmFyaWFibGVzOiB7IFtrZXk6IHN0cmluZ106IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0gfTtcbiAgfSB7XG4gICAgLy8gSW5pdCBjb25maWcgdmFyaWFibGVzXG4gICAgY29uc3QgeyBhbGxvd2VkLCBsZXZlbEtleSwgbGV2ZWwsIHBhcmVudCwgc2NoZW1hQXJncywgdXNlZEFyZ3MsIHZhcmlhYmxlcyB9ID0ge1xuICAgICAgYWxsb3dlZDogbnVsbCxcbiAgICAgIGxldmVsS2V5OiAnJyxcbiAgICAgIGxldmVsOiAxLFxuICAgICAgcGFyZW50OiAnJyxcbiAgICAgIHNjaGVtYUFyZ3M6IFtdLFxuICAgICAgdXNlZEFyZ3M6IFtdLFxuICAgICAgdmFyaWFibGVzOiB7fSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGFyZ3NcbiAgICBpZiAoYXJncyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcnLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgfVxuXG4gICAgLy8gSW5pdCBhcmdzXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAvLyBQcm9jZXNzIGFycmF5XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWRLZXlzID0gYWxsb3dlZCA/IE9iamVjdC5rZXlzKGFsbG93ZWQuZmllbGRzKSA6IG51bGw7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJncykge1xuICAgICAgICBsZXQga2V5ID0gbnVsbDtcbiAgICAgICAgaWYgKGFsbG93ZWQpIHtcbiAgICAgICAgICBpZiAoIWFsbG93ZWRLZXlzIHx8IGFsbG93ZWRLZXlzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrZXkgPSBhbGxvd2VkS2V5cy5zaGlmdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyB2YWx1ZVxuICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICB0aGlzLnByZXBhcmVBcmd1bWVudHMoaXRlbSwge1xuICAgICAgICAgICAgYWxsb3dlZDoga2V5ID8gYWxsb3dlZC5maWVsZHNba2V5XSA6IG51bGwsXG4gICAgICAgICAgICBsZXZlbEtleToga2V5LFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50ICsga2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgYXJyYXkgcmVzdWx0XG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAvLyBDb21wbGV0ZSByZXN1bHQsIGVuY2Fwc3VsYXRlZCB2aWEgcm91bmQgYnJhY2tldHNcbiAgICAgICAgaWYgKGxldmVsID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJygnICsgcmVzdWx0LmpvaW4oJywgJykgKyAnKScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzLCB2YXJpYWJsZXMgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZXBlciByZXN1bHQgcGFydCwgZW5jYXBzdWxhdGVkIHZpYSBzcXVhcmUgYnJhY2tldHNcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJ1snICsgcmVzdWx0LmpvaW4oJywgJykgKyAnXScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzLCB2YXJpYWJsZXMgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgb2JqZWN0XG4gICAgZWxzZSBpZiAodHlwZW9mIGFyZ3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBDaGVjayBmb3IgVXBsb2FkIHR5cGUgZm9yIHZhcmlhYmxlIGhhbmRsaW5nXG4gICAgICBpZiAoYWxsb3dlZD8udHlwZSA9PT0gJ1VwbG9hZCcpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGxldmVsS2V5ICsgJ18nICsgSGVscGVyLmdldFVJRCg2KTtcbiAgICAgICAgdmFyaWFibGVzW25hbWVdID0geyB0eXBlOiBhbGxvd2VkLnR5cGUgKyAoYWxsb3dlZC5pc1JlcXVpcmVkID8gJyEnIDogJycpLCB2YWx1ZTogYXJncyB9O1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnJCcgKyBuYW1lLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIG9iamVjdCBpcyBlbXB0eVxuICAgICAgaWYgKGFyZ3MgJiYgT2JqZWN0LmtleXMoYXJncykubGVuZ3RoID09PSAwICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihhcmdzKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAne30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgICB9XG5cbiAgICAgIC8vIFByb2Nlc3MgYWxsIG9iamVjdCBlbnRyaWVzXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhhcmdzKSkge1xuICAgICAgICAvLyBJbml0IGRhdGEgZm9yIGN1cnJlbnQgZW50cnlcbiAgICAgICAgY29uc3QgY3VycmVudEtleSA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hQXJncy5wdXNoKGN1cnJlbnRLZXkpO1xuXG4gICAgICAgIC8vIElmIHRoZSBhbGxvd2VkIGtleSBoYW5kbGluZyBpcyBlbmFibGVkIGFuZCB0aGUgY3VycmVudCBrZXkgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBsaXN0IG9mIGFsbG93ZWQga2V5cyxcbiAgICAgICAgLy8gdGhlIGN1cnJlbnQga2V5IHdpbGwgYmUgc2tpcHBlZFxuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2tpcCB2YWx1ZSBpZiBub3QgZXhpc3RzXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgbnVsbCBlLmcuIGZvciByZXNldHRpbmdcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgbnVsbCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY3VycmVudCBrZXkgdG8gbWV0YWRhdGFcbiAgICAgICAgdXNlZEFyZ3MucHVzaChjdXJyZW50S2V5KTtcblxuICAgICAgICAvLyBQcm9jZXNzIEdyYXBoUUxFbnVtXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEdyYXBoUUxFbnVtKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgdmFsdWUudmFsdWUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSArICc6JyArIGBcIiR7c2hhMjU2KHZhbHVlIGFzIHN0cmluZyl9XCJgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgIGtleSArXG4gICAgICAgICAgICAgICc6IFsnICtcbiAgICAgICAgICAgICAgdmFsdWUubWFwKFxuICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWxLZXk6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50S2V5ICsgJy4nLFxuICAgICAgICAgICAgICAgICAgICBzY2hlbWFBcmdzLFxuICAgICAgICAgICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgfSkuYXJnc1N0cmluZ1xuICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgJ10nXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgYWRkaXRpb25hbCByZXN1bHQgc3RyaW5nXG4gICAgICAgIGxldCBhZGRpdGlvbmFsUmVzdWx0ID0ga2V5ICsgJzogJztcblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIGRhdGUgb2JqZWN0XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiXCJcIiR7KHZhbHVlIGFzIERhdGUpLnRvU3RyaW5nKCl9XCJcIlwiYDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbHVlIGlzIGEgc3RyaW5nXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBFbnVtIChkb2Vzbid0IG5lZWQgcXVvdGF0aW9uIG1hcmtzKVxuICAgICAgICAgIGlmIChhbGxvd2VkLmZpZWxkc1trZXldLmlzRW51bSkge1xuICAgICAgICAgICAgYWRkaXRpb25hbFJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTdHJpbmdcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiJHt2YWx1ZS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpfVwiYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIHNpbXBsZSBib29sZWFuIG9yIGEgbnVtYmVyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3RoZXJzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHByZXBhcmVPcHRpb25zID0ge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgIGxldmVsS2V5OiBrZXksXG4gICAgICAgICAgICBsZXZlbDogbGV2ZWwgKyAxLFxuICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50S2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKHZhbHVlLCBwcmVwYXJlT3B0aW9ucykuYXJnc1N0cmluZztcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgcHJlcGFyaW5nIGFyZ3VtZW50cycsIHZhbHVlLCBwcmVwYXJlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFB1c2ggZGVlcGVyIHBhcnQgaW50byByZXN1bHQgYXJyYXlcbiAgICAgICAgcmVzdWx0LnB1c2goYWRkaXRpb25hbFJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuY2Fwc3VsYXRpb24gb2YgdGhlIG9iamVjdCByZXN1bHRcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIC8vIENvbXBsZXRlIHJlc3VsdCwgZW5jYXBzdWxhdGVkIHZpYSByb3VuZCBicmFja2V0c1xuICAgICAgICBpZiAobGV2ZWwgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnKCcgKyByZXN1bHQuam9pbignLCAnKSArICcpJywgc2NoZW1hQXJncywgdXNlZEFyZ3MsIHZhcmlhYmxlcyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVlcGVyIHJlc3VsdCBwYXJ0LCBlbmNhcHN1bGF0ZWQgdmlhIGN1cmx5IGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICd7JyArIHJlc3VsdC5qb2luKCcsICcpICsgJ30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncywgdmFyaWFibGVzIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGFuZCBwcm9jZXNzIG90aGVyIC8gdW5rbm93biB2YWx1ZXMgYXMgSlNPTlxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogSlNPTi5zdHJpbmdpZnkoYXJncyksIHNjaGVtYUFyZ3MsIHVzZWRBcmdzLCB2YXJpYWJsZXMgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBmaWVsZHMgZm9yIEdyYXBoUUwgcmVxdWVzdFxuICAgKi9cbiAgcHJvdGVjdGVkIHByZXBhcmVGaWVsZHMoXG4gICAgZmllbGRzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgc2NoZW1hRmllbGRzPzogc3RyaW5nW107XG4gICAgICB1c2VkRmllbGRzPzogc3RyaW5nW107XG4gICAgICBwYXJlbnQ/OiBzdHJpbmc7XG4gICAgICBzcGFjZXM/OiBudW1iZXI7XG4gICAgICB0YWI/OiBudW1iZXI7XG4gICAgfSA9IHt9XG4gICk6IHsgc2NoZW1hRmllbGRzOiBzdHJpbmdbXTsgZmllbGRzU3RyaW5nOiBzdHJpbmc7IHVzZWRGaWVsZHM6IHN0cmluZ1tdIH0ge1xuICAgIC8vIENvbmZpZ1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgcGFyZW50LCBzY2hlbWFGaWVsZHMsIHNwYWNlcywgdGFiLCB1c2VkRmllbGRzIH0gPSB7XG4gICAgICBhbGxvd2VkOiBudWxsLFxuICAgICAgcGFyZW50OiAnJyxcbiAgICAgIHNjaGVtYUZpZWxkczogW10sXG4gICAgICBzcGFjZXM6IDIsXG4gICAgICB0YWI6IDEsXG4gICAgICB1c2VkRmllbGRzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEluaXQgZmllbGRzIHN0cmluZ1xuICAgIGxldCBmaWVsZHNTdHJpbmcgPSAnJztcblxuICAgIC8vIENoZWNrIGZpZWxkc1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgc3RyaW5nXG4gICAgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNbZmllbGRzXSkge1xuICAgICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZmllbGRzU3RyaW5nOiAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGZpZWxkcywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRzKSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGZpZWxkcykge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZmllbGRzU3RyaW5nID1cbiAgICAgICAgICAgIGZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgICBhbGxvd2VkLCAvLyBpdGVtIGlzIG9iamVjdCBvciBhcnJheVxuICAgICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICAgIHNwYWNlcyxcbiAgICAgICAgICAgICAgc2NoZW1hRmllbGRzLFxuICAgICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICAgIHVzZWRGaWVsZHMsXG4gICAgICAgICAgICB9KS5maWVsZHNTdHJpbmc7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXJlbnQgKyBpdGVtO1xuICAgICAgICBzY2hlbWFGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1tpdGVtXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGZpZWxkc1N0cmluZyA9XG4gICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgYWxsb3dlZDogbnVsbCwgLy8gaXRlbSBpcyBzdHJpbmdcbiAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhdGggKyAnLicsXG4gICAgICAgICAgICBzcGFjZXMsXG4gICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICB1c2VkRmllbGRzLFxuICAgICAgICAgIH0pLmZpZWxkc1N0cmluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIG9iamVjdFxuICAgIGVsc2UgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGRzKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hRmllbGRzLnB1c2goY3VycmVudFBhdGgpO1xuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXModmFsKS5sZW5ndGgpIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPSBmaWVsZHNTdHJpbmcgKyAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPVxuICAgICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArXG4gICAgICAgICAgICBrZXkgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICd7JyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHModmFsLCB7XG4gICAgICAgICAgICAgIGFsbG93ZWQ6IGFsbG93ZWQuZmllbGRzW2tleV0sIC8vIHZhbCBpcyBvYmplY3Qgb3IgYXJyYXlcbiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGF0aCArICcuJyxcbiAgICAgICAgICAgICAgc3BhY2VzLFxuICAgICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgICAgdXNlZEZpZWxkcyxcbiAgICAgICAgICAgIH0pLmZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAnICcucmVwZWF0KHNwYWNlcykucmVwZWF0KHRhYikgK1xuICAgICAgICAgICAgJ30nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHJlc3VsdFxuICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gIH1cbn1cbiJdfQ==
@@ -91,12 +91,12 @@ export class ImageService {
91
91
  });
92
92
  }
93
93
  }
94
- ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
95
- ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ImageService, providedIn: 'root' });
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ImageService, decorators: [{
94
+ ImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
95
+ ImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ImageService, providedIn: 'root' });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ImageService, decorators: [{
97
97
  type: Injectable,
98
98
  args: [{
99
99
  providedIn: 'root',
100
100
  }]
101
101
  }] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL2ltYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7O09BS0c7SUFDSSxhQUFhLENBQUMsT0FZcEI7UUFDQyxxQkFBcUI7UUFDckIsTUFBTSxNQUFNLEdBQUc7WUFDYixhQUFhLEVBQUUsU0FBUztZQUN4QixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsU0FBUztZQUNqQixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ25DLDZCQUE2QjtnQkFDN0IsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFxQyxDQUFjLENBQUM7aUJBQ3pGO2dCQUVELGlCQUFpQjtxQkFDWjtvQkFDSCxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBYyxDQUFDO2lCQUNsRDthQUNGO1lBRUQsZUFBZTtZQUNmLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUVwQixpQkFBaUI7WUFDakIsSUFBSSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9B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QUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcblxuLyoqXG4gKiBJbWFnZSBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVNlcnZpY2Uge1xuICAvKipcbiAgICogUHJlYWxvYWQgaW1hZ2VzIChmb3IgbGF6eSBoYW5kbGluZylcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHVibGljIHByZUxvYWRJbWFnZXMob3B0aW9ucz86IHtcbiAgICBkb25lRnVuY3Rpb24/OiAoKSA9PiBQcm9taXNlPGFueT4gfCBhbnkgfCB2b2lkO1xuICAgIGVsZW1lbnRzPzpcbiAgICAgIHwgRWxlbWVudFxuICAgICAgfCBFbGVtZW50W11cbiAgICAgIHwgSFRNTENvbGxlY3Rpb25PZjxFbGVtZW50PlxuICAgICAgfCBOb2RlXG4gICAgICB8IE5vZGVMaXN0XG4gICAgICB8IERvY3VtZW50XG4gICAgICB8IEhUTUxFbGVtZW50XG4gICAgICB8IEhUTUxFbGVtZW50W107XG4gICAgcmVnRXhwPzogUmVnRXhwO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBJbml0IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBkb25lRnVubmN0aW9uOiB1bmRlZmluZWQsXG4gICAgICBlbGVtZW50czogZG9jdW1lbnQsXG4gICAgICByZWdFeHA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgLy8gQ29udmVydCBlbGVtZW50KHMpIGludG8gYXJyYXlcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb25maWcuZWxlbWVudHMpKSB7XG4gICAgICAgIC8vIE5vZGVMaXN0IG9yIEhUTUxDb2xsZWN0aW9uXG4gICAgICAgIGlmIChIZWxwZXIuaXNOb2RlTGlzdChjb25maWcuZWxlbWVudHMpKSB7XG4gICAgICAgICAgY29uZmlnLmVsZW1lbnRzID0gQXJyYXkuZnJvbShjb25maWcuZWxlbWVudHMgYXMgSFRNTENvbGxlY3Rpb24gfCBOb2RlTGlzdCkgYXMgRWxlbWVudFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luZ2xlIGVsZW1lbnRcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uZmlnLmVsZW1lbnRzID0gW2NvbmZpZy5lbGVtZW50c10gYXMgRWxlbWVudFtdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEluaXQgbG9hZGluZ1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcblxuICAgICAgLy8gR2V0IGFsbCBpbWFnZXNcbiAgICAgIGxldCBpbWFnZXM6IEhUTUxJbWFnZUVsZW1lbnRbXSA9IFtdO1xuICAgICAgY29uZmlnLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaW1hZ2VzID0gaW1hZ2VzLmNvbmNhdChBcnJheS5mcm9tKGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpKSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJlcGFyZSBpbWFnZXNcbiAgICAgIGZvciAobGV0IGltYWdlIG9mIGltYWdlcykge1xuICAgICAgICBjb25zdCBzcmMgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3NyYycpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNoYW5nZXMgYXJlIG5lY2Vzc2FyeSBhbmQgcG9zc2libGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChpbWFnZS5jb21wbGV0ZSAmJiBpbWFnZS5uYXR1cmFsSGVpZ2h0ICE9PSAwKSB8fCAvLyBhbHJlYWR5IGxhb2RlZFxuICAgICAgICAgICFzcmMgfHwgLy8gSW1hZ2UgaGFzIG5vIHNyY1xuICAgICAgICAgIGNvbmZpZy5yZWdFeHA/LnRlc3Qoc3JjKSAvLyBUZXN0IGlmIHNyYyBtYXRjaGVzIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAgICApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlcGxhY2UgbGF6eSBsb2FkaW5nIGltYWdlIHdpdGggaW1tZWRpYXRlbHkgbG9hZGluZyBpbWFnZVxuICAgICAgICBpZiAoaW1hZ2UuZ2V0QXR0cmlidXRlKCdsb2FkaW5nJykgPT09ICdsYXp5Jykge1xuICAgICAgICAgIGNvbnN0IG5ld0ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgICAgICAgQXJyYXkuZnJvbShpbWFnZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAnbG9hZGluZycgJiYgYXR0ci5uYW1lICE9PSAnc3JjJykge1xuICAgICAgICAgICAgICBuZXdJbWFnZS5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpbWFnZS5yZXBsYWNlV2l0aChuZXdJbWFnZSk7XG4gICAgICAgICAgaW1hZ2UgPSBuZXdJbWFnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdhaXQgZm9yIGxhb2RpbmdcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvYWRJbWFnZShpbWFnZSwgc3JjKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdhaXQgdW50aWwgYWxsIGltYWdlcyBsb2FkZWRcbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBpbWFnZSBsb2FkaW5nJywgZSkpXG4gICAgICAgIC5maW5hbGx5KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBSZXR1cm4gcmVzdWx0XG4gICAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgICBpZiAoY29uZmlnLmRvbmVGdW5uY3Rpb24pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbmZpZy5kb25lRnVuY3Rpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGltYWdlIGZvciBpbWFnZSBlbGVtZW50XG4gICAqXG4gICAqIEBwYXJhbSBpbWFnZUVsZW1lbnRcbiAgICogQHBhcmFtIHNyY1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZEltYWdlKGltYWdlRWxlbWVudDogSFRNTEltYWdlRWxlbWVudCwgc3JjPzogc3RyaW5nKSB7XG4gICAgc3JjID0gc3JjIHx8IGltYWdlRWxlbWVudC5zcmM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGltYWdlRWxlbWVudC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltYWdlRWxlbWVudCk7XG4gICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IHJlamVjdDtcbiAgICAgIGltYWdlRWxlbWVudC5zcmMgPSBzcmM7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL2ltYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7O09BS0c7SUFDSSxhQUFhLENBQUMsT0FZcEI7UUFDQyxxQkFBcUI7UUFDckIsTUFBTSxNQUFNLEdBQUc7WUFDYixhQUFhLEVBQUUsU0FBUztZQUN4QixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsU0FBUztZQUNqQixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ25DLDZCQUE2QjtnQkFDN0IsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFxQyxDQUFjLENBQUM7aUJBQ3pGO2dCQUVELGlCQUFpQjtxQkFDWjtvQkFDSCxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBYyxDQUFDO2lCQUNsRDthQUNGO1lBRUQsZUFBZTtZQUNmLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUVwQixpQkFBaUI7WUFDakIsSUFBSSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9B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QUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcblxuLyoqXG4gKiBJbWFnZSBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVNlcnZpY2Uge1xuICAvKipcbiAgICogUHJlYWxvYWQgaW1hZ2VzIChmb3IgbGF6eSBoYW5kbGluZylcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHVibGljIHByZUxvYWRJbWFnZXMob3B0aW9ucz86IHtcbiAgICBkb25lRnVuY3Rpb24/OiAoKSA9PiBQcm9taXNlPGFueT4gfCBhbnkgfCB2b2lkO1xuICAgIGVsZW1lbnRzPzpcbiAgICAgIHwgRWxlbWVudFxuICAgICAgfCBFbGVtZW50W11cbiAgICAgIHwgSFRNTENvbGxlY3Rpb25PZjxFbGVtZW50PlxuICAgICAgfCBOb2RlXG4gICAgICB8IE5vZGVMaXN0XG4gICAgICB8IERvY3VtZW50XG4gICAgICB8IEhUTUxFbGVtZW50XG4gICAgICB8IEhUTUxFbGVtZW50W107XG4gICAgcmVnRXhwPzogUmVnRXhwO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBJbml0IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBkb25lRnVubmN0aW9uOiB1bmRlZmluZWQsXG4gICAgICBlbGVtZW50czogZG9jdW1lbnQsXG4gICAgICByZWdFeHA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgLy8gQ29udmVydCBlbGVtZW50KHMpIGludG8gYXJyYXlcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb25maWcuZWxlbWVudHMpKSB7XG4gICAgICAgIC8vIE5vZGVMaXN0IG9yIEhUTUxDb2xsZWN0aW9uXG4gICAgICAgIGlmIChIZWxwZXIuaXNOb2RlTGlzdChjb25maWcuZWxlbWVudHMpKSB7XG4gICAgICAgICAgY29uZmlnLmVsZW1lbnRzID0gQXJyYXkuZnJvbShjb25maWcuZWxlbWVudHMgYXMgSFRNTENvbGxlY3Rpb24gfCBOb2RlTGlzdCkgYXMgRWxlbWVudFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luZ2xlIGVsZW1lbnRcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uZmlnLmVsZW1lbnRzID0gW2NvbmZpZy5lbGVtZW50c10gYXMgRWxlbWVudFtdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEluaXQgbG9hZGluZ1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcblxuICAgICAgLy8gR2V0IGFsbCBpbWFnZXNcbiAgICAgIGxldCBpbWFnZXM6IEhUTUxJbWFnZUVsZW1lbnRbXSA9IFtdO1xuICAgICAgY29uZmlnLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaW1hZ2VzID0gaW1hZ2VzLmNvbmNhdChBcnJheS5mcm9tKGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpKSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJlcGFyZSBpbWFnZXNcbiAgICAgIGZvciAobGV0IGltYWdlIG9mIGltYWdlcykge1xuICAgICAgICBjb25zdCBzcmMgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3NyYycpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNoYW5nZXMgYXJlIG5lY2Vzc2FyeSBhbmQgcG9zc2libGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChpbWFnZS5jb21wbGV0ZSAmJiBpbWFnZS5uYXR1cmFsSGVpZ2h0ICE9PSAwKSB8fCAvLyBhbHJlYWR5IGxhb2RlZFxuICAgICAgICAgICFzcmMgfHwgLy8gSW1hZ2UgaGFzIG5vIHNyY1xuICAgICAgICAgIGNvbmZpZy5yZWdFeHA/LnRlc3Qoc3JjKSAvLyBUZXN0IGlmIHNyYyBtYXRjaGVzIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAgICApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlcGxhY2UgbGF6eSBsb2FkaW5nIGltYWdlIHdpdGggaW1tZWRpYXRlbHkgbG9hZGluZyBpbWFnZVxuICAgICAgICBpZiAoaW1hZ2UuZ2V0QXR0cmlidXRlKCdsb2FkaW5nJykgPT09ICdsYXp5Jykge1xuICAgICAgICAgIGNvbnN0IG5ld0ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgICAgICAgQXJyYXkuZnJvbShpbWFnZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXR0ci5uYW1lICE9PSAnbG9hZGluZycgJiYgYXR0ci5uYW1lICE9PSAnc3JjJykge1xuICAgICAgICAgICAgICBuZXdJbWFnZS5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpbWFnZS5yZXBsYWNlV2l0aChuZXdJbWFnZSk7XG4gICAgICAgICAgaW1hZ2UgPSBuZXdJbWFnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdhaXQgZm9yIGxhb2RpbmdcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmxvYWRJbWFnZShpbWFnZSwgc3JjKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdhaXQgdW50aWwgYWxsIGltYWdlcyBsb2FkZWRcbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGR1cmluZyBpbWFnZSBsb2FkaW5nJywgZSkpXG4gICAgICAgIC5maW5hbGx5KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBSZXR1cm4gcmVzdWx0XG4gICAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgICBpZiAoY29uZmlnLmRvbmVGdW5uY3Rpb24pIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbmZpZy5kb25lRnVuY3Rpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGltYWdlIGZvciBpbWFnZSBlbGVtZW50XG4gICAqXG4gICAqIEBwYXJhbSBpbWFnZUVsZW1lbnRcbiAgICogQHBhcmFtIHNyY1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZEltYWdlKGltYWdlRWxlbWVudDogSFRNTEltYWdlRWxlbWVudCwgc3JjPzogc3RyaW5nKSB7XG4gICAgc3JjID0gc3JjIHx8IGltYWdlRWxlbWVudC5zcmM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGltYWdlRWxlbWVudC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltYWdlRWxlbWVudCk7XG4gICAgICBpbWFnZUVsZW1lbnQub25lcnJvciA9IHJlamVjdDtcbiAgICAgIGltYWdlRWxlbWVudC5zcmMgPSBzcmM7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -68,12 +68,12 @@ export class LoaderService {
68
68
  });
69
69
  }
70
70
  }
71
- LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
- LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: LoaderService, providedIn: 'root' });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: LoaderService, decorators: [{
71
+ LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LoaderService, providedIn: 'root' });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LoaderService, decorators: [{
74
74
  type: Injectable,
75
75
  args: [{
76
76
  providedIn: 'root',
77
77
  }]
78
78
  }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUVuRDs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUUsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0tBb0VqRDtJQWpFQzs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsV0FBbUIsSUFBSTtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFekQsSUFBSSxNQUFNLElBQUksUUFBUSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLE9BQU87U0FDUjtRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUMsVUFBK0IsRUFBRSxXQUFtQixJQUFJO1FBQzFFLE9BQU8sSUFBSSxVQUFVLENBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNoRCxJQUFJLE1BQU0sSUFBSSxRQUFRLEVBQUU7d0JBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3ZCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzNCLE9BQU87cUJBQ1I7b0JBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3QixDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDMUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzswR0FwRVUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIExvYWRlciBzZXJ2aWNlIGZvciBsb2FkaW5nIGluZGljYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRlclNlcnZpY2Uge1xuICBpc0xvYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBsYXN0U3RhcnRUaW1lITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGFydCBsb2FkaW5nIG1hbnVhbGx5XG4gICAqL1xuICBzdGFydCgpIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nLnZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5sYXN0U3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbG9hZGluZyBtYW51YWxseVxuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb25cbiAgICovXG4gIHN0b3AoZHVyYXRpb246IG51bWJlciA9IDE4MDApIHtcbiAgICBjb25zdCBkaWZmTXMgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMubGFzdFN0YXJ0VGltZTtcblxuICAgIGlmIChkaWZmTXMgPj0gZHVyYXRpb24pIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcubmV4dChmYWxzZSk7XG4gICAgfSwgZHVyYXRpb24gLSBkaWZmTXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsb2FkZXIgYXMgb2JzZXJ2YWJsZVxuICAgKi9cbiAgZ2V0QXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHVudGlsIG9ic2VydmFibGUgZG9uZVxuICAgKlxuICAgKiBAcGFyYW0gb2JzZXJ2YWJsZVxuICAgKiBAcGFyYW0gZHVyYXRpb25cbiAgICovXG4gIGxvYWRVbnRpbE9ic2VydmFibGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTx1bmtub3duPiwgZHVyYXRpb246IG51bWJlciA9IDE4MDApOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dW5rbm93bj4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0RnJvbSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcubmV4dCh0cnVlKTtcbiAgICAgIG9ic2VydmFibGUuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGlmZk1zID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydEZyb207XG4gICAgICAgICAgaWYgKGRpZmZNcyA+PSBkdXJhdGlvbikge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICAgIH0sIGR1cmF0aW9uIC0gZGlmZk1zKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gc3Vic2NyaWJlci5lcnJvcihlcnJvciksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUVuRDs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUUsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0tBb0VqRDtJQWpFQzs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsV0FBbUIsSUFBSTtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFekQsSUFBSSxNQUFNLElBQUksUUFBUSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLE9BQU87U0FDUjtRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQUMsVUFBK0IsRUFBRSxXQUFtQixJQUFJO1FBQzFFLE9BQU8sSUFBSSxVQUFVLENBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNoRCxJQUFJLE1BQU0sSUFBSSxRQUFRLEVBQUU7d0JBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3ZCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzNCLE9BQU87cUJBQ1I7b0JBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN2QixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3QixDQUFDLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDMUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsyR0FwRVUsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIExvYWRlciBzZXJ2aWNlIGZvciBsb2FkaW5nIGluZGljYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRlclNlcnZpY2Uge1xuICBpc0xvYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBsYXN0U3RhcnRUaW1lITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGFydCBsb2FkaW5nIG1hbnVhbGx5XG4gICAqL1xuICBzdGFydCgpIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkaW5nLnZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5sYXN0U3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbG9hZGluZyBtYW51YWxseVxuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb25cbiAgICovXG4gIHN0b3AoZHVyYXRpb246IG51bWJlciA9IDE4MDApIHtcbiAgICBjb25zdCBkaWZmTXMgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMubGFzdFN0YXJ0VGltZTtcblxuICAgIGlmIChkaWZmTXMgPj0gZHVyYXRpb24pIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcubmV4dChmYWxzZSk7XG4gICAgfSwgZHVyYXRpb24gLSBkaWZmTXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsb2FkZXIgYXMgb2JzZXJ2YWJsZVxuICAgKi9cbiAgZ2V0QXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHVudGlsIG9ic2VydmFibGUgZG9uZVxuICAgKlxuICAgKiBAcGFyYW0gb2JzZXJ2YWJsZVxuICAgKiBAcGFyYW0gZHVyYXRpb25cbiAgICovXG4gIGxvYWRVbnRpbE9ic2VydmFibGUob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTx1bmtub3duPiwgZHVyYXRpb246IG51bWJlciA9IDE4MDApOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dW5rbm93bj4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0RnJvbSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcubmV4dCh0cnVlKTtcbiAgICAgIG9ic2VydmFibGUuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGlmZk1zID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydEZyb207XG4gICAgICAgICAgaWYgKGRpZmZNcyA+PSBkdXJhdGlvbikge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICAgIH0sIGR1cmF0aW9uIC0gZGlmZk1zKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gc3Vic2NyaWJlci5lcnJvcihlcnJvciksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -27,10 +27,10 @@ export class NavigationService {
27
27
  }
28
28
  }
29
29
  }
30
- NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NavigationService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable });
31
- NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NavigationService, providedIn: 'root' });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: NavigationService, decorators: [{
30
+ NavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NavigationService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ NavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NavigationService, providedIn: 'root' });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NavigationService, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{ providedIn: 'root' }]
35
35
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFVLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBR3hELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsTUFBYyxFQUFVLFFBQWtCO1FBQTFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRnRELFlBQU8sR0FBYSxFQUFFLENBQUM7UUFHN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUM1QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDOzs4R0FyQlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgaGlzdG9yeTogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgaGlzdG9yeSBzdGFjayBpcyBlbXB0eSwgbmF2aWdhdGUgdG8gdGhlIGhvbWUgcGFnZSwgb3RoZXJ3aXNlIGdvIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2VcbiAgICovXG4gIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5LnBvcCgpO1xuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFVLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBR3hELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsTUFBYyxFQUFVLFFBQWtCO1FBQTFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRnRELFlBQU8sR0FBYSxFQUFFLENBQUM7UUFHN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUM1QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDOzsrR0FyQlUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgaGlzdG9yeTogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgaGlzdG9yeSBzdGFjayBpcyBlbXB0eSwgbmF2aWdhdGUgdG8gdGhlIGhvbWUgcGFnZSwgb3RoZXJ3aXNlIGdvIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2VcbiAgICovXG4gIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5LnBvcCgpO1xuICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -165,9 +165,9 @@ export class ScrollService {
165
165
  return this.scrollPromise;
166
166
  }
167
167
  }
168
- ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ScrollService, deps: [{ token: i1.Router }, { token: BASE_MODULE_CONFIG }, { token: i2.ImageService }], target: i0.ɵɵFactoryTarget.Injectable });
169
- ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ScrollService, providedIn: 'root' });
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ScrollService, decorators: [{
168
+ ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ScrollService, deps: [{ token: i1.Router }, { token: BASE_MODULE_CONFIG }, { token: i2.ImageService }], target: i0.ɵɵFactoryTarget.Injectable });
169
+ ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ScrollService, providedIn: 'root' });
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ScrollService, decorators: [{
171
171
  type: Injectable,
172
172
  args: [{
173
173
  providedIn: 'root',
@@ -176,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
176
176
  type: Inject,
177
177
  args: [BASE_MODULE_CONFIG]
178
178
  }] }, { type: i2.ImageService }]; } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9zY3JvbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFHbEc7O0dBRUc7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQTZDeEI7O09BRUc7SUFDSCxZQUNZLE1BQWMsRUFDYyxZQUE4QixFQUMxRCxZQUEwQjtRQUYxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2MsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzFELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBcEN0Qzs7OztXQUlHO1FBQ08sbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFakM7Ozs7V0FJRztRQUNPLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUEwQnpCLE1BQU0sTUFBTSxHQUFHO1lBQ2IscUJBQXFCLEVBQUUsR0FBRztZQUMxQixZQUFZLEVBQUUsR0FBRztZQUNqQixrQkFBa0IsRUFBRSxHQUFHO1lBQ3ZCLEdBQUcsWUFBWTtTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FDWixFQUFVLEVBQ1YsVUFNSSxFQUFFO1FBRU4saUJBQWlCO1FBQ2pCLE1BQU0sTUFBTSxHQUFHO1lBQ2IsUUFBUSxFQUFFLEtBQUs7WUFDZixnQkFBZ0IsRUFB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O1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzswR0ExTlUsYUFBYSx3Q0FrRGQsa0JBQWtCOzhHQWxEakIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW1ESSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJBU0VfTU9EVUxFX0NPTkZJRywgQmFzZU1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbWFnZVNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNjcm9sbCBzZXJ2aWNlIGZvciBhdXRvc2Nyb2xsIHRvIHNwZWNpZmljIGZyYWdtZW50c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU2VydmljZSB7XG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCBwcm9taXNlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzY3JvbGxQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGZ1bmN0aW9uIG9mIGN1cnJlbnQgc2Nyb2xsIHByb21pc2VcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNjcm9sbFByb21pc2VSZXNvbHZlOiAodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZDtcblxuICAvKipcbiAgICogSXMgYSBzY3JvbGwgbGlzdGVuZXIgc2V0XG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzY3JvbGxMaXN0ZW5lciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCB0aW1lcjtcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNjcm9sbFRpbWVyID0gLTE7XG5cbiAgLyoqXG4gICAqIFNjcm9sbCBvZmZzZXRcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogRGV0ZWN0aW9uIG9mZnNldFxuICAgKiBTaG91bGQgYmUgPj0gc2Nyb2xsT2Zmc2V0XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGV0ZWN0aW9uT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNhbXBsaW5nIHJhdGUgZm9yIHNjcm9sbCBkb25lIGRldGVjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbFNhbXBsaW5nUmF0ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplclxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoQkFTRV9NT0RVTEVfQ09ORklHKSBwcm90ZWN0ZWQgbW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnLFxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZVxuICApIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBzY3JvbGxEZXRlY3Rpb25PZmZzZXQ6IDIwMCxcbiAgICAgIHNjcm9sbE9mZnNldDogMTAwLFxuICAgICAgc2Nyb2xsU2FtcGxpbmdSYXRlOiAxMDAsXG4gICAgICAuLi5tb2R1bGVDb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuZGV0ZWN0aW9uT2Zmc2V0ID0gY29uZmlnLnNjcm9sbERldGVjdGlvbk9mZnNldDtcbiAgICB0aGlzLnNjcm9sbE9mZnNldCA9IGNvbmZpZy5zY3JvbGxPZmZzZXQ7XG4gICAgdGhpcy5zY3JvbGxTYW1wbGluZ1JhdGUgPSBjb25maWcuc2Nyb2xsU2FtcGxpbmdSYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbCB0byBzdHJ1Y3R1cmVFbGVtZW50IHdpdGggc3BlY2lmaWMgSURcbiAgICovXG4gIGFzeW5jIHNjcm9sbFRvKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgY2hlY2tVcmw/OiBib29sZWFuO1xuICAgICAgbG9hZEltYWdlc0JlZm9yZT86IGJvb2xlYW47XG4gICAgICByZXNldFN0eWxlcz86IGJvb2xlYW47XG4gICAgICBzZXRPdmVyZmxvdz86IGJvb2xlYW47XG4gICAgICBzdG9wUHJvcGFnYXRpb24/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApIHtcbiAgICAvLyBQcmVwYXJlIGNvbmZpZ1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGNoZWNrVXJsOiBmYWxzZSxcbiAgICAgIGxvYWRJbWFnZXNCZWZvcmU6IHRydWUsXG4gICAgICByZXNldFN0eWxlczogZmFsc2UsXG4gICAgICBzZXRPdmVyZmxvdzogdHJ1ZSxcbiAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGN1cnJlbnQgVVJMXG4gICAgaWYgKGNvbmZpZy5jaGVja1VybCAmJiB0aGlzLnJvdXRlci51cmwgIT09ICcvJyAmJiAhdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoJy8jJykpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddLCB7IGZyYWdtZW50OiBpZCB9KTtcbiAgICAgIHJldHVybiAhY29uZmlnLnN0b3BQcm9wYWdhdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0YXJnZXQgZWxlbWVudCBleGl0c1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgIGlmICghZWwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01pc3Npbmcgc2Nyb2xsIGVsZW1lbnQgd2l0aCBJRDonLCBpZCk7XG4gICAgICByZXR1cm4gIWNvbmZpZy5zdG9wUHJvcGFnYXRpb247XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYm9keSBvdmVyZmxvdyBpcyB2aXNpYmxlXG4gICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHNjcm9sbCBoYW5kbGluZ1xuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XG4gICAgbGV0IHVuZG9PdmVyZmxvd0NoYW5nZXMgPSBmYWxzZTtcbiAgICBjb25zdCBzY3JvbGxCb2R5U3R5bGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib2R5KSkpO1xuICAgIGlmIChjb25maWcuc2V0T3ZlcmZsb3cgJiYgKHNjcm9sbEJvZHlTdHlsZXMub3ZlcmZsb3dYICE9PSAndmlzaWJsZScgfHwgc2Nyb2xsQm9keVN0eWxlcy5vdmVyZmxvd1kgIT09ICd2aXNpYmxlJykpIHtcbiAgICAgIC8vIFNldCBib2R5IG92ZXJmbG93IHRvIHZpc2libGVcbiAgICAgIGNvbnNvbGUud2FybignU3R5bGUgb2YgYm9keSBlbGVtZW50IGZvciBvdmVyZmxvd1ggYW5kIG92ZXJmbG93WSB3aWxsIGJlIHNldCB0byBcInZpc2libGVcIiBmb3Igc2Nyb2xsaW5nIScpO1xuICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1ggPSAndmlzaWJsZSc7XG4gICAgICBib2R5LnN0eWxlLm92ZXJmbG93WSA9ICd2aXNpYmxlJztcbiAgICAgIHVuZG9PdmVyZmxvd0NoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIExvYWQgaW1hZ2VzIGJlZm9yZSBzY3JvbGxpbmcgKG9uY2UpXG4gICAgaWYgKGNvbmZpZy5sb2FkSW1hZ2VzQmVmb3JlKSB7XG4gICAgICBhd2FpdCB0aGlzLmltYWdlU2VydmljZS5wcmVMb2FkSW1hZ2VzKCk7XG4gICAgfVxuXG4gICAgLy8gR2V0IGdldCBib3VuZGluZyByZWN0IG9mIHRhcmdldCBlbGVtZW50XG4gICAgY29uc3QgY29yZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8vIFNjcm9sbCB0byBlbGVtZW50XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiBjb3Jkcy50b3AgLSB0aGlzLnNjcm9sbE9mZnNldCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIGF3YWl0IHRoaXMuc2Nyb2xsRG9uZSh7XG4gICAgICBkb25lRnVuY3Rpb246ICgpID0+IHtcbiAgICAgICAgLy8gVW5kbyBjaGFuZ2VzXG4gICAgICAgIGlmICh1bmRvT3ZlcmZsb3dDaGFuZ2VzICYmIGNvbmZpZy5yZXNldFN0eWxlcykge1xuICAgICAgICAgIGJvZHkuc3R5bGUub3ZlcmZsb3dYID0gc2Nyb2xsQm9keVN0eWxlcy5vdmVyZmxvd1g7XG4gICAgICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1kgPSBzY3JvbGxCb2R5U3R5bGVzLm92ZXJmbG93WTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ09yaWdpbmFsIHN0eWxlIG9mIGJvZHkgZWxlbWVudCBmb3Igb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgaXMgc2V0LicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJuIHN0b3AgcHJvcGFnYXRpb24gY29uZmlndXJhdGlvblxuICAgIHJldHVybiAhY29uZmlnLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGFzdCBhY3RpdmUgc3RydWN0dXJlRWxlbWVudFxuICAgKi9cbiAgZ2V0TGFzdEFjdGl2ZUVsZW1lbnQobGlzdD8pOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGVsZW1lbnRzV2l0aElkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkXScpO1xuICAgIGxldCBsYXN0SWQgPSBudWxsO1xuICAgIGxldCBsYXN0UG9zaXRpb24gPSAwIC0gdGhpcy5kZXRlY3Rpb25PZmZzZXQgLSAxO1xuICAgIGVsZW1lbnRzV2l0aElkLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGNvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvcCA9IGNvcmRzLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIHRoaXMuZGV0ZWN0aW9uT2Zmc2V0O1xuICAgICAgaWYgKFxuICAgICAgICAoIWxpc3QgfHwgIWxpc3QubGVuZ3RoIHx8IGxpc3QuaW5jbHVkZXMoZWxlbWVudC5pZCkpICYmIC8vIEluIGxpc3RcbiAgICAgICAgdG9wIDwgY3VycmVudFNjcm9sbFBvc2l0aW9uICYmIC8vIEluIGFjdGl2ZSBhcmVhXG4gICAgICAgIGxhc3RQb3NpdGlvbiA8IHRvcCAvLyBIaWdoZXIgdGhhbiB0aGUgbGFzdCBvbmVcbiAgICAgICkge1xuICAgICAgICBsYXN0SWQgPSBlbGVtZW50LmlkO1xuICAgICAgICBsYXN0UG9zaXRpb24gPSB0b3A7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxhc3RJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBJRCBpcyBhY3RpdmVcbiAgICovXG4gIGlzQWN0aXZlKGlkLCBsaXN0PywgaXNGaXJzdD8pIHtcbiAgICBjb25zdCBsYXN0QWN0aXZlRWxlbWVudCA9IHRoaXMuZ2V0TGFzdEFjdGl2ZUVsZW1lbnQobGlzdCk7XG4gICAgcmV0dXJuIGlkID09PSBsYXN0QWN0aXZlRWxlbWVudCB8fCAobGFzdEFjdGl2ZUVsZW1lbnQgPT09IG51bGwgJiYgaXNGaXJzdCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xsIGRvbmUgcHJvbWlzZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNjcm9sbERvbmUob3B0aW9uczogeyBkb25lRnVuY3Rpb24/OiAoKSA9PiBhbnkgfCB2b2lkIH0gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gSW5pdCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZG9uZUZ1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBXYWl0IGZvciBzY3JvbGwgZG9uZVxuICAgIGF3YWl0IHRoaXMuc2Nyb2xsRG9uZURldGVjdGlvbigpO1xuXG4gICAgLy8gR2V0IHJlc3VsdFxuICAgIGlmIChjb25maWcuZG9uZUZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmRvbmVGdW5jdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGwgZG9uZSBkZXRlY3RvblxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2Nyb2xsRG9uZURldGVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBSZXR1cm4gY3VycmVudCBzY3JvbGwgcHJvbWlzZSAoU2luZ2VsdG9uKVxuICAgIGlmICh0aGlzLnNjcm9sbFByb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnNjcm9sbFByb21pc2U7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGN1cnJlbnQgc2Nyb2xsIHByb21pc2VcbiAgICB0aGlzLnNjcm9sbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxQcm9taXNlUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUaW1lciAhPT0gLTEpIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVyKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2Nyb2xsVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbERvbmVEZXRlY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsUHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGhpcy5zY3JvbGxTYW1wbGluZ1JhdGUpO1xuICAgIH0pO1xuXG4gICAgLy8gTGlzaXRlbmluZyB0byBzY3JvbGwgZXZlbnQ7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsRG9uZURldGVjdGlvbi5iaW5kKHRoaXMpKTtcblxuICAgIC8vIFJldHVybiBwcm9taXNlXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsUHJvbWlzZTtcbiAgfVxufVxuIl19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9zY3JvbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFHbEc7O0dBRUc7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQTZDeEI7O09BRUc7SUFDSCxZQUNZLE1BQWMsRUFDYyxZQUE4QixFQUMxRCxZQUEwQjtRQUYxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2MsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzFELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBcEN0Qzs7OztXQUlHO1FBQ08sbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFakM7Ozs7V0FJRztRQUNPLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUEwQnpCLE1BQU0sTUFBTSxHQUFHO1lBQ2IscUJBQXFCLEVBQUUsR0FBRztZQUMxQixZQUFZLEVBQUUsR0FBRztZQUNqQixrQkFBa0IsRUFBRSxHQUFHO1lBQ3ZCLEdBQUcsWUFBWTtTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FDWixFQUFVLEVBQ1YsVUFNSSxFQUFFO1FBRU4saUJBQWlCO1FBQ2pCLE1BQU0sTUFBTSxHQUFHO1lBQ2IsUUFBUSxFQUFFLEtBQUs7WUFDZixnQkFBZ0IsRUFB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O1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzsyR0ExTlUsYUFBYSx3Q0FrRGQsa0JBQWtCOytHQWxEakIsYUFBYSxjQUZaLE1BQU07NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW1ESSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJBU0VfTU9EVUxFX0NPTkZJRywgQmFzZU1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbWFnZVNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNjcm9sbCBzZXJ2aWNlIGZvciBhdXRvc2Nyb2xsIHRvIHNwZWNpZmljIGZyYWdtZW50c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU2VydmljZSB7XG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCBwcm9taXNlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzY3JvbGxQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlIGZ1bmN0aW9uIG9mIGN1cnJlbnQgc2Nyb2xsIHByb21pc2VcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNjcm9sbFByb21pc2VSZXNvbHZlOiAodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZDtcblxuICAvKipcbiAgICogSXMgYSBzY3JvbGwgbGlzdGVuZXIgc2V0XG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBzY3JvbGxMaXN0ZW5lciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHNjcm9sbCB0aW1lcjtcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHNjcm9sbFRpbWVyID0gLTE7XG5cbiAgLyoqXG4gICAqIFNjcm9sbCBvZmZzZXRcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogRGV0ZWN0aW9uIG9mZnNldFxuICAgKiBTaG91bGQgYmUgPj0gc2Nyb2xsT2Zmc2V0XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGV0ZWN0aW9uT2Zmc2V0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNhbXBsaW5nIHJhdGUgZm9yIHNjcm9sbCBkb25lIGRldGVjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbFNhbXBsaW5nUmF0ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplclxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoQkFTRV9NT0RVTEVfQ09ORklHKSBwcm90ZWN0ZWQgbW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnLFxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZVxuICApIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBzY3JvbGxEZXRlY3Rpb25PZmZzZXQ6IDIwMCxcbiAgICAgIHNjcm9sbE9mZnNldDogMTAwLFxuICAgICAgc2Nyb2xsU2FtcGxpbmdSYXRlOiAxMDAsXG4gICAgICAuLi5tb2R1bGVDb25maWcsXG4gICAgfTtcblxuICAgIHRoaXMuZGV0ZWN0aW9uT2Zmc2V0ID0gY29uZmlnLnNjcm9sbERldGVjdGlvbk9mZnNldDtcbiAgICB0aGlzLnNjcm9sbE9mZnNldCA9IGNvbmZpZy5zY3JvbGxPZmZzZXQ7XG4gICAgdGhpcy5zY3JvbGxTYW1wbGluZ1JhdGUgPSBjb25maWcuc2Nyb2xsU2FtcGxpbmdSYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbCB0byBzdHJ1Y3R1cmVFbGVtZW50IHdpdGggc3BlY2lmaWMgSURcbiAgICovXG4gIGFzeW5jIHNjcm9sbFRvKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgY2hlY2tVcmw/OiBib29sZWFuO1xuICAgICAgbG9hZEltYWdlc0JlZm9yZT86IGJvb2xlYW47XG4gICAgICByZXNldFN0eWxlcz86IGJvb2xlYW47XG4gICAgICBzZXRPdmVyZmxvdz86IGJvb2xlYW47XG4gICAgICBzdG9wUHJvcGFnYXRpb24/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApIHtcbiAgICAvLyBQcmVwYXJlIGNvbmZpZ1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGNoZWNrVXJsOiBmYWxzZSxcbiAgICAgIGxvYWRJbWFnZXNCZWZvcmU6IHRydWUsXG4gICAgICByZXNldFN0eWxlczogZmFsc2UsXG4gICAgICBzZXRPdmVyZmxvdzogdHJ1ZSxcbiAgICAgIHN0b3BQcm9wYWdhdGlvbjogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGN1cnJlbnQgVVJMXG4gICAgaWYgKGNvbmZpZy5jaGVja1VybCAmJiB0aGlzLnJvdXRlci51cmwgIT09ICcvJyAmJiAhdGhpcy5yb3V0ZXIudXJsLnN0YXJ0c1dpdGgoJy8jJykpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddLCB7IGZyYWdtZW50OiBpZCB9KTtcbiAgICAgIHJldHVybiAhY29uZmlnLnN0b3BQcm9wYWdhdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0YXJnZXQgZWxlbWVudCBleGl0c1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgIGlmICghZWwpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01pc3Npbmcgc2Nyb2xsIGVsZW1lbnQgd2l0aCBJRDonLCBpZCk7XG4gICAgICByZXR1cm4gIWNvbmZpZy5zdG9wUHJvcGFnYXRpb247XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYm9keSBvdmVyZmxvdyBpcyB2aXNpYmxlXG4gICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHNjcm9sbCBoYW5kbGluZ1xuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XG4gICAgbGV0IHVuZG9PdmVyZmxvd0NoYW5nZXMgPSBmYWxzZTtcbiAgICBjb25zdCBzY3JvbGxCb2R5U3R5bGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib2R5KSkpO1xuICAgIGlmIChjb25maWcuc2V0T3ZlcmZsb3cgJiYgKHNjcm9sbEJvZHlTdHlsZXMub3ZlcmZsb3dYICE9PSAndmlzaWJsZScgfHwgc2Nyb2xsQm9keVN0eWxlcy5vdmVyZmxvd1kgIT09ICd2aXNpYmxlJykpIHtcbiAgICAgIC8vIFNldCBib2R5IG92ZXJmbG93IHRvIHZpc2libGVcbiAgICAgIGNvbnNvbGUud2FybignU3R5bGUgb2YgYm9keSBlbGVtZW50IGZvciBvdmVyZmxvd1ggYW5kIG92ZXJmbG93WSB3aWxsIGJlIHNldCB0byBcInZpc2libGVcIiBmb3Igc2Nyb2xsaW5nIScpO1xuICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1ggPSAndmlzaWJsZSc7XG4gICAgICBib2R5LnN0eWxlLm92ZXJmbG93WSA9ICd2aXNpYmxlJztcbiAgICAgIHVuZG9PdmVyZmxvd0NoYW5nZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIExvYWQgaW1hZ2VzIGJlZm9yZSBzY3JvbGxpbmcgKG9uY2UpXG4gICAgaWYgKGNvbmZpZy5sb2FkSW1hZ2VzQmVmb3JlKSB7XG4gICAgICBhd2FpdCB0aGlzLmltYWdlU2VydmljZS5wcmVMb2FkSW1hZ2VzKCk7XG4gICAgfVxuXG4gICAgLy8gR2V0IGdldCBib3VuZGluZyByZWN0IG9mIHRhcmdldCBlbGVtZW50XG4gICAgY29uc3QgY29yZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIC8vIFNjcm9sbCB0byBlbGVtZW50XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiBjb3Jkcy50b3AgLSB0aGlzLnNjcm9sbE9mZnNldCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIGF3YWl0IHRoaXMuc2Nyb2xsRG9uZSh7XG4gICAgICBkb25lRnVuY3Rpb246ICgpID0+IHtcbiAgICAgICAgLy8gVW5kbyBjaGFuZ2VzXG4gICAgICAgIGlmICh1bmRvT3ZlcmZsb3dDaGFuZ2VzICYmIGNvbmZpZy5yZXNldFN0eWxlcykge1xuICAgICAgICAgIGJvZHkuc3R5bGUub3ZlcmZsb3dYID0gc2Nyb2xsQm9keVN0eWxlcy5vdmVyZmxvd1g7XG4gICAgICAgICAgYm9keS5zdHlsZS5vdmVyZmxvd1kgPSBzY3JvbGxCb2R5U3R5bGVzLm92ZXJmbG93WTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ09yaWdpbmFsIHN0eWxlIG9mIGJvZHkgZWxlbWVudCBmb3Igb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgaXMgc2V0LicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gUmV0dXJuIHN0b3AgcHJvcGFnYXRpb24gY29uZmlndXJhdGlvblxuICAgIHJldHVybiAhY29uZmlnLnN0b3BQcm9wYWdhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGFzdCBhY3RpdmUgc3RydWN0dXJlRWxlbWVudFxuICAgKi9cbiAgZ2V0TGFzdEFjdGl2ZUVsZW1lbnQobGlzdD8pOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGVsZW1lbnRzV2l0aElkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkXScpO1xuICAgIGxldCBsYXN0SWQgPSBudWxsO1xuICAgIGxldCBsYXN0UG9zaXRpb24gPSAwIC0gdGhpcy5kZXRlY3Rpb25PZmZzZXQgLSAxO1xuICAgIGVsZW1lbnRzV2l0aElkLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGNvcmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvcCA9IGNvcmRzLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCAtIHRoaXMuZGV0ZWN0aW9uT2Zmc2V0O1xuICAgICAgaWYgKFxuICAgICAgICAoIWxpc3QgfHwgIWxpc3QubGVuZ3RoIHx8IGxpc3QuaW5jbHVkZXMoZWxlbWVudC5pZCkpICYmIC8vIEluIGxpc3RcbiAgICAgICAgdG9wIDwgY3VycmVudFNjcm9sbFBvc2l0aW9uICYmIC8vIEluIGFjdGl2ZSBhcmVhXG4gICAgICAgIGxhc3RQb3NpdGlvbiA8IHRvcCAvLyBIaWdoZXIgdGhhbiB0aGUgbGFzdCBvbmVcbiAgICAgICkge1xuICAgICAgICBsYXN0SWQgPSBlbGVtZW50LmlkO1xuICAgICAgICBsYXN0UG9zaXRpb24gPSB0b3A7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxhc3RJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBJRCBpcyBhY3RpdmVcbiAgICovXG4gIGlzQWN0aXZlKGlkLCBsaXN0PywgaXNGaXJzdD8pIHtcbiAgICBjb25zdCBsYXN0QWN0aXZlRWxlbWVudCA9IHRoaXMuZ2V0TGFzdEFjdGl2ZUVsZW1lbnQobGlzdCk7XG4gICAgcmV0dXJuIGlkID09PSBsYXN0QWN0aXZlRWxlbWVudCB8fCAobGFzdEFjdGl2ZUVsZW1lbnQgPT09IG51bGwgJiYgaXNGaXJzdCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xsIGRvbmUgcHJvbWlzZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNjcm9sbERvbmUob3B0aW9uczogeyBkb25lRnVuY3Rpb24/OiAoKSA9PiBhbnkgfCB2b2lkIH0gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gSW5pdCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZG9uZUZ1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBXYWl0IGZvciBzY3JvbGwgZG9uZVxuICAgIGF3YWl0IHRoaXMuc2Nyb2xsRG9uZURldGVjdGlvbigpO1xuXG4gICAgLy8gR2V0IHJlc3VsdFxuICAgIGlmIChjb25maWcuZG9uZUZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmRvbmVGdW5jdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGwgZG9uZSBkZXRlY3RvblxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgc2Nyb2xsRG9uZURldGVjdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBSZXR1cm4gY3VycmVudCBzY3JvbGwgcHJvbWlzZSAoU2luZ2VsdG9uKVxuICAgIGlmICh0aGlzLnNjcm9sbFByb21pc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnNjcm9sbFByb21pc2U7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGN1cnJlbnQgc2Nyb2xsIHByb21pc2VcbiAgICB0aGlzLnNjcm9sbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5zY3JvbGxQcm9taXNlUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICBpZiAodGhpcy5zY3JvbGxUaW1lciAhPT0gLTEpIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVyKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2Nyb2xsVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbERvbmVEZXRlY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsUHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGhpcy5zY3JvbGxTYW1wbGluZ1JhdGUpO1xuICAgIH0pO1xuXG4gICAgLy8gTGlzaXRlbmluZyB0byBzY3JvbGwgZXZlbnQ7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsRG9uZURldGVjdGlvbi5iaW5kKHRoaXMpKTtcblxuICAgIC8vIFJldHVybiBwcm9taXNlXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsUHJvbWlzZTtcbiAgfVxufVxuIl19
@@ -126,9 +126,9 @@ export class StorageService {
126
126
  this.storage.clear();
127
127
  }
128
128
  }
129
- StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: StorageService, deps: [{ token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
130
- StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: StorageService, providedIn: 'root' });
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: StorageService, decorators: [{
129
+ StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: StorageService, deps: [{ token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
130
+ StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: StorageService, providedIn: 'root' });
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: StorageService, decorators: [{
132
132
  type: Injectable,
133
133
  args: [{
134
134
  providedIn: 'root',
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
137
137
  type: Inject,
138
138
  args: [BASE_MODULE_CONFIG]
139
139
  }] }]; } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFbEc7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQVd6Qjs7T0FFRztJQUNILFlBQWdELFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQWI5RTs7V0FFRztRQUNPLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFFOUI7O1dBRUc7UUFDTyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBTXBCLGNBQWM7UUFDZCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFM0UsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLFlBQVksRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDckI7U0FDRjtRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUMxQztRQUNELElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLENBQUMs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Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OzJHQXZJVSxjQUFjLGtCQWNMLGtCQUFrQjsrR0FkM0IsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVjLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFN0b3JhZ2Ugc2VydmljZSBmb3IgbG9jYWwgZGF0YSBzdG9yYWdlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XG4gIC8qKlxuICAgKiBTdG9yYWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RvcmFnZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogUHJlZml4IGZvciBzdG9yYWdlIGtleXNcbiAgICovXG4gIHByb3RlY3RlZCBwcmVmaXggPSAnJztcblxuICAvKipcbiAgICogSW5pdGlhbGl6YXRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEJBU0VfTU9EVUxFX0NPTkZJRykgcHJpdmF0ZSBtb2R1bGVDb25maWc6IEJhc2VNb2R1bGVDb25maWcpIHtcbiAgICAvLyBTZXQgc3RvcmFnZVxuICAgIGNvbnN0IHR5cGUgPSBtb2R1bGVDb25maWcuc3RvcmFnZVR5cGUgPyBtb2R1bGVDb25maWcuc3RvcmFnZVR5cGUgOiAnbG9jYWwnO1xuXG4gICAgaWYgKHR5cGUgPT09ICdzZXNzaW9uJykge1xuICAgICAgdGhpcy5zdG9yYWdlID0gc2Vzc2lvblN0b3JhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gbG9jYWxTdG9yYWdlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgcHJlZml4XG4gICAgdGhpcy5wcmVmaXggPSAnJztcbiAgICBpZiAobW9kdWxlQ29uZmlnLnByZWZpeCkge1xuICAgICAgdGhpcy5wcmVmaXggKz0gbW9kdWxlQ29uZmlnLnByZWZpeCArICdfJztcbiAgICB9XG4gICAgaWYgKG1vZHVsZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgICB0aGlzLnByZWZpeCArPSBtb2R1bGVDb25maWcudmVyc2lvbiArICdfJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBpdGVtS2V5c1xuICAgKlxuICAgKiBJZiB5b3Ugd2FudCB0byBzYXZlIG9uZSBpdGVtLCB1c2UgaXRlbUtleXMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgbGlrZSB0aGVzZTpcbiAgICogc2F2ZSgnS0VZX09GX1RIRV9JVEVNJywgSVRFTSlcbiAgICpcbiAgICogSWYgeW91IHdhbnQgdG8gc2F2ZSBtdWx0aXBsZSBpdGVtcywgdXNlIGl0ZW1LZXlzIG9ubHkgKHZhbHVlIHBhcmFtZXRlciB3aWxsIGJlIGlnbm9yZWQpOlxuICAgKiBzYXZlKHsnS0VZX09GX0lURU1fMSc6IElURU1fMSwgJ0tFWV9PRl9JVEVNXzInOiBJVEVNXzIsIC4uLn0pXG4gICAqL1xuICBwdWJsaWMgc2F2ZShpdGVtS2V5czogc3RyaW5nIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgdmFsdWU/OiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyBDaGVjayBsb2NhbCBzdG9yYWdlXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpdGVtIGtleXMgYW5kIHZhbHVlXG4gICAgaWYgKFxuICAgICAgIWl0ZW1LZXlzIHx8XG4gICAgICAodHlwZW9mIGl0ZW1LZXlzID09PSAnb2JqZWN0JyAmJiAhT2JqZWN0LmtleXMoaXRlbUtleXMpLmxlbmd0aCkgfHxcbiAgICAgICh0eXBlb2YgaXRlbUtleXMgPT09ICdzdHJpbmcnICYmIHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpdGVtS2V5cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgW2l0ZW1LZXksIGl0ZW1WYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaXRlbUtleXMpKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleSwgSlNPTi5zdHJpbmdpZnkoaXRlbVZhbHVlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnByZWZpeCArIGl0ZW1LZXlzLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgaXRlbXMgdmlhIGtleShzKVxuICAgKi9cbiAgcHVibGljIGxvYWQoaXRlbUtleXM6IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICAvLyBDaGVjayBsb2NhbCBzdG9yYWdlXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpdGVtIGtleXNcbiAgICBpZiAoIWl0ZW1LZXlzIHx8IChBcnJheS5pc0FycmF5KGl0ZW1LZXlzKSAmJiAhaXRlbUtleXMubGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbUtleXMpKSB7XG4gICAgICBjb25zdCBiYWNrID0ge307XG4gICAgICBpdGVtS2V5cy5mb3JFYWNoKChpdGVtS2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IGxvYWRlZEl0ZW0gPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnByZWZpeCArIGl0ZW1LZXkpO1xuICAgICAgICBpZiAobG9hZGVkSXRlbSkge1xuICAgICAgICAgIGJhY2tbaXRlbUtleV0gPSBKU09OLnBhcnNlKGxvYWRlZEl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhY2tbaXRlbUtleV0gPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBiYWNrO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleXMpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGl0ZW0gZnJvbSBzdG9yYWdlXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtS2V5cyBrZXlzIG9yIGtleSB0byByZW1vdmVcbiAgICovXG4gIHB1YmxpYyByZW1vdmUoaXRlbUtleXM6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgbG9jYWwgc3RvcmFnZVxuICAgIGlmICghdGhpcy5zdG9yYWdlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbUtleXMpKSB7XG4gICAgICBpdGVtS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5wcmVmaXggKyBrZXkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnByZWZpeCArIGl0ZW1LZXlzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBsb2NhbCBzdG9yYWdlXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFFbEc7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQVd6Qjs7T0FFRztJQUNILFlBQWdELFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQWI5RTs7V0FFRztRQUNPLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFFOUI7O1dBRUc7UUFDTyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBTXBCLGNBQWM7UUFDZCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFM0UsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLFlBQVksRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7YUFDN0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDckI7U0FDRjtRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUMxQztRQUNELElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN4QixJQUFJLENBQUMs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Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OzRHQXZJVSxjQUFjLGtCQWNMLGtCQUFrQjtnSEFkM0IsY0FBYyxjQUZiLE1BQU07NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVjLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFN0b3JhZ2Ugc2VydmljZSBmb3IgbG9jYWwgZGF0YSBzdG9yYWdlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XG4gIC8qKlxuICAgKiBTdG9yYWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RvcmFnZTogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogUHJlZml4IGZvciBzdG9yYWdlIGtleXNcbiAgICovXG4gIHByb3RlY3RlZCBwcmVmaXggPSAnJztcblxuICAvKipcbiAgICogSW5pdGlhbGl6YXRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEJBU0VfTU9EVUxFX0NPTkZJRykgcHJpdmF0ZSBtb2R1bGVDb25maWc6IEJhc2VNb2R1bGVDb25maWcpIHtcbiAgICAvLyBTZXQgc3RvcmFnZVxuICAgIGNvbnN0IHR5cGUgPSBtb2R1bGVDb25maWcuc3RvcmFnZVR5cGUgPyBtb2R1bGVDb25maWcuc3RvcmFnZVR5cGUgOiAnbG9jYWwnO1xuXG4gICAgaWYgKHR5cGUgPT09ICdzZXNzaW9uJykge1xuICAgICAgdGhpcy5zdG9yYWdlID0gc2Vzc2lvblN0b3JhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gbG9jYWxTdG9yYWdlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgcHJlZml4XG4gICAgdGhpcy5wcmVmaXggPSAnJztcbiAgICBpZiAobW9kdWxlQ29uZmlnLnByZWZpeCkge1xuICAgICAgdGhpcy5wcmVmaXggKz0gbW9kdWxlQ29uZmlnLnByZWZpeCArICdfJztcbiAgICB9XG4gICAgaWYgKG1vZHVsZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgICB0aGlzLnByZWZpeCArPSBtb2R1bGVDb25maWcudmVyc2lvbiArICdfJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBpdGVtS2V5c1xuICAgKlxuICAgKiBJZiB5b3Ugd2FudCB0byBzYXZlIG9uZSBpdGVtLCB1c2UgaXRlbUtleXMgYW5kIHZhbHVlIHBhcmFtZXRlcnMgbGlrZSB0aGVzZTpcbiAgICogc2F2ZSgnS0VZX09GX1RIRV9JVEVNJywgSVRFTSlcbiAgICpcbiAgICogSWYgeW91IHdhbnQgdG8gc2F2ZSBtdWx0aXBsZSBpdGVtcywgdXNlIGl0ZW1LZXlzIG9ubHkgKHZhbHVlIHBhcmFtZXRlciB3aWxsIGJlIGlnbm9yZWQpOlxuICAgKiBzYXZlKHsnS0VZX09GX0lURU1fMSc6IElURU1fMSwgJ0tFWV9PRl9JVEVNXzInOiBJVEVNXzIsIC4uLn0pXG4gICAqL1xuICBwdWJsaWMgc2F2ZShpdGVtS2V5czogc3RyaW5nIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgdmFsdWU/OiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyBDaGVjayBsb2NhbCBzdG9yYWdlXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpdGVtIGtleXMgYW5kIHZhbHVlXG4gICAgaWYgKFxuICAgICAgIWl0ZW1LZXlzIHx8XG4gICAgICAodHlwZW9mIGl0ZW1LZXlzID09PSAnb2JqZWN0JyAmJiAhT2JqZWN0LmtleXMoaXRlbUtleXMpLmxlbmd0aCkgfHxcbiAgICAgICh0eXBlb2YgaXRlbUtleXMgPT09ICdzdHJpbmcnICYmIHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpdGVtS2V5cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgW2l0ZW1LZXksIGl0ZW1WYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaXRlbUtleXMpKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleSwgSlNPTi5zdHJpbmdpZnkoaXRlbVZhbHVlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnByZWZpeCArIGl0ZW1LZXlzLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgaXRlbXMgdmlhIGtleShzKVxuICAgKi9cbiAgcHVibGljIGxvYWQoaXRlbUtleXM6IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICAvLyBDaGVjayBsb2NhbCBzdG9yYWdlXG4gICAgaWYgKCF0aGlzLnN0b3JhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpdGVtIGtleXNcbiAgICBpZiAoIWl0ZW1LZXlzIHx8IChBcnJheS5pc0FycmF5KGl0ZW1LZXlzKSAmJiAhaXRlbUtleXMubGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbUtleXMpKSB7XG4gICAgICBjb25zdCBiYWNrID0ge307XG4gICAgICBpdGVtS2V5cy5mb3JFYWNoKChpdGVtS2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IGxvYWRlZEl0ZW0gPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnByZWZpeCArIGl0ZW1LZXkpO1xuICAgICAgICBpZiAobG9hZGVkSXRlbSkge1xuICAgICAgICAgIGJhY2tbaXRlbUtleV0gPSBKU09OLnBhcnNlKGxvYWRlZEl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhY2tbaXRlbUtleV0gPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBiYWNrO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKHRoaXMucHJlZml4ICsgaXRlbUtleXMpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdmFsdWUgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGl0ZW0gZnJvbSBzdG9yYWdlXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtS2V5cyBrZXlzIG9yIGtleSB0byByZW1vdmVcbiAgICovXG4gIHB1YmxpYyByZW1vdmUoaXRlbUtleXM6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgbG9jYWwgc3RvcmFnZVxuICAgIGlmICghdGhpcy5zdG9yYWdlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbUtleXMpKSB7XG4gICAgICBpdGVtS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5wcmVmaXggKyBrZXkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnByZWZpeCArIGl0ZW1LZXlzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBsb2NhbCBzdG9yYWdlXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -30,12 +30,12 @@ export class ToastService {
30
30
  }
31
31
  }
32
32
  }
33
- ToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
- ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ToastService, providedIn: 'root' });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ToastService, decorators: [{
33
+ ToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
+ ToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastService, providedIn: 'root' });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastService, decorators: [{
36
36
  type: Injectable,
37
37
  args: [{
38
38
  providedIn: 'root',
39
39
  }]
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU12QyxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUlVLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEVBQUUsQ0FBQyxDQUFDO0tBNkI5RDtJQTNCQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsS0FBWSxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxFQUFFO1lBQ1osVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2dCQUNuRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFFckUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25CLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUM1QztZQUNILENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7eUdBN0JVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90b2FzdC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0b2FzdHNPYnNlcnZhYmxlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9hc3RbXT4oW10pO1xuXG4gIGdldCB0b2FzdHNBc09ic2VydmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9hc3RzT2JzZXJ2YWJsZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBuZXcgdG9hc3RcbiAgICpcbiAgICogQHBhcmFtIHRvYXN0XG4gICAqIEBwYXJhbSBkdXJhdGlvblxuICAgKi9cbiAgc2hvdyh0b2FzdDogVG9hc3QsIGR1cmF0aW9uID0gMjMwMCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50b2FzdHNPYnNlcnZhYmxlcy52YWx1ZTtcbiAgICB2YWx1ZS5wdXNoKHRvYXN0KTtcbiAgICB0aGlzLnRvYXN0c09ic2VydmFibGVzLm5leHQodmFsdWUpO1xuXG4gICAgaWYgKGR1cmF0aW9uKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFRvYXN0cyA9IHRoaXMudG9hc3RzT2JzZXJ2YWJsZXMudmFsdWU7XG4gICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSBjdXJyZW50VG9hc3RzLmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PT0gdG9hc3QuaWQpO1xuXG4gICAgICAgIGlmIChmb3VuZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICBjdXJyZW50VG9hc3RzLnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgICB0aGlzLnRvYXN0c09ic2VydmFibGVzLm5leHQoY3VycmVudFRvYXN0cyk7XG4gICAgICAgIH1cbiAgICAgIH0sIGR1cmF0aW9uKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU12QyxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUlVLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEVBQUUsQ0FBQyxDQUFDO0tBNkI5RDtJQTNCQyxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsS0FBWSxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxFQUFFO1lBQ1osVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2dCQUNuRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFFckUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25CLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUM1QztZQUNILENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7MEdBN0JVLFlBQVk7OEdBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90b2FzdC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0b2FzdHNPYnNlcnZhYmxlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9hc3RbXT4oW10pO1xuXG4gIGdldCB0b2FzdHNBc09ic2VydmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9hc3RzT2JzZXJ2YWJsZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBuZXcgdG9hc3RcbiAgICpcbiAgICogQHBhcmFtIHRvYXN0XG4gICAqIEBwYXJhbSBkdXJhdGlvblxuICAgKi9cbiAgc2hvdyh0b2FzdDogVG9hc3QsIGR1cmF0aW9uID0gMjMwMCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50b2FzdHNPYnNlcnZhYmxlcy52YWx1ZTtcbiAgICB2YWx1ZS5wdXNoKHRvYXN0KTtcbiAgICB0aGlzLnRvYXN0c09ic2VydmFibGVzLm5leHQodmFsdWUpO1xuXG4gICAgaWYgKGR1cmF0aW9uKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFRvYXN0cyA9IHRoaXMudG9hc3RzT2JzZXJ2YWJsZXMudmFsdWU7XG4gICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSBjdXJyZW50VG9hc3RzLmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PT0gdG9hc3QuaWQpO1xuXG4gICAgICAgIGlmIChmb3VuZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICBjdXJyZW50VG9hc3RzLnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgICB0aGlzLnRvYXN0c09ic2VydmFibGVzLm5leHQoY3VycmVudFRvYXN0cyk7XG4gICAgICAgIH1cbiAgICAgIH0sIGR1cmF0aW9uKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -137,12 +137,12 @@ export class UserService extends GraphQLPlusService {
137
137
  });
138
138
  }
139
139
  }
140
- UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: UserService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }, { token: i3.LoaderService }, { token: i4.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
141
- UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: UserService, providedIn: 'root' });
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: UserService, decorators: [{
140
+ UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }, { token: i3.LoaderService }, { token: i4.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
141
+ UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserService, providedIn: 'root' });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: UserService, decorators: [{
143
143
  type: Injectable,
144
144
  args: [{
145
145
  providedIn: 'root',
146
146
  }]
147
147
  }], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }, { type: i3.LoaderService }, { type: i4.AuthService }]; } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFNNUQsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBa0I7SUFDakQsWUFDWSxNQUFjLEVBQ2Qsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLFdBQXdCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFHcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBMEM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUM1QixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDcEIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxD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QUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQ25DLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDakMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNoQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDakMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ2pDLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7d0dBN0lVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGggfSBmcm9tICcuLi9jbGFzc2VzL2F1dGguY2xhc3MnO1xuaW1wb3J0IHsgQmFzaWNVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9iYXNpYy11c2VyLmNsYXNzJztcbmltcG9ydCB7IEdyYXBoUUxSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMTWV0YVNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxQbHVzU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC1wbHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4vbG9hZGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBHcmFwaFFMUGx1c1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sXG4gICAgcHJvdGVjdGVkIGdyYXBocWxNZXRhU2VydmljZTogR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYXBvbGxvLCBncmFwaHFsTWV0YVNlcnZpY2UsIGxvYWRlclNlcnZpY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ2luXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dFxuICAgKi9cbiAgbG9naW4oaW5wdXQ6IHsgZW1haWw6IHN0cmluZzsgcGFzc3dvcmQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgnc2lnbkluJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlucHV0IH0sXG4gICAgICBmaWVsZHM6IFsndG9rZW4nLCB7IHVzZXI6IFsnaWQnLCAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJywgJ2VtYWlsJywgJ3JvbGVzJywgJ2F2YXRhciddIH1dLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogQXV0aCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuID0gcmVzcG9uc2UudG9rZW47XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIgPSByZXNwb25zZS51c2VyO1xuXG4gICAgICAgIHJldHVybiBBdXRoLm1hcCh7XG4gICAgICAgICAgdG9rZW46IHJlc3BvbnNlLnRva2VuLFxuICAgICAgICAgIHVzZXI6IEJhc2ljVXNlci5tYXAocmVzcG9uc2UudXNlciksXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dFxuICAgKi9cbiAgcmVnaXN0ZXIoaW5wdXQ6IHsgZmlyc3ROYW1lOiBzdHJpbmc7IGxhc3ROYW1lOiBzdHJpbmc7IGVtYWlsOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3NpZ25VcCcsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpbnB1dCB9LFxuICAgICAgZmllbGRzOiBbJ3Rva2VuJywgeyB1c2VyOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcycsICdhdmF0YXInXSB9XSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF1dGgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS50b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyID0gcmVzcG9uc2UudXNlcjtcblxuICAgICAgICByZXR1cm4gQXV0aC5tYXAoe1xuICAgICAgICAgIHRva2VuOiByZXNwb25zZS50b2tlbixcbiAgICAgICAgICB1c2VyOiBCYXNpY1VzZXIubWFwKHJlc3BvbnNlLnVzZXIpLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgbWFrZSBhIEdyYXBoUUwgcXVlcnkgdG8gdGhlIHNlcnZlciwgYW5kIHJldHVybiB0aGUgcmVzdWx0XG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZCBvZiB0aGUgdXNlciB5b3Ugd2FudCB0byBnZXRcbiAgICogQHJldHVybnMgQSBHcmFwaFFMUmVxdWVzdCBvYmplY3QuXG4gICAqL1xuICBnZXQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ2dldFVzZXInLCB7XG4gICAgICBhcmd1bWVudHM6IHsgaWQgfSxcbiAgICAgIGZpZWxkczogWydpZCcsICdmaXJzdE5hbWUnLCAnbGFzdE5hbWUnLCAnZW1haWwnLCAncm9sZXMnLCAnYXZhdGFyJ10sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgcGFzc3dvcmQgcmVzZXQgbWFpbFxuICAgKlxuICAgKiBAcGFyYW0gZW1haWxcbiAgICovXG4gIHJlcXVlc3RQYXNzd29yZFJlc2V0TWFpbChlbWFpbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgncmVxdWVzdFBhc3N3b3JkUmVzZXRNYWlsJywge1xuICAgICAgYXJndW1lbnRzOiB7IGVtYWlsIH0sXG4gICAgICBmaWVsZHM6IFtdLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgcGFzc3dvcmQgb2YgY3VycmVudCB1c2VyXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gcGFzc3dvcmRcbiAgICovXG4gIGNoYW5nZVBhc3N3b3JkKGlkOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCd1cGRhdGVVc2VyJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlkLCBpbnB1dDogeyBwYXNzd29yZCB9IH0sXG4gICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG5ldyBwYXNzd29yZCBieSB0b2tlblxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5cbiAgICogQHBhcmFtIHBhc3N3b3JkXG4gICAqL1xuICByZXNldFBhc3N3b3JkKHRva2VuOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdyZXNldFBhc3N3b3JkJywge1xuICAgICAgYXJndW1lbnRzOiB7IHRva2VuLCBwYXNzd29yZCB9LFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdXNlciBieSBpZFxuICAgKlxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIGRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgnZGVsZXRlVXNlcicsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpZCB9LFxuICAgICAgZmllbGRzOiBbJ2lkJ10sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmeSB1c2VyIGJ5IHRva2VuXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlblxuICAgKi9cbiAgdmVyaWZ5VXNlcih0b2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgndmVyaWZ5VXNlcicsIHtcbiAgICAgIGFyZ3VtZW50czogeyB0b2tlbiB9LFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFNNUQsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBa0I7SUFDakQsWUFDWSxNQUFjLEVBQ2Qsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLFdBQXdCO1FBRWxDLEtBQUssQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFMdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFHcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBMEM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUM1QixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDcEIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxD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QUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQ25DLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDakMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUNoQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2QsSUFBSSxFQUFFLGtCQUFrQixDQUFDLFFBQVE7WUFDakMsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFO1lBQ3BCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO1lBQ2pDLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBN0lVLFdBQVc7NkdBQVgsV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGggfSBmcm9tICcuLi9jbGFzc2VzL2F1dGguY2xhc3MnO1xuaW1wb3J0IHsgQmFzaWNVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9iYXNpYy11c2VyLmNsYXNzJztcbmltcG9ydCB7IEdyYXBoUUxSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMTWV0YVNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxQbHVzU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC1wbHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4vbG9hZGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBHcmFwaFFMUGx1c1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sXG4gICAgcHJvdGVjdGVkIGdyYXBocWxNZXRhU2VydmljZTogR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYXBvbGxvLCBncmFwaHFsTWV0YVNlcnZpY2UsIGxvYWRlclNlcnZpY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ2luXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dFxuICAgKi9cbiAgbG9naW4oaW5wdXQ6IHsgZW1haWw6IHN0cmluZzsgcGFzc3dvcmQ6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgnc2lnbkluJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlucHV0IH0sXG4gICAgICBmaWVsZHM6IFsndG9rZW4nLCB7IHVzZXI6IFsnaWQnLCAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJywgJ2VtYWlsJywgJ3JvbGVzJywgJ2F2YXRhciddIH1dLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogQXV0aCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuID0gcmVzcG9uc2UudG9rZW47XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIgPSByZXNwb25zZS51c2VyO1xuXG4gICAgICAgIHJldHVybiBBdXRoLm1hcCh7XG4gICAgICAgICAgdG9rZW46IHJlc3BvbnNlLnRva2VuLFxuICAgICAgICAgIHVzZXI6IEJhc2ljVXNlci5tYXAocmVzcG9uc2UudXNlciksXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyXG4gICAqXG4gICAqIEBwYXJhbSBpbnB1dFxuICAgKi9cbiAgcmVnaXN0ZXIoaW5wdXQ6IHsgZmlyc3ROYW1lOiBzdHJpbmc7IGxhc3ROYW1lOiBzdHJpbmc7IGVtYWlsOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3NpZ25VcCcsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpbnB1dCB9LFxuICAgICAgZmllbGRzOiBbJ3Rva2VuJywgeyB1c2VyOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcycsICdhdmF0YXInXSB9XSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF1dGgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS50b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyID0gcmVzcG9uc2UudXNlcjtcblxuICAgICAgICByZXR1cm4gQXV0aC5tYXAoe1xuICAgICAgICAgIHRva2VuOiByZXNwb25zZS50b2tlbixcbiAgICAgICAgICB1c2VyOiBCYXNpY1VzZXIubWFwKHJlc3BvbnNlLnVzZXIpLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgbWFrZSBhIEdyYXBoUUwgcXVlcnkgdG8gdGhlIHNlcnZlciwgYW5kIHJldHVybiB0aGUgcmVzdWx0XG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZCBvZiB0aGUgdXNlciB5b3Ugd2FudCB0byBnZXRcbiAgICogQHJldHVybnMgQSBHcmFwaFFMUmVxdWVzdCBvYmplY3QuXG4gICAqL1xuICBnZXQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ2dldFVzZXInLCB7XG4gICAgICBhcmd1bWVudHM6IHsgaWQgfSxcbiAgICAgIGZpZWxkczogWydpZCcsICdmaXJzdE5hbWUnLCAnbGFzdE5hbWUnLCAnZW1haWwnLCAncm9sZXMnLCAnYXZhdGFyJ10sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgcGFzc3dvcmQgcmVzZXQgbWFpbFxuICAgKlxuICAgKiBAcGFyYW0gZW1haWxcbiAgICovXG4gIHJlcXVlc3RQYXNzd29yZFJlc2V0TWFpbChlbWFpbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgncmVxdWVzdFBhc3N3b3JkUmVzZXRNYWlsJywge1xuICAgICAgYXJndW1lbnRzOiB7IGVtYWlsIH0sXG4gICAgICBmaWVsZHM6IFtdLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgcGFzc3dvcmQgb2YgY3VycmVudCB1c2VyXG4gICAqXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gcGFzc3dvcmRcbiAgICovXG4gIGNoYW5nZVBhc3N3b3JkKGlkOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCd1cGRhdGVVc2VyJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlkLCBpbnB1dDogeyBwYXNzd29yZCB9IH0sXG4gICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG5ldyBwYXNzd29yZCBieSB0b2tlblxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5cbiAgICogQHBhcmFtIHBhc3N3b3JkXG4gICAqL1xuICByZXNldFBhc3N3b3JkKHRva2VuOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdyZXNldFBhc3N3b3JkJywge1xuICAgICAgYXJndW1lbnRzOiB7IHRva2VuLCBwYXNzd29yZCB9LFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgdXNlciBieSBpZFxuICAgKlxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIGRlbGV0ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgnZGVsZXRlVXNlcicsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpZCB9LFxuICAgICAgZmllbGRzOiBbJ2lkJ10sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmeSB1c2VyIGJ5IHRva2VuXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlblxuICAgKi9cbiAgdmVyaWZ5VXNlcih0b2tlbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgndmVyaWZ5VXNlcicsIHtcbiAgICAgIGFyZ3VtZW50czogeyB0b2tlbiB9LFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19