@lenne.tech/ng-base 17.0.1 → 18.1.1

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 (128) hide show
  1. package/base-cms/pages/base-cms/base-cms.component.d.ts +1 -1
  2. package/base-cms/public-api.d.ts +0 -1
  3. package/base-components/components/breadcrumb/breadcrumb.component.d.ts +1 -1
  4. package/base-components/components/change-password/change-password.component.d.ts +1 -1
  5. package/base-components/components/checkbox/checkbox.component.d.ts +1 -1
  6. package/base-components/components/delete-account/delete-account.component.d.ts +1 -1
  7. package/base-components/components/fab-button/fab-button.component.d.ts +1 -1
  8. package/base-components/components/input/input.component.d.ts +1 -1
  9. package/base-components/components/model-form/model-form-base.component.d.ts +1 -1
  10. package/base-components/components/model-form/model-form.component.d.ts +1 -1
  11. package/base-components/components/model-form-sub/model-form-sub.component.d.ts +1 -1
  12. package/base-components/components/model-table/model-table.component.d.ts +1 -1
  13. package/base-components/components/refence-input/refence-input.component.d.ts +1 -1
  14. package/base-components/components/select/select.component.d.ts +1 -1
  15. package/base-components/components/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  16. package/base-components/components/tags/tags.component.d.ts +1 -1
  17. package/base-components/components/textarea/textarea.component.d.ts +1 -1
  18. package/base-components/components/toast/toast.component.d.ts +1 -1
  19. package/base-components/components/upload-image/upload-image.component.d.ts +1 -1
  20. package/base-components/directives/back-button.directive.d.ts +1 -1
  21. package/base-components/directives/context-menu.directive.d.ts +1 -1
  22. package/base-components/directives/sort.directive.d.ts +1 -1
  23. package/base-components/directives/stop-propagation.directive.d.ts +1 -1
  24. package/base-components/pipes/ellipses.pipe.d.ts +1 -1
  25. package/base-components/public-api.d.ts +0 -1
  26. package/base-prototype/pages/email-verification/email-verification.component.d.ts +1 -1
  27. package/base-prototype/pages/forgot-password/forgot-password.component.d.ts +1 -1
  28. package/base-prototype/pages/login/login.component.d.ts +1 -1
  29. package/base-prototype/pages/profile/profile.component.d.ts +1 -1
  30. package/base-prototype/pages/register/register.component.d.ts +2 -2
  31. package/base-prototype/pages/set-password/set-password.component.d.ts +1 -1
  32. package/base-prototype/public-api.d.ts +0 -1
  33. package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +14 -8
  34. package/esm2022/base-cms/public-api.mjs +1 -3
  35. package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +10 -7
  36. package/esm2022/base-components/components/change-password/change-password.component.mjs +11 -9
  37. package/esm2022/base-components/components/checkbox/checkbox.component.mjs +10 -6
  38. package/esm2022/base-components/components/delete-account/delete-account.component.mjs +5 -6
  39. package/esm2022/base-components/components/fab-button/fab-button.component.mjs +11 -7
  40. package/esm2022/base-components/components/input/input.component.mjs +10 -6
  41. package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +5 -6
  42. package/esm2022/base-components/components/model-form/model-form-base.component.mjs +5 -4
  43. package/esm2022/base-components/components/model-form/model-form.component.mjs +17 -10
  44. package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +20 -13
  45. package/esm2022/base-components/components/model-table/model-table.component.mjs +23 -14
  46. package/esm2022/base-components/components/refence-input/refence-input.component.mjs +13 -7
  47. package/esm2022/base-components/components/select/select.component.mjs +10 -6
  48. package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +8 -6
  49. package/esm2022/base-components/components/tags/tags.component.mjs +11 -7
  50. package/esm2022/base-components/components/textarea/textarea.component.mjs +10 -6
  51. package/esm2022/base-components/components/toast/toast.component.mjs +7 -6
  52. package/esm2022/base-components/components/upload-image/upload-image.component.mjs +13 -9
  53. package/esm2022/base-components/directives/back-button.directive.mjs +5 -4
  54. package/esm2022/base-components/directives/context-menu.directive.mjs +5 -4
  55. package/esm2022/base-components/directives/sort.directive.mjs +5 -4
  56. package/esm2022/base-components/directives/stop-propagation.directive.mjs +5 -4
  57. package/esm2022/base-components/pipes/ellipses.pipe.mjs +5 -4
  58. package/esm2022/base-components/public-api.mjs +1 -3
  59. package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +5 -6
  60. package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +12 -8
  61. package/esm2022/base-prototype/pages/login/login.component.mjs +12 -8
  62. package/esm2022/base-prototype/pages/profile/profile.component.mjs +8 -6
  63. package/esm2022/base-prototype/pages/register/register.component.mjs +14 -9
  64. package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +11 -9
  65. package/esm2022/base-prototype/public-api.mjs +1 -3
  66. package/esm2022/shared/classes/basic-user.class.mjs +1 -1
  67. package/esm2022/shared/classes/graphql-meta.class.mjs +1 -1
  68. package/esm2022/shared/classes/helper.class.mjs +1 -1
  69. package/esm2022/shared/classes/sort.class.mjs +1 -1
  70. package/esm2022/shared/classes/standard.class.mjs +1 -1
  71. package/esm2022/shared/functions/ws-client.function.mjs +1 -1
  72. package/esm2022/shared/services/auth.service.mjs +4 -4
  73. package/esm2022/shared/services/breadcrumb.service.mjs +4 -4
  74. package/esm2022/shared/services/cms.service.mjs +4 -4
  75. package/esm2022/shared/services/file.service.mjs +4 -4
  76. package/esm2022/shared/services/forms.service.mjs +4 -4
  77. package/esm2022/shared/services/graphql-meta.service.mjs +4 -4
  78. package/esm2022/shared/services/graphql-plus.service.mjs +4 -4
  79. package/esm2022/shared/services/graphql.service.mjs +7 -7
  80. package/esm2022/shared/services/image.service.mjs +4 -4
  81. package/esm2022/shared/services/loader.service.mjs +4 -4
  82. package/esm2022/shared/services/navigation.service.mjs +4 -4
  83. package/esm2022/shared/services/scroll.service.mjs +4 -4
  84. package/esm2022/shared/services/storage.service.mjs +4 -4
  85. package/esm2022/shared/services/toast.service.mjs +4 -4
  86. package/esm2022/shared/services/user.service.mjs +3 -3
  87. package/esm2022/shared/services/ws.service.mjs +3 -3
  88. package/esm2022/shared/validators/match.validator.mjs +1 -1
  89. package/esm2022/src/base.module.mjs +7 -40
  90. package/esm2022/src/decorators/auto-unsubscribe.decorator.mjs +1 -1
  91. package/esm2022/src/directives/lazy-load.directive.mjs +5 -4
  92. package/esm2022/src/directives/match-height.directive.mjs +5 -4
  93. package/esm2022/src/directives/resizable.directive.mjs +5 -4
  94. package/esm2022/src/factories/apollo-options.factory.mjs +1 -1
  95. package/esm2022/src/functions/extract-files.function.mjs +1 -1
  96. package/esm2022/src/guards/auth.guard.mjs +4 -4
  97. package/esm2022/src/guards/can-deactivate.guard.mjs +3 -3
  98. package/esm2022/src/guards/logout.guard.mjs +4 -4
  99. package/esm2022/src/pipes/date-ago.pipe.mjs +5 -4
  100. package/esm2022/src/pipes/safe-html.pipe.mjs +5 -5
  101. package/esm2022/src/services/fullscreen.service.mjs +4 -4
  102. package/esm2022/src/services/seo.service.mjs +4 -4
  103. package/esm2022/src/services/theme.service.mjs +4 -4
  104. package/fesm2022/lenne.tech-ng-base-base-cms.mjs +16 -93
  105. package/fesm2022/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  106. package/fesm2022/lenne.tech-ng-base-base-components.mjs +668 -697
  107. package/fesm2022/lenne.tech-ng-base-base-components.mjs.map +1 -1
  108. package/fesm2022/lenne.tech-ng-base-base-prototype.mjs +48 -74
  109. package/fesm2022/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  110. package/fesm2022/lenne.tech-ng-base-shared.mjs +51 -51
  111. package/fesm2022/lenne.tech-ng-base-shared.mjs.map +1 -1
  112. package/fesm2022/lenne.tech-ng-base.mjs +199 -223
  113. package/fesm2022/lenne.tech-ng-base.mjs.map +1 -1
  114. package/package.json +12 -12
  115. package/src/base.module.d.ts +2 -8
  116. package/src/directives/lazy-load.directive.d.ts +1 -1
  117. package/src/directives/match-height.directive.d.ts +1 -1
  118. package/src/directives/resizable.directive.d.ts +1 -1
  119. package/src/pipes/date-ago.pipe.d.ts +1 -1
  120. package/src/pipes/safe-html.pipe.d.ts +1 -1
  121. package/base-cms/base-cms-routing.module.d.ts +0 -7
  122. package/base-cms/base-cms.module.d.ts +0 -26
  123. package/base-components/base-components.module.d.ts +0 -32
  124. package/base-prototype/base-prototype.module.d.ts +0 -17
  125. package/esm2022/base-cms/base-cms-routing.module.mjs +0 -32
  126. package/esm2022/base-cms/base-cms.module.mjs +0 -60
  127. package/esm2022/base-components/base-components.module.mjs +0 -122
  128. package/esm2022/base-prototype/base-prototype.module.mjs +0 -53
@@ -1,12 +1,11 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { FormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
- import { securePasswordValidator, ToastType, Validation, } from '@lenne.tech/ng-base/shared';
2
+ import { FormControl, ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';
3
+ import { securePasswordValidator, ToastType, Validation } from '@lenne.tech/ng-base/shared';
4
+ import { InputComponent } from '@lenne.tech/ng-base/base-components';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@lenne.tech/ng-base/shared";
6
7
  import * as i2 from "@angular/router";
7
8
  import * as i3 from "@angular/forms";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "@lenne.tech/ng-base/base-components";
10
9
  export class SetPasswordComponent {
11
10
  formsService;
12
11
  userService;
@@ -77,13 +76,16 @@ export class SetPasswordComponent {
77
76
  },
78
77
  });
79
78
  }
80
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SetPasswordComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i1.ToastService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SetPasswordComponent, selector: "base-set-password", inputs: { redirectUrl: "redirectUrl" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column set-password-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort setzen</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".set-password-container{width:100%;padding:20px 0}@media (min-width: 768px){.set-password-container{max-width:400px}}\n"], dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.InputComponent, selector: "base-input", inputs: ["id", "name", "infoText", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton", "objectPath"], outputs: ["enter"] }] });
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SetPasswordComponent, deps: [{ token: i1.FormsService }, { token: i1.UserService }, { token: i1.ToastService }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: SetPasswordComponent, isStandalone: true, selector: "base-set-password", inputs: { redirectUrl: "redirectUrl" }, ngImport: i0, template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column set-password-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n @if (error) {\n <div class=\"alert alert-danger\" role=\"alert\">\n {{ error }}\n </div>\n }\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-grid gap-2 text-center\">\n @if (!loading) {\n <button class=\"btn btn-primary\" (click)=\"submit()\">Passwort setzen</button>\n }\n @if (loading) {\n <button class=\"btn btn-primary\" type=\"button\" disabled>\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n }\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".set-password-container{width:100%;padding:20px 0}@media (min-width: 768px){.set-password-container{max-width:400px}}\n"], dependencies: [{ kind: "component", type: InputComponent, selector: "base-input", inputs: ["id", "name", "infoText", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton", "objectPath"], outputs: ["enter"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
82
81
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SetPasswordComponent, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SetPasswordComponent, decorators: [{
84
83
  type: Component,
85
- args: [{ selector: 'base-set-password', template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column set-password-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"error\">\n {{ error }}\n </div>\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-grid gap-2 text-center\">\n <button class=\"btn btn-primary\" (click)=\"submit()\" *ngIf=\"!loading\">Passwort setzen</button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".set-password-container{width:100%;padding:20px 0}@media (min-width: 768px){.set-password-container{max-width:400px}}\n"] }]
84
+ args: [{ selector: 'base-set-password', standalone: true, imports: [
85
+ InputComponent,
86
+ ReactiveFormsModule
87
+ ], template: "<div class=\"d-flex justify-content-center align-items-center h-100 py-5\">\n <div class=\"d-flex flex-column set-password-container\">\n <div class=\"container\">\n <form [formGroup]=\"form\">\n @if (error) {\n <div class=\"alert alert-danger\" role=\"alert\">\n {{ error }}\n </div>\n }\n <base-input\n [id]=\"'password'\"\n [label]=\"'Passwort'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('password')\"\n [tabIndex]=\"1\"\n [eyeButton]=\"true\"\n ></base-input>\n <base-input\n [id]=\"'password-confirm'\"\n [label]=\"'Passwort best\u00E4tigen'\"\n [required]=\"true\"\n [type]=\"'password'\"\n [control]=\"form.get('passwordConfirm')\"\n [tabIndex]=\"2\"\n [eyeButton]=\"true\"\n ></base-input>\n\n <div class=\"d-grid gap-2 text-center\">\n @if (!loading) {\n <button class=\"btn btn-primary\" (click)=\"submit()\">Passwort setzen</button>\n }\n @if (loading) {\n <button class=\"btn btn-primary\" type=\"button\" disabled>\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n Loading...\n </button>\n }\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [".set-password-container{width:100%;padding:20px 0}@media (min-width: 768px){.set-password-container{max-width:400px}}\n"] }]
86
88
  }], ctorParameters: () => [{ type: i1.FormsService }, { type: i1.UserService }, { type: i1.ToastService }, { type: i2.ActivatedRoute }, { type: i2.Router }], propDecorators: { redirectUrl: [{
87
89
  type: Input
88
90
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1wcm90b3R5cGUvcGFnZXMvc2V0LXBhc3N3b3JkL3NldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3NldC1wYXNzd29yZC9zZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBYSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEdBQ1gsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQVFwQyxNQUFNLE9BQU8sb0JBQW9CO0lBUXJCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFYRCxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQzNCLElBQUksQ0FBWTtJQUNoQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLEtBQUssQ0FBUztJQUNkLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFWCxZQUNVLFlBQTBCLEVBQzFCLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLEtBQXFCLEVBQ3JCLE1BQWM7UUFKZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUs7Z0JBQ1Isd0dBQXdHLENBQUM7U0FDNUc7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDOUI7WUFDRSxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUM7WUFDdkYsZUFBZSxFQUFFLElBQUksV0FBVyxDQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1NBQy9GLEVBQ0QsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQVEsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3BGLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLFFBQVEsRUFBRTtvQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQzt3QkFDckIsRUFBRSxFQUFFLHNCQUFzQjt3QkFDMUIsS0FBSyxFQUFFLGFBQWE7d0JBQ3BCLFdBQVcsRUFBRSxtRUFBbUU7d0JBQ2hGLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTztxQkFDeEIsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQ3JCLEVBQUUsRUFBRSxvQkFBb0I7b0JBQ3hCLEtBQUssRUFBRSxnQkFBZ0I7b0JBQ3ZCLFdBQVcsRUFBRSxzRUFBc0U7b0JBQ25GLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSztpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBNUVVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLGlHQ2pCakMsKzFDQXFDQTs7MkZEcEJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7d0xBS3BCLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBGb3Jtc1NlcnZpY2UsXG4gIHNlY3VyZVBhc3N3b3JkVmFsaWRhdG9yLFxuICBUb2FzdFNlcnZpY2UsXG4gIFRvYXN0VHlwZSxcbiAgVXNlclNlcnZpY2UsXG4gIFZhbGlkYXRpb24sXG59IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXNldC1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXQtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWRpcmVjdFVybCA9ICcvJztcbiAgZm9ybTogRm9ybUdyb3VwO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGVycm9yID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3Jtc1NlcnZpY2U6IEZvcm1zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudG9rZW4gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcz8udG9rZW47XG5cbiAgICBpZiAoIXRoaXMudG9rZW4pIHtcbiAgICAgIHRoaXMuZXJyb3IgPVxuICAgICAgICAnRGVyIExpbmsgaXN0IGFiZ2VsYXVmZW4gb2RlciB1bmfDvGx0aWcsIGJpdHRlIHByb2JpZXJlIGVzIHNww6R0ZXIgZXJuZXV0IG9kZXIgd2VuZGUgRGljaCBhbiBkZW4gU3VwcG9ydC4nO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBwYXNzd29yZCBjaGFuZ2UgZm9ybVxuICAgKi9cbiAgY3JlYXRlRm9ybSgpIHtcbiAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cChcbiAgICAgIHtcbiAgICAgICAgcGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgc2VjdXJlUGFzc3dvcmRWYWxpZGF0b3IoKV0pLFxuICAgICAgICBwYXNzd29yZENvbmZpcm06IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgc2VjdXJlUGFzc3dvcmRWYWxpZGF0b3IoKV0pLFxuICAgICAgfSxcbiAgICAgIFZhbGlkYXRpb24ubWF0Y2goJ3Bhc3N3b3JkJywgJ3Bhc3N3b3JkQ29uZmlybScpIGFzIGFueVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3VibWl0IGZvcm0gYW5kIGNoYW5nZSBwYXNzd29yZCBvZiB1c2VyXG4gICAqL1xuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5mb3Jtc1NlcnZpY2UudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlc2V0UGFzc3dvcmQodGhpcy50b2tlbiwgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgIGlkOiAnc2V0LXBhc3N3b3JkLXN1Y2Nlc3MnLFxuICAgICAgICAgICAgdGl0bGU6ICdFcmZvbGdyZWljaCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Bhc3N3b3J0IHd1cmRlIGVyZm9sZ3JlaWNoIGdlc2V0enQuIER1IGthbm5zdCBEaWNoIG51biBlaW5sb2dnZW4uJyxcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5TVUNDRVNTLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucmVkaXJlY3RVcmxdKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgaWQ6ICdzZXQtcGFzc3dvcmQtZXJyb3InLFxuICAgICAgICAgIHRpdGxlOiAnRmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGFzc3dvcnQgc2V0emVuIGlzdCBmZWhsZ2VzY2hsYWdlbiwgYml0dGUgdmVyc3VjaGUgZXMgc3DDpHRlciBlcm5ldXQuJyxcbiAgICAgICAgICB0eXBlOiBUb2FzdFR5cGUuRVJST1IsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBoLTEwMCBweS01XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gc2V0LXBhc3N3b3JkLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJlcnJvclwiPlxuICAgICAgICAgIHt7IGVycm9yIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgIFtpZF09XCIncGFzc3dvcmQnXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ1Bhc3N3b3J0J1wiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KCdwYXNzd29yZCcpXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiMVwiXG4gICAgICAgICAgW2V5ZUJ1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICBbaWRdPVwiJ3Bhc3N3b3JkLWNvbmZpcm0nXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ1Bhc3N3b3J0IGJlc3TDpHRpZ2VuJ1wiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KCdwYXNzd29yZENvbmZpcm0nKVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cIjJcIlxuICAgICAgICAgIFtleWVCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBnYXAtMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic3VibWl0KClcIiAqbmdJZj1cIiFsb2FkaW5nXCI+UGFzc3dvcnQgc2V0emVuPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBkaXNhYmxlZCAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc21cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgTG9hZGluZy4uLlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1wcm90b3R5cGUvcGFnZXMvc2V0LXBhc3N3b3JkL3NldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtcHJvdG90eXBlL3BhZ2VzL3NldC1wYXNzd29yZC9zZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1gsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7O0FBWXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFRckI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVhELFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDM0IsSUFBSSxDQUFZO0lBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsS0FBSyxDQUFTO0lBQ2QsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUVYLFlBQ1UsWUFBMEIsRUFDMUIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsTUFBYztRQUpkLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDckIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSztnQkFDUix3R0FBd0csQ0FBQztRQUM3RyxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQzlCO1lBQ0UsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQztTQUMvRixFQUNELFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFRLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEYsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLEVBQUUsRUFBRSxzQkFBc0I7d0JBQzFCLEtBQUssRUFBRSxhQUFhO3dCQUNwQixXQUFXLEVBQUUsbUVBQW1FO3dCQUNoRixJQUFJLEVBQUUsU0FBUyxDQUFDLE9BQU87cUJBQ3hCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQ3JCLEVBQUUsRUFBRSxvQkFBb0I7b0JBQ3hCLEtBQUssRUFBRSxnQkFBZ0I7b0JBQ3ZCLFdBQVcsRUFBRSxzRUFBc0U7b0JBQ25GLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSztpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBNUVVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLHFIQ3ZCakMsNjZDQTJDQSxpTER4QkksY0FBYyw0TkFDZCxtQkFBbUI7OzJGQUdWLG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FHakIsSUFBSSxXQUNQO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3FCQUNwQjt3TEFHUSxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRm9ybXNTZXJ2aWNlLFxuICBzZWN1cmVQYXNzd29yZFZhbGlkYXRvcixcbiAgVG9hc3RTZXJ2aWNlLFxuICBUb2FzdFR5cGUsXG4gIFVzZXJTZXJ2aWNlLFxuICBWYWxpZGF0aW9uXG59IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2Utc2V0LXBhc3N3b3JkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NldC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NldC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNldFBhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVkaXJlY3RVcmwgPSAnLyc7XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICB0b2tlbjogc3RyaW5nO1xuICBlcnJvciA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRva2VuID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXM/LnRva2VuO1xuXG4gICAgaWYgKCF0aGlzLnRva2VuKSB7XG4gICAgICB0aGlzLmVycm9yID1cbiAgICAgICAgJ0RlciBMaW5rIGlzdCBhYmdlbGF1ZmVuIG9kZXIgdW5nw7xsdGlnLCBiaXR0ZSBwcm9iaWVyZSBlcyBzcMOkdGVyIGVybmV1dCBvZGVyIHdlbmRlIERpY2ggYW4gZGVuIFN1cHBvcnQuJztcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgcGFzc3dvcmQgY2hhbmdlIGZvcm1cbiAgICovXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHNlY3VyZVBhc3N3b3JkVmFsaWRhdG9yKCldKSxcbiAgICAgICAgcGFzc3dvcmRDb25maXJtOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHNlY3VyZVBhc3N3b3JkVmFsaWRhdG9yKCldKSxcbiAgICAgIH0sXG4gICAgICBWYWxpZGF0aW9uLm1hdGNoKCdwYXNzd29yZCcsICdwYXNzd29yZENvbmZpcm0nKSBhcyBhbnlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBmb3JtIGFuZCBjaGFuZ2UgcGFzc3dvcmQgb2YgdXNlclxuICAgKi9cbiAgc3VibWl0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51c2VyU2VydmljZS5yZXNldFBhc3N3b3JkKHRoaXMudG9rZW4sIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykudmFsdWUpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICBpZDogJ3NldC1wYXNzd29yZC1zdWNjZXNzJyxcbiAgICAgICAgICAgIHRpdGxlOiAnRXJmb2xncmVpY2gnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQYXNzd29ydCB3dXJkZSBlcmZvbGdyZWljaCBnZXNldHp0LiBEdSBrYW5uc3QgRGljaCBudW4gZWlubG9nZ2VuLicsXG4gICAgICAgICAgICB0eXBlOiBUb2FzdFR5cGUuU1VDQ0VTUyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJlZGlyZWN0VXJsXSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgIGlkOiAnc2V0LXBhc3N3b3JkLWVycm9yJyxcbiAgICAgICAgICB0aXRsZTogJ0ZlaGxnZXNjaGxhZ2VuJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Bhc3N3b3J0IHNldHplbiBpc3QgZmVobGdlc2NobGFnZW4sIGJpdHRlIHZlcnN1Y2hlIGVzIHNww6R0ZXIgZXJuZXV0LicsXG4gICAgICAgICAgdHlwZTogVG9hc3RUeXBlLkVSUk9SLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgaC0xMDAgcHktNVwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHNldC1wYXNzd29yZC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgQGlmIChlcnJvcikge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgICAgICAgIHt7IGVycm9yIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICBbaWRdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidQYXNzd29ydCdcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbdHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgncGFzc3dvcmQnKVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cIjFcIlxuICAgICAgICAgIFtleWVCdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgW2lkXT1cIidwYXNzd29yZC1jb25maXJtJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIidQYXNzd29ydCBiZXN0w6R0aWdlbidcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICBbdHlwZV09XCIncGFzc3dvcmQnXCJcbiAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldCgncGFzc3dvcmRDb25maXJtJylcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCIyXCJcbiAgICAgICAgICBbZXllQnV0dG9uXT1cInRydWVcIlxuICAgICAgICA+PC9iYXNlLWlucHV0PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgZ2FwLTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICBAaWYgKCFsb2FkaW5nKSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+UGFzc3dvcnQgc2V0emVuPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBkaXNhYmxlZD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbVwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgIExvYWRpbmcuLi5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,8 +1,6 @@
1
1
  /**
2
2
  * Exports for public API
3
3
  */
4
- // Module
5
- export * from './base-prototype.module';
6
4
  // Pages
7
5
  export * from './pages/login/login.component';
8
6
  export * from './pages/register/register.component';
@@ -10,4 +8,4 @@ export * from './pages/forgot-password/forgot-password.component';
10
8
  export * from './pages/profile/profile.component';
11
9
  export * from './pages/set-password/set-password.component';
12
10
  export * from './pages/email-verification/email-verification.component';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1wcm90b3R5cGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLFFBQVE7QUFDUixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5REFBeUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3J0cyBmb3IgcHVibGljIEFQSVxuICovXG5cbi8vIE1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLXByb3RvdHlwZS5tb2R1bGUnO1xuXG4vLyBQYWdlc1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9zZXQtcGFzc3dvcmQvc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VzL2VtYWlsLXZlcmlmaWNhdGlvbi9lbWFpbC12ZXJpZmljYXRpb24uY29tcG9uZW50JztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1wcm90b3R5cGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILFFBQVE7QUFDUixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5REFBeUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3J0cyBmb3IgcHVibGljIEFQSVxuICovXG4vLyBQYWdlc1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VzL3Byb2ZpbGUvcHJvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlcy9zZXQtcGFzc3dvcmQvc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VzL2VtYWlsLXZlcmlmaWNhdGlvbi9lbWFpbC12ZXJpZmljYXRpb24uY29tcG9uZW50JztcbiJdfQ==
@@ -46,4 +46,4 @@ export class BasicUser extends Standard {
46
46
  return !roles ? true : roles.every((role) => this.roles.includes(role));
47
47
  }
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtdXNlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxRQUFRO0lBQ3JDLEVBQUUsR0FBVyxTQUFTLENBQUM7SUFDdkIsS0FBSyxHQUFXLFNBQVMsQ0FBQztJQUMxQixNQUFNLEdBQVksU0FBUyxDQUFDO0lBQzVCLFNBQVMsR0FBVyxTQUFTLENBQUM7SUFDOUIsUUFBUSxHQUFXLFNBQVMsQ0FBQztJQUM3QixLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQ3JCLFFBQVEsR0FBVyxTQUFTLENBQUM7SUFFN0Isc0hBQXNIO0lBQ3RILFVBQVU7SUFDVixzSEFBc0g7SUFFdEg7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBNEM7UUFDckQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUMsS0FBd0I7UUFDckMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsS0FBd0I7UUFDekMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFuZGFyZCB9IGZyb20gJy4vc3RhbmRhcmQuY2xhc3MnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xuXG4vKipcbiAqIFVzZXIgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2ljVXNlciBleHRlbmRzIFN0YW5kYXJkIHtcbiAgaWQ6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgZW1haWw6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgYXZhdGFyPzogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBmaXJzdE5hbWU6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgbGFzdE5hbWU6IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgcm9sZXM6IHN0cmluZ1tdID0gW107XG4gIHVzZXJuYW1lOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTWFwcGluZ1xuICAgKi9cbiAgcHVibGljIG1hcChkYXRhOiBQYXJ0aWFsPHRoaXM+IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAgIEhlbHBlci5tYXAoZGF0YSwgdGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGF0IGxlYXN0IG9uZSBvZiB0aGUgcmVxdWlyZWQgcm9sZXNcbiAgICovXG4gIHB1YmxpYyBoYXNSb2xlKHJvbGVzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGlmICh0eXBlb2Ygcm9sZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuICAgIGlmICghdGhpcy5yb2xlcyB8fCB0aGlzLnJvbGVzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFyb2xlcyB8fCByb2xlcy5sZW5ndGggPCAxID8gdHJ1ZSA6IHRoaXMucm9sZXMuc29tZSgocm9sZSkgPT4gcm9sZXMuaW5jbHVkZXMocm9sZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhbGwgcmVxdWlyZWQgcm9sZXNcbiAgICovXG4gIHB1YmxpYyBoYXNBbGxSb2xlcyhyb2xlczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIHJvbGVzID09PSAnc3RyaW5nJykge1xuICAgICAgcm9sZXMgPSBbcm9sZXNdO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucm9sZXMgfHwgdGhpcy5yb2xlcy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhcm9sZXMgPyB0cnVlIDogcm9sZXMuZXZlcnkoKHJvbGUpID0+IHRoaXMucm9sZXMuaW5jbHVkZXMocm9sZSkpO1xuICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtdXNlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxRQUFRO0lBQ3JDLEVBQUUsR0FBVyxTQUFTLENBQUM7SUFDdkIsS0FBSyxHQUFXLFNBQVMsQ0FBQztJQUMxQixNQUFNLEdBQVksU0FBUyxDQUFDO0lBQzVCLFNBQVMsR0FBVyxTQUFTLENBQUM7SUFDOUIsUUFBUSxHQUFXLFNBQVMsQ0FBQztJQUM3QixLQUFLLEdBQWEsRUFBRSxDQUFDO0lBQ3JCLFFBQVEsR0FBVyxTQUFTLENBQUM7SUFFN0Isc0hBQXNIO0lBQ3RILFVBQVU7SUFDVixzSEFBc0g7SUFFdEg7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBNEM7UUFDckQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUMsS0FBd0I7UUFDckMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxLQUF3QjtRQUN6QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhbmRhcmQgfSBmcm9tICcuL3N0YW5kYXJkLmNsYXNzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4vaGVscGVyLmNsYXNzJztcblxuLyoqXG4gKiBVc2VyIGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNpY1VzZXIgZXh0ZW5kcyBTdGFuZGFyZCB7XG4gIGlkOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIGVtYWlsOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIGF2YXRhcj86IHN0cmluZyA9IHVuZGVmaW5lZDtcbiAgZmlyc3ROYW1lOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIGxhc3ROYW1lOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIHJvbGVzOiBzdHJpbmdbXSA9IFtdO1xuICB1c2VybmFtZTogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTWV0aG9kc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcHBpbmdcbiAgICovXG4gIHB1YmxpYyBtYXAoZGF0YTogUGFydGlhbDx0aGlzPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB0aGlzIHtcbiAgICBIZWxwZXIubWFwKGRhdGEsIHRoaXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhdCBsZWFzdCBvbmUgb2YgdGhlIHJlcXVpcmVkIHJvbGVzXG4gICAqL1xuICBwdWJsaWMgaGFzUm9sZShyb2xlczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIHJvbGVzID09PSAnc3RyaW5nJykge1xuICAgICAgcm9sZXMgPSBbcm9sZXNdO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucm9sZXMgfHwgdGhpcy5yb2xlcy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhcm9sZXMgfHwgcm9sZXMubGVuZ3RoIDwgMSA/IHRydWUgOiB0aGlzLnJvbGVzLnNvbWUoKHJvbGUpID0+IHJvbGVzLmluY2x1ZGVzKHJvbGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciB0aGUgdXNlciBoYXMgYWxsIHJlcXVpcmVkIHJvbGVzXG4gICAqL1xuICBwdWJsaWMgaGFzQWxsUm9sZXMocm9sZXM6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJvbGVzID0gW3JvbGVzXTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJvbGVzIHx8IHRoaXMucm9sZXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXJvbGVzID8gdHJ1ZSA6IHJvbGVzLmV2ZXJ5KChyb2xlKSA9PiB0aGlzLnJvbGVzLmluY2x1ZGVzKHJvbGUpKTtcbiAgfVxufVxuIl19
@@ -342,4 +342,4 @@ export class GraphQLMeta {
342
342
  return graphQLType;
343
343
  }
344
344
  }
345
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1tZXRhLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsV0FBVyxFQUVYLGNBQWMsRUFDZCxpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBUUE7SUFQdEIsZ0JBQWdCO0lBQ04sSUFBSSxHQUF3QixFQUFFLENBQUM7SUFDL0IsTUFBTSxHQUF3QixFQUFFLENBQUM7SUFFM0M7O09BRUc7SUFDSCxZQUFzQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE9BQU87WUFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNqRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN2RSxZQUFZLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2hG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QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzFCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxDQUFFLEtBQWEsQ0FBQyxZQUFZLEVBQUU7b0JBQ2hDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNsQzthQUNGO1NBQ0Y7UUFFRCxTQUFTO1FBQ1QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgR3JhcGhRTEVudW1UeXBlLFxuICBHcmFwaFFMSW5wdXRPYmplY3RUeXBlLFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5hbWVkVHlwZSxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxTY2FsYXJUeXBlLFxuICBHcmFwaFFMU2NoZW1hLFxufSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IEdyYXBoUUxSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xuaW1wb3J0IHsgR3JhcGhRTFR5cGUgfSBmcm9tICcuL2dyYXBocWwtdHlwZS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaHFsQ3J1ZFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyYXBocWwtY3J1ZC10eXBlLmludGVyZmFjZSc7XG5cbi8qKlxuICogR3JhcGhRTCBtZXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaFFMTWV0YSB7XG4gIC8vIEZyb3plbiBjYWNoZXNcbiAgcHJvdGVjdGVkIGFyZ3M6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgcHJvdGVjdGVkIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBJbnRlZ3JhdGUgc2NoZW1hXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2NoZW1hOiBHcmFwaFFMU2NoZW1hKSB7XG4gICAgaWYgKCFzY2hlbWEpIHtcbiAgICAgIHRocm93IEVycm9yKCdNaXNzaW5nIHNjaGVtYScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gb2JqZWN0IHdpdGggR3JhcGhRTFJlcXVlc3RUeXBlIChvcGVyYXRpb24gdHlwZSkgYXMga2V5cyBhbmQgbWV0aG9kIChmaWVsZHMpIG5hbWVzIGFzIHZhbHVlXG4gICAqL1xuICBnZXRNZXRob2ROYW1lcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeTogT2JqZWN0LmtleXModGhpcy5zY2hlbWEuZ2V0UXVlcnlUeXBlKCk/LmdldEZpZWxkcygpIHx8IHt9KSxcbiAgICAgIG11dGF0aW9uOiBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5nZXRNdXRhdGlvblR5cGUoKT8uZ2V0RmllbGRzKCkgfHwge30pLFxuICAgICAgc3Vic2NyaXB0aW9uOiBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5nZXRTdWJzY3JpcHRpb25UeXBlKCk/LmdldEZpZWxkcygpIHx8IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBHcmFwaFFMUmVxdWVzdFR5cGVzIChvcGVyYXRpb24gdHlwZXMpIHZpYSBtZXRob2QgKGZpZWxkKSBuYW1lXG4gICAqL1xuICBnZXRSZXF1ZXN0VHlwZXNWaWFNZXRob2QobWV0aG9kTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGNvbnN0IG1ldGhvZE5hbWVzID0gdGhpcy5nZXRNZXRob2ROYW1lcygpO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG1ldGhvZE5hbWVzKSkge1xuICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKG1ldGhvZE5hbWUpKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogV2UncmUgZ29pbmcgdG8gZ2V0IHRoZSBxdWVyeSBhbmQgbXV0YXRpb24gdHlwZXMgZnJvbSB0aGUgc2NoZW1hLCB0aGVuIHdlJ3JlIGdvaW5nIHRvIGxvb3AgdGhyb3VnaCB0aGUgZmllbGRzIG9mIGVhY2hcbiAgICogdHlwZSBhbmQgY2hlY2sgaWYgdGhlIGZpZWxkIG5hbWUgc3RhcnRzIHdpdGggYGZpbmRgLCBgY3JlYXRlYCwgYHVwZGF0ZWAsIG9yIGBkZWxldGVgLiBJZiBpdCBkb2VzLCB3ZSdyZSBnb2luZyB0byBhZGRcbiAgICogdGhlIG1vZGVsIG5hbWUgdG8gdGhlIGBwb3NzaWJsZVR5cGVzYCBhcnJheVxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vZGVsLCBhbmQgdGhlIENSVUQgb3BlcmF0aW9ucyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoYXQgbW9kZWwuXG4gICAqL1xuICBnZXRUeXBlcyhsb2dnaW5nID0gZmFsc2UpOiBHcmFwaHFsQ3J1ZFR5cGVbXSB7XG4gICAgY29uc3QgcG9zc2libGVUeXBlczogR3JhcGhxbENydWRUeXBlW10gPSBbXSBhcyBhbnk7XG4gICAgY29uc3QgbXV0YXRpb25UeXBlID0gdGhpcy5zY2hlbWEuZ2V0TXV0YXRpb25UeXBlKCk7XG4gICAgY29uc3QgcXVlcnlUeXBlID0gdGhpcy5zY2hlbWEuZ2V0UXVlcnlUeXBlKCk7XG5cbiAgICBpZiAobG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+cXVlcnlUeXBlRmllbGRzJywgcXVlcnlUeXBlLmdldEZpZWxkcygpKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhxdWVyeVR5cGUuZ2V0RmllbGRzKCkpKSB7XG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2ZpbmQnKSkge1xuICAgICAgICBwb3NzaWJsZVR5cGVzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGtleS5zcGxpdCgnZmluZCcpLnBvcCgpLnNsaWNlKDAsIC0xKSxcbiAgICAgICAgICBjcmVhdGU6IGZhbHNlLFxuICAgICAgICAgIHVwZGF0ZTogZmFsc2UsXG4gICAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgICBkdXBsaWNhdGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+bXV0YXRpb25UeXBlRmllbGRzJywgbXV0YXRpb25UeXBlLmdldEZpZWxkcygpKTtcbiAgICAgIGNvbnNvbGUubG9nKCdHcmFwaFFMTWV0YTo6Z2V0VHlwZXMtPnBvc3NpYmxlVHlwZXMnLCBwb3NzaWJsZVR5cGVzKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhtdXRhdGlvblR5cGUuZ2V0RmllbGRzKCkpKSB7XG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2NyZWF0ZScpKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0ga2V5LnNwbGl0KCdjcmVhdGUnKS5wb3AoKTtcbiAgICAgICAgaWYgKHBvc3NpYmxlVHlwZXMuZmluZCgoZSkgPT4gZS5uYW1lID09PSBtb2RlbCkpIHtcbiAgICAgICAgICBwb3NzaWJsZVR5cGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbW9kZWwpLmNyZWF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKCd1cGRhdGUnKSkge1xuICAgICAgICBjb25zdCBtb2RlbCA9IGtleS5zcGxpdCgndXBkYXRlJykucG9wKCk7XG4gICAgICAgIGlmIChwb3NzaWJsZVR5cGVzLmZpbmQoKGUpID0+IGUubmFtZSA9PT0gbW9kZWwpKSB7XG4gICAgICAgICAgcG9zc2libGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IG1vZGVsKS51cGRhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZGVsZXRlJykpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBrZXkuc3BsaXQoJ2RlbGV0ZScpLnBvcCgpO1xuICAgICAgICBpZiAocG9zc2libGVUeXBlcy5maW5kKChlKSA9PiBlLm5hbWUgPT09IG1vZGVsKSkge1xuICAgICAgICAgIHBvc3NpYmxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBtb2RlbCkuZGVsZXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ2R1cGxpY2F0ZScpKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0ga2V5LnNwbGl0KCdkdXBsaWNhdGUnKS5wb3AoKTtcbiAgICAgICAgaWYgKHBvc3NpYmxlVHlwZXMuZmluZCgoZSkgPT4gZS5uYW1lID09PSBtb2RlbCkpIHtcbiAgICAgICAgICBwb3NzaWJsZVR5cGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbW9kZWwpLmR1cGxpY2F0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+cG9zc2libGVUeXBlcycsIHBvc3NpYmxlVHlwZXMpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICdHcmFwaFFMTWV0YTo6Z2V0VHlwZXMtPmZpbHRlcmVkUG9zc2libGVUeXBlcycsXG4gICAgICAgIHBvc3NpYmxlVHlwZXMuZmlsdGVyKChlKSA9PiBlLmNyZWF0ZSB8fCBlLnVwZGF0ZSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvc3NpYmxlVHlwZXMuZmlsdGVyKChlKSA9PiBlLmNyZWF0ZSB8fCBlLnVwZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFyZ3VtZW50cyBvZiBHcmFwaFFMIGZ1bmN0aW9uXG4gICAqL1xuICBnZXRBcmdzKFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgY2FjaGU/OiBib29sZWFuOyBmcmVlemU/OiBib29sZWFuOyB0eXBlPzogR3JhcGhRTFJlcXVlc3RUeXBlIH0gPSB7fVxuICApOiBHcmFwaFFMVHlwZSB7XG4gICAgY29uc3QgeyBjYWNoZSwgZnJlZXplLCB0eXBlIH0gPSB7XG4gICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgIGZyZWV6ZTogdHJ1ZSxcbiAgICAgIHR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEdldCBjYWNoZVxuICAgIGlmIChjYWNoZSAmJiBmcmVlemUpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLmFyZ3NbZnVuY3Rpb25OYW1lICsgdHlwZV07XG4gICAgICBpZiAoYXJncykge1xuICAgICAgICByZXR1cm4gYXJncztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmdW5jID0gdGhpcy5nZXRGdW5jdGlvbihmdW5jdGlvbk5hbWUsIHsgdHlwZSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgR3JhcGhRTFR5cGUoKTtcbiAgICBpZiAoZnVuYz8uYXJncykge1xuICAgICAgZnVuYy5hcmdzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgcmVzdWx0LmZpZWxkc1tpdGVtLm5hbWVdID0gdGhpcy5nZXREZWVwVHlwZShpdGVtLnR5cGUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGNhY2hlXG4gICAgaWYgKGZyZWV6ZSkge1xuICAgICAgdGhpcy5hcmdzW2Z1bmN0aW9uTmFtZSArIHR5cGVdID0gSGVscGVyLmRlZXBGcmVlemUocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZHMgb2YgR3JhcGhRTCBmdW5jdGlvblxuICAgKi9cbiAgZ2V0RmllbGRzKFxuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHsgY2FjaGU/OiBib29sZWFuOyBmcmVlemU/OiBib29sZWFuOyB0eXBlPzogR3JhcGhRTFJlcXVlc3RUeXBlIH0gPSB7fVxuICApOiBHcmFwaFFMVHlwZSB7XG4gICAgY29uc3QgeyBjYWNoZSwgZnJlZXplLCB0eXBlIH0gPSB7XG4gICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgIGZyZWV6ZTogdHJ1ZSxcbiAgICAgIHR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEdldCBjYWNoZVxuICAgIGlmIChjYWNoZSAmJiBmcmVlemUpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSB0aGlzLmZpZWxkc1tmdW5jdGlvbk5hbWUgKyB0eXBlXTtcbiAgICAgIGlmIChhcmdzKSB7XG4gICAgICAgIHJldHVybiBhcmdzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmdldEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgb3B0aW9ucyk7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXREZWVwVHlwZShmdW5jLnR5cGUpO1xuXG4gICAgLy8gU2V0IGNhY2hlXG4gICAgaWYgKGZyZWV6ZSkge1xuICAgICAgdGhpcy5maWVsZHNbZnVuY3Rpb25OYW1lICsgdHlwZV0gPSBIZWxwZXIuZGVlcEZyZWV6ZShyZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEdyYXBoUUwgZnVuY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBnZXRGdW5jdGlvbihuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IHsgdHlwZT86IEdyYXBoUUxSZXF1ZXN0VHlwZSB9ID0ge30pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAvLyBTZXQgY29uZmlnXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gSW5pdCBwb3NzaWJsZSBmdW5jdGlvbnNcbiAgICBsZXQgZnVuY3Rpb25zID0ge307XG5cbiAgICAvLyBJZiBmdW5jdGlvbiB0eXBlIGlzIHNldFxuICAgIGlmIChjb25maWcudHlwZSkge1xuICAgICAgY29uc3QgZ3JhcGhRTFR5cGUgPSBjb25maWcudHlwZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNvbmZpZy50eXBlLnNsaWNlKDEpO1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMuc2NoZW1hLmdldFR5cGUoZ3JhcGhRTFR5cGUpO1xuICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgZnVuY3Rpb25zID0gKHR5cGUgYXMgYW55KS5nZXRGaWVsZHMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBmdW5jdGlvbiB0eXBlIGlzIG5vdCBzZXRcbiAgICBlbHNlIHtcbiAgICAgIFsnU3Vic2NyaXB0aW9uJywgJ011dGF0aW9uJywgJ1F1ZXJ5J10uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlOiBhbnkgPSB0aGlzLnNjaGVtYS5nZXRUeXBlKGl0ZW0pO1xuICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgIGZ1bmN0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLmZ1bmN0aW9ucyxcbiAgICAgICAgICAgIC4uLih0eXBlLmdldEZpZWxkcygpIHx8IHt9KSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBHZXQgZnVuY3Rpb24gdmlhIG5hbWVcbiAgICByZXR1cm4gZnVuY3Rpb25zW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0eXBlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHlwZShuYW1lOiBzdHJpbmcpOiBHcmFwaFFMTmFtZWRUeXBlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hLmdldFR5cGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IChkZWVwKSB0eXBlIG5hbWVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUeXBlTmFtZSh0eXBlOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSB8fFxuICAgICAgdHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxTY2FsYXJUeXBlIHx8XG4gICAgICB0eXBlIGluc3RhbmNlb2YgR3JhcGhRTEVudW1UeXBlXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHlwZS5uYW1lO1xuICAgIH0gZWxzZSBpZiAodHlwZS50eXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRUeXBlTmFtZSh0eXBlLnR5cGUpO1xuICAgIH0gZWxzZSBpZiAodHlwZS5vZlR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGVOYW1lKHR5cGUub2ZUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHR5cGUubmFtZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlZXAgdHlwZSBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RGVlcFR5cGUodHlwZTogYW55LCBwcmVwYXJlZDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LCBzZXRNZXRhRGF0YSA9IGZhbHNlKTogR3JhcGhRTFR5cGUge1xuICAgIC8vIENoZWNrIHR5cGVcbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIC8vIEluZmluaXRlIHJlZ3Jlc3MgcHJvdGVjdGlvblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy5nZXRUeXBlTmFtZSh0eXBlKTtcbiAgICBjb25zdCBncmFwaFFMVHlwZSA9IEdyYXBoUUxUeXBlLm1hcCh7XG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVOYW1lKHR5cGUpLFxuICAgIH0pO1xuXG4gICAgLy8gQ2hlY2sgcHJlcGFyZWRcbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBwcmVwYXJlZFR5cGUgPSBwcmVwYXJlZFt0eXBlTmFtZV07XG5cbiAgICAgIC8vIFdvcmsgd2l0aCBjYWNoZWQgdHlwZVxuICAgICAgaWYgKHByZXBhcmVkVHlwZSkge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgb2JqZWN0IHRvIHByb3RlY3Qgb3duIGlzWFhYIGluZm9ybWF0aW9uXG4gICAgICAgIGNvbnN0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgcHJlcGFyZWRUeXBlKTtcblxuICAgICAgICAvLyBCdXQgdXNlIGZpZWxkcyBhcyByZWZlcmVuY2UgdG8gZ2V0IGZ1dHVyZSBjaGFuZ2VzIHZpYSBwcmVwYXJlZCBjYWNoaW5nXG4gICAgICAgIGNsb25lLmZpZWxkcyA9IHByZXBhcmVkVHlwZS5maWVsZHM7XG5cbiAgICAgICAgLy8gRGlzYWJsZSBtZXRhIGZsYWdzIGZvciBzdWIgb2JqZWN0c1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdHlwZT8udHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgfHxcbiAgICAgICAgICAodHlwZT8udHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsICYmIHR5cGU/LnR5cGU/Lm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgJiYgc2V0TWV0YURhdGEpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldE1ldGFEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgbWV0YSBmbGFnc1xuICAgICAgICBpZiAodHlwZS50eXBlICYmIHNldE1ldGFEYXRhKSB7XG4gICAgICAgICAgaWYgKHR5cGUudHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsKSB7XG4gICAgICAgICAgICBjbG9uZS5pc1JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0eXBlLnR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTExpc3QpIHtcbiAgICAgICAgICAgICAgY2xvbmUuaXNMaXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY2xvbmUuaXNJdGVtUmVxdWlyZWQgPSB0eXBlLnR5cGUub2ZUeXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2xvbmUuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNsb25lLmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsb25lLmlzUmVxdWlyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgLy8gTGlzdCBmaXJzdFxuICAgICAgICAgICAgaWYgKHR5cGUudHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxMaXN0KSB7XG4gICAgICAgICAgICAgIGNsb25lLmlzTGlzdCA9IHRydWU7XG4gICAgICAgICAgICAgIGNsb25lLmlzSXRlbVJlcXVpcmVkID0gdHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNsb25lLmlzTGlzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICBjbG9uZS5pc0l0ZW1SZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbG9uZTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IHByZXBhcmVkIGNhY2hlIGZvciBHcmFwaFFMIHR5cGVzXG4gICAgICAvLyAodHlwZSBuYW1lcyBzdGFydCB3aXRoIHVwcGVyY2FzZSBsZXR0ZXJzIGFzIG9wcG9zZWQgdG8gcHJvcGVydHkgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGxvd2VyY2FzZSBsZXR0ZXJzKVxuICAgICAgaWYgKHR5cGUubmFtZSAmJiB0eXBlLm5hbWVbMF0udG9VcHBlckNhc2UoKSA9PT0gdHlwZS5uYW1lWzBdICYmICFwcmVwYXJlZFt0eXBlLm5hbWVdKSB7XG4gICAgICAgIHByZXBhcmVkW3R5cGUubmFtZV0gPSBncmFwaFFMVHlwZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggZGVlcGVyXG4gICAgaWYgKHR5cGUub2ZUeXBlKSB7XG4gICAgICBjb25zdCBvZlR5cGVSZXN1bHQgPSB0aGlzLmdldERlZXBUeXBlKHR5cGUub2ZUeXBlLCBwcmVwYXJlZCwgc2V0TWV0YURhdGEpO1xuICAgICAgT2JqZWN0LmFzc2lnbihncmFwaFFMVHlwZSwgb2ZUeXBlUmVzdWx0KTtcbiAgICAgIHJldHVybiBncmFwaFFMVHlwZTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGZpZWxkc1xuICAgIGlmICh0eXBlLl9maWVsZHMpIHtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModHlwZS5fZmllbGRzKSkge1xuICAgICAgICBmaWVsZHNba2V5XSA9IHRoaXMuZ2V0RGVlcFR5cGUodmFsdWUsIHByZXBhcmVkLCB0cnVlKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXNzaWduIGFuZCBub3QgcmVwbGFjZSB0byBwcmVzZXJ2ZSB1cGRhdGVzIGluIHRoZSBjYWNoZVxuICAgICAgT2JqZWN0LmFzc2lnbihncmFwaFFMVHlwZS5maWVsZHMsIGZpZWxkcyk7XG4gICAgICByZXR1cm4gZ3JhcGhRTFR5cGU7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyB0eXBlXG4gICAgaWYgKHR5cGUudHlwZSkge1xuICAgICAgY29uc3QgdHlwZVJlc3VsdCA9IHRoaXMuZ2V0RGVlcFR5cGUodHlwZS50eXBlLCBwcmVwYXJlZCwgc2V0TWV0YURhdGEpO1xuXG4gICAgICAvLyBEaXNhYmxlIG1ldGEgZmxhZ3MgZm9yIHN1YiBvYmplY3RzXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGU/LnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHx8XG4gICAgICAgICh0eXBlPy50eXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGwgJiYgdHlwZT8udHlwZT8ub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSAmJiBzZXRNZXRhRGF0YSlcbiAgICAgICkge1xuICAgICAgICBzZXRNZXRhRGF0YSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBmb3IgbWV0YSBmbGFnc1xuICAgICAgaWYgKHNldE1ldGFEYXRhKSB7XG4gICAgICAgIGlmICh0eXBlLnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbCkge1xuICAgICAgICAgIHR5cGVSZXN1bHQuaXNSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHR5cGUudHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTGlzdCkge1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0xpc3QgPSB0cnVlO1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0l0ZW1SZXF1aXJlZCA9IHR5cGUudHlwZS5vZlR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHR5cGVSZXN1bHQuaXNSZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgLy8gTGlzdCBmaXJzdFxuICAgICAgICAgIGlmICh0eXBlLnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTGlzdCkge1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0xpc3QgPSB0cnVlO1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0l0ZW1SZXF1aXJlZCA9IHR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oZ3JhcGhRTFR5cGUsIHR5cGVSZXN1bHQpO1xuICAgICAgcmV0dXJuIGdyYXBoUUxUeXBlO1xuICAgIH1cblxuICAgIC8vIFNldCBlbnVtIHZhbHVlc1xuICAgIGlmICghIXR5cGUuX3ZhbHVlcykge1xuICAgICAgZ3JhcGhRTFR5cGUuaXNFbnVtID0gdHJ1ZTtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGUuX25hbWVMb29rdXApKSB7XG4gICAgICAgIGlmICghKHZhbHVlIGFzIGFueSkuaXNEZXByZWNhdGVkKSB7XG4gICAgICAgICAgZ3JhcGhRTFR5cGUudmFsaWRFbnVtcy5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5pc2hcbiAgICByZXR1cm4gZ3JhcGhRTFR5cGU7XG4gIH1cbn1cbiJdfQ==
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1tZXRhLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsV0FBVyxFQUVYLGNBQWMsRUFDZCxpQkFBaUIsR0FFbEIsTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUduRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBUUE7SUFQdEIsZ0JBQWdCO0lBQ04sSUFBSSxHQUF3QixFQUFFLENBQUM7SUFDL0IsTUFBTSxHQUF3QixFQUFFLENBQUM7SUFFM0M7O09BRUc7SUFDSCxZQUFzQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDakUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdkUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUs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SSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hELGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbEUsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hELGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbEUsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hELGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDckUsQ0FB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Y2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBHcmFwaFFMRW51bVR5cGUsXG4gIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsXG4gIEdyYXBoUUxMaXN0LFxuICBHcmFwaFFMTmFtZWRUeXBlLFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTFNjYWxhclR5cGUsXG4gIEdyYXBoUUxTY2hlbWEsXG59IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuL2hlbHBlci5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaFFMVHlwZSB9IGZyb20gJy4vZ3JhcGhxbC10eXBlLmNsYXNzJztcbmltcG9ydCB7IEdyYXBocWxDcnVkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3JhcGhxbC1jcnVkLXR5cGUuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBHcmFwaFFMIG1ldGFcbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoUUxNZXRhIHtcbiAgLy8gRnJvemVuIGNhY2hlc1xuICBwcm90ZWN0ZWQgYXJnczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBwcm90ZWN0ZWQgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgLyoqXG4gICAqIEludGVncmF0ZSBzY2hlbWFcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY2hlbWE6IEdyYXBoUUxTY2hlbWEpIHtcbiAgICBpZiAoIXNjaGVtYSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ01pc3Npbmcgc2NoZW1hJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBvYmplY3Qgd2l0aCBHcmFwaFFMUmVxdWVzdFR5cGUgKG9wZXJhdGlvbiB0eXBlKSBhcyBrZXlzIGFuZCBtZXRob2QgKGZpZWxkcykgbmFtZXMgYXMgdmFsdWVcbiAgICovXG4gIGdldE1ldGhvZE5hbWVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHF1ZXJ5OiBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5nZXRRdWVyeVR5cGUoKT8uZ2V0RmllbGRzKCkgfHwge30pLFxuICAgICAgbXV0YXRpb246IE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLmdldE11dGF0aW9uVHlwZSgpPy5nZXRGaWVsZHMoKSB8fCB7fSksXG4gICAgICBzdWJzY3JpcHRpb246IE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLmdldFN1YnNjcmlwdGlvblR5cGUoKT8uZ2V0RmllbGRzKCkgfHwge30pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IEdyYXBoUUxSZXF1ZXN0VHlwZXMgKG9wZXJhdGlvbiB0eXBlcykgdmlhIG1ldGhvZCAoZmllbGQpIG5hbWVcbiAgICovXG4gIGdldFJlcXVlc3RUeXBlc1ZpYU1ldGhvZChtZXRob2ROYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgY29uc3QgbWV0aG9kTmFtZXMgPSB0aGlzLmdldE1ldGhvZE5hbWVzKCk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobWV0aG9kTmFtZXMpKSB7XG4gICAgICBpZiAodmFsdWUuaW5jbHVkZXMobWV0aG9kTmFtZSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXZSdyZSBnb2luZyB0byBnZXQgdGhlIHF1ZXJ5IGFuZCBtdXRhdGlvbiB0eXBlcyBmcm9tIHRoZSBzY2hlbWEsIHRoZW4gd2UncmUgZ29pbmcgdG8gbG9vcCB0aHJvdWdoIHRoZSBmaWVsZHMgb2YgZWFjaFxuICAgKiB0eXBlIGFuZCBjaGVjayBpZiB0aGUgZmllbGQgbmFtZSBzdGFydHMgd2l0aCBgZmluZGAsIGBjcmVhdGVgLCBgdXBkYXRlYCwgb3IgYGRlbGV0ZWAuIElmIGl0IGRvZXMsIHdlJ3JlIGdvaW5nIHRvIGFkZFxuICAgKiB0aGUgbW9kZWwgbmFtZSB0byB0aGUgYHBvc3NpYmxlVHlwZXNgIGFycmF5XG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9kZWwsIGFuZCB0aGUgQ1JVRCBvcGVyYXRpb25zIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhhdCBtb2RlbC5cbiAgICovXG4gIGdldFR5cGVzKGxvZ2dpbmcgPSBmYWxzZSk6IEdyYXBocWxDcnVkVHlwZVtdIHtcbiAgICBjb25zdCBwb3NzaWJsZVR5cGVzOiBHcmFwaHFsQ3J1ZFR5cGVbXSA9IFtdIGFzIGFueTtcbiAgICBjb25zdCBtdXRhdGlvblR5cGUgPSB0aGlzLnNjaGVtYS5nZXRNdXRhdGlvblR5cGUoKTtcbiAgICBjb25zdCBxdWVyeVR5cGUgPSB0aGlzLnNjaGVtYS5nZXRRdWVyeVR5cGUoKTtcblxuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnR3JhcGhRTE1ldGE6OmdldFR5cGVzLT5xdWVyeVR5cGVGaWVsZHMnLCBxdWVyeVR5cGUuZ2V0RmllbGRzKCkpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5VHlwZS5nZXRGaWVsZHMoKSkpIHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZmluZCcpKSB7XG4gICAgICAgIHBvc3NpYmxlVHlwZXMucHVzaCh7XG4gICAgICAgICAgbmFtZToga2V5LnNwbGl0KCdmaW5kJykucG9wKCkuc2xpY2UoMCwgLTEpLFxuICAgICAgICAgIGNyZWF0ZTogZmFsc2UsXG4gICAgICAgICAgdXBkYXRlOiBmYWxzZSxcbiAgICAgICAgICBkZWxldGU6IGZhbHNlLFxuICAgICAgICAgIGR1cGxpY2F0ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnR3JhcGhRTE1ldGE6OmdldFR5cGVzLT5tdXRhdGlvblR5cGVGaWVsZHMnLCBtdXRhdGlvblR5cGUuZ2V0RmllbGRzKCkpO1xuICAgICAgY29uc29sZS5sb2coJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+cG9zc2libGVUeXBlcycsIHBvc3NpYmxlVHlwZXMpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG11dGF0aW9uVHlwZS5nZXRGaWVsZHMoKSkpIHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnY3JlYXRlJykpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBrZXkuc3BsaXQoJ2NyZWF0ZScpLnBvcCgpO1xuICAgICAgICBpZiAocG9zc2libGVUeXBlcy5maW5kKChlKSA9PiBlLm5hbWUgPT09IG1vZGVsKSkge1xuICAgICAgICAgIHBvc3NpYmxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBtb2RlbCkuY3JlYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ3VwZGF0ZScpKSB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0ga2V5LnNwbGl0KCd1cGRhdGUnKS5wb3AoKTtcbiAgICAgICAgaWYgKHBvc3NpYmxlVHlwZXMuZmluZCgoZSkgPT4gZS5uYW1lID09PSBtb2RlbCkpIHtcbiAgICAgICAgICBwb3NzaWJsZVR5cGVzLmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gbW9kZWwpLnVwZGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGtleS5zdGFydHNXaXRoKCdkZWxldGUnKSkge1xuICAgICAgICBjb25zdCBtb2RlbCA9IGtleS5zcGxpdCgnZGVsZXRlJykucG9wKCk7XG4gICAgICAgIGlmIChwb3NzaWJsZVR5cGVzLmZpbmQoKGUpID0+IGUubmFtZSA9PT0gbW9kZWwpKSB7XG4gICAgICAgICAgcG9zc2libGVUeXBlcy5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IG1vZGVsKS5kZWxldGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnZHVwbGljYXRlJykpIHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBrZXkuc3BsaXQoJ2R1cGxpY2F0ZScpLnBvcCgpO1xuICAgICAgICBpZiAocG9zc2libGVUeXBlcy5maW5kKChlKSA9PiBlLm5hbWUgPT09IG1vZGVsKSkge1xuICAgICAgICAgIHBvc3NpYmxlVHlwZXMuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBtb2RlbCkuZHVwbGljYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnR3JhcGhRTE1ldGE6OmdldFR5cGVzLT5wb3NzaWJsZVR5cGVzJywgcG9zc2libGVUeXBlcyk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgJ0dyYXBoUUxNZXRhOjpnZXRUeXBlcy0+ZmlsdGVyZWRQb3NzaWJsZVR5cGVzJyxcbiAgICAgICAgcG9zc2libGVUeXBlcy5maWx0ZXIoKGUpID0+IGUuY3JlYXRlIHx8IGUudXBkYXRlKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zc2libGVUeXBlcy5maWx0ZXIoKGUpID0+IGUuY3JlYXRlIHx8IGUudXBkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYXJndW1lbnRzIG9mIEdyYXBoUUwgZnVuY3Rpb25cbiAgICovXG4gIGdldEFyZ3MoXG4gICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uczogeyBjYWNoZT86IGJvb2xlYW47IGZyZWV6ZT86IGJvb2xlYW47IHR5cGU/OiBHcmFwaFFMUmVxdWVzdFR5cGUgfSA9IHt9XG4gICk6IEdyYXBoUUxUeXBlIHtcbiAgICBjb25zdCB7IGNhY2hlLCBmcmVlemUsIHR5cGUgfSA9IHtcbiAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgZnJlZXplOiB0cnVlLFxuICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gR2V0IGNhY2hlXG4gICAgaWYgKGNhY2hlICYmIGZyZWV6ZSkge1xuICAgICAgY29uc3QgYXJncyA9IHRoaXMuYXJnc1tmdW5jdGlvbk5hbWUgKyB0eXBlXTtcbiAgICAgIGlmIChhcmdzKSB7XG4gICAgICAgIHJldHVybiBhcmdzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmdldEZ1bmN0aW9uKGZ1bmN0aW9uTmFtZSwgeyB0eXBlIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBHcmFwaFFMVHlwZSgpO1xuICAgIGlmIChmdW5jPy5hcmdzKSB7XG4gICAgICBmdW5jLmFyZ3MuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICByZXN1bHQuZmllbGRzW2l0ZW0ubmFtZV0gPSB0aGlzLmdldERlZXBUeXBlKGl0ZW0udHlwZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXQgY2FjaGVcbiAgICBpZiAoZnJlZXplKSB7XG4gICAgICB0aGlzLmFyZ3NbZnVuY3Rpb25OYW1lICsgdHlwZV0gPSBIZWxwZXIuZGVlcEZyZWV6ZShyZXN1bHQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGZpZWxkcyBvZiBHcmFwaFFMIGZ1bmN0aW9uXG4gICAqL1xuICBnZXRGaWVsZHMoXG4gICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uczogeyBjYWNoZT86IGJvb2xlYW47IGZyZWV6ZT86IGJvb2xlYW47IHR5cGU/OiBHcmFwaFFMUmVxdWVzdFR5cGUgfSA9IHt9XG4gICk6IEdyYXBoUUxUeXBlIHtcbiAgICBjb25zdCB7IGNhY2hlLCBmcmVlemUsIHR5cGUgfSA9IHtcbiAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgZnJlZXplOiB0cnVlLFxuICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gR2V0IGNhY2hlXG4gICAgaWYgKGNhY2hlICYmIGZyZWV6ZSkge1xuICAgICAgY29uc3QgYXJncyA9IHRoaXMuZmllbGRzW2Z1bmN0aW9uTmFtZSArIHR5cGVdO1xuICAgICAgaWYgKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZ2V0RnVuY3Rpb24oZnVuY3Rpb25OYW1lLCBvcHRpb25zKTtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldERlZXBUeXBlKGZ1bmMudHlwZSk7XG5cbiAgICAvLyBTZXQgY2FjaGVcbiAgICBpZiAoZnJlZXplKSB7XG4gICAgICB0aGlzLmZpZWxkc1tmdW5jdGlvbk5hbWUgKyB0eXBlXSA9IEhlbHBlci5kZWVwRnJlZXplKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgR3JhcGhRTCBmdW5jdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEZ1bmN0aW9uKG5hbWU6IHN0cmluZywgb3B0aW9uczogeyB0eXBlPzogR3JhcGhRTFJlcXVlc3RUeXBlIH0gPSB7fSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIC8vIFNldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBJbml0IHBvc3NpYmxlIGZ1bmN0aW9uc1xuICAgIGxldCBmdW5jdGlvbnMgPSB7fTtcblxuICAgIC8vIElmIGZ1bmN0aW9uIHR5cGUgaXMgc2V0XG4gICAgaWYgKGNvbmZpZy50eXBlKSB7XG4gICAgICBjb25zdCBncmFwaFFMVHlwZSA9IGNvbmZpZy50eXBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY29uZmlnLnR5cGUuc2xpY2UoMSk7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5zY2hlbWEuZ2V0VHlwZShncmFwaFFMVHlwZSk7XG4gICAgICBpZiAodHlwZSkge1xuICAgICAgICBmdW5jdGlvbnMgPSAodHlwZSBhcyBhbnkpLmdldEZpZWxkcygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIGZ1bmN0aW9uIHR5cGUgaXMgbm90IHNldFxuICAgIGVsc2Uge1xuICAgICAgWydTdWJzY3JpcHRpb24nLCAnTXV0YXRpb24nLCAnUXVlcnknXS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGU6IGFueSA9IHRoaXMuc2NoZW1hLmdldFR5cGUoaXRlbSk7XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgZnVuY3Rpb25zID0ge1xuICAgICAgICAgICAgLi4uZnVuY3Rpb25zLFxuICAgICAgICAgICAgLi4uKHR5cGUuZ2V0RmllbGRzKCkgfHwge30pLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEdldCBmdW5jdGlvbiB2aWEgbmFtZVxuICAgIHJldHVybiBmdW5jdGlvbnNbbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogR2V0IHR5cGVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUeXBlKG5hbWU6IHN0cmluZyk6IEdyYXBoUUxOYW1lZFR5cGUgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWEuZ2V0VHlwZShuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgKGRlZXApIHR5cGUgbmFtZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFR5cGVOYW1lKHR5cGU6IGFueSkge1xuICAgIGlmIChcbiAgICAgIHR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHx8XG4gICAgICB0eXBlIGluc3RhbmNlb2YgR3JhcGhRTFNjYWxhclR5cGUgfHxcbiAgICAgIHR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMRW51bVR5cGVcbiAgICApIHtcbiAgICAgIHJldHVybiB0eXBlLm5hbWU7XG4gICAgfSBlbHNlIGlmICh0eXBlLnR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGVOYW1lKHR5cGUudHlwZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlLm9mVHlwZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZU5hbWUodHlwZS5vZlR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHlwZS5uYW1lO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGVlcCB0eXBlIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCBnZXREZWVwVHlwZSh0eXBlOiBhbnksIHByZXBhcmVkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sIHNldE1ldGFEYXRhID0gZmFsc2UpOiBHcmFwaFFMVHlwZSB7XG4gICAgLy8gQ2hlY2sgdHlwZVxuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuXG4gICAgLy8gSW5maW5pdGUgcmVncmVzcyBwcm90ZWN0aW9uXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLmdldFR5cGVOYW1lKHR5cGUpO1xuICAgIGNvbnN0IGdyYXBoUUxUeXBlID0gR3JhcGhRTFR5cGUubWFwKHtcbiAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZU5hbWUodHlwZSksXG4gICAgfSk7XG5cbiAgICAvLyBDaGVjayBwcmVwYXJlZFxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IHByZXBhcmVkVHlwZSA9IHByZXBhcmVkW3R5cGVOYW1lXTtcblxuICAgICAgLy8gV29yayB3aXRoIGNhY2hlZCB0eXBlXG4gICAgICBpZiAocHJlcGFyZWRUeXBlKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBvYmplY3QgdG8gcHJvdGVjdCBvd24gaXNYWFggaW5mb3JtYXRpb25cbiAgICAgICAgY29uc3QgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCBwcmVwYXJlZFR5cGUpO1xuXG4gICAgICAgIC8vIEJ1dCB1c2UgZmllbGRzIGFzIHJlZmVyZW5jZSB0byBnZXQgZnV0dXJlIGNoYW5nZXMgdmlhIHByZXBhcmVkIGNhY2hpbmdcbiAgICAgICAgY2xvbmUuZmllbGRzID0gcHJlcGFyZWRUeXBlLmZpZWxkcztcblxuICAgICAgICAvLyBEaXNhYmxlIG1ldGEgZmxhZ3MgZm9yIHN1YiBvYmplY3RzXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlPy50eXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSB8fFxuICAgICAgICAgICh0eXBlPy50eXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGwgJiYgdHlwZT8udHlwZT8ub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTElucHV0T2JqZWN0VHlwZSAmJiBzZXRNZXRhRGF0YSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0TWV0YURhdGEgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciBtZXRhIGZsYWdzXG4gICAgICAgIGlmICh0eXBlLnR5cGUgJiYgc2V0TWV0YURhdGEpIHtcbiAgICAgICAgICBpZiAodHlwZS50eXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGwpIHtcbiAgICAgICAgICAgIGNsb25lLmlzUmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHR5cGUudHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTGlzdCkge1xuICAgICAgICAgICAgICBjbG9uZS5pc0xpc3QgPSB0cnVlO1xuICAgICAgICAgICAgICBjbG9uZS5pc0l0ZW1SZXF1aXJlZCA9IHR5cGUudHlwZS5vZlR5cGUub2ZUeXBlIGluc3RhbmNlb2YgR3JhcGhRTE5vbk51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjbG9uZS5pc0xpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY2xvbmUuaXNJdGVtUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xvbmUuaXNSZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBMaXN0IGZpcnN0XG4gICAgICAgICAgICBpZiAodHlwZS50eXBlIGluc3RhbmNlb2YgR3JhcGhRTExpc3QpIHtcbiAgICAgICAgICAgICAgY2xvbmUuaXNMaXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY2xvbmUuaXNJdGVtUmVxdWlyZWQgPSB0eXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2xvbmUuaXNMaXN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNsb25lLmlzSXRlbVJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsb25lO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXQgcHJlcGFyZWQgY2FjaGUgZm9yIEdyYXBoUUwgdHlwZXNcbiAgICAgIC8vICh0eXBlIG5hbWVzIHN0YXJ0IHdpdGggdXBwZXJjYXNlIGxldHRlcnMgYXMgb3Bwb3NlZCB0byBwcm9wZXJ0eSBuYW1lcyB0aGF0IHN0YXJ0IHdpdGggbG93ZXJjYXNlIGxldHRlcnMpXG4gICAgICBpZiAodHlwZS5uYW1lICYmIHR5cGUubmFtZVswXS50b1VwcGVyQ2FzZSgpID09PSB0eXBlLm5hbWVbMF0gJiYgIXByZXBhcmVkW3R5cGUubmFtZV0pIHtcbiAgICAgICAgcHJlcGFyZWRbdHlwZS5uYW1lXSA9IGdyYXBoUUxUeXBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlYXJjaCBkZWVwZXJcbiAgICBpZiAodHlwZS5vZlR5cGUpIHtcbiAgICAgIGNvbnN0IG9mVHlwZVJlc3VsdCA9IHRoaXMuZ2V0RGVlcFR5cGUodHlwZS5vZlR5cGUsIHByZXBhcmVkLCBzZXRNZXRhRGF0YSk7XG4gICAgICBPYmplY3QuYXNzaWduKGdyYXBoUUxUeXBlLCBvZlR5cGVSZXN1bHQpO1xuICAgICAgcmV0dXJuIGdyYXBoUUxUeXBlO1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgZmllbGRzXG4gICAgaWYgKHR5cGUuX2ZpZWxkcykge1xuICAgICAgY29uc3QgZmllbGRzID0ge307XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0eXBlLl9maWVsZHMpKSB7XG4gICAgICAgIGZpZWxkc1trZXldID0gdGhpcy5nZXREZWVwVHlwZSh2YWx1ZSwgcHJlcGFyZWQsIHRydWUpO1xuICAgICAgfVxuXG4gICAgICAvLyBBc3NpZ24gYW5kIG5vdCByZXBsYWNlIHRvIHByZXNlcnZlIHVwZGF0ZXMgaW4gdGhlIGNhY2hlXG4gICAgICBPYmplY3QuYXNzaWduKGdyYXBoUUxUeXBlLmZpZWxkcywgZmllbGRzKTtcbiAgICAgIHJldHVybiBncmFwaFFMVHlwZTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIHR5cGVcbiAgICBpZiAodHlwZS50eXBlKSB7XG4gICAgICBjb25zdCB0eXBlUmVzdWx0ID0gdGhpcy5nZXREZWVwVHlwZSh0eXBlLnR5cGUsIHByZXBhcmVkLCBzZXRNZXRhRGF0YSk7XG5cbiAgICAgIC8vIERpc2FibGUgbWV0YSBmbGFncyBmb3Igc3ViIG9iamVjdHNcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZT8udHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUgfHxcbiAgICAgICAgKHR5cGU/LnR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbCAmJiB0eXBlPy50eXBlPy5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlICYmIHNldE1ldGFEYXRhKVxuICAgICAgKSB7XG4gICAgICAgIHNldE1ldGFEYXRhID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGZvciBtZXRhIGZsYWdzXG4gICAgICBpZiAoc2V0TWV0YURhdGEpIHtcbiAgICAgICAgaWYgKHR5cGUudHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxOb25OdWxsKSB7XG4gICAgICAgICAgdHlwZVJlc3VsdC5pc1JlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgICBpZiAodHlwZS50eXBlLm9mVHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxMaXN0KSB7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzTGlzdCA9IHRydWU7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzSXRlbVJlcXVpcmVkID0gdHlwZS50eXBlLm9mVHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0xpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNJdGVtUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHlwZVJlc3VsdC5pc1JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAvLyBMaXN0IGZpcnN0XG4gICAgICAgICAgaWYgKHR5cGUudHlwZSBpbnN0YW5jZW9mIEdyYXBoUUxMaXN0KSB7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzTGlzdCA9IHRydWU7XG4gICAgICAgICAgICB0eXBlUmVzdWx0LmlzSXRlbVJlcXVpcmVkID0gdHlwZS5vZlR5cGUgaW5zdGFuY2VvZiBHcmFwaFFMTm9uTnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHlwZVJlc3VsdC5pc0xpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHR5cGVSZXN1bHQuaXNJdGVtUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgT2JqZWN0LmFzc2lnbihncmFwaFFMVHlwZSwgdHlwZVJlc3VsdCk7XG4gICAgICByZXR1cm4gZ3JhcGhRTFR5cGU7XG4gICAgfVxuXG4gICAgLy8gU2V0IGVudW0gdmFsdWVzXG4gICAgaWYgKCEhdHlwZS5fdmFsdWVzKSB7XG4gICAgICBncmFwaFFMVHlwZS5pc0VudW0gPSB0cnVlO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModHlwZS5fbmFtZUxvb2t1cCkpIHtcbiAgICAgICAgaWYgKCEodmFsdWUgYXMgYW55KS5pc0RlcHJlY2F0ZWQpIHtcbiAgICAgICAgICBncmFwaFFMVHlwZS52YWxpZEVudW1zLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmlzaFxuICAgIHJldHVybiBncmFwaFFMVHlwZTtcbiAgfVxufVxuIl19
@@ -304,4 +304,4 @@ export class Helper {
304
304
  return `data:image/*;base64, ${window.btoa(binary)}`;
305
305
  }
306
306
  }
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvY2xhc3Nlcy9oZWxwZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQUNqQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQTZCLE9BQVksRUFBRSxNQUE4QjtRQUNwRixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQy9CLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDaEMsT0FBTyxLQUFLLENBQUM7eUJBQ2Q7cUJBQ0Y7aUJBQ0Y7cUJBQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxFQUFFO29CQUNqQyxPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsSUFBSSxFQUFFLENBQVUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVEsRUFBRSxVQUFrQyxFQUFFO1FBQzdELFNBQVM7UUFDVCxNQUFNLE1BQU0sR0FBRztZQUNiLFFBQVEsRUFBRSxLQUFLO1lBQ2YsR0FBRyxPQUFPO1NBQ1gsQ0FBQztRQUVGLFlBQVk7UUFDWixHQUFHLEdB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QyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDaEYsQ0FBQztTQUNIO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNO1FBQy9CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLHdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhbmRhcmQgfSBmcm9tICcuL3N0YW5kYXJkLmNsYXNzJztcblxuLyoqXG4gKiBIZWxwZXIgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEhlbHBlciB7XG4gIC8qKlxuICAgKiBTaW1wbGUgZmlsdGVyIGZ1bmN0aW9uIGZvciBwbGFpbiBvYmplY3RzXG4gICAqL1xuICBzdGF0aWMgZmlsdGVyPFQgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmplY3RzOiBUW10sIGZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFRbXSB7XG4gICAgcmV0dXJuIChvYmplY3RzPy5maWx0ZXIoKGVsZW1lbnQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpbHRlcikpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWxlbWVudFtrZXldKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBlbGVtZW50W2tleV0pIHtcbiAgICAgICAgICAgIGlmICghZWxlbWVudFtrZXldLmluY2x1ZHModmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudFtrZXldICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSkgfHwgW10pIGFzIGFueVtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdG8gYSB1cmwvdXJpIGNvbmZvcm0gc3RyaW5nXG4gICAqIE9ubHk6XG4gICAqIC0gbG93ZXIgY2FzZVxuICAgKiAtIGNoYXJzLCBudW1iZXJzIGFuZCBoeXBoZW5zXG4gICAqL1xuICBzdGF0aWMgdXJsU3RyaW5nKHN0cjogYW55LCBvcHRpb25zOiB7IGFsbG93QWxsPzogYm9vbGVhbiB9ID0ge30pOiBzdHJpbmcge1xuICAgIC8vIENvbmZpZ1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGFsbG93QWxsOiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIFRvIHN0cmluZ1xuICAgIHN0ciA9IHN0ciArICcnO1xuXG4gICAgLy8gVHJpbVxuICAgIHN0ciA9IHN0ci50cmltKCk7XG5cbiAgICAvLyBMb3dlciBjYXNlXG4gICAgc3RyID0gc3RyLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIWNvbmZpZy5hbGxvd0FsbCkge1xuICAgICAgLy8gUmVwbGFjZSBzcGFjZXNcbiAgICAgIHN0ciA9IHN0ci50cmltKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpO1xuXG4gICAgICAvLyBSZXBsYWNlIHNvbWUgc3BlY2lhbCBjaGFyc1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoJ8OkJywgJ2FlJyk7XG4gICAgICBzdHIgPSBzdHIucmVwbGFjZSgnw7YnLCAnb2UnKTtcbiAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKCfDvCcsICd1ZScpO1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoJ8OfJywgJ3NzJyk7XG5cbiAgICAgIC8vIFJlbW92ZSBkb3VibGUgY2hhcmFjdGVyc1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoJy0tLScsICctJyk7XG4gICAgICBzdHIgPSBzdHIucmVwbGFjZSgnLS0nLCAnLScpO1xuXG4gICAgICAvLyBSZW1vdmUgb3RoZXIgc3BlY2lhbCBjaGFyc1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1teYS16QS1aMC05LV0vZywgJycpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB1cmwgY29uZm9ybSBzdHJpbmdcbiAgICByZXR1cm4gZW5jb2RlVVJJKHN0cik7XG4gIH1cblxuICAvKipcbiAgICogU2ltcGxlIG1hcCBmdW5jdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYXA8VCA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICAgIHNvdXJjZTogUGFydGlhbDxUPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICAgdGFyZ2V0OiBULFxuICAgIG9wdGlvbnM6IHsgZnVuY0FsbG93ZWQ/OiBib29sZWFuOyBkYXRlU3RyaW5nVG9EYXRlPzogYm9vbGVhbiB8IHN0cmluZ1tdIH0gPSB7fVxuICApOiBUIHtcbiAgICAvLyBTZXQgY29uZmlnXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZnVuY0FsbG93ZWQ6IGZhbHNlLFxuICAgICAgZGF0ZVN0cmluZ1RvRGF0ZTogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIHNvdXJjZVxuICAgIGlmICghc291cmNlIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgcHJvcGVydGllc1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRhcmdldCkpIHtcbiAgICAgIGlmIChzb3VyY2Vba2V5XSAhPT0gdW5kZWZpbmVkICYmIChjb25maWcuZnVuY0FsbG93ZWQgfHwgdHlwZW9mIChzb3VyY2Vba2V5XSAhPT0gJ2Z1bmN0aW9uJykpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlW2tleV0gPT09ICdzdHJpbmcnICYmIGNvbmZpZy5kYXRlU3RyaW5nVG9EYXRlKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLmRhdGVTdHJpbmdUb0RhdGUpKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmRhdGVTdHJpbmdUb0RhdGUuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IEhlbHBlci5wYXJzZURhdGUoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IEhlbHBlci5wYXJzZURhdGUoc291cmNlW2tleV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRhcmdldFxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIE9iamVjdCBvciBPYmplY3RzIG9mIHNwZWNpZmllZCB0eXBlIHdpdGggc3BlY2lmaWVkIGRhdGFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFwczxUIGV4dGVuZHMgU3RhbmRhcmQ+KFxuICAgIGRhdGE6IFBhcnRpYWw8VD4gfCBQYXJ0aWFsPFQ+W10gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLFxuICAgIHRhcmdldENsYXNzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUXG4gICk6IFRbXSB7XG4gICAgLy8gQ2hlY2sgZGF0YVxuICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgYXJyYXlcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuXG4gICAgLy8gTWFwXG4gICAgcmV0dXJuIChkYXRhIGFzIGFueSkubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiAodGFyZ2V0Q2xhc3MgYXMgYW55KS5tYXAoaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBsYWluIHBhcmFtZXRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRQbGFpblBhcmFtZXRlcihwYXJhbWV0ZXI6IHN0cmluZykge1xuICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1ldGVyPy5zcGxpdCgnPycpPy5zaGlmdCgpPy5zcGxpdCgnIycpPy5zaGlmdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBJRCBvZiBhbiB1cmwgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldFBhcmFtZXRlcklkKHBhcmFtZXRlcjogc3RyaW5nKSB7XG4gICAgaWYgKCFwYXJhbWV0ZXIpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgfVxuICAgIHJldHVybiBIZWxwZXIuZ2V0UGxhaW5QYXJhbWV0ZXIocGFyYW1ldGVyKT8uc3BsaXQoJy0nKS5wb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWxheShtczogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVlcCBmcmVlemVcbiAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9mcmVlemUjV2hhdF9pc19zaGFsbG93X2ZyZWV6ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWVwRnJlZXplKG9iamVjdDogYW55LCBwcmVwYXJlZE9iamVjdHMgPSBbXSkge1xuICAgIC8vIFByZXZlbnQgaW5maW5pdCByZWdyZXNzXG4gICAgaWYgKHByZXBhcmVkT2JqZWN0cy5pbmNsdWRlcyhvYmplY3QgYXMgbmV2ZXIpKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgICBwcmVwYXJlZE9iamVjdHMucHVzaChvYmplY3QgYXMgbmV2ZXIpO1xuXG4gICAgLy8gUmV0cmlldmUgdGhlIHByb3BlcnR5IG5hbWVzIGRlZmluZWQgb24gb2JqZWN0XG4gICAgY29uc3QgcHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICAgIC8vIEZyZWV6ZSBwcm9wZXJ0aWVzIGJlZm9yZSBmcmVlemluZyBzZWxmXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHByb3BOYW1lcykge1xuICAgICAgY29uc3QgdmFsdWUgPSBvYmplY3RbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIEhlbHBlci5kZWVwRnJlZXplKHZhbHVlLCBwcmVwYXJlZE9iamVjdHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGFuIHVuaXF1ZSBpZGVudGlmaWVyIHdpdGggYSBzcGVjaWZpYyBsZW5ndGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VUlEKGxlbmd0aDogbnVtYmVyID0gMjQpOiBzdHJpbmcge1xuICAgIGxldCBkdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHV1aWQgPSAneCcucmVwZWF0KGxlbmd0aCkucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICAgIGNvbnN0IHIgPSAoZHQgKyBNYXRoLnJhbmRvbSgpICogMTYpICUgMTYgfCAwO1xuICAgICAgZHQgPSBNYXRoLmZsb29yKGR0IC8gMTYpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICAgIHJldHVybiAoYyA9PT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4OCkudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICAgIHJldHVybiB1dWlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGRhdGUgc3RyaW5nIHRvIGRhdGUgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZUlTTyA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSlUKFxcZHsyfSk6KFxcZHsyfSk6KFxcZHsyfSg/OlxcLlxcZCopKSg/Olp8KFxcK3wtKShbXFxkfDpdKikpPyQvO1xuICAgIGNvbnN0IHJlTXNBamF4ID0gL15cXC9EYXRlXFwoKGR8LXwuKilcXClbXFwvfFxcXFxdJC87XG4gICAgaWYgKHR5cGVvZiBkYXRlU3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaXNvRXhlYyA9IHJlSVNPLmV4ZWMoZGF0ZVN0cmluZyk7XG4gICAgICBpZiAoaXNvRXhlYykge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtc0FqYXhFeGVjID0gcmVNc0FqYXguZXhlYyhkYXRlU3RyaW5nKTtcbiAgICAgIGlmIChtc0FqYXhFeGVjKSB7XG4gICAgICAgIGNvbnN0IGNsZWFuZWQgPSBtc0FqYXhFeGVjWzFdLnNwbGl0KC9bLSssLl0vKTtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGNsZWFuZWRbMF0gPyArY2xlYW5lZFswXSA6IDAgLSArY2xlYW5lZFsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRlU3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBicm93c2VyIG5hbWUgYW5kIHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0QnJvd3NlcigpIHtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuICAgIGxldCBkYXRhID0gdXNlckFnZW50Lm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg/PVxcLykpXFwvP1xccyooXFxkKykvaSkgfHwgW107XG4gICAgbGV0IHZlcnNpb247XG4gICAgaWYgKC90cmlkZW50L2kudGVzdChkYXRhWzFdKSkge1xuICAgICAgdmVyc2lvbiA9IC9cXGJydlsgOl0rKFxcZCspL2cuZXhlYyh1c2VyQWdlbnQpIHx8IFtdO1xuICAgICAgcmV0dXJuIHsgbmFtZTogJ0lFJywgdmVyc2lvbjogdmVyc2lvblsxXSB8fCAnJyB9O1xuICAgIH1cbiAgICBpZiAoZGF0YVsxXSA9PT0gJ0Nocm9tZScpIHtcbiAgICAgIHZlcnNpb24gPSB1c2VyQWdlbnQubWF0Y2goL1xcYk9QUnxFZGdlXFwvKFxcZCspLyk7XG4gICAgICBpZiAodmVyc2lvbiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IG5hbWU6ICdPcGVyYScsIHZlcnNpb246IHZlcnNpb25bMV0gfTtcbiAgICAgIH1cbiAgICB9XG4gICAgZGF0YSA9IGRhdGFbMl0gPyBbZGF0YVsxXSwgZGF0YVsyXV0gOiBbbmF2aWdhdG9yLmFwcE5hbWUsIG5hdmlnYXRvci5hcHBWZXJzaW9uLCAnLT8nXTtcbiAgICB2ZXJzaW9uID0gdXNlckFnZW50Lm1hdGNoKC92ZXJzaW9uXFwvKFxcZCspL2kpO1xuICAgIGlmICh2ZXJzaW9uICE9PSBudWxsKSB7XG4gICAgICBkYXRhLnNwbGljZSgxLCAxLCB2ZXJzaW9uWzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGRhdGFbMF0sXG4gICAgICB2ZXJzaW9uOiBkYXRhWzFdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBmaXJzdCBwYXJhbWV0ZXIgaXMgYSBkZWVwIHN1YnNldCBvZiBzZWNvbmQgcGFyYW1ldGVyXG4gICAqIEhpbnQ6IGZ1bmN0aW9ucyB3aWxsIGJlIGlnbm9yZWRcbiAgICovXG4gIHN0YXRpYyBpc1N1YnNldChhOiBhbnksIGI6IGFueSkge1xuICAgIC8vIEVxdWFsXG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIERpZmZlcmVudCB0eXBlXG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYSkpIHtcbiAgICAgICAgaWYgKEhlbHBlci5pc1N1YnNldCh2YWx1ZSwgYltrZXldKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RcbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBwbGFpbiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGxhaW4pKSB7XG4gICAgICAgIGlmIChIZWxwZXIuaXNTdWJzZXQodmFsdWUsIGJba2V5XSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEVsc2VcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBhcmFtZXRlcnMgYXJlIGVxdWFsIChoYXZlIGVxdWFsIHByb3BlcnRpZXMpXG4gICAqIEhpbnQ6IGZ1bmN0aW9ucyB3aWxsIGJlIGlnbm9yZWRcbiAgICovXG4gIHN0YXRpYyBpc0VxdWFsKGE6IGFueSwgYjogYW55KSB7XG4gICAgcmV0dXJuIEhlbHBlci5pc1N1YnNldChhLCBiKSAmJiBIZWxwZXIuaXNTdWJzZXQoYiwgYSk7XG4gIH1cblxuICAvKipcbiAgICogRmlyc3QgbGV2ZWwgZGlmZmVyZW5jZSBvZiB0d28gb2JqZWN0c1xuICAgKiBIaW50OiBmdW5jdGlvbnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB3aGVuIGFuIGFycmF5IG9yIGFuIG9iamVjdCBpcyBkaWZmZXJlbnQgdGhlIGhvbGUgYXJyYXkgb3Igb2JqZWN0IHdpbGwgdXNlZCBhcyBwcm9wZXJ0eSB2YWx1ZVxuICAgKlxuICAgKiBAcmV0dXJucyBSZWNvcmQ8c3RyaW5nLCBhbnk+IE9iamVjdCB3aXRoIHByb3BlcnRpZXMgZnJvbSBmaXJzdCBvYmplY3RcbiAgICovXG4gIHN0YXRpYyBnZXREaWZmKGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGI6IFJlY29yZDxzdHJpbmcsIGFueT4sIGNsb25lOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGxldCBmaXJzdE9iamVjdCA9IGE7XG4gICAgaWYgKGNsb25lKSB7XG4gICAgICBmaXJzdE9iamVjdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmaXJzdE9iamVjdCkpIHtcbiAgICAgIGlmICghSGVscGVyLmlzU3Vic2V0KHZhbHVlLCBiW2tleV0pKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcHJvcGVydGllIGlzIHR5cGUgb2YgSFRNTENvbGxlY3Rpb24gb3IgTm9kZUxpc3RcbiAgICogU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83MjM4MzQ0XG4gICAqXG4gICAqIEBwYXJhbSBub2Rlc1xuICAgKi9cbiAgc3RhdGljIGlzTm9kZUxpc3Qobm9kZXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RyaW5nUmVwciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChub2Rlcyk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0eXBlb2Ygbm9kZXMgPT09ICdvYmplY3QnICYmXG4gICAgICAgIC9eXFxbb2JqZWN0IChIVE1MQ29sbGVjdGlvbnxOb2RlTGlzdHxPYmplY3QpXFxdJC8udGVzdChzdHJpbmdSZXByKSAmJlxuICAgICAgICB0eXBlb2Ygbm9kZXMubGVuZ3RoID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAobm9kZXMubGVuZ3RoID09PSAwIHx8ICh0eXBlb2Ygbm9kZXNbMF0gPT09ICdvYmplY3QnICYmIG5vZGVzWzBdLm5vZGVUeXBlID4gMCkpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXJyYXlCdWZmZXJUb0Jhc2U2NChidWZmZXIpIHtcbiAgICBsZXQgYmluYXJ5ID0gJyc7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICAgIGNvbnN0IGxlbiA9IGJ5dGVzLmJ5dGVMZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gYGRhdGE6aW1hZ2UvKjtiYXNlNjQsICR7d2luZG93LmJ0b2EoYmluYXJ5KX1gO1xuICB9XG59XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvY2xhc3Nlcy9oZWxwZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQUNqQjs7T0FFRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQTZCLE9BQVksRUFBRSxNQUE4QjtRQUNwRixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNoQyxLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDOzRCQUNqQyxPQUFPLEtBQUssQ0FBQzt3QkFDZixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDbEMsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBVSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBUSxFQUFFLFVBQWtDLEVBQUU7UUFDN0QsU0FBUztRQUNULE1BQU0sTUFBTSxHQUFHO1lBQ2IsUUFBUSxFQUFFLEtB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QUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLHdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhbmRhcmQgfSBmcm9tICcuL3N0YW5kYXJkLmNsYXNzJztcblxuLyoqXG4gKiBIZWxwZXIgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEhlbHBlciB7XG4gIC8qKlxuICAgKiBTaW1wbGUgZmlsdGVyIGZ1bmN0aW9uIGZvciBwbGFpbiBvYmplY3RzXG4gICAqL1xuICBzdGF0aWMgZmlsdGVyPFQgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmplY3RzOiBUW10sIGZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFRbXSB7XG4gICAgcmV0dXJuIChvYmplY3RzPy5maWx0ZXIoKGVsZW1lbnQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpbHRlcikpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWxlbWVudFtrZXldKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBlbGVtZW50W2tleV0pIHtcbiAgICAgICAgICAgIGlmICghZWxlbWVudFtrZXldLmluY2x1ZHModmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudFtrZXldICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSkgfHwgW10pIGFzIGFueVtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdG8gYSB1cmwvdXJpIGNvbmZvcm0gc3RyaW5nXG4gICAqIE9ubHk6XG4gICAqIC0gbG93ZXIgY2FzZVxuICAgKiAtIGNoYXJzLCBudW1iZXJzIGFuZCBoeXBoZW5zXG4gICAqL1xuICBzdGF0aWMgdXJsU3RyaW5nKHN0cjogYW55LCBvcHRpb25zOiB7IGFsbG93QWxsPzogYm9vbGVhbiB9ID0ge30pOiBzdHJpbmcge1xuICAgIC8vIENvbmZpZ1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGFsbG93QWxsOiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIFRvIHN0cmluZ1xuICAgIHN0ciA9IHN0ciArICcnO1xuXG4gICAgLy8gVHJpbVxuICAgIHN0ciA9IHN0ci50cmltKCk7XG5cbiAgICAvLyBMb3dlciBjYXNlXG4gICAgc3RyID0gc3RyLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIWNvbmZpZy5hbGxvd0FsbCkge1xuICAgICAgLy8gUmVwbGFjZSBzcGFjZXNcbiAgICAgIHN0ciA9IHN0ci50cmltKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpO1xuXG4gICAgICAvLyBSZXBsYWNlIHNvbWUgc3BlY2lhbCBjaGFyc1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoJ8OkJywgJ2FlJyk7XG4gICAgICBzdHIgPSBzdHIucmVwbGFjZSgnw7YnLCAnb2UnKTtcbiAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKCfDvCcsICd1ZScpO1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoJ8OfJywgJ3NzJyk7XG5cbiAgICAgIC8vIFJlbW92ZSBkb3VibGUgY2hhcmFjdGVyc1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoJy0tLScsICctJyk7XG4gICAgICBzdHIgPSBzdHIucmVwbGFjZSgnLS0nLCAnLScpO1xuXG4gICAgICAvLyBSZW1vdmUgb3RoZXIgc3BlY2lhbCBjaGFyc1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1teYS16QS1aMC05LV0vZywgJycpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB1cmwgY29uZm9ybSBzdHJpbmdcbiAgICByZXR1cm4gZW5jb2RlVVJJKHN0cik7XG4gIH1cblxuICAvKipcbiAgICogU2ltcGxlIG1hcCBmdW5jdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYXA8VCA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICAgIHNvdXJjZTogUGFydGlhbDxUPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICAgdGFyZ2V0OiBULFxuICAgIG9wdGlvbnM6IHsgZnVuY0FsbG93ZWQ/OiBib29sZWFuOyBkYXRlU3RyaW5nVG9EYXRlPzogYm9vbGVhbiB8IHN0cmluZ1tdIH0gPSB7fVxuICApOiBUIHtcbiAgICAvLyBTZXQgY29uZmlnXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZnVuY0FsbG93ZWQ6IGZhbHNlLFxuICAgICAgZGF0ZVN0cmluZ1RvRGF0ZTogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIHNvdXJjZVxuICAgIGlmICghc291cmNlIHx8IHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgcHJvcGVydGllc1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRhcmdldCkpIHtcbiAgICAgIGlmIChzb3VyY2Vba2V5XSAhPT0gdW5kZWZpbmVkICYmIChjb25maWcuZnVuY0FsbG93ZWQgfHwgdHlwZW9mIChzb3VyY2Vba2V5XSAhPT0gJ2Z1bmN0aW9uJykpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlW2tleV0gPT09ICdzdHJpbmcnICYmIGNvbmZpZy5kYXRlU3RyaW5nVG9EYXRlKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLmRhdGVTdHJpbmdUb0RhdGUpKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmRhdGVTdHJpbmdUb0RhdGUuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IEhlbHBlci5wYXJzZURhdGUoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IEhlbHBlci5wYXJzZURhdGUoc291cmNlW2tleV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRhcmdldFxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIE9iamVjdCBvciBPYmplY3RzIG9mIHNwZWNpZmllZCB0eXBlIHdpdGggc3BlY2lmaWVkIGRhdGFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFwczxUIGV4dGVuZHMgU3RhbmRhcmQ+KFxuICAgIGRhdGE6IFBhcnRpYWw8VD4gfCBQYXJ0aWFsPFQ+W10gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdLFxuICAgIHRhcmdldENsYXNzOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUXG4gICk6IFRbXSB7XG4gICAgLy8gQ2hlY2sgZGF0YVxuICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgYXJyYXlcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBbZGF0YV07XG4gICAgfVxuXG4gICAgLy8gTWFwXG4gICAgcmV0dXJuIChkYXRhIGFzIGFueSkubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiAodGFyZ2V0Q2xhc3MgYXMgYW55KS5tYXAoaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBsYWluIHBhcmFtZXRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRQbGFpblBhcmFtZXRlcihwYXJhbWV0ZXI6IHN0cmluZykge1xuICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1ldGVyPy5zcGxpdCgnPycpPy5zaGlmdCgpPy5zcGxpdCgnIycpPy5zaGlmdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBJRCBvZiBhbiB1cmwgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldFBhcmFtZXRlcklkKHBhcmFtZXRlcjogc3RyaW5nKSB7XG4gICAgaWYgKCFwYXJhbWV0ZXIpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgfVxuICAgIHJldHVybiBIZWxwZXIuZ2V0UGxhaW5QYXJhbWV0ZXIocGFyYW1ldGVyKT8uc3BsaXQoJy0nKS5wb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWxheShtczogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVlcCBmcmVlemVcbiAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9mcmVlemUjV2hhdF9pc19zaGFsbG93X2ZyZWV6ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWVwRnJlZXplKG9iamVjdDogYW55LCBwcmVwYXJlZE9iamVjdHMgPSBbXSkge1xuICAgIC8vIFByZXZlbnQgaW5maW5pdCByZWdyZXNzXG4gICAgaWYgKHByZXBhcmVkT2JqZWN0cy5pbmNsdWRlcyhvYmplY3QgYXMgbmV2ZXIpKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH1cbiAgICBwcmVwYXJlZE9iamVjdHMucHVzaChvYmplY3QgYXMgbmV2ZXIpO1xuXG4gICAgLy8gUmV0cmlldmUgdGhlIHByb3BlcnR5IG5hbWVzIGRlZmluZWQgb24gb2JqZWN0XG4gICAgY29uc3QgcHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICAgIC8vIEZyZWV6ZSBwcm9wZXJ0aWVzIGJlZm9yZSBmcmVlemluZyBzZWxmXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHByb3BOYW1lcykge1xuICAgICAgY29uc3QgdmFsdWUgPSBvYmplY3RbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIEhlbHBlci5kZWVwRnJlZXplKHZhbHVlLCBwcmVwYXJlZE9iamVjdHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGFuIHVuaXF1ZSBpZGVudGlmaWVyIHdpdGggYSBzcGVjaWZpYyBsZW5ndGhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VUlEKGxlbmd0aDogbnVtYmVyID0gMjQpOiBzdHJpbmcge1xuICAgIGxldCBkdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHV1aWQgPSAneCcucmVwZWF0KGxlbmd0aCkucmVwbGFjZSgvW3h5XS9nLCAoYykgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICAgIGNvbnN0IHIgPSAoZHQgKyBNYXRoLnJhbmRvbSgpICogMTYpICUgMTYgfCAwO1xuICAgICAgZHQgPSBNYXRoLmZsb29yKGR0IC8gMTYpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICAgIHJldHVybiAoYyA9PT0gJ3gnID8gciA6IChyICYgMHgzKSB8IDB4OCkudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICAgIHJldHVybiB1dWlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGRhdGUgc3RyaW5nIHRvIGRhdGUgb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZUlTTyA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSlUKFxcZHsyfSk6KFxcZHsyfSk6KFxcZHsyfSg/OlxcLlxcZCopKSg/Olp8KFxcK3wtKShbXFxkfDpdKikpPyQvO1xuICAgIGNvbnN0IHJlTXNBamF4ID0gL15cXC9EYXRlXFwoKGR8LXwuKilcXClbXFwvfFxcXFxdJC87XG4gICAgaWYgKHR5cGVvZiBkYXRlU3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgaXNvRXhlYyA9IHJlSVNPLmV4ZWMoZGF0ZVN0cmluZyk7XG4gICAgICBpZiAoaXNvRXhlYykge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtc0FqYXhFeGVjID0gcmVNc0FqYXguZXhlYyhkYXRlU3RyaW5nKTtcbiAgICAgIGlmIChtc0FqYXhFeGVjKSB7XG4gICAgICAgIGNvbnN0IGNsZWFuZWQgPSBtc0FqYXhFeGVjWzFdLnNwbGl0KC9bLSssLl0vKTtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGNsZWFuZWRbMF0gPyArY2xlYW5lZFswXSA6IDAgLSArY2xlYW5lZFsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRlU3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBicm93c2VyIG5hbWUgYW5kIHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0QnJvd3NlcigpIHtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuICAgIGxldCBkYXRhID0gdXNlckFnZW50Lm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg/PVxcLykpXFwvP1xccyooXFxkKykvaSkgfHwgW107XG4gICAgbGV0IHZlcnNpb247XG4gICAgaWYgKC90cmlkZW50L2kudGVzdChkYXRhWzFdKSkge1xuICAgICAgdmVyc2lvbiA9IC9cXGJydlsgOl0rKFxcZCspL2cuZXhlYyh1c2VyQWdlbnQpIHx8IFtdO1xuICAgICAgcmV0dXJuIHsgbmFtZTogJ0lFJywgdmVyc2lvbjogdmVyc2lvblsxXSB8fCAnJyB9O1xuICAgIH1cbiAgICBpZiAoZGF0YVsxXSA9PT0gJ0Nocm9tZScpIHtcbiAgICAgIHZlcnNpb24gPSB1c2VyQWdlbnQubWF0Y2goL1xcYk9QUnxFZGdlXFwvKFxcZCspLyk7XG4gICAgICBpZiAodmVyc2lvbiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IG5hbWU6ICdPcGVyYScsIHZlcnNpb246IHZlcnNpb25bMV0gfTtcbiAgICAgIH1cbiAgICB9XG4gICAgZGF0YSA9IGRhdGFbMl0gPyBbZGF0YVsxXSwgZGF0YVsyXV0gOiBbbmF2aWdhdG9yLmFwcE5hbWUsIG5hdmlnYXRvci5hcHBWZXJzaW9uLCAnLT8nXTtcbiAgICB2ZXJzaW9uID0gdXNlckFnZW50Lm1hdGNoKC92ZXJzaW9uXFwvKFxcZCspL2kpO1xuICAgIGlmICh2ZXJzaW9uICE9PSBudWxsKSB7XG4gICAgICBkYXRhLnNwbGljZSgxLCAxLCB2ZXJzaW9uWzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGRhdGFbMF0sXG4gICAgICB2ZXJzaW9uOiBkYXRhWzFdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBmaXJzdCBwYXJhbWV0ZXIgaXMgYSBkZWVwIHN1YnNldCBvZiBzZWNvbmQgcGFyYW1ldGVyXG4gICAqIEhpbnQ6IGZ1bmN0aW9ucyB3aWxsIGJlIGlnbm9yZWRcbiAgICovXG4gIHN0YXRpYyBpc1N1YnNldChhOiBhbnksIGI6IGFueSkge1xuICAgIC8vIEVxdWFsXG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIERpZmZlcmVudCB0eXBlXG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYSkpIHtcbiAgICAgICAgaWYgKEhlbHBlci5pc1N1YnNldCh2YWx1ZSwgYltrZXldKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RcbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBwbGFpbiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGxhaW4pKSB7XG4gICAgICAgIGlmIChIZWxwZXIuaXNTdWJzZXQodmFsdWUsIGJba2V5XSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEVsc2VcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBhcmFtZXRlcnMgYXJlIGVxdWFsIChoYXZlIGVxdWFsIHByb3BlcnRpZXMpXG4gICAqIEhpbnQ6IGZ1bmN0aW9ucyB3aWxsIGJlIGlnbm9yZWRcbiAgICovXG4gIHN0YXRpYyBpc0VxdWFsKGE6IGFueSwgYjogYW55KSB7XG4gICAgcmV0dXJuIEhlbHBlci5pc1N1YnNldChhLCBiKSAmJiBIZWxwZXIuaXNTdWJzZXQoYiwgYSk7XG4gIH1cblxuICAvKipcbiAgICogRmlyc3QgbGV2ZWwgZGlmZmVyZW5jZSBvZiB0d28gb2JqZWN0c1xuICAgKiBIaW50OiBmdW5jdGlvbnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB3aGVuIGFuIGFycmF5IG9yIGFuIG9iamVjdCBpcyBkaWZmZXJlbnQgdGhlIGhvbGUgYXJyYXkgb3Igb2JqZWN0IHdpbGwgdXNlZCBhcyBwcm9wZXJ0eSB2YWx1ZVxuICAgKlxuICAgKiBAcmV0dXJucyBSZWNvcmQ8c3RyaW5nLCBhbnk+IE9iamVjdCB3aXRoIHByb3BlcnRpZXMgZnJvbSBmaXJzdCBvYmplY3RcbiAgICovXG4gIHN0YXRpYyBnZXREaWZmKGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGI6IFJlY29yZDxzdHJpbmcsIGFueT4sIGNsb25lOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGxldCBmaXJzdE9iamVjdCA9IGE7XG4gICAgaWYgKGNsb25lKSB7XG4gICAgICBmaXJzdE9iamVjdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmaXJzdE9iamVjdCkpIHtcbiAgICAgIGlmICghSGVscGVyLmlzU3Vic2V0KHZhbHVlLCBiW2tleV0pKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcHJvcGVydGllIGlzIHR5cGUgb2YgSFRNTENvbGxlY3Rpb24gb3IgTm9kZUxpc3RcbiAgICogU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83MjM4MzQ0XG4gICAqXG4gICAqIEBwYXJhbSBub2Rlc1xuICAgKi9cbiAgc3RhdGljIGlzTm9kZUxpc3Qobm9kZXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RyaW5nUmVwciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChub2Rlcyk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0eXBlb2Ygbm9kZXMgPT09ICdvYmplY3QnICYmXG4gICAgICAgIC9eXFxbb2JqZWN0IChIVE1MQ29sbGVjdGlvbnxOb2RlTGlzdHxPYmplY3QpXFxdJC8udGVzdChzdHJpbmdSZXByKSAmJlxuICAgICAgICB0eXBlb2Ygbm9kZXMubGVuZ3RoID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAobm9kZXMubGVuZ3RoID09PSAwIHx8ICh0eXBlb2Ygbm9kZXNbMF0gPT09ICdvYmplY3QnICYmIG5vZGVzWzBdLm5vZGVUeXBlID4gMCkpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXJyYXlCdWZmZXJUb0Jhc2U2NChidWZmZXIpIHtcbiAgICBsZXQgYmluYXJ5ID0gJyc7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICAgIGNvbnN0IGxlbiA9IGJ5dGVzLmJ5dGVMZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gYGRhdGE6aW1hZ2UvKjtiYXNlNjQsICR7d2luZG93LmJ0b2EoYmluYXJ5KX1gO1xuICB9XG59XG4iXX0=
@@ -35,4 +35,4 @@ export class Sort {
35
35
  }
36
36
  }
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL2NsYXNzZXMvc29ydC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sSUFBSTtJQUNQLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdEIsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWhGOztPQUVHO0lBQ0ksU0FBUyxDQUFDLFFBQWdCLEVBQUUsS0FBYSxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3pELElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNkLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxRjtpQkFBTSxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3ZHO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDekU7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxRQUFRLENBQUMsQ0FBTyxFQUFFLENBQU87UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1QsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzVCO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDM0I7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDM0I7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU29ydCB7XG4gIHByaXZhdGUgc29ydE9yZGVyID0gMTtcbiAgY29sbGF0b3IgPSBuZXcgSW50bC5Db2xsYXRvcih1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSwgc2Vuc2l0aXZpdHk6ICdiYXNlJyB9KTtcblxuICAvKipcbiAgICogU29ydHMgY2xpY2tlZCBjb2x1bW5cbiAgICovXG4gIHB1YmxpYyBzdGFydFNvcnQocHJvcGVydHk6IHN0cmluZywgb3JkZXI6IHN0cmluZywgdHlwZSA9ICcnKSB7XG4gICAgaWYgKG9yZGVyID09PSAnZGVzYycpIHtcbiAgICAgIHRoaXMuc29ydE9yZGVyID0gLTE7XG4gICAgfVxuICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgaWYgKHR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0RGF0ZShuZXcgRGF0ZShhLmxhdGVzdFN0ZXBbcHJvcGVydHldKSwgbmV3IERhdGUoYi5sYXRlc3RTdGVwW3Byb3BlcnR5XSkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAncG9zaXRpb24nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhdG9yLmNvbXBhcmUoYS5wb3NpdGlvbi5WYWx1ZVtwcm9wZXJ0eV0sIGIucG9zaXRpb24uVmFsdWVbcHJvcGVydHldKSAqIHRoaXMuc29ydE9yZGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGF0b3IuY29tcGFyZShhW3Byb3BlcnR5XSwgYltwcm9wZXJ0eV0pICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0cyBkYXRlc1xuICAgKi9cbiAgcHJpdmF0ZSBzb3J0RGF0ZShhOiBEYXRlLCBiOiBEYXRlKSB7XG4gICAgaWYgKGEgPCBiKSB7XG4gICAgICByZXR1cm4gLTEgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICB9IGVsc2UgaWYgKGEgPiBiKSB7XG4gICAgICByZXR1cm4gMSAqIHRoaXMuc29ydE9yZGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMCAqIHRoaXMuc29ydE9yZGVyO1xuICAgIH1cbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL2NsYXNzZXMvc29ydC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sSUFBSTtJQUNQLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdEIsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWhGOztPQUVHO0lBQ0ksU0FBUyxDQUFDLFFBQWdCLEVBQUUsS0FBYSxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3pELElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDZCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzRixDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4RyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMxRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssUUFBUSxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdCLENBQUM7YUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNvcnQge1xuICBwcml2YXRlIHNvcnRPcmRlciA9IDE7XG4gIGNvbGxhdG9yID0gbmV3IEludGwuQ29sbGF0b3IodW5kZWZpbmVkLCB7IG51bWVyaWM6IHRydWUsIHNlbnNpdGl2aXR5OiAnYmFzZScgfSk7XG5cbiAgLyoqXG4gICAqIFNvcnRzIGNsaWNrZWQgY29sdW1uXG4gICAqL1xuICBwdWJsaWMgc3RhcnRTb3J0KHByb3BlcnR5OiBzdHJpbmcsIG9yZGVyOiBzdHJpbmcsIHR5cGUgPSAnJykge1xuICAgIGlmIChvcmRlciA9PT0gJ2Rlc2MnKSB7XG4gICAgICB0aGlzLnNvcnRPcmRlciA9IC0xO1xuICAgIH1cbiAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydERhdGUobmV3IERhdGUoYS5sYXRlc3RTdGVwW3Byb3BlcnR5XSksIG5ldyBEYXRlKGIubGF0ZXN0U3RlcFtwcm9wZXJ0eV0pKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Bvc2l0aW9uJykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsYXRvci5jb21wYXJlKGEucG9zaXRpb24uVmFsdWVbcHJvcGVydHldLCBiLnBvc2l0aW9uLlZhbHVlW3Byb3BlcnR5XSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhdG9yLmNvbXBhcmUoYVtwcm9wZXJ0eV0sIGJbcHJvcGVydHldKSAqIHRoaXMuc29ydE9yZGVyO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU29ydHMgZGF0ZXNcbiAgICovXG4gIHByaXZhdGUgc29ydERhdGUoYTogRGF0ZSwgYjogRGF0ZSkge1xuICAgIGlmIChhIDwgYikge1xuICAgICAgcmV0dXJuIC0xICogdGhpcy5zb3J0T3JkZXI7XG4gICAgfSBlbHNlIGlmIChhID4gYikge1xuICAgICAgcmV0dXJuIDEgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDAgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -37,4 +37,4 @@ export class Standard {
37
37
  return Helper.getDiff(this, compare, clone);
38
38
  }
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9jbGFzc2VzL3N0YW5kYXJkLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFDbkI7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUVmLElBQXlDLEVBQ3pDLE9BQVUsSUFBSSxJQUFJLEVBQUU7UUFFcEIsT0FBUSxJQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxJQUE0QztRQUNyRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFnRDtRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxJQUFLLElBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUFDLE9BQTRCLEVBQUUsUUFBaUIsSUFBSTtRQUNoRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuL2hlbHBlci5jbGFzcyc7XG5cbi8qKlxuICogU3RhbmRhcmQgY2xhc3NcbiAqIE90aGVyIGNsYXNzZXMgc2hvdWxkIGV4dGVuZCB0aGUgU3RhbmRhcmQgY2xhc3MsIGlmIHRoZXkgb2ZmZXIgb3duIGZ1bmN0aW9uc1xuICogSWYgdGhlIGV4dGVuZGVkIGNsYXNzIHVzZXMgb2JqZWN0IHByb3BlcnRpZXMgd2l0aCBvd24gbWFwIGZ1bmN0aW9ucywgaXQgc2hvdWxkIGltcGxlbWVudCBpdHMgb3duIG1hcCBmdW5jdGlvblxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmQge1xuICAvKipcbiAgICogU3RhdGljIG1hcCBtZXRob2RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFwPFQgZXh0ZW5kcyBTdGFuZGFyZD4oXG4gICAgdGhpczogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCxcbiAgICBkYXRhOiBQYXJ0aWFsPFQ+IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICBpdGVtOiBUID0gbmV3IHRoaXMoKVxuICApOiBUIHtcbiAgICByZXR1cm4gKGl0ZW0gYXMgYW55KS5tYXAoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwIGRhdGEgaW50byBhbiBvYmplY3RcbiAgICovXG4gIHB1YmxpYyBtYXAoZGF0YTogUGFydGlhbDx0aGlzPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB0aGlzIHtcbiAgICByZXR1cm4gSGVscGVyLm1hcChkYXRhLCB0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9uZSBvYmplY3QgKGFuZCBtYXAgYWRkaXRpb25hbCBkYXRhKVxuICAgKi9cbiAgcHVibGljIGNsb25lKG1hcERhdGE/OiBQYXJ0aWFsPHRoaXM+IHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMpKTtcbiAgICBpZiAobWFwRGF0YSkge1xuICAgICAgT2JqZWN0LmFzc2lnbihjdXJyZW50LCBtYXBEYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyAodGhpcyBhcyBhbnkpLmNvbnN0cnVjdG9yKCkubWFwKGN1cnJlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmUgdGhpcyB3aXRoIGFub3RoZXIgb2JqZWN0XG4gICAqIEhpbnQ6IGZ1bmN0aW9ucyB3aWxsIGJlIGlnbm9yZWQgYW5kIHdoZW4gYW4gYXJyYXkgb3IgYW4gb2JqZWN0IGlzIGRpZmZlcmVudCB0aGUgaG9sZSBhcnJheSBvciBvYmplY3Qgd2lsbCB1c2VkIGFzIHByb3BlcnR5IHZhbHVlXG4gICAqXG4gICAqIEByZXR1cm4gUmVjb3JkPHN0cmluZywgYW55PiB3aXRoIHByb3BlcnRpZXMgb2YgdGhpcyBvYmplY3Qgd2hpY2ggYXJlIGRpZmZlcmVudFxuICAgKi9cbiAgcHVibGljIGdldERpZmYoY29tcGFyZTogUmVjb3JkPHN0cmluZywgYW55PiwgY2xvbmU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgcmV0dXJuIEhlbHBlci5nZXREaWZmKHRoaXMsIGNvbXBhcmUsIGNsb25lKTtcbiAgfVxufVxuIl19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9jbGFzc2VzL3N0YW5kYXJkLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFDbkI7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRyxDQUVmLElBQXlDLEVBQ3pDLE9BQVUsSUFBSSxJQUFJLEVBQUU7UUFFcEIsT0FBUSxJQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxJQUE0QztRQUNyRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFnRDtRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sSUFBSyxJQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxPQUE0QixFQUFFLFFBQWlCLElBQUk7UUFDaEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xuXG4vKipcbiAqIFN0YW5kYXJkIGNsYXNzXG4gKiBPdGhlciBjbGFzc2VzIHNob3VsZCBleHRlbmQgdGhlIFN0YW5kYXJkIGNsYXNzLCBpZiB0aGV5IG9mZmVyIG93biBmdW5jdGlvbnNcbiAqIElmIHRoZSBleHRlbmRlZCBjbGFzcyB1c2VzIG9iamVjdCBwcm9wZXJ0aWVzIHdpdGggb3duIG1hcCBmdW5jdGlvbnMsIGl0IHNob3VsZCBpbXBsZW1lbnQgaXRzIG93biBtYXAgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYXJkIHtcbiAgLyoqXG4gICAqIFN0YXRpYyBtYXAgbWV0aG9kXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hcDxUIGV4dGVuZHMgU3RhbmRhcmQ+KFxuICAgIHRoaXM6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsXG4gICAgZGF0YTogUGFydGlhbDxUPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICAgaXRlbTogVCA9IG5ldyB0aGlzKClcbiAgKTogVCB7XG4gICAgcmV0dXJuIChpdGVtIGFzIGFueSkubWFwKGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCBkYXRhIGludG8gYW4gb2JqZWN0XG4gICAqL1xuICBwdWJsaWMgbWFwKGRhdGE6IFBhcnRpYWw8dGhpcz4gfCB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogdGhpcyB7XG4gICAgcmV0dXJuIEhlbHBlci5tYXAoZGF0YSwgdGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvbmUgb2JqZWN0IChhbmQgbWFwIGFkZGl0aW9uYWwgZGF0YSlcbiAgICovXG4gIHB1YmxpYyBjbG9uZShtYXBEYXRhPzogUGFydGlhbDx0aGlzPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB0aGlzIHtcbiAgICBjb25zdCBjdXJyZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzKSk7XG4gICAgaWYgKG1hcERhdGEpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oY3VycmVudCwgbWFwRGF0YSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgKHRoaXMgYXMgYW55KS5jb25zdHJ1Y3RvcigpLm1hcChjdXJyZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlIHRoaXMgd2l0aCBhbm90aGVyIG9iamVjdFxuICAgKiBIaW50OiBmdW5jdGlvbnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB3aGVuIGFuIGFycmF5IG9yIGFuIG9iamVjdCBpcyBkaWZmZXJlbnQgdGhlIGhvbGUgYXJyYXkgb3Igb2JqZWN0IHdpbGwgdXNlZCBhcyBwcm9wZXJ0eSB2YWx1ZVxuICAgKlxuICAgKiBAcmV0dXJuIFJlY29yZDxzdHJpbmcsIGFueT4gd2l0aCBwcm9wZXJ0aWVzIG9mIHRoaXMgb2JqZWN0IHdoaWNoIGFyZSBkaWZmZXJlbnRcbiAgICovXG4gIHB1YmxpYyBnZXREaWZmKGNvbXBhcmU6IFJlY29yZDxzdHJpbmcsIGFueT4sIGNsb25lOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHJldHVybiBIZWxwZXIuZ2V0RGlmZih0aGlzLCBjb21wYXJlLCBjbG9uZSk7XG4gIH1cbn1cbiJdfQ==
@@ -36,4 +36,4 @@ export function createRestartableClient(options) {
36
36
  restart: () => restart(),
37
37
  };
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtY2xpZW50LmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvZnVuY3Rpb25zL3dzLWNsaWVudC5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLFlBQVksQ0FBQztBQU1qRSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBc0I7SUFDNUQsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDLENBQUM7SUFFRixNQUFNLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVuQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDMUIsR0FBRyxPQUFPO1FBQ1YsRUFBRSxFQUFFO1lBQ0YsR0FBRyxFQUFFO1lBQ0wsU0FBUyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQ3pCLGFBQWE7Z0JBQ2IsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixPQUFPLEdBQUcsR0FBRyxFQUFFO29CQUNiLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO3dCQUN4Qyw4REFBOEQ7d0JBQzlELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUM7cUJBQ3RDO3lCQUFNO3dCQUNMLCtEQUErRDt3QkFDL0Qsd0NBQXdDO3dCQUN4QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7cUJBQ3pCO2dCQUNILENBQUMsQ0FBQztnQkFFRix5Q0FBeUM7Z0JBQ3pDLElBQUksZ0JBQWdCLEVBQUU7b0JBQ3BCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUM7aUJBQ1g7WUFDSCxDQUFDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRTtLQUN6QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNsaWVudCwgQ2xpZW50LCBDbGllbnRPcHRpb25zIH0gZnJvbSAnZ3JhcGhxbC13cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGFydGFibGVDbGllbnQgZXh0ZW5kcyBDbGllbnQge1xuICByZXN0YXJ0KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXN0YXJ0YWJsZUNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUmVzdGFydGFibGVDbGllbnQge1xuICBsZXQgcmVzdGFydFJlcXVlc3RlZCA9IGZhbHNlO1xuICBsZXQgcmVzdGFydCA9ICgpID0+IHtcbiAgICByZXN0YXJ0UmVxdWVzdGVkID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCB7IG9uID0gdW5kZWZpbmVkIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBvbjoge1xuICAgICAgLi4ub24sXG4gICAgICBjb25uZWN0ZWQ6IChzb2NrZXQ6IGFueSkgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9uPy5jb25uZWN0ZWQ/Lihzb2NrZXQpO1xuXG4gICAgICAgIHJlc3RhcnQgPSAoKSA9PiB7XG4gICAgICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgICAgLy8gaWYgdGhlIHNvY2tldCBpcyBzdGlsbCBvcGVuIGZvciB0aGUgcmVzdGFydCwgZG8gdGhlIHJlc3RhcnRcbiAgICAgICAgICAgIHNvY2tldC5jbG9zZSg0MjA1LCAnQ2xpZW50IFJlc3RhcnQnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHRoZSBzb2NrZXQgbWlnaHQndmUgY2xvc2VkLCBpbmRpY2F0ZSB0aGF0IHlvdSB3YW50XG4gICAgICAgICAgICAvLyBhIHJlc3RhcnQgb24gdGhlIG5leHQgY29ubmVjdGVkIGV2ZW50XG4gICAgICAgICAgICByZXN0YXJ0UmVxdWVzdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8ganVzdCBpbiBjYXNlIHlvdSB3ZXJlIGVhZ2VyIHRvIHJlc3RhcnRcbiAgICAgICAgaWYgKHJlc3RhcnRSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICByZXN0YXJ0UmVxdWVzdGVkID0gZmFsc2U7XG4gICAgICAgICAgcmVzdGFydCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY2xpZW50LFxuICAgIHJlc3RhcnQ6ICgpID0+IHJlc3RhcnQoKSxcbiAgfTtcbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtY2xpZW50LmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvZnVuY3Rpb25zL3dzLWNsaWVudC5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLFlBQVksQ0FBQztBQU1qRSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBc0I7SUFDNUQsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDLENBQUM7SUFFRixNQUFNLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVuQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDMUIsR0FBRyxPQUFPO1FBQ1YsRUFBRSxFQUFFO1lBQ0YsR0FBRyxFQUFFO1lBQ0wsU0FBUyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQ3pCLGFBQWE7Z0JBQ2IsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUV4QixPQUFPLEdBQUcsR0FBRyxFQUFFO29CQUNiLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ3pDLDhEQUE4RDt3QkFDOUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztvQkFDdkMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLCtEQUErRDt3QkFDL0Qsd0NBQXdDO3dCQUN4QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7b0JBQzFCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDO2dCQUVGLHlDQUF5QztnQkFDekMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO29CQUNyQixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUM7WUFDSCxDQUFDO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRTtLQUN6QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNsaWVudCwgQ2xpZW50LCBDbGllbnRPcHRpb25zIH0gZnJvbSAnZ3JhcGhxbC13cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGFydGFibGVDbGllbnQgZXh0ZW5kcyBDbGllbnQge1xuICByZXN0YXJ0KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXN0YXJ0YWJsZUNsaWVudChvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUmVzdGFydGFibGVDbGllbnQge1xuICBsZXQgcmVzdGFydFJlcXVlc3RlZCA9IGZhbHNlO1xuICBsZXQgcmVzdGFydCA9ICgpID0+IHtcbiAgICByZXN0YXJ0UmVxdWVzdGVkID0gdHJ1ZTtcbiAgfTtcblxuICBjb25zdCB7IG9uID0gdW5kZWZpbmVkIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBvbjoge1xuICAgICAgLi4ub24sXG4gICAgICBjb25uZWN0ZWQ6IChzb2NrZXQ6IGFueSkgPT4ge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9uPy5jb25uZWN0ZWQ/Lihzb2NrZXQpO1xuXG4gICAgICAgIHJlc3RhcnQgPSAoKSA9PiB7XG4gICAgICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgICAgLy8gaWYgdGhlIHNvY2tldCBpcyBzdGlsbCBvcGVuIGZvciB0aGUgcmVzdGFydCwgZG8gdGhlIHJlc3RhcnRcbiAgICAgICAgICAgIHNvY2tldC5jbG9zZSg0MjA1LCAnQ2xpZW50IFJlc3RhcnQnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHRoZSBzb2NrZXQgbWlnaHQndmUgY2xvc2VkLCBpbmRpY2F0ZSB0aGF0IHlvdSB3YW50XG4gICAgICAgICAgICAvLyBhIHJlc3RhcnQgb24gdGhlIG5leHQgY29ubmVjdGVkIGV2ZW50XG4gICAgICAgICAgICByZXN0YXJ0UmVxdWVzdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8ganVzdCBpbiBjYXNlIHlvdSB3ZXJlIGVhZ2VyIHRvIHJlc3RhcnRcbiAgICAgICAgaWYgKHJlc3RhcnRSZXF1ZXN0ZWQpIHtcbiAgICAgICAgICByZXN0YXJ0UmVxdWVzdGVkID0gZmFsc2U7XG4gICAgICAgICAgcmVzdGFydCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY2xpZW50LFxuICAgIHJlc3RhcnQ6ICgpID0+IHJlc3RhcnQoKSxcbiAgfTtcbn1cbiJdfQ==
@@ -140,13 +140,13 @@ export class AuthService {
140
140
  }
141
141
  return this._refreshToken.asObservable();
142
142
  }
143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AuthService, deps: [{ token: i1.StorageService }, { token: i2.WsService }, { token: i0.Injector }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
144
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AuthService, providedIn: 'root' });
143
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuthService, deps: [{ token: i1.StorageService }, { token: i2.WsService }, { token: i0.Injector }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Injectable });
144
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuthService, providedIn: 'root' });
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AuthService, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AuthService, decorators: [{
147
147
  type: Injectable,
148
148
  args: [{
149
149
  providedIn: 'root',
150
150
  }]
151
151
  }], ctorParameters: () => [{ type: i1.StorageService }, { type: i2.WsService }, { type: i0.Injector }, { type: i3.Router }] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUduRDs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBVVo7SUFDQTtJQUNBO0lBQ0E7SUFaVixXQUFXO0lBQ0gsWUFBWSxHQUErQixJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztJQUNoRixNQUFNLEdBQTRCLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO0lBQ3BFLGFBQWEsR0FBNEIsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7SUFFbkY7O09BRUc7SUFDSCxZQUNVLGNBQThCLEVBQzlCLFNBQW9CLEVBQ3BCLFFBQWtCLEVBQ2xCLE1BQWM7UUFIZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLFVBQVUsQ0FBMEMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1RSxJQUFJLENBQUMsUUFBUTtpQkFDVixHQUFHLENBQUMsY0FBYyxDQUFDO2lCQUNuQixPQUFPLENBQUMsY0FBYyxFQUFFO2dCQUN2QixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO2FBQ2xDLENBQUM7aUJBQ0QsU0FBUyxD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O1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7dUdBdkpVLFdBQVc7MkdBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzaWNVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9iYXNpYy11c2VyLmNsYXNzJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgV3NTZXJ2aWNlIH0gZnJvbSAnLi93cy5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBBdXRoZW50aWNhdGlvbiBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIC8vIFN1YmplY3RzXG4gIHByaXZhdGUgX2N1cnJlbnRVc2VyOiBCZWhhdmlvclN1YmplY3Q8QmFzaWNVc2VyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFzaWNVc2VyPihudWxsKTtcbiAgcHJpdmF0ZSBfdG9rZW46IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuICBwcml2YXRlIF9yZWZyZXNoVG9rZW46IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3c1NlcnZpY2U6IFdzU2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMubG9hZEZyb21TdG9yYWdlKCk7XG4gIH1cblxuICByZXF1ZXN0TmV3VG9rZW4oKTogT2JzZXJ2YWJsZTx7IHRva2VuOiBzdHJpbmc7IHJlZnJlc2hUb2tlbjogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8eyB0b2tlbjogc3RyaW5nOyByZWZyZXNoVG9rZW46IHN0cmluZyB9Pigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgdGhpcy5pbmplY3RvclxuICAgICAgICAuZ2V0KEdyYXBoUUxTZXJ2aWNlKVxuICAgICAgICAuZ3JhcGhRbCgncmVmcmVzaFRva2VuJywge1xuICAgICAgICAgIGZpZWxkczogWyd0b2tlbicsICdyZWZyZXNoVG9rZW4nXSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRva2VuID0gcmVzcG9uc2UudG9rZW47XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHJlc3BvbnNlLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXNwb25zZSk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZEZyb21TdG9yYWdlKCkge1xuICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHRoaXMudG9rZW4gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmxvYWQoJ3Rva2VuJykgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmxvYWQoJ3JlZnJlc2hUb2tlbicpIGFzIHN0cmluZztcbiAgICAgIHRoaXMuY3VycmVudFVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmxvYWQoJ2N1cnJlbnRVc2VyJykgYXMgQmFzaWNVc2VyO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dvdXRcbiAgICovXG4gIHB1YmxpYyBsb2dvdXQocmVkaXJlY3QgPSB0cnVlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICB0aGlzLmluamVjdG9yXG4gICAgICAgIC5nZXQoR3JhcGhRTFNlcnZpY2UpXG4gICAgICAgIC5ncmFwaFFsKCdsb2dvdXQnLCB7XG4gICAgICAgICAgZmllbGRzOiBbXSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGVhclNlc3Npb24ocmVkaXJlY3QpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyU2Vzc2lvbihyZWRpcmVjdCA9IHRydWUpIHtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZShbJ3Rva2VuJywgJ3JlZnJlc2hUb2tlbicsICdjdXJyZW50VXNlciddKTtcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gbnVsbDtcbiAgICB0aGlzLnRva2VuID0gbnVsbDtcbiAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IG51bGw7XG5cbiAgICBpZiAocmVkaXJlY3QpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2F1dGgnXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiAgLy8gQ3VycmVudCBVc2VyXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbiAgZ2V0IGN1cnJlbnRVc2VyKCk6IEJhc2ljVXNlciB7XG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRVc2VyLnZhbHVlO1xuICB9XG5cbiAgc2V0IGN1cnJlbnRVc2VyKHVzZXI6IEJhc2ljVXNlcikge1xuICAgIHRoaXMuX2N1cnJlbnRVc2VyLm5leHQodXNlcik7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zYXZlKCdjdXJyZW50VXNlcicsIHVzZXIpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRVc2VyT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJhc2ljVXNlcj4ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VXNlci5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gIC8vIFRva2VuXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbiAgZ2V0IHRva2VuKCk6IHN0cmluZyB7XG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRva2VuKHRva2VuOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90b2tlbi5uZXh0KHRva2VuKTtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNhdmUoJ3Rva2VuJywgdG9rZW4pO1xuICAgIHRoaXMud3NTZXJ2aWNlLnJlY29ubmVjdCgpO1xuICB9XG5cbiAgZ2V0IHRva2VuT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5fdG9rZW4udmFsdWUpIHtcbiAgICAgIHRoaXMubG9hZEZyb21TdG9yYWdlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiAgLy8gcmVmcmVzaFRva2VuXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbiAgZ2V0IHJlZnJlc2hUb2tlbigpOiBzdHJpbmcge1xuICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoVG9rZW4udmFsdWU7XG4gIH1cblxuICBzZXQgcmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVmcmVzaFRva2VuLm5leHQocmVmcmVzaFRva2VuKTtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNhdmUoJ3JlZnJlc2hUb2tlbicsIHJlZnJlc2hUb2tlbik7XG4gIH1cblxuICBnZXQgcmVmcmVzaFRva2VuT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5fcmVmcmVzaFRva2VuLnZhbHVlKSB7XG4gICAgICB0aGlzLmxvYWRGcm9tU3RvcmFnZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9yZWZyZXNoVG9rZW4uYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUduRDs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBVVo7SUFDQTtJQUNBO0lBQ0E7SUFaVixXQUFXO0lBQ0gsWUFBWSxHQUErQixJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsQ0FBQztJQUNoRixNQUFNLEdBQTRCLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO0lBQ3BFLGFBQWEsR0FBNEIsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLENBQUM7SUFFbkY7O09BRUc7SUFDSCxZQUNVLGNBQThCLEVBQzlCLFNBQW9CLEVBQ3BCLFFBQWtCLEVBQ2xCLE1BQWM7UUFIZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLFVBQVUsQ0FBMEMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1RSxJQUFJLENBQUMsUUFBUTtpQkFDVixHQUFHLENBQUMsY0FBYyxDQUFDO2lCQUNuQixPQUFPLENBQUMsY0FBYyxFQUFFO2dCQUN2QixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO2FBQ2xDLENBQUM7aUJBQ0QsU0FBUyxD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QUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO3VHQXZKVSxXQUFXOzJHQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2ljVXNlciB9IGZyb20gJy4uL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdzU2VydmljZSB9IGZyb20gJy4vd3Muc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gc2VydmljZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICAvLyBTdWJqZWN0c1xuICBwcml2YXRlIF9jdXJyZW50VXNlcjogQmVoYXZpb3JTdWJqZWN0PEJhc2ljVXNlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2ljVXNlcj4obnVsbCk7XG4gIHByaXZhdGUgX3Rva2VuOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgd3NTZXJ2aWNlOiBXc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLmxvYWRGcm9tU3RvcmFnZSgpO1xuICB9XG5cbiAgcmVxdWVzdE5ld1Rva2VuKCk6IE9ic2VydmFibGU8eyB0b2tlbjogc3RyaW5nOyByZWZyZXNoVG9rZW46IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHsgdG9rZW46IHN0cmluZzsgcmVmcmVzaFRva2VuOiBzdHJpbmcgfT4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHRoaXMuaW5qZWN0b3JcbiAgICAgICAgLmdldChHcmFwaFFMU2VydmljZSlcbiAgICAgICAgLmdyYXBoUWwoJ3JlZnJlc2hUb2tlbicsIHtcbiAgICAgICAgICBmaWVsZHM6IFsndG9rZW4nLCAncmVmcmVzaFRva2VuJ10sXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4gPSByZXNwb25zZS5yZWZyZXNoVG9rZW47XG4gICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRGcm9tU3RvcmFnZSgpIHtcbiAgICBpZiAobG9jYWxTdG9yYWdlKSB7XG4gICAgICB0aGlzLnRva2VuID0gdGhpcy5zdG9yYWdlU2VydmljZS5sb2FkKCd0b2tlbicpIGFzIHN0cmluZztcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuID0gdGhpcy5zdG9yYWdlU2VydmljZS5sb2FkKCdyZWZyZXNoVG9rZW4nKSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5zdG9yYWdlU2VydmljZS5sb2FkKCdjdXJyZW50VXNlcicpIGFzIEJhc2ljVXNlcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9nb3V0XG4gICAqL1xuICBwdWJsaWMgbG9nb3V0KHJlZGlyZWN0ID0gdHJ1ZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgdGhpcy5pbmplY3RvclxuICAgICAgICAuZ2V0KEdyYXBoUUxTZXJ2aWNlKVxuICAgICAgICAuZ3JhcGhRbCgnbG9nb3V0Jywge1xuICAgICAgICAgIGZpZWxkczogW10sXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZXNzaW9uKHJlZGlyZWN0KTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhclNlc3Npb24ocmVkaXJlY3QgPSB0cnVlKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmUoWyd0b2tlbicsICdyZWZyZXNoVG9rZW4nLCAnY3VycmVudFVzZXInXSk7XG4gICAgdGhpcy5jdXJyZW50VXNlciA9IG51bGw7XG4gICAgdGhpcy50b2tlbiA9IG51bGw7XG4gICAgdGhpcy5yZWZyZXNoVG9rZW4gPSBudWxsO1xuXG4gICAgaWYgKHJlZGlyZWN0KSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdXRoJ10pO1xuICAgIH1cbiAgfVxuXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gIC8vIEN1cnJlbnQgVXNlclxuICAvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuXG4gIGdldCBjdXJyZW50VXNlcigpOiBCYXNpY1VzZXIge1xuICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VXNlci52YWx1ZTtcbiAgfVxuXG4gIHNldCBjdXJyZW50VXNlcih1c2VyOiBCYXNpY1VzZXIpIHtcbiAgICB0aGlzLl9jdXJyZW50VXNlci5uZXh0KHVzZXIpO1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2F2ZSgnY3VycmVudFVzZXInLCB1c2VyKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50VXNlck9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCYXNpY1VzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFVzZXIuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuICAvLyBUb2tlblxuICAvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuXG4gIGdldCB0b2tlbigpOiBzdHJpbmcge1xuICAgIGlmICghbG9jYWxTdG9yYWdlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90b2tlbi52YWx1ZTtcbiAgfVxuXG4gIHNldCB0b2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgdGhpcy5fdG9rZW4ubmV4dCh0b2tlbik7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zYXZlKCd0b2tlbicsIHRva2VuKTtcbiAgICB0aGlzLndzU2VydmljZS5yZWNvbm5lY3QoKTtcbiAgfVxuXG4gIGdldCB0b2tlbk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuX3Rva2VuLnZhbHVlKSB7XG4gICAgICB0aGlzLmxvYWRGcm9tU3RvcmFnZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90b2tlbi5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4gIC8vIHJlZnJlc2hUb2tlblxuICAvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuXG4gIGdldCByZWZyZXNoVG9rZW4oKTogc3RyaW5nIHtcbiAgICBpZiAoIWxvY2FsU3RvcmFnZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcmVmcmVzaFRva2VuLnZhbHVlO1xuICB9XG5cbiAgc2V0IHJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW46IHN0cmluZykge1xuICAgIHRoaXMuX3JlZnJlc2hUb2tlbi5uZXh0KHJlZnJlc2hUb2tlbik7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zYXZlKCdyZWZyZXNoVG9rZW4nLCByZWZyZXNoVG9rZW4pO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2hUb2tlbk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuX3JlZnJlc2hUb2tlbi52YWx1ZSkge1xuICAgICAgdGhpcy5sb2FkRnJvbVN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcmVmcmVzaFRva2VuLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
@@ -57,13 +57,13 @@ export class BreadcrumbService {
57
57
  getLabel(data) {
58
58
  return typeof data.breadcrumb === 'function' ? data.breadcrumb(data) : data.breadcrumb;
59
59
  }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
61
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BreadcrumbService, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: BreadcrumbService, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{
66
66
  providedIn: 'root',
67
67
  }]
68
68
  }], ctorParameters: () => [{ type: i1.Router }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvYnJlYWRjcnVtYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFnQyxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTXRGLE1BQU0sT0FBTyxpQkFBaUI7SUFXUjtJQVZILFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztJQUV0RSxJQUFJLFdBQVcsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDN0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNuRCxNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssYUFBYSxDQUFDLEtBQTZCLEVBQUUsU0FBbUIsRUFBRSxXQUF5QjtRQUNqRyxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXBFLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQzFCLE1BQU0sVUFBVSxHQUFHO29CQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNoQyxHQUFHLEVBQUUsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2lCQUM5QixDQUFDO2dCQUNGLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDOUI7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQzdEO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssUUFBUSxDQUFDLElBQVU7UUFDekIsT0FBTyxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pGLENBQUM7dUdBM0RVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JyZWFkY3J1bWIuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJlYWRjcnVtYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJbXT4oW10pO1xuXG4gIHNldCBicmVhZGNydW1icyh2YWx1ZTogQnJlYWRjcnVtYltdKSB7XG4gICAgdGhpcy5fYnJlYWRjcnVtYnMubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgYnJlYWRjcnVtYnNPYnNlcnZhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLl9icmVhZGNydW1icy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnN1YnNjcmliZVRvUm91dGVDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHJvdXRlIGNoYW5nZXMgYW5kIGFkZCBlbGVtZW50IHRvIGJyZWFkY3J1bWJcbiAgICovXG4gIHN1YnNjcmliZVRvUm91dGVDaGFuZ2VzKCkge1xuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290O1xuICAgICAgY29uc3QgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSA9IFtdO1xuICAgICAgdGhpcy5hZGRCcmVhZGNydW1iKHJvb3QsIFtdLCBicmVhZGNydW1icyk7XG4gICAgICB0aGlzLmJyZWFkY3J1bWJzID0gYnJlYWRjcnVtYnM7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGVsZW1lbnQgdG8gYnJlYWRjcnVtYlxuICAgKlxuICAgKiBAcGFyYW0gcm91dGVcbiAgICogQHBhcmFtIHBhcmVudFVybFxuICAgKiBAcGFyYW0gYnJlYWRjcnVtYnNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYWRkQnJlYWRjcnVtYihyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcGFyZW50VXJsOiBzdHJpbmdbXSwgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSkge1xuICAgIGlmIChyb3V0ZSkge1xuICAgICAgY29uc3Qgcm91dGVVcmwgPSBwYXJlbnRVcmwuY29uY2F0KHJvdXRlLnVybC5tYXAoKHVybCkgPT4gdXJsLnBhdGgpKTtcblxuICAgICAgaWYgKHJvdXRlLmRhdGE/LmJyZWFkY3J1bWIpIHtcbiAgICAgICAgY29uc3QgYnJlYWRjcnVtYiA9IHtcbiAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbChyb3V0ZS5kYXRhKSxcbiAgICAgICAgICB1cmw6ICcvJyArIHJvdXRlVXJsLmpvaW4oJy8nKSxcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWRjcnVtYnMucHVzaChicmVhZGNydW1iKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGRCcmVhZGNydW1iKHJvdXRlLmZpcnN0Q2hpbGQsIHJvdXRlVXJsLCBicmVhZGNydW1icyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsYWJlbCBmb3IgYnJlYWRjcnVtYlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMYWJlbChkYXRhOiBEYXRhKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBkYXRhLmJyZWFkY3J1bWIgPT09ICdmdW5jdGlvbicgPyBkYXRhLmJyZWFkY3J1bWIoZGF0YSkgOiBkYXRhLmJyZWFkY3J1bWI7XG4gIH1cbn1cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvYnJlYWRjcnVtYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFnQyxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTXRGLE1BQU0sT0FBTyxpQkFBaUI7SUFXUjtJQVZILFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztJQUV0RSxJQUFJLFdBQVcsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDN0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNuRCxNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssYUFBYSxDQUFDLEtBQTZCLEVBQUUsU0FBbUIsRUFBRSxXQUF5QjtRQUNqRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEUsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO2dCQUMzQixNQUFNLFVBQVUsR0FBRztvQkFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDaEMsR0FBRyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztpQkFDOUIsQ0FBQztnQkFDRixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxRQUFRLENBQUMsSUFBVTtRQUN6QixPQUFPLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekYsQ0FBQzt1R0EzRFUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJy4uL2ludGVyZmFjZXMvYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYltdPihbXSk7XG5cbiAgc2V0IGJyZWFkY3J1bWJzKHZhbHVlOiBCcmVhZGNydW1iW10pIHtcbiAgICB0aGlzLl9icmVhZGNydW1icy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBicmVhZGNydW1ic09ic2VydmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Sb3V0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyBhbmQgYWRkIGVsZW1lbnQgdG8gYnJlYWRjcnVtYlxuICAgKi9cbiAgc3Vic2NyaWJlVG9Sb3V0ZUNoYW5nZXMoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3Q7XG4gICAgICBjb25zdCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm9vdCwgW10sIGJyZWFkY3J1bWJzKTtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBicmVhZGNydW1icztcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgZWxlbWVudCB0byBicmVhZGNydW1iXG4gICAqXG4gICAqIEBwYXJhbSByb3V0ZVxuICAgKiBAcGFyYW0gcGFyZW50VXJsXG4gICAqIEBwYXJhbSBicmVhZGNydW1ic1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCcmVhZGNydW1iKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBwYXJlbnRVcmw6IHN0cmluZ1tdLCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdKSB7XG4gICAgaWYgKHJvdXRlKSB7XG4gICAgICBjb25zdCByb3V0ZVVybCA9IHBhcmVudFVybC5jb25jYXQocm91dGUudXJsLm1hcCgodXJsKSA9PiB1cmwucGF0aCkpO1xuXG4gICAgICBpZiAocm91dGUuZGF0YT8uYnJlYWRjcnVtYikge1xuICAgICAgICBjb25zdCBicmVhZGNydW1iID0ge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKHJvdXRlLmRhdGEpLFxuICAgICAgICAgIHVybDogJy8nICsgcm91dGVVcmwuam9pbignLycpLFxuICAgICAgICB9O1xuICAgICAgICBicmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgcm91dGVVcmwsIGJyZWFkY3J1bWJzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxhYmVsIGZvciBicmVhZGNydW1iXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldExhYmVsKGRhdGE6IERhdGEpIHtcbiAgICByZXR1cm4gdHlwZW9mIGRhdGEuYnJlYWRjcnVtYiA9PT0gJ2Z1bmN0aW9uJyA/IGRhdGEuYnJlYWRjcnVtYihkYXRhKSA6IGRhdGEuYnJlYWRjcnVtYjtcbiAgfVxufVxuIl19