@cleavelandprice/ngx-lib 3.6.0 → 3.6.2

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 (52) hide show
  1. package/active-directory/gui/components/user-chooser/user-chooser.component.d.ts +3 -3
  2. package/active-directory/gui/components/user-form-field/user-form-field.component.d.ts +1 -1
  3. package/active-directory/gui/gui.module.d.ts +11 -11
  4. package/authentication/token/gui/components/login/login.component.d.ts +1 -1
  5. package/authentication/token/gui/components/login-form/login-form.component.d.ts +1 -1
  6. package/dialog/components/choice/choice.component.d.ts +1 -1
  7. package/dialog/components/confirmation/confirmation.component.d.ts +1 -1
  8. package/dialog/components/input/input.component.d.ts +1 -1
  9. package/dialog/components/message/message.component.d.ts +1 -1
  10. package/esm2020/active-directory/gui/components/user-chooser/user-chooser.component.mjs +16 -16
  11. package/esm2020/active-directory/gui/components/user-form-field/user-form-field.component.mjs +11 -11
  12. package/esm2020/active-directory/gui/gui.module.mjs +11 -11
  13. package/esm2020/authentication/token/gui/components/login/login.component.mjs +4 -4
  14. package/esm2020/authentication/token/gui/components/login-form/login-form.component.mjs +10 -11
  15. package/esm2020/dialog/components/choice/choice.component.mjs +5 -5
  16. package/esm2020/dialog/components/confirmation/confirmation.component.mjs +5 -5
  17. package/esm2020/dialog/components/input/input.component.mjs +5 -5
  18. package/esm2020/dialog/components/message/message.component.mjs +5 -5
  19. package/esm2020/quill/components/editor/editor.component.mjs +6 -6
  20. package/esm2020/quill/components/raw/raw.component.mjs +2 -2
  21. package/esm2020/quill/mention/components/editor/editor.component.mjs +6 -6
  22. package/esm2020/upload/components/upload/upload.component.mjs +4 -4
  23. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +7 -8
  24. package/fesm2015/cleavelandprice-ngx-lib-active-directory-gui.mjs +60 -61
  25. package/fesm2015/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
  26. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs +13 -15
  27. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
  28. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +15 -17
  29. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  30. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs +6 -7
  31. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  32. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs +9 -11
  33. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  34. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +9 -10
  35. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  36. package/fesm2020/cleavelandprice-ngx-lib-active-directory-gui.mjs +60 -61
  37. package/fesm2020/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
  38. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs +13 -15
  39. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
  40. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs +15 -17
  41. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  42. package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs +6 -7
  43. package/fesm2020/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  44. package/fesm2020/cleavelandprice-ngx-lib-quill.mjs +9 -11
  45. package/fesm2020/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  46. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs +9 -10
  47. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  48. package/package.json +1 -1
  49. package/quill/components/editor/editor.component.d.ts +1 -1
  50. package/quill/mention/components/editor/editor.component.d.ts +1 -1
  51. package/upload/components/upload/upload.component.d.ts +1 -1
  52. package/upload/components/upload-dialog/upload-dialog.component.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import { Component, Inject } from '@angular/core';
2
- import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/forms";
5
5
  import * as i2 from "@angular/material/button";
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
21
21
  type: Inject,
22
22
  args: [MAT_DIALOG_DATA]
23
23
  }] }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL3Jhdy9yYXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvcmF3L3Jhdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBTzVGLE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQTRDLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUksQ0FBQzs7eUdBRmxELFlBQVksa0JBRUgsZUFBZTs2RkFGeEIsWUFBWSxtRENSekIsd2xCQWtCcUI7MkZEVlIsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxhQUFhOzswQkFNVixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1yYXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmF3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmF3LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSYXdDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogc3RyaW5nKSB7IH1cbn0iLCI8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmb3JtPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImRhdGFcIiBuYW1lPVwiZGF0YVwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBtYXQtZGlhbG9nLWNsb3NlPVwiX19ETyEhTk9UISFVUERBVEVfX1wiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+Q2FuY2VsPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJkYXRhXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kb25lPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+QWNjZXB0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL3Jhdy9yYXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvcmF3L3Jhdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQTRDLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUksQ0FBQzs7eUdBRmxELFlBQVksa0JBRUgsZUFBZTs2RkFGeEIsWUFBWSxtRENSekIsd2xCQWtCcUI7MkZEVlIsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxhQUFhOzswQkFNVixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1yYXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmF3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmF3LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSYXdDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogc3RyaW5nKSB7IH1cbn0iLCI8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmb3JtPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImRhdGFcIiBuYW1lPVwiZGF0YVwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBtYXQtZGlhbG9nLWNsb3NlPVwiX19ETyEhTk9UISFVUERBVEVfX1wiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+Q2FuY2VsPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJkYXRhXCI+XG4gICAgICAgIDxtYXQtaWNvbj5kb25lPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+QWNjZXB0PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
@@ -1,7 +1,7 @@
1
1
  import { Component, Inject, Input, Optional, forwardRef } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
3
  //import { FormGroup } from '@angular/forms';
4
- import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
4
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
5
  import { ActiveDirectoryService } from '@cleavelandprice/ngx-lib/active-directory';
6
6
  import 'quill-mention';
7
7
  //#region Moved to client responsibility
@@ -14,7 +14,7 @@ import 'quill-mention';
14
14
  //#endregion
15
15
  import { EditorComponent as EditorComponentBase } from '@cleavelandprice/ngx-lib/quill';
16
16
  import * as i0 from "@angular/core";
17
- import * as i1 from "@angular/material/legacy-dialog";
17
+ import * as i1 from "@angular/material/dialog";
18
18
  import * as i2 from "@angular/common";
19
19
  import * as i3 from "@angular/forms";
20
20
  import * as i4 from "@angular/material/icon";
@@ -126,7 +126,7 @@ export class EditorComponent extends EditorComponentBase {
126
126
  return modules;
127
127
  }
128
128
  }
129
- EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatLegacyDialogRef, optional: true }, { token: i1.MatLegacyDialog }, { token: ActiveDirectoryService }], target: i0.ɵɵFactoryTarget.Component });
129
+ EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialogRef, optional: true }, { token: i1.MatDialog }, { token: ActiveDirectoryService }], target: i0.ɵɵFactoryTarget.Component });
130
130
  EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: EditorComponent, selector: "cpquill-editor-with-mention", inputs: { users: "users" }, providers: [{
131
131
  provide: NG_VALUE_ACCESSOR,
132
132
  useExisting: forwardRef(() => EditorComponent),
@@ -144,12 +144,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
144
144
  }, {
145
145
  type: Inject,
146
146
  args: [MAT_DIALOG_DATA]
147
- }] }, { type: i1.MatLegacyDialogRef, decorators: [{
147
+ }] }, { type: i1.MatDialogRef, decorators: [{
148
148
  type: Optional
149
- }] }, { type: i1.MatLegacyDialog }, { type: i7.ActiveDirectoryService, decorators: [{
149
+ }] }, { type: i1.MatDialog }, { type: i7.ActiveDirectoryService, decorators: [{
150
150
  type: Inject,
151
151
  args: [ActiveDirectoryService]
152
152
  }] }]; }, propDecorators: { users: [{
153
153
  type: Input
154
154
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL21lbnRpb24vc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC9tZW50aW9uL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLDZDQUE2QztBQUM3QyxPQUFPLEVBQW9FLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlKLE9BQU8sRUFBRSxzQkFBc0IsRUFBUSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sZUFBZSxDQUFDO0FBRXZCLHdDQUF3QztBQUN4Qyw0QkFBNEI7QUFFNUIscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsK0dBQStHO0FBQy9HLHNEQUFzRDtBQUV0RCxZQUFZO0FBRVosT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFheEYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBR3RELFlBQWlELElBQWdCLEVBQ2pDLE1BQXFDLEVBQ2pELEdBQWMsRUFDa0Isc0JBQThDO1FBRXBGLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSlAsV0FBTSxH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SW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbi8vaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZywgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiwgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsIFVzZXIgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeSc7XG5cbmltcG9ydCAncXVpbGwtbWVudGlvbic7XG5cbi8vI3JlZ2lvbiBNb3ZlZCB0byBjbGllbnQgcmVzcG9uc2liaWxpdHlcbi8vaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcblxuLy8gVGhpcyBkb2Vzbid0IHdvcmsgd2hlbiBkb25lIGZyb20gdGhlIGxpYnJhcnkgLSBpdCBtdXN0IGJlIGRvbmUgZnJvbSB0aGUgY2xpZW50IGFwcFxuLy9pbXBvcnQgSW1hZ2VSZXNpemUgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXplLW1vZHVsZSc7XG4vL1F1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlUmVzaXplJywgSW1hZ2VSZXNpemUpO1xuXG4vLyBUcmVhdGluZyBJbWFnZURyb3AgdGhlIHNhbWUgd2F5IGFzIEltYWdlUmVzaXplLCBldmVuIHRob3VnaCBpdCBkb2Vzbid0IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBkZXNjcmliZWQgYWJvdmVcbi8vaW1wb3J0IHsgSW1hZ2VEcm9wIH0gZnJvbSAncXVpbGwtaW1hZ2UtZHJvcC1tb2R1bGUnO1xuXG4vLyNlbmRyZWdpb25cblxuaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50IGFzIEVkaXRvckNvbXBvbmVudEJhc2UgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwnO1xuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWxvZy1kYXRhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1lZGl0b3Itd2l0aC1tZW50aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEVkaXRvckNvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgdXNlcnM6IFVzZXJbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZGF0YTogRGlhbG9nRGF0YSxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkbGdSZWY6IE1hdERpYWxvZ1JlZjxFZGl0b3JDb21wb25lbnQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIGRsZzogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICBASW5qZWN0KEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UpIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSkge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHN1cGVyKGRhdGEsIGRsZ1JlZiwgZGxnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIFxuICAgIGlmICghdGhpcy51c2Vycykge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXJzKCkuc3Vic2NyaWJlKHVzZXJzID0+XG4gICAgICAgIHRoaXMudXNlcnMgPSB1c2Vyc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB0b2dnbGVGdWxsc2NyZWVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJykge1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSAhdGhpcy5mdWxsc2NyZWVuO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodGhpcy5mdWxsc2NyZWVuKTtcbiAgICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW4pIHtcbiAgICAgICAgdGhpcy5kbGdSZWYuY2xvc2UodGhpcy52YWx1ZSk7XG4gICAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGE6IERpYWxvZ0RhdGEgPSB7XG5cbiAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxuICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICAgIGVuYWJsZVRvb2x0aXBzOiB0aGlzLmVuYWJsZVRvb2x0aXBzISxcbiAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLFxuICAgICAgICAgIGZ1bGxzY3JlZW5Nb2RlOiB0aGlzLmZ1bGxzY3JlZW5Nb2RlLFxuICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5ISxcbiAgICAgICAgICBhcHBseVJlYWRvbmx5U3R5bGU6IHRoaXMuYXBwbHlSZWFkb25seVN0eWxlISxcbiAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5zaG93VG9vbGJhciEsXG4gICAgICAgICAgc2hvd0JvcmRlcjogdGhpcy5zaG93Qm9yZGVyISxcbiAgICAgICAgICBpbWFnZVJlc2l6ZU1vZHVsZTogdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSEsXG4gICAgICAgICAgaW1hZ2VEcm9wTW9kdWxlOiB0aGlzLmltYWdlRHJvcE1vZHVsZSEsXG4gICAgICAgICAgc3ludGF4TW9kdWxlOiB0aGlzLnN5bnRheE1vZHVsZSEsXG4gICAgICAgICAgdXNlcnM6IHRoaXMudXNlcnNcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRsZy5vcGVuKEVkaXRvckNvbXBvbmVudCwge1xuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICB3aWR0aDogdGhpcy5mdWxsc2NyZWVuV2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KVxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBnZXQgbW9kdWxlcygpIHtcbiAgICBpZiAoIXRoaXMudXNlcnMpIHsgcmV0dXJuIHt9OyB9XG5cbiAgICBjb25zdCBtb2R1bGVzID0ge1xuICAgICAgbWVudGlvbjoge1xuICAgICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXG5cbiAgICAgICAgb25TZWxlY3Q6IChpdGVtOiBET01TdHJpbmdNYXAsIGluc2VydEl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yIS5xdWlsbEVkaXRvclxuICAgICAgICAgIGluc2VydEl0ZW0oaXRlbSlcbiAgICAgICAgICAvLyBuZWNlc3NhcnkgYmVjYXVzZSBxdWlsbC1tZW50aW9uIHRyaWdnZXJzIGNoYW5nZXMgYXMgJ2FwaScgaW5zdGVhZCBvZiAndXNlcidcbiAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxuICAgICAgICB9LFxuXG4gICAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZW5kZXJMaXN0KHRoaXMudXNlcnM/Lm1hcCh1ID0+ICh7IHZhbHVlOiBgJHt1LmRpc3BsYXlOYW1lfSAoJHt1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCl9KWAgfSkpLCBzZWFyY2hUZXJtKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzOiBhbnlbXSA9IFtdXG5cbiAgICAgICAgICAgIHRoaXMudXNlcnMhLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlbnRyeS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcbiAgICAgICAgICAgICAgICBlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goeyB2YWx1ZTogYCR7ZW50cnkuZGlzcGxheU5hbWV9ICgke2VudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCl9KWAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuc2hvd1Rvb2xiYXIpIHtcbiAgICAgIG1vZHVsZXNbJ3Rvb2xiYXInXSA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlUmVzaXplTW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydpbWFnZVJlc2l6ZSddID0ge307XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydpbWFnZURyb3AnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3ludGF4TW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydzeW50YXgnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZXM7XG4gIH1cbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidXNlcnNcIj5cbiAgICA8Zm9ybT5cbiAgICAgICAgPHF1aWxsLWVkaXRvciBuYW1lPVwiZWRpdG9yXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ2hhbmdlcygpXCJcblxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5IZWlnaHQgOiBoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImZ1bGxzY3JlZW4gPyBmdWxsc2NyZWVuV2lkdGggOiB3aWR0aFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5ICYmIGFwcGx5UmVhZG9ubHlTdHlsZVwiXG4gICAgICAgICAgICBbY2xhc3Mubm8tdG9vbGJhcl09XCIhc2hvd1Rvb2xiYXJcIlxuICAgICAgICAgICAgW2NsYXNzLm5vLWJvcmRlcl09XCIhc2hvd0JvcmRlclwiXG4gICAgICAgICAgICBbbW9kdWxlc109XCJtb2R1bGVzXCJcbiAgICBcbiAgICAgICAgICAgIChvbkJsdXIpPVwib25CbHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkNvbnRlbnRDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25FZGl0b3JDaGFuZ2VkKT1cIm9uRWRpdG9yQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uRWRpdG9yQ3JlYXRlZCk9XCJvbkVkaXRvckNyZWF0ZWQuZW1pdCgpXCJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50KVwiPlxuICAgIFxuICAgICAgICAgICAgPGRpdiBxdWlsbC1lZGl0b3ItdG9vbGJhciAqbmdJZj1cInNob3dUb29sYmFyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sYmFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlZGl0b3JTaXplXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9xdWlsbC1lZGl0b3I+XG4gICAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cbiAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJsb2NrU3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nU3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzY3JpcHRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImluZGVudFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicnRsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFNpemVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWxpZ25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbGVhblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bnQtY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvcm11bGFcIj48L250LWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZWRpYVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dGb250U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJvbGRcIiAgICAgICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmJvbGRcIiAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5ib2xkKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaXRhbGljXCIgICAgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuaXRhbGljXCIgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLml0YWxpYylcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXVuZGVybGluZVwiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLnVuZGVybGluZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy51bmRlcmxpbmUpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zdHJpa2VcIiAgICAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5zdHJpa2VcIiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuc3RyaWtlKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYmxvY2tTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuc2hvd0Jsb2NrU3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5ibG9ja3F1b3RlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmJsb2NrcXVvdGUpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jb2RlLWJsb2NrXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuY29kZWJsb2NrXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5jb2RlYmxvY2spXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nU3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dRdWlja0hlYWRpbmdTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIxXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuaDFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaDEpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjJcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5oMlwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5oMilcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xpc3RTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuc2hvd0xpc3RTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLm9yZGVyZWRcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLm9yZGVyZWQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJidWxsZXRcIiAgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuYnVsbGV0ZWRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuYnVsbGV0ZWQpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzY3JpcHRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuc2hvd1NjcmlwdFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1YlwiICAgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuc3ViU2NyaXB0XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnN1YlNjcmlwdClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3VwZXJcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5zdXBlclNjcmlwdFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5zdXBlclNjcmlwdClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuICAgIFxuPG5nLXRlbXBsYXRlICNpbmRlbnRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuc2hvd0luZGVudFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIi0xXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuZGVjcmVhc2VJbmRlbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuZGVjcmVhc2VJbmRlbnQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuaW5jcmVhc2VJbmRlbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaW5jcmVhc2VJbmRlbnQpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNydGw+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMucnRsXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5ydGwpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U2l6ZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5mb250U2l6ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5mb250U2l6ZSlcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLXNpemVcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJsYXJnZVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImh1Z2VcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmhlYWRpbmdTdHlsZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5oZWFkaW5nU3R5bGUpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjNcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjZcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbG9yPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmNvbG9yXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmNvbG9yKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIj48L3NlbGVjdD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnQ+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuZm9udFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5mb250KVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzZXJpZlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FsaWduPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmFsaWduXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmFsaWduKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY2VudGVyXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJqdXN0aWZ5XCI+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2xlYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuY2xlYW5cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuY2xlYW4pXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jbGVhblwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVkaWE+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dNZWRpYVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlua1wiICAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5saW5rXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmxpbmspXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmltYWdlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmltYWdlKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdmlkZW9cIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy52aWRlb1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy52aWRlbylcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXRvclNpemU+XG4gICAgPGRpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMucmF3RWRpdG9yXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwicmF3ZG9nXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMucmF3RWRpdG9yKVwiPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJyYXdFZGl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgY29kZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmVkaXRvclNpemVcIj5cbiAgICAgICAgICAgIDxidXR0b24gaWQ9XCJmdWxsc2NyZWVuXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGZ1bGxzY3JlZW4gP1xuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnIS50b29sdGlwcy5taW5pbWl6ZSA6IGNvbmZpZyEudG9vbHRpcHMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZyEudG9vbHRpcHMubWF4aW1pemUgOiBjb25maWchLnRvb2x0aXBzLnBvcG91dCkpXCI+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4oKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBmdWxsc2NyZWVuID9cbiAgICAgICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWchLmljb25zLm1pbmltaXplIDogY29uZmlnIS5pY29ucy5wb3BpbikgOlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZyEuaWNvbnMubWF4aW1pemUgOiBjb25maWchLmljb25zLnBvcG91dClcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybXVsYT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5mb3JtdWxhXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmZvcm11bGEpXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1mb3JtdWxhXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL21lbnRpb24vc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC9tZW50aW9uL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLDZDQUE2QztBQUM3QyxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBUSxNQUFNLDJDQUEyQyxDQUFDO0FBRXpGLE9BQU8sZUFBZSxDQUFDO0FBRXZCLHdDQUF3QztBQUN4Qyw0QkFBNEI7QUFFNUIscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsK0dBQStHO0FBQy9HLHNEQUFzRDtBQUV0RCxZQUFZO0FBRVosT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7QUFheEYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBR3RELFlBQWlELElBQWdCLEVBQ2pDLE1BQXFDLEVBQ2pELEdBQWMsRUFDa0Isc0JBQThDO1FBRXBGLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSlAsV0FBTSxHQUFOLE1BQU0sQ0FB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dCwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbi8vaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xuXG5pbXBvcnQgJ3F1aWxsLW1lbnRpb24nO1xuXG4vLyNyZWdpb24gTW92ZWQgdG8gY2xpZW50IHJlc3BvbnNpYmlsaXR5XG4vL2ltcG9ydCBRdWlsbCBmcm9tICdxdWlsbCc7XG5cbi8vIFRoaXMgZG9lc24ndCB3b3JrIHdoZW4gZG9uZSBmcm9tIHRoZSBsaWJyYXJ5IC0gaXQgbXVzdCBiZSBkb25lIGZyb20gdGhlIGNsaWVudCBhcHBcbi8vaW1wb3J0IEltYWdlUmVzaXplIGZyb20gJ3F1aWxsLWltYWdlLXJlc2l6ZS1tb2R1bGUnO1xuLy9RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZVJlc2l6ZScsIEltYWdlUmVzaXplKTtcblxuLy8gVHJlYXRpbmcgSW1hZ2VEcm9wIHRoZSBzYW1lIHdheSBhcyBJbWFnZVJlc2l6ZSwgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBoYXZlIHRoZSBzYW1lIHByb2JsZW0gZGVzY3JpYmVkIGFib3ZlXG4vL2ltcG9ydCB7IEltYWdlRHJvcCB9IGZyb20gJ3F1aWxsLWltYWdlLWRyb3AtbW9kdWxlJztcblxuLy8jZW5kcmVnaW9uXG5cbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCBhcyBFZGl0b3JDb21wb25lbnRCYXNlIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsJztcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NwcXVpbGwtZWRpdG9yLXdpdGgtbWVudGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LmNzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWRpdG9yQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBFZGl0b3JDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGE6IERpYWxvZ0RhdGEsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGxnUmVmOiBNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkbGc6IE1hdERpYWxvZyxcbiAgICAgICAgICAgICAgQEluamVjdChBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlKSBwcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2U6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBzdXBlcihkYXRhLCBkbGdSZWYsIGRsZyk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICBcbiAgICBpZiAoIXRoaXMudXNlcnMpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRVc2VycygpLnN1YnNjcmliZSh1c2VycyA9PlxuICAgICAgICB0aGlzLnVzZXJzID0gdXNlcnNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcpIHtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRoaXMuZnVsbHNjcmVlbik7XG4gICAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuKSB7XG4gICAgICAgIHRoaXMuZGxnUmVmLmNsb3NlKHRoaXMudmFsdWUpO1xuICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdChmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkYXRhOiBEaWFsb2dEYXRhID0ge1xuXG4gICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogdGhpcy5wbGFjZWhvbGRlcixcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuZm9ybWF0LFxuICAgICAgICAgIGhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXG4gICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBlbmFibGVUb29sdGlwczogdGhpcy5lbmFibGVUb29sdGlwcyEsXG4gICAgICAgICAgZnVsbHNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBmdWxsc2NyZWVuTW9kZTogdGhpcy5mdWxsc2NyZWVuTW9kZSxcbiAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSEsXG4gICAgICAgICAgYXBwbHlSZWFkb25seVN0eWxlOiB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSEsXG4gICAgICAgICAgc2hvd1Rvb2xiYXI6IHRoaXMuc2hvd1Rvb2xiYXIhLFxuICAgICAgICAgIHNob3dCb3JkZXI6IHRoaXMuc2hvd0JvcmRlciEsXG4gICAgICAgICAgaW1hZ2VSZXNpemVNb2R1bGU6IHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUhLFxuICAgICAgICAgIGltYWdlRHJvcE1vZHVsZTogdGhpcy5pbWFnZURyb3BNb2R1bGUhLFxuICAgICAgICAgIHN5bnRheE1vZHVsZTogdGhpcy5zeW50YXhNb2R1bGUhLFxuICAgICAgICAgIHVzZXJzOiB0aGlzLnVzZXJzXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kbGcub3BlbihFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICAgICAgd2lkdGg6IHRoaXMuZnVsbHNjcmVlbldpZHRoLFxuICAgICAgICAgIGhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IG1vZHVsZXMoKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJzKSB7IHJldHVybiB7fTsgfVxuXG4gICAgY29uc3QgbW9kdWxlcyA9IHtcbiAgICAgIG1lbnRpb246IHtcbiAgICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxuXG4gICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvciEucXVpbGxFZGl0b3JcbiAgICAgICAgICBpbnNlcnRJdGVtKGl0ZW0pXG4gICAgICAgICAgLy8gbmVjZXNzYXJ5IGJlY2F1c2UgcXVpbGwtbWVudGlvbiB0cmlnZ2VycyBjaGFuZ2VzIGFzICdhcGknIGluc3RlYWQgb2YgJ3VzZXInXG4gICAgICAgICAgZWRpdG9yLmluc2VydFRleHQoZWRpdG9yLmdldExlbmd0aCgpIC0gMSwgJycsICd1c2VyJylcbiAgICAgICAgfSxcblxuICAgICAgICBzb3VyY2U6IChzZWFyY2hUZXJtOiBzdHJpbmcsIHJlbmRlckxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmVuZGVyTGlzdCh0aGlzLnVzZXJzPy5tYXAodSA9PiAoeyB2YWx1ZTogYCR7dS5kaXNwbGF5TmFtZX0gKCR7dS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pKSwgc2VhcmNoVGVybSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlczogYW55W10gPSBbXVxuXG4gICAgICAgICAgICB0aGlzLnVzZXJzIS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW50cnkuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XG4gICAgICAgICAgICAgICAgZW50cnkuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHsgdmFsdWU6IGAke2VudHJ5LmRpc3BsYXlOYW1lfSAoJHtlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHJlbmRlckxpc3QobWF0Y2hlcywgc2VhcmNoVGVybSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLnNob3dUb29sYmFyKSB7XG4gICAgICBtb2R1bGVzWyd0b29sYmFyJ10gPSBbXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snaW1hZ2VSZXNpemUnXSA9IHt9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snaW1hZ2VEcm9wJ10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN5bnRheE1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snc3ludGF4J10gPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVzO1xuICB9XG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJzXCI+XG4gICAgPGZvcm0+XG4gICAgICAgIDxxdWlsbC1lZGl0b3IgbmFtZT1cImVkaXRvclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUNoYW5nZXMoKVwiXG5cbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImZ1bGxzY3JlZW4gPyBmdWxsc2NyZWVuSGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJmdWxsc2NyZWVuID8gZnVsbHNjcmVlbldpZHRoIDogd2lkdGhcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seSAmJiBhcHBseVJlYWRvbmx5U3R5bGVcIlxuICAgICAgICAgICAgW2NsYXNzLm5vLXRvb2xiYXJdPVwiIXNob3dUb29sYmFyXCJcbiAgICAgICAgICAgIFtjbGFzcy5uby1ib3JkZXJdPVwiIXNob3dCb3JkZXJcIlxuICAgICAgICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgXG4gICAgICAgICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwib25Db250ZW50Q2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cbiAgICBcbiAgICAgICAgICAgIDxkaXYgcXVpbGwtZWRpdG9yLXRvb2xiYXIgKm5nSWY9XCJzaG93VG9vbGJhclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yU2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3Rvb2xiYXI+XG4gICAgPGRpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJibG9ja1N0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1N0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2NyaXB0U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmRlbnRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ0bFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTaXplXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsaWduXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2xlYW5cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG50LWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb3JtdWxhXCI+PC9udC1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVkaWFcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFN0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5zaG93Rm9udFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ib2xkXCIgICAgICAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5ib2xkXCIgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuYm9sZClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWl0YWxpY1wiICAgICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLml0YWxpY1wiICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5pdGFsaWMpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC11bmRlcmxpbmVcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy51bmRlcmxpbmVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMudW5kZXJsaW5lKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCIgICAgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuc3RyaWtlXCIgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnN0cmlrZSlcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Jsb2NrU3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dCbG9ja1N0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuYmxvY2txdW90ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5ibG9ja3F1b3RlKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmNvZGVibG9ja1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuY29kZWJsb2NrKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZ1N0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5zaG93UXVpY2tIZWFkaW5nU3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWhlYWRlclwiIHZhbHVlPVwiMVwiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmgxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmgxKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuaDJcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaDIpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dMaXN0U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpc3RcIiB2YWx1ZT1cIm9yZGVyZWRcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5vcmRlcmVkXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5vcmRlcmVkKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmJ1bGxldGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmJ1bGxldGVkKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2NyaXB0U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dTY3JpcHRTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdWJcIiAgICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLnN1YlNjcmlwdFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5zdWJTY3JpcHQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuc3VwZXJTY3JpcHRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuc3VwZXJTY3JpcHQpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiAgICBcbjxuZy10ZW1wbGF0ZSAjaW5kZW50U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLnNob3dJbmRlbnRTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmRlY3JlYXNlSW5kZW50XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmRlY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCIrMVwiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmluY3JlYXNlSW5kZW50XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmluY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcnRsPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLnJ0bFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMucnRsKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udFNpemU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuZm9udFNpemVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuZm9udFNpemUpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1zaXplXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic21hbGxcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJodWdlXCI+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZz5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5oZWFkaW5nU3R5bGVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuaGVhZGluZ1N0eWxlKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2xvcj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5jb2xvclwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5jb2xvcilcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1iYWNrZ3JvdW5kXCI+PC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250PlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmZvbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMuZm9udClcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWZvbnRcIj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb25vc3BhY2VcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhbGlnbj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5hbGlnblwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5hbGlnbilcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJpZ2h0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NsZWFuPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLmNsZWFuXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLmNsZWFuKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21lZGlhPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5zaG93TWVkaWFcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpbmtcIiAgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMubGlua1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5saW5rKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW1hZ2VcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5pbWFnZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5pbWFnZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXZpZGVvXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMudmlkZW9cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZyEudG9vbHRpcHMudmlkZW8pXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxuICAgIDxkaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnIS5idXR0b25zLnJhd0VkaXRvclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInJhd2RvZ1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWchLnRvb2x0aXBzLnJhd0VkaXRvcilcIj5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicmF3RWRpdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIGNvZGVcbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZyEuYnV0dG9ucy5lZGl0b3JTaXplXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChmdWxsc2NyZWVuID9cbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZyEudG9vbHRpcHMubWluaW1pemUgOiBjb25maWchLnRvb2x0aXBzLnBvcGluKSA6XG4gICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWchLnRvb2x0aXBzLm1heGltaXplIDogY29uZmlnIS50b29sdGlwcy5wb3BvdXQpKVwiPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZnVsbHNjcmVlbiA/XG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnIS5pY29ucy5taW5pbWl6ZSA6IGNvbmZpZyEuaWNvbnMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWchLmljb25zLm1heGltaXplIDogY29uZmlnIS5pY29ucy5wb3BvdXQpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvcm11bGE+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWchLmJ1dHRvbnMuZm9ybXVsYVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnIS50b29sdGlwcy5mb3JtdWxhKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZm9ybXVsYVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -1,7 +1,7 @@
1
1
  import { Component, Output, EventEmitter } from '@angular/core';
2
2
  import { UploadDialogComponent } from './../upload-dialog/upload-dialog.component';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/legacy-dialog";
4
+ import * as i1 from "@angular/material/dialog";
5
5
  import * as i2 from "./../../services/upload.service";
6
6
  import * as i3 from "@angular/material/button";
7
7
  export class UploadComponent {
@@ -20,7 +20,7 @@ export class UploadComponent {
20
20
  .afterClosed().subscribe(() => this.dialogClosed.emit());
21
21
  }
22
22
  }
23
- UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadComponent, deps: [{ token: i1.MatLegacyDialog }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
23
+ UploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadComponent, deps: [{ token: i1.MatDialog }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
24
24
  UploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadComponent, selector: "cp-upload", outputs: { dialogClosed: "dialogClosed" }, ngImport: i0, template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>', isInline: true, dependencies: [{ kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadComponent, decorators: [{
26
26
  type: Component,
@@ -28,7 +28,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
28
28
  selector: 'cp-upload',
29
29
  template: '<button mat-raised-button (click)="openUploadDialog()">{{ uploadButtonText }}</button>'
30
30
  }]
31
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }, { type: i2.UploadService }]; }, propDecorators: { dialogClosed: [{
31
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.UploadService }]; }, propDecorators: { dialogClosed: [{
32
32
  type: Output
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBT25GLE1BQU0sT0FBTyxlQUFlO0lBSXhCLFlBQW1CLE1BQWlCLEVBQVMsYUFBNEI7UUFBdEQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBSC9ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUdpQyxDQUFDO0lBRTlFLFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVDLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3BELFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7NEdBZlEsZUFBZTtnR0FBZixlQUFlLDRGQUZkLHdGQUF3RjsyRkFFekYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLHdGQUF3RjtpQkFDckc7a0lBRWEsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBVcGxvYWREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLy4uL3VwbG9hZC1kaWFsb2cvdXBsb2FkLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3AtdXBsb2FkJyxcclxuICAgIHRlbXBsYXRlOiAnPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwib3BlblVwbG9hZERpYWxvZygpXCI+e3sgdXBsb2FkQnV0dG9uVGV4dCB9fTwvYnV0dG9uPidcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgZGlhbG9nQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgdXBsb2FkQnV0dG9uVGV4dCE6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIHB1YmxpYyB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVwbG9hZEJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZEJ1dHRvblRleHQgP1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZEJ1dHRvblRleHQgOlxyXG4gICAgICAgICAgICAnVXBsb2FkJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlblVwbG9hZERpYWxvZygpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKFVwbG9hZERpYWxvZ0NvbXBvbmVudCwgeyB3aWR0aDogJzUwJScgfSlcclxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGlhbG9nQ2xvc2VkLmVtaXQoKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBT25GLE1BQU0sT0FBTyxlQUFlO0lBSXhCLFlBQW1CLE1BQWlCLEVBQVMsYUFBNEI7UUFBdEQsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBSC9ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUdpQyxDQUFDO0lBRTlFLFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVDLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3BELFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7NEdBZlEsZUFBZTtnR0FBZixlQUFlLDRGQUZkLHdGQUF3RjsyRkFFekYsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLHdGQUF3RjtpQkFDckc7NEhBRWEsWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgVXBsb2FkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi8uLi91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NwLXVwbG9hZCcsXHJcbiAgICB0ZW1wbGF0ZTogJzxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIm9wZW5VcGxvYWREaWFsb2coKVwiPnt7IHVwbG9hZEJ1dHRvblRleHQgfX08L2J1dHRvbj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQE91dHB1dCgpIGRpYWxvZ0Nsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHVwbG9hZEJ1dHRvblRleHQhOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBwdWJsaWMgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRCdXR0b25UZXh0ID0gdGhpcy51cGxvYWRTZXJ2aWNlLmNvbmZpZy51cGxvYWRCdXR0b25UZXh0ID9cclxuICAgICAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbmZpZy51cGxvYWRCdXR0b25UZXh0IDpcclxuICAgICAgICAgICAgJ1VwbG9hZCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9wZW5VcGxvYWREaWFsb2coKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihVcGxvYWREaWFsb2dDb21wb25lbnQsIHsgd2lkdGg6ICc1MCUnIH0pXHJcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRpYWxvZ0Nsb3NlZC5lbWl0KCkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,13 +1,12 @@
1
1
  import { Component, ViewChild } from '@angular/core';
2
2
  import { forkJoin } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/material/legacy-dialog";
4
+ import * as i1 from "@angular/material/dialog";
5
5
  import * as i2 from "./../../services/upload.service";
6
6
  import * as i3 from "@angular/common";
7
7
  import * as i4 from "@angular/material/button";
8
- import * as i5 from "@angular/material/dialog";
9
- import * as i6 from "@angular/material/list";
10
- import * as i7 from "@angular/material/progress-bar";
8
+ import * as i5 from "@angular/material/list";
9
+ import * as i6 from "@angular/material/progress-bar";
11
10
  export class UploadDialogComponent {
12
11
  constructor(dialogRef, uploadService) {
13
12
  this.dialogRef = dialogRef;
@@ -75,13 +74,13 @@ export class UploadDialogComponent {
75
74
  });
76
75
  }
77
76
  }
78
- UploadDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
79
- UploadDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadDialogComponent, selector: "ng-component", viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, static: true }], ngImport: i0, template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadService.config.uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadService.config.uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadService.config.uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i6.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
77
+ UploadDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.UploadService }], target: i0.ɵɵFactoryTarget.Component });
78
+ UploadDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadDialogComponent, selector: "ng-component", viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true, static: true }], ngImport: i0, template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadService.config.uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadService.config.uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadService.config.uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
80
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDialogComponent, decorators: [{
81
80
  type: Component,
82
81
  args: [{ template: "<input type=\"file\" #file style=\"display: none\" (change)=\"onFilesAdded()\" multiple />\n\n<div mat-dialog-title id=\"title\">\n <div>{{ uploadService.config.uploadDialogTitle }}</div>\n <button [disabled]=\"uploading || uploadSuccessful\" mat-raised-button color=\"primary\" class=\"add-files-btn\" (click)=\"addFiles()\">\n {{ uploadService.config.uploadDialogAddFilesButtonText }}\n </button>\n</div>\n\n<div id=\"conflict\" *ngIf=\"existingFileConflict\">\n {{ existingFileConflict }} already exists on the server and cannot be overwritten\n</div>\n\n<mat-dialog-content>\n <mat-list>\n <mat-list-item *ngFor=\"let file of files\">\n <h4 mat-line>{{file.name}}</h4>\n <mat-progress-bar *ngIf=\"progress\" mode=\"determinate\" [value]=\"progress[file.name].progress | async\"></mat-progress-bar>\n </mat-list-item>\n </mat-list>\n</mat-dialog-content>\n\n<mat-dialog-actions id=\"actions\">\n <button *ngIf=\"showCancelButton\" mat-button mat-dialog-close>{{ uploadService.config.uploadDialogCancelButtonText }}</button>\n <button *ngIf=\"files.size > 0\" mat-raised-button color=\"primary\" [disabled]=\"!canBeClosed\" (click)=\"closeDialog()\">{{ primaryButtonText }}</button>\n</mat-dialog-actions>\n", styles: ["#title{display:flex;justify-content:space-between}#actions{display:flex;justify-content:flex-end}#conflict{font-size:.8em;color:red;margin-top:.5em}\n"] }]
83
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.UploadService }]; }, propDecorators: { file: [{
82
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.UploadService }]; }, propDecorators: { file: [{
84
83
  type: ViewChild,
85
84
  args: ['file', { static: true }]
86
85
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVFoQyxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQW1CLFNBQThDLEVBQVMsYUFBNEI7UUFBbkYsY0FBUyxHQUFULFNBQVMsQ0FBcUM7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVgvRixVQUFLLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUtwQyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFaUYsQ0FBQztJQUUzRyxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO0lBQ2xGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLEtBQUssR0FBNEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3JFLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLGlDQUFpQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztxQkFDdkMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNsQixJQUFJLE1BQU0sRUFBRTt3QkFDVixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztxQkFDN0M7b0JBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDNUI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDTjtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCw0REFBNEQ7UUFDNUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQy9CO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCx5Q0FBeUM7UUFDekMsTUFBTSxzQkFBc0IsR0FBVSxFQUFFLENBQUM7UUFFekMsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsNkJBQTZCO1FBRTdCLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7UUFFaEYsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUVuQyx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU5QixpREFBaUQ7UUFDakQsUUFBUSxDQUFDLHNCQUFzQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLHdDQUF3QztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFFcEMsbUNBQW1DO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFFN0IsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBckZVLHFCQUFxQjtzR0FBckIscUJBQXFCLGdLQ1ZsQyxzdENBMEJBOzJGRGhCYSxxQkFBcUI7a0JBSmpDLFNBQVM7O3FJQUs2QixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsZSE6IEVsZW1lbnRSZWY7XHJcbiAgcHVibGljIGZpbGVzOiBTZXQ8RmlsZT4gPSBuZXcgU2V0KCk7XHJcbiAgZXhpc3RpbmdGaWxlQ29uZmxpY3Q6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gU3RhdGVcclxuICBwcm9ncmVzczogYW55O1xyXG4gIGNhbkJlQ2xvc2VkID0gdHJ1ZTtcclxuICBwcmltYXJ5QnV0dG9uVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xyXG4gIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIHVwbG9hZFN1Y2Nlc3NmdWwgPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXBsb2FkRGlhbG9nQ29tcG9uZW50PiwgcHVibGljIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQ7XHJcbiAgfVxyXG5cclxuICBhZGRGaWxlcygpIHtcclxuICAgIHRoaXMuZmlsZS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzQWRkZWQoKSB7XHJcbiAgICBjb25zdCBmaWxlczogeyBba2V5OiBzdHJpbmddOiBGaWxlIH0gPSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5maWxlcztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZpbGVzKSB7XHJcbiAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoa2V5KSkpIHtcclxuICAgICAgICAvLyBTZWUgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHNcclxuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXhpc3RzKGZpbGVzW2tleV0ubmFtZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoZXhpc3RzID0+IHtcclxuICAgICAgICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhpc3RpbmdGaWxlQ29uZmxpY3QgPSBmaWxlc1trZXldLm5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZXNba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIC8vIGlmIGV2ZXJ5dGhpbmcgd2FzIHVwbG9hZGVkIGFscmVhZHksIGp1c3QgY2xvc2UgdGhlIGRpYWxvZ1xyXG4gICAgaWYgKHRoaXMudXBsb2FkU3VjY2Vzc2Z1bCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgdGhlIGNvbXBvbmVudCBzdGF0ZSB0byBcInVwbG9hZGluZ1wiXHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgLy8gc3RhcnQgdGhlIHVwbG9hZCBhbmQgc2F2ZSB0aGUgcHJvZ3Jlc3MgbWFwXHJcbiAgICB0aGlzLnByb2dyZXNzID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZCh0aGlzLmZpbGVzKTtcclxuXHJcbiAgICAvLyBjb252ZXJ0IHRoZSBwcm9ncmVzcyBtYXAgaW50byBhbiBhcnJheVxyXG4gICAgY29uc3QgYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlczogYW55W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5wcm9ncmVzcykge1xyXG4gICAgICBhbGxQcm9ncmVzc09ic2VydmFibGVzLnB1c2godGhpcy5wcm9ncmVzc1trZXldLnByb2dyZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBZGp1c3QgdGhlIHN0YXRlIHZhcmlhYmxlc1xyXG5cclxuICAgIC8vIFRoZSBPSy1idXR0b24gc2hvdWxkIGhhdmUgdGhlIHRleHQgXCJGaW5pc2hcIiBub3dcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ7XHJcblxyXG4gICAgLy8gVGhlIGRpYWxvZyBzaG91bGQgbm90IGJlIGNsb3NlZCB3aGlsZSB1cGxvYWRpbmdcclxuICAgIHRoaXMuY2FuQmVDbG9zZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgY2FuY2VsLWJ1dHRvblxyXG4gICAgdGhpcy5zaG93Q2FuY2VsQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgLy8gV2hlbiBhbGwgcHJvZ3Jlc3Mtb2JzZXJ2YWJsZXMgYXJlIGNvbXBsZXRlZC4uLlxyXG4gICAgZm9ya0pvaW4oYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlcykuc3Vic2NyaWJlKGVuZCA9PiB7XHJcbiAgICAgIC8vIC4uLiB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWQgYWdhaW4uLi5cclxuICAgICAgdGhpcy5jYW5CZUNsb3NlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gLi4uIHRoZSB1cGxvYWQgd2FzIHN1Y2Nlc3NmdWwuLi5cclxuICAgICAgdGhpcy51cGxvYWRTdWNjZXNzZnVsID0gdHJ1ZTtcclxuXHJcbiAgICAgIC8vIC4uLiBhbmQgdGhlIGNvbXBvbmVudCBpcyBubyBsb25nZXIgdXBsb2FkaW5nXHJcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgKGNoYW5nZSk9XCJvbkZpbGVzQWRkZWQoKVwiIG11bHRpcGxlIC8+XG5cbjxkaXYgbWF0LWRpYWxvZy10aXRsZSBpZD1cInRpdGxlXCI+XG4gIDxkaXY+e3sgdXBsb2FkU2VydmljZS5jb25maWcudXBsb2FkRGlhbG9nVGl0bGUgfX08L2Rpdj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidXBsb2FkaW5nIHx8IHVwbG9hZFN1Y2Nlc3NmdWxcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImFkZC1maWxlcy1idG5cIiAoY2xpY2spPVwiYWRkRmlsZXMoKVwiPlxuICAgIHt7IHVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGlkPVwiY29uZmxpY3RcIiAqbmdJZj1cImV4aXN0aW5nRmlsZUNvbmZsaWN0XCI+XG4gIHt7IGV4aXN0aW5nRmlsZUNvbmZsaWN0IH19IGFscmVhZHkgZXhpc3RzIG9uIHRoZSBzZXJ2ZXIgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlblxuPC9kaXY+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtbGlzdD5cbiAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc1wiPlxuICAgICAgPGg0IG1hdC1saW5lPnt7ZmlsZS5uYW1lfX08L2g0PlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJwcm9ncmVzc1wiIG1vZGU9XCJkZXRlcm1pbmF0ZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1tmaWxlLm5hbWVdLnByb2dyZXNzIHwgYXN5bmNcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuICA8L21hdC1saXN0PlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgaWQ9XCJhY3Rpb25zXCI+XG4gIDxidXR0b24gKm5nSWY9XCJzaG93Q2FuY2VsQnV0dG9uXCIgbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7IHVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cImZpbGVzLnNpemUgPiAwXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFjYW5CZUNsb3NlZFwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+e3sgcHJpbWFyeUJ1dHRvblRleHQgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUWhDLE1BQU0sT0FBTyxxQkFBcUI7SUFhaEMsWUFBbUIsU0FBOEMsRUFBUyxhQUE0QjtRQUFuRixjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWC9GLFVBQUssR0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBS3BDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQUVpRixDQUFDO0lBRTNHLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7SUFDbEYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUE0QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDckUsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDekIsaUNBQWlDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO3FCQUN2QyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ2xCLElBQUksTUFBTSxFQUFFO3dCQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO3FCQUM3QztvQkFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO3dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUM1QjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULDREQUE0RDtRQUM1RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0I7UUFFRCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRELHlDQUF5QztRQUN6QyxNQUFNLHNCQUFzQixHQUFVLEVBQUUsQ0FBQztRQUV6QyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0Isc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUQ7UUFFRCw2QkFBNkI7UUFFN0Isa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQztRQUVoRixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRW5DLHlCQUF5QjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLGlEQUFpRDtRQUNqRCxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0Msd0NBQXdDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUVwQyxtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUU3QiwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEFyRlUscUJBQXFCO3NHQUFyQixxQkFBcUIsZ0tDVmxDLHN0Q0EwQkE7MkZEaEJhLHFCQUFxQjtrQkFKakMsU0FBUzs7K0hBSzZCLElBQUk7c0JBQXhDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtZGlhbG9nLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsZSE6IEVsZW1lbnRSZWY7XHJcbiAgcHVibGljIGZpbGVzOiBTZXQ8RmlsZT4gPSBuZXcgU2V0KCk7XHJcbiAgZXhpc3RpbmdGaWxlQ29uZmxpY3Q6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8gU3RhdGVcclxuICBwcm9ncmVzczogYW55O1xyXG4gIGNhbkJlQ2xvc2VkID0gdHJ1ZTtcclxuICBwcmltYXJ5QnV0dG9uVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHNob3dDYW5jZWxCdXR0b24gPSB0cnVlO1xyXG4gIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gIHVwbG9hZFN1Y2Nlc3NmdWwgPSBmYWxzZTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXBsb2FkRGlhbG9nQ29tcG9uZW50PiwgcHVibGljIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ1VwbG9hZEJ1dHRvblRleHQ7XHJcbiAgfVxyXG5cclxuICBhZGRGaWxlcygpIHtcclxuICAgIHRoaXMuZmlsZS5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbGVzQWRkZWQoKSB7XHJcbiAgICBjb25zdCBmaWxlczogeyBba2V5OiBzdHJpbmddOiBGaWxlIH0gPSB0aGlzLmZpbGUubmF0aXZlRWxlbWVudC5maWxlcztcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZpbGVzKSB7XHJcbiAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoa2V5KSkpIHtcclxuICAgICAgICAvLyBTZWUgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHNcclxuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXhpc3RzKGZpbGVzW2tleV0ubmFtZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoZXhpc3RzID0+IHtcclxuICAgICAgICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhpc3RpbmdGaWxlQ29uZmxpY3QgPSBmaWxlc1trZXldLm5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZXNba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIC8vIGlmIGV2ZXJ5dGhpbmcgd2FzIHVwbG9hZGVkIGFscmVhZHksIGp1c3QgY2xvc2UgdGhlIGRpYWxvZ1xyXG4gICAgaWYgKHRoaXMudXBsb2FkU3VjY2Vzc2Z1bCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgdGhlIGNvbXBvbmVudCBzdGF0ZSB0byBcInVwbG9hZGluZ1wiXHJcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgLy8gc3RhcnQgdGhlIHVwbG9hZCBhbmQgc2F2ZSB0aGUgcHJvZ3Jlc3MgbWFwXHJcbiAgICB0aGlzLnByb2dyZXNzID0gdGhpcy51cGxvYWRTZXJ2aWNlLnVwbG9hZCh0aGlzLmZpbGVzKTtcclxuXHJcbiAgICAvLyBjb252ZXJ0IHRoZSBwcm9ncmVzcyBtYXAgaW50byBhbiBhcnJheVxyXG4gICAgY29uc3QgYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlczogYW55W10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5wcm9ncmVzcykge1xyXG4gICAgICBhbGxQcm9ncmVzc09ic2VydmFibGVzLnB1c2godGhpcy5wcm9ncmVzc1trZXldLnByb2dyZXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBZGp1c3QgdGhlIHN0YXRlIHZhcmlhYmxlc1xyXG5cclxuICAgIC8vIFRoZSBPSy1idXR0b24gc2hvdWxkIGhhdmUgdGhlIHRleHQgXCJGaW5pc2hcIiBub3dcclxuICAgIHRoaXMucHJpbWFyeUJ1dHRvblRleHQgPSB0aGlzLnVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0ZpbmlzaEJ1dHRvblRleHQ7XHJcblxyXG4gICAgLy8gVGhlIGRpYWxvZyBzaG91bGQgbm90IGJlIGNsb3NlZCB3aGlsZSB1cGxvYWRpbmdcclxuICAgIHRoaXMuY2FuQmVDbG9zZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcblxyXG4gICAgLy8gSGlkZSB0aGUgY2FuY2VsLWJ1dHRvblxyXG4gICAgdGhpcy5zaG93Q2FuY2VsQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgLy8gV2hlbiBhbGwgcHJvZ3Jlc3Mtb2JzZXJ2YWJsZXMgYXJlIGNvbXBsZXRlZC4uLlxyXG4gICAgZm9ya0pvaW4oYWxsUHJvZ3Jlc3NPYnNlcnZhYmxlcykuc3Vic2NyaWJlKGVuZCA9PiB7XHJcbiAgICAgIC8vIC4uLiB0aGUgZGlhbG9nIGNhbiBiZSBjbG9zZWQgYWdhaW4uLi5cclxuICAgICAgdGhpcy5jYW5CZUNsb3NlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gLi4uIHRoZSB1cGxvYWQgd2FzIHN1Y2Nlc3NmdWwuLi5cclxuICAgICAgdGhpcy51cGxvYWRTdWNjZXNzZnVsID0gdHJ1ZTtcclxuXHJcbiAgICAgIC8vIC4uLiBhbmQgdGhlIGNvbXBvbmVudCBpcyBubyBsb25nZXIgdXBsb2FkaW5nXHJcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgKGNoYW5nZSk9XCJvbkZpbGVzQWRkZWQoKVwiIG11bHRpcGxlIC8+XG5cbjxkaXYgbWF0LWRpYWxvZy10aXRsZSBpZD1cInRpdGxlXCI+XG4gIDxkaXY+e3sgdXBsb2FkU2VydmljZS5jb25maWcudXBsb2FkRGlhbG9nVGl0bGUgfX08L2Rpdj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidXBsb2FkaW5nIHx8IHVwbG9hZFN1Y2Nlc3NmdWxcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImFkZC1maWxlcy1idG5cIiAoY2xpY2spPVwiYWRkRmlsZXMoKVwiPlxuICAgIHt7IHVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0FkZEZpbGVzQnV0dG9uVGV4dCB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGlkPVwiY29uZmxpY3RcIiAqbmdJZj1cImV4aXN0aW5nRmlsZUNvbmZsaWN0XCI+XG4gIHt7IGV4aXN0aW5nRmlsZUNvbmZsaWN0IH19IGFscmVhZHkgZXhpc3RzIG9uIHRoZSBzZXJ2ZXIgYW5kIGNhbm5vdCBiZSBvdmVyd3JpdHRlblxuPC9kaXY+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtbGlzdD5cbiAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlc1wiPlxuICAgICAgPGg0IG1hdC1saW5lPnt7ZmlsZS5uYW1lfX08L2g0PlxuICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCJwcm9ncmVzc1wiIG1vZGU9XCJkZXRlcm1pbmF0ZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1tmaWxlLm5hbWVdLnByb2dyZXNzIHwgYXN5bmNcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuICA8L21hdC1saXN0PlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgaWQ9XCJhY3Rpb25zXCI+XG4gIDxidXR0b24gKm5nSWY9XCJzaG93Q2FuY2VsQnV0dG9uXCIgbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7IHVwbG9hZFNlcnZpY2UuY29uZmlnLnVwbG9hZERpYWxvZ0NhbmNlbEJ1dHRvblRleHQgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiAqbmdJZj1cImZpbGVzLnNpemUgPiAwXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFjYW5CZUNsb3NlZFwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+e3sgcHJpbWFyeUJ1dHRvblRleHQgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19