@bizdoc/core 1.11.0-next.1 → 1.11.0-next.10

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 (59) hide show
  1. package/assets/bizdoc-schema.json +4 -7
  2. package/esm2020/lib/app.component.mjs +11 -4
  3. package/esm2020/lib/compose/attachments/attachments.component.mjs +5 -5
  4. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +6 -6
  5. package/esm2020/lib/compose/form.component.mjs +20 -22
  6. package/esm2020/lib/compose/trace/flow.component.mjs +12 -31
  7. package/esm2020/lib/compose/trace/trace.component.mjs +4 -4
  8. package/esm2020/lib/compose/trace/trace.pane.component.mjs +2 -2
  9. package/esm2020/lib/core/component-factory-resolver.mjs +9 -2
  10. package/esm2020/lib/core/controls/address.input.mjs +3 -2
  11. package/esm2020/lib/core/controls/combination-picker-body.mjs +1 -1
  12. package/esm2020/lib/core/controls/file.input.mjs +52 -22
  13. package/esm2020/lib/core/datasource.service.mjs +3 -3
  14. package/esm2020/lib/core/functions.mjs +4 -1
  15. package/esm2020/lib/core/info/attachment-info.service.mjs +2 -2
  16. package/esm2020/lib/core/mailbox.service.mjs +48 -20
  17. package/esm2020/lib/core/models.mjs +1 -1
  18. package/esm2020/lib/core/session.service.mjs +7 -2
  19. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  20. package/esm2020/lib/cube/chart/chart.component.mjs +2 -3
  21. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  22. package/esm2020/lib/cube/cube.service.mjs +15 -2
  23. package/esm2020/lib/cube/filter/filter.component.mjs +49 -30
  24. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +3 -2
  25. package/esm2020/lib/cube/matrix/matrix.base.mjs +1 -1
  26. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +4 -4
  27. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +5 -4
  28. package/esm2020/lib/cube/matrix/popup.component.mjs +6 -5
  29. package/esm2020/lib/cube/matrix/table.component.mjs +64 -11
  30. package/esm2020/lib/cube/pivot/pivot.component.mjs +15 -1
  31. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +1 -1
  32. package/esm2020/lib/dashboard/score/activity.widget.mjs +2 -5
  33. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -5
  34. package/esm2020/lib/shared.module.mjs +4 -4
  35. package/esm2020/lib/views/cube/cube-base.mjs +7 -9
  36. package/esm2020/lib/views/cube/matrix.component.mjs +19 -20
  37. package/fesm2015/bizdoc-core.mjs +387 -240
  38. package/fesm2015/bizdoc-core.mjs.map +1 -1
  39. package/fesm2020/bizdoc-core.mjs +387 -240
  40. package/fesm2020/bizdoc-core.mjs.map +1 -1
  41. package/lib/app.component.d.ts +3 -1
  42. package/lib/compose/attachments/attachments.component.d.ts +2 -2
  43. package/lib/compose/attachments/progress-button.directive.d.ts +3 -3
  44. package/lib/core/controls/combination-picker-body.d.ts +2 -0
  45. package/lib/core/controls/file.input.d.ts +1 -0
  46. package/lib/core/functions.d.ts +6 -0
  47. package/lib/core/mailbox.service.d.ts +10 -8
  48. package/lib/core/models.d.ts +1 -2
  49. package/lib/core/session.service.d.ts +1 -0
  50. package/lib/cube/cube-info.service.d.ts +2 -2
  51. package/lib/cube/cube.service.d.ts +10 -4
  52. package/lib/cube/filter/filter.component.d.ts +10 -9
  53. package/lib/cube/matrix/matrix.base.d.ts +2 -1
  54. package/lib/cube/matrix/table.component.d.ts +7 -3
  55. package/lib/cube/pivot/pivot.component.d.ts +3 -0
  56. package/lib/reports/cube/usage-args.component.d.ts +0 -1
  57. package/lib/shared.module.d.ts +1 -1
  58. package/lib/views/cube/matrix.component.d.ts +1 -3
  59. package/package.json +1 -1
@@ -194,10 +194,10 @@ export class EditInputComponent {
194
194
  }
195
195
  }
196
196
  EditInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EditInputComponent, deps: [{ token: i1.Popup }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
197
- EditInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: { placeholder: "placeholder", text: "text", image: "image", resource: "resource", disabled: "disabled", autofocus: "autofocus", cache: "cache" }, outputs: { change: "change", onOk: "ok", onFocus: "focus", onBlur: "blur" }, viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "_rte", first: true, predicate: RichTextEditorComponent, descendants: true }], ngImport: i0, template: "<div fxLayout=\"column\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <ejs-richtexteditor [value]=\"text\"\r\n (change)=\"_htmlChange($event)\"\r\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <mat-form-field floatLabel=\"never\" fxFlex>\r\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\r\n [(bizdocTagging)]=\"resource\"\r\n (keydown)=\"_key($event)\"\r\n (input)=\"_textChange($event)\"\r\n [value]=\"text\"\r\n (paste)=\"_paste($event)\"\r\n [matTextareaAutosize]=\"true\"\r\n [matAutosizeMaxRows]=\"20\"\r\n [placeholder]=\"(placeholder || 'TypeHere') | translate\"\r\n (focus)=\"onFocus.emit()\"\r\n (focusout)=\"onBlur.emit()\"\r\n #textArea></textarea>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n <div fxLayout=\"row\">\r\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\r\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<div *ngIf=\"_image\">\r\n <img [src]=\"'data:image/png;base64,'+ _image\" />\r\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column}.mat-form-field{flex:1 auto;padding:0 8px}.mat-form-field textarea{overflow:hidden}img{max-width:300px}\n"], components: [{ type: i2.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatter", "height", "htmlAttributes", "iframeSettings", "inlineMode", "insertImageSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }, { type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i10.TaggingDirective, selector: "[bizdocTagging]", inputs: ["bizdocTagging"], outputs: ["bizdocTaggingChange"] }, { type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i12.TranslatePipe } });
197
+ EditInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: { placeholder: "placeholder", text: "text", image: "image", resource: "resource", disabled: "disabled", autofocus: "autofocus", cache: "cache" }, outputs: { change: "change", onOk: "ok", onFocus: "focus", onBlur: "blur" }, viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "_rte", first: true, predicate: RichTextEditorComponent, descendants: true }], ngImport: i0, template: "<div fxLayout=\"column\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <ejs-richtexteditor [value]=\"text\"\r\n (change)=\"_htmlChange($event)\"\r\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <mat-form-field floatLabel=\"never\" fxFlex>\r\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\r\n [(bizdocTagging)]=\"resource\"\r\n (keydown)=\"_key($event)\"\r\n (input)=\"_textChange($event)\"\r\n [value]=\"text\"\r\n (paste)=\"_paste($event)\"\r\n [matTextareaAutosize]=\"true\"\r\n [matAutosizeMaxRows]=\"20\"\r\n [placeholder]=\"(placeholder || 'TypeHere') | translate\"\r\n (focus)=\"onFocus.emit()\"\r\n (focusout)=\"onBlur.emit()\"\r\n #textArea></textarea>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n <div fxLayout=\"row nav-toolbar\">\r\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\r\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<div *ngIf=\"_image\">\r\n <img [src]=\"'data:image/png;base64,'+ _image\" />\r\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column}.mat-form-field{flex:1 auto;padding:0 8px}.mat-form-field textarea{overflow:hidden}img{max-width:300px}\n"], components: [{ type: i2.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatter", "height", "htmlAttributes", "iframeSettings", "inlineMode", "insertImageSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }, { type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i10.TaggingDirective, selector: "[bizdocTagging]", inputs: ["bizdocTagging"], outputs: ["bizdocTaggingChange"] }, { type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i12.TranslatePipe } });
198
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EditInputComponent, decorators: [{
199
199
  type: Component,
200
- args: [{ selector: 'bizdoc-edit-text', template: "<div fxLayout=\"column\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <ejs-richtexteditor [value]=\"text\"\r\n (change)=\"_htmlChange($event)\"\r\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <mat-form-field floatLabel=\"never\" fxFlex>\r\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\r\n [(bizdocTagging)]=\"resource\"\r\n (keydown)=\"_key($event)\"\r\n (input)=\"_textChange($event)\"\r\n [value]=\"text\"\r\n (paste)=\"_paste($event)\"\r\n [matTextareaAutosize]=\"true\"\r\n [matAutosizeMaxRows]=\"20\"\r\n [placeholder]=\"(placeholder || 'TypeHere') | translate\"\r\n (focus)=\"onFocus.emit()\"\r\n (focusout)=\"onBlur.emit()\"\r\n #textArea></textarea>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n <div fxLayout=\"row\">\r\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\r\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<div *ngIf=\"_image\">\r\n <img [src]=\"'data:image/png;base64,'+ _image\" />\r\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column}.mat-form-field{flex:1 auto;padding:0 8px}.mat-form-field textarea{overflow:hidden}img{max-width:300px}\n"] }]
200
+ args: [{ selector: 'bizdoc-edit-text', template: "<div fxLayout=\"column\">\r\n <ng-container [ngSwitch]=\"mode\">\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <ejs-richtexteditor [value]=\"text\"\r\n (change)=\"_htmlChange($event)\"\r\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <mat-form-field floatLabel=\"never\" fxFlex>\r\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\r\n [(bizdocTagging)]=\"resource\"\r\n (keydown)=\"_key($event)\"\r\n (input)=\"_textChange($event)\"\r\n [value]=\"text\"\r\n (paste)=\"_paste($event)\"\r\n [matTextareaAutosize]=\"true\"\r\n [matAutosizeMaxRows]=\"20\"\r\n [placeholder]=\"(placeholder || 'TypeHere') | translate\"\r\n (focus)=\"onFocus.emit()\"\r\n (focusout)=\"onBlur.emit()\"\r\n #textArea></textarea>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n <div fxLayout=\"row nav-toolbar\">\r\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\r\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\r\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<div *ngIf=\"_image\">\r\n <img [src]=\"'data:image/png;base64,'+ _image\" />\r\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column}.mat-form-field{flex:1 auto;padding:0 8px}.mat-form-field textarea{overflow:hidden}img{max-width:300px}\n"] }]
201
201
  }], ctorParameters: function () { return [{ type: i1.Popup }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
202
202
  type: Input
203
203
  }], text: [{
@@ -230,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
230
230
  type: ViewChild,
231
231
  args: [RichTextEditorComponent]
232
232
  }] } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvdGFnZ2luZy9lZGl0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS90YWdnaW5nL2VkaXQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHOUQsT0FBTyxFQUFtQixVQUFVLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUssT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRXZELGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUM7QUFPckMsTUFBTSxPQUFPLGtCQUFrQjtJQXVEN0IsWUFBb0IsTUFBYSxFQUN2QixHQUFzQjtRQURaLFdBQU0sR0FBTixNQUFNLENBQU87UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2RHZCLG9CQUFlLEdBQUc7WUFDekIsS0FBSyxF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QUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQzs7K0dBdExVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGdhQXNEbEIsdUJBQXVCLGdEQzNFcEMsNDZFQXlDQTsyRkRwQmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGtCQUFrQjs0SEFpQm5CLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUssSUFBSTtzQkFEZCxLQUFLO2dCQU9LLEtBQUs7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBSWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFDZ0IsSUFBSTtzQkFBMUIsTUFBTTt1QkFBQyxJQUFJO2dCQUNjLE9BQU87c0JBQWhDLE1BQU07dUJBQUMsT0FBTztnQkFDVSxNQUFNO3NCQUE5QixNQUFNO3VCQUFDLE1BQU07Z0JBQ1MsWUFBWTtzQkFBbEMsU0FBUzt1QkFBQyxVQUFVO2dCQUNlLElBQUk7c0JBQXZDLFNBQVM7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgRW1vamlEYXRhIH0gZnJvbSAnQGN0cmwvbmd4LWVtb2ppLW1hcnQvbmd4LWVtb2ppJztcclxuaW1wb3J0IHsgQ2hhbmdlRXZlbnRBcmdzLCBIdG1sRWRpdG9yLCBSaWNoVGV4dEVkaXRvciwgUmljaFRleHRFZGl0b3JDb21wb25lbnQsIFRvb2xiYXIsIFRvb2xiYXJTZXR0aW5nc01vZGVsLCBUb29sYmFyVHlwZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXJpY2h0ZXh0ZWRpdG9yJztcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tICcuLi9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclRhZ2dpbmdDb21wb25lbnQgfSBmcm9tICcuL3VzZXJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvY3VtZW50VGFnZ2luZ0NvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ2dpbmdDb21wb25lbnRCYXNlIH0gZnJvbSAnLi90YWdnaW5nLmNvbXBvbmVudC1iYXNlJztcclxuaW1wb3J0IHsgRW1vamlIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS5jb21wb25lbnQnO1xyXG5cclxuUmljaFRleHRFZGl0b3IuSW5qZWN0KFRvb2xiYXIsIEh0bWxFZGl0b3IpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhUTUxfRVhQID0gLzxbXFwvXFx3XSs+L2c7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1lZGl0LXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWlucHV0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5IHRvb2xiYXJTZXR0aW5ncyA9IHtcclxuICAgIGl0ZW1zOiBbJ0JvbGQnLCAnSXRhbGljJywgJ1VuZGVybGluZScsICdTdHJpa2VUaHJvdWdoJyxcclxuICAgICAgJ3wnLFxyXG4gICAgICAnRm9ybWF0cycsICdBbGlnbm1lbnRzJywgJ09yZGVyZWRMaXN0JywgJ1Vub3JkZXJlZExpc3QnLFxyXG4gICAgICAnT3V0ZGVudCcsICdJbmRlbnQnXSxcclxuICAgIHR5cGU6IFRvb2xiYXJUeXBlLk11bHRpUm93XHJcbiAgfSBhcyBUb29sYmFyU2V0dGluZ3NNb2RlbDtcclxuICBwcml2YXRlIF90ZXh0OiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF9vcmlnaW5hbFRleHQ6IHN0cmluZztcclxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gIH1cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIC8vQENvbnRlbnRDaGlsZCgnW2VkaXRIaW50XScpIGhpbnQ/OiBOZ1RlbXBsYXRlO1xyXG4gIC8vQENvbnRlbnRDaGlsZCgnW2VkaXRMYWJlbF0nKSBsYWJlbD86IE5nVGVtcGxhdGU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRleHQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fb3JpZ2luYWxUZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLl90ZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLm1vZGUgPSB2YWx1ZSAmJiBIVE1MX0VYUC50ZXN0KHZhbHVlKSA/ICdodG1sJyA6ICd0ZXh0J1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW1hZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fb3JpZ2luYWxJbWFnZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5faW1hZ2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgbW9kZTogJ2h0bWwnIHwgJ3RleHQnID0gJ3RleHQnO1xyXG4gIHByaXZhdGUgX3Jlc291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2UoKTogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHJlc291cmNlKHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSkge1xyXG4gICAgdGhpcy5fcmVzb3VyY2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfYXV0b2ZvY3VzOiBib29sZWFuO1xyXG4gIHB1YmxpYyBnZXQgYXV0b2ZvY3VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dG9mb2N1cztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGF1dG9mb2N1cyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYXV0b2ZvY3VzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBjYWNoZTogc3RyaW5nO1xyXG4gIF9pbWFnZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29yaWdpbmFsSW1hZ2U6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgnb2snKSByZWFkb25seSBvbk9rID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0VGV4dEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoJ2ZvY3VzJykgcmVhZG9ubHkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCdibHVyJykgcmVhZG9ubHkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJykgX3RleHRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoUmljaFRleHRFZGl0b3JDb21wb25lbnQpIF9ydGU6IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RleHQpIHtcclxuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2h0bWwnKVxyXG4gICAgICAgIHRoaXMuX3J0ZS52YWx1ZSA9IHRoaXMuX3RleHQ7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl90ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdGV4dDtcclxuICAgIH1cclxuICAgIHRoaXMuYXV0b2ZvY3VzICYmIHNldFRpbWVvdXQodGhpcy5mb2N1cy5iaW5kKHRoaXMpKTtcclxuICB9XHJcbiAgX2tleShldnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldnQuY2FuY2VsQnViYmxlKSByZXR1cm47XHJcbiAgICBpZiAoZXZ0LndoaWNoID09PSBFTlRFUiAmJiAhZXZ0LnNoaWZ0S2V5KSB7XHJcbiAgICAgIHRoaXMuX3N1Ym1pdCgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGV2dC53aGljaCA9PT0gRVNDQVBFKSB7XHJcbiAgICAgIGlmICh0aGlzLl90ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlICYmIHRoaXMuX3RleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9zdWJtaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMubW9kZSA9PT0gJ3RleHQnID9cclxuICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS50cmltKClcclxuICAgICAgOlxyXG4gICAgICB0aGlzLl9ydGUudmFsdWUudHJpbSgpO1xyXG5cclxuICAgIGlmICgodGV4dCAmJiB0ZXh0Lmxlbmd0aCAmJiB0ZXh0ICE9PSB0aGlzLl9vcmlnaW5hbFRleHQpIHx8XHJcbiAgICAgICh0aGlzLl9vcmlnaW5hbEltYWdlICYmIHRoaXMuX2ltYWdlICE9PSB0aGlzLl9vcmlnaW5hbEltYWdlKSlcclxuICAgICAgdGhpcy5vbk9rLmVtaXQoeyB0ZXh0LCByZXNvdXJjZTogdGhpcy5fcmVzb3VyY2UsIGltYWdlOiB0aGlzLl9pbWFnZSB9KTtcclxuICB9XHJcbiAgX3RleHRDaGFuZ2UoZXZ0OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLl90ZXh0ID0gKGV2dC5zcmNFbGVtZW50IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl90ZXh0KTtcclxuICB9XHJcbiAgX2h0bWxDaGFuZ2UoZXZ0OiBDaGFuZ2VFdmVudEFyZ3MpIHtcclxuICAgIHRoaXMuX3RleHQgPSBldnQudmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3RleHQpO1xyXG4gIH1cclxuICBfdG9nZ2xlSHRtbCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdodG1sJykge1xyXG4gICAgICBpZiAodGhpcy5fdGV4dCkgdGhpcy5fdGV4dCA9IHRoaXMuX3J0ZS5nZXRUZXh0KCk7XHJcbiAgICAgIHRoaXMubW9kZSA9ICd0ZXh0JztcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5tb2RlID0gJ2h0bWwnO1xyXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuICBfb2soKSB7XHJcbiAgICB0aGlzLl9zdWJtaXQoKTtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9pbWFnZSA9IG51bGw7XHJcbiAgICB0aGlzLl9yZXNvdXJjZSA9IG51bGw7XHJcbiAgICB0aGlzLl90ZXh0ID0gbnVsbDtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd0ZXh0JylcclxuICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3J0ZS52YWx1ZSA9ICcnO1xyXG4gIH1cclxuICBmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd0ZXh0JylcclxuICAgICAgc2V0VGltZW91dCgoKT0+IHRoaXMuX3RleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3J0ZS5mb2N1c0luKCk7XHJcbiAgfVxyXG4gIF9vcGVuRG9jdW1lbnQoZXZ0OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLl90YWcoRG9jdW1lbnRUYWdnaW5nQ29tcG9uZW50LCBldnQsICcjJyk7XHJcbiAgfVxyXG4gIF90YWcoY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRhZ2dpbmdDb21wb25lbnRCYXNlPGFueT4+LCBldnQ6IE1vdXNlRXZlbnQsIHByZWZpeDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwb3B1cFJlZiA9IHRoaXMuX3BvcHVwLm9wZW4oY29tcG9uZW50LCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnYWJvdmUnIH0pO1xyXG4gICAgcG9wdXBSZWYub3BlbmVkLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgZS5vbkJpbmQoJycpO1xyXG4gICAgICBlLnNlbGVjdGVkLnBpcGUoKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSArPSBwcmVmaXggKyBlLmtleTtcclxuICAgICAgICBjb25zdCBhcmdzID0ge307XHJcbiAgICAgICAgYXJnc1tlLmtleV0gPSBlLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5yZXNvdXJjZSlcclxuICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSBhcmdzO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXNvdXJjZSwgYXJncyk7XHJcbiAgICAgICAgcG9wdXBSZWYuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIF9vcGVuTWVudGlvbihldnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuX3RhZyhVc2VyVGFnZ2luZ0NvbXBvbmVudCwgZXZ0LCAnQCcpO1xyXG4gIH1cclxuICBfb3BlbkVtb2ppKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihFbW9qaUhvc3RDb21wb25lbnQsIGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHsgcG9zaXRpb246ICdhYm92ZScgfSkuY2xvc2VkLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IEVtb2ppRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlICs9IGUubmF0aXZlO1xyXG4gICAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIF9hZGRFbW9qaShldmVudCkge1xyXG4gICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSArPSBldmVudC5lbW9qaS5uYXRpdmU7XHJcbiAgfVxyXG4gIF9wYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IGV2ZW50LmNsaXBib2FyZERhdGE7XHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcbiAgICBmb3IgKGxldCBpbmRleCBpbiBpdGVtcykge1xyXG4gICAgICBsZXQgaXRlbSA9IGl0ZW1zW2luZGV4XTtcclxuICAgICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2ZpbGUnKSB7XHJcbiAgICAgICAgbGV0IGJsb2IgPSBpdGVtLmdldEFzRmlsZSgpO1xyXG4gICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgICBtZS5faW1hZ2UgPSAocmVzdWx0IGFzIHN0cmluZykuc3Vic3RyKDIyKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIF9jbGVhckltYWdlKCkge1xyXG4gICAgdGhpcy5faW1hZ2UgPSBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFZGl0VGV4dEV2ZW50IHtcclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibW9kZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2h0bWwnXCI+XHJcbiAgICAgIDxlanMtcmljaHRleHRlZGl0b3IgW3ZhbHVlXT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiX2h0bWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2xiYXJTZXR0aW5nc109XCJ0b29sYmFyU2V0dGluZ3NcIj48L2Vqcy1yaWNodGV4dGVkaXRvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cIm5ldmVyXCIgZnhGbGV4PlxyXG4gICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBjZGtUZXh0YXJlYUF1dG9zaXplIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcclxuICAgICAgICAgICAgICAgICAgWyhiaXpkb2NUYWdnaW5nKV09XCJyZXNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJfdGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAocGFzdGUpPVwiX3Bhc3RlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VGV4dGFyZWFBdXRvc2l6ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21hdEF1dG9zaXplTWF4Um93c109XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJ1R5cGVIZXJlJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cy5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwib25CbHVyLmVtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICN0ZXh0QXJlYT48L3RleHRhcmVhPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9vcGVuRG9jdW1lbnQoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidEb2N1bWVudCd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBjbGFzcz1cInRvb2xcIiBbZGlzYWJsZWRdPVwibW9kZSAhPT0gJ3RleHQnXCI+PG1hdC1pY29uPmFydGljbGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9vcGVuTWVudGlvbigkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ01lbnRpb24nfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgY2xhc3M9XCJ0b29sXCIgW2Rpc2FibGVkXT1cIm1vZGUgIT09ICd0ZXh0J1wiPjxtYXQtaWNvbj5hbHRlcm5hdGVfZW1haWw8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9vcGVuRW1vamkoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidFbW9qaSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBjbGFzcz1cInRvb2xcIiBbZGlzYWJsZWRdPVwibW9kZSAhPT0gJ3RleHQnXCI+PG1hdC1pY29uPmluc2VydF9lbW90aWNvbjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX3RvZ2dsZUh0bWwoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidUZXh0J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbj50ZXh0X2ZpZWxkczwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX29rKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBjbGFzcz1cInRvb2xcIj5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlbmQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiX2ltYWdlXCI+XHJcbiAgPGltZyBbc3JjXT1cIidkYXRhOmltYWdlL3BuZztiYXNlNjQsJysgX2ltYWdlXCIgLz5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX2NsZWFySW1hZ2UoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvdGFnZ2luZy9lZGl0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS90YWdnaW5nL2VkaXQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHOUQsT0FBTyxFQUFtQixVQUFVLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUssT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRXZELGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUM7QUFPckMsTUFBTSxPQUFPLGtCQUFrQjtJQXVEN0IsWUFBb0IsTUFBYSxFQUN2QixHQUFzQjtRQURaLFdBQU0sR0FBTixNQUFNLENBQU87UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2RHZCLG9CQUFlLEdBQUc7WUFDekIsS0FBSyxF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QUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQzs7K0dBdExVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGdhQXNEbEIsdUJBQXVCLGdEQzNFcEMsdzdFQXlDQTsyRkRwQmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGtCQUFrQjs0SEFpQm5CLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUssSUFBSTtzQkFEZCxLQUFLO2dCQU9LLEtBQUs7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBSWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFDZ0IsSUFBSTtzQkFBMUIsTUFBTTt1QkFBQyxJQUFJO2dCQUNjLE9BQU87c0JBQWhDLE1BQU07dUJBQUMsT0FBTztnQkFDVSxNQUFNO3NCQUE5QixNQUFNO3VCQUFDLE1BQU07Z0JBQ1MsWUFBWTtzQkFBbEMsU0FBUzt1QkFBQyxVQUFVO2dCQUNlLElBQUk7c0JBQXZDLFNBQVM7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgRW1vamlEYXRhIH0gZnJvbSAnQGN0cmwvbmd4LWVtb2ppLW1hcnQvbmd4LWVtb2ppJztcclxuaW1wb3J0IHsgQ2hhbmdlRXZlbnRBcmdzLCBIdG1sRWRpdG9yLCBSaWNoVGV4dEVkaXRvciwgUmljaFRleHRFZGl0b3JDb21wb25lbnQsIFRvb2xiYXIsIFRvb2xiYXJTZXR0aW5nc01vZGVsLCBUb29sYmFyVHlwZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXJpY2h0ZXh0ZWRpdG9yJztcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tICcuLi9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclRhZ2dpbmdDb21wb25lbnQgfSBmcm9tICcuL3VzZXJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERvY3VtZW50VGFnZ2luZ0NvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ2dpbmdDb21wb25lbnRCYXNlIH0gZnJvbSAnLi90YWdnaW5nLmNvbXBvbmVudC1iYXNlJztcclxuaW1wb3J0IHsgRW1vamlIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9lbW9qaS5jb21wb25lbnQnO1xyXG5cclxuUmljaFRleHRFZGl0b3IuSW5qZWN0KFRvb2xiYXIsIEh0bWxFZGl0b3IpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhUTUxfRVhQID0gLzxbXFwvXFx3XSs+L2c7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1lZGl0LXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWlucHV0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHJlYWRvbmx5IHRvb2xiYXJTZXR0aW5ncyA9IHtcclxuICAgIGl0ZW1zOiBbJ0JvbGQnLCAnSXRhbGljJywgJ1VuZGVybGluZScsICdTdHJpa2VUaHJvdWdoJyxcclxuICAgICAgJ3wnLFxyXG4gICAgICAnRm9ybWF0cycsICdBbGlnbm1lbnRzJywgJ09yZGVyZWRMaXN0JywgJ1Vub3JkZXJlZExpc3QnLFxyXG4gICAgICAnT3V0ZGVudCcsICdJbmRlbnQnXSxcclxuICAgIHR5cGU6IFRvb2xiYXJUeXBlLk11bHRpUm93XHJcbiAgfSBhcyBUb29sYmFyU2V0dGluZ3NNb2RlbDtcclxuICBwcml2YXRlIF90ZXh0OiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF9vcmlnaW5hbFRleHQ6IHN0cmluZztcclxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gIH1cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIC8vQENvbnRlbnRDaGlsZCgnW2VkaXRIaW50XScpIGhpbnQ/OiBOZ1RlbXBsYXRlO1xyXG4gIC8vQENvbnRlbnRDaGlsZCgnW2VkaXRMYWJlbF0nKSBsYWJlbD86IE5nVGVtcGxhdGU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRleHQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fb3JpZ2luYWxUZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLl90ZXh0ID0gdmFsdWU7XHJcbiAgICB0aGlzLm1vZGUgPSB2YWx1ZSAmJiBIVE1MX0VYUC50ZXN0KHZhbHVlKSA/ICdodG1sJyA6ICd0ZXh0J1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW1hZ2UodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fb3JpZ2luYWxJbWFnZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5faW1hZ2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgbW9kZTogJ2h0bWwnIHwgJ3RleHQnID0gJ3RleHQnO1xyXG4gIHByaXZhdGUgX3Jlc291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2UoKTogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHJlc291cmNlKHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSkge1xyXG4gICAgdGhpcy5fcmVzb3VyY2UgPSB2YWx1ZTtcclxuICB9XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfYXV0b2ZvY3VzOiBib29sZWFuO1xyXG4gIHB1YmxpYyBnZXQgYXV0b2ZvY3VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dG9mb2N1cztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGF1dG9mb2N1cyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYXV0b2ZvY3VzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBjYWNoZTogc3RyaW5nO1xyXG4gIF9pbWFnZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX29yaWdpbmFsSW1hZ2U6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgnb2snKSByZWFkb25seSBvbk9rID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0VGV4dEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoJ2ZvY3VzJykgcmVhZG9ubHkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCdibHVyJykgcmVhZG9ubHkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJykgX3RleHRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoUmljaFRleHRFZGl0b3JDb21wb25lbnQpIF9ydGU6IFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RleHQpIHtcclxuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2h0bWwnKVxyXG4gICAgICAgIHRoaXMuX3J0ZS52YWx1ZSA9IHRoaXMuX3RleHQ7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl90ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdGV4dDtcclxuICAgIH1cclxuICAgIHRoaXMuYXV0b2ZvY3VzICYmIHNldFRpbWVvdXQodGhpcy5mb2N1cy5iaW5kKHRoaXMpKTtcclxuICB9XHJcbiAgX2tleShldnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldnQuY2FuY2VsQnViYmxlKSByZXR1cm47XHJcbiAgICBpZiAoZXZ0LndoaWNoID09PSBFTlRFUiAmJiAhZXZ0LnNoaWZ0S2V5KSB7XHJcbiAgICAgIHRoaXMuX3N1Ym1pdCgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGV2dC53aGljaCA9PT0gRVNDQVBFKSB7XHJcbiAgICAgIGlmICh0aGlzLl90ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlICYmIHRoaXMuX3RleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9zdWJtaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMubW9kZSA9PT0gJ3RleHQnID9cclxuICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZS50cmltKClcclxuICAgICAgOlxyXG4gICAgICB0aGlzLl9ydGUudmFsdWUudHJpbSgpO1xyXG5cclxuICAgIGlmICgodGV4dCAmJiB0ZXh0Lmxlbmd0aCAmJiB0ZXh0ICE9PSB0aGlzLl9vcmlnaW5hbFRleHQpIHx8XHJcbiAgICAgICh0aGlzLl9vcmlnaW5hbEltYWdlICYmIHRoaXMuX2ltYWdlICE9PSB0aGlzLl9vcmlnaW5hbEltYWdlKSlcclxuICAgICAgdGhpcy5vbk9rLmVtaXQoeyB0ZXh0LCByZXNvdXJjZTogdGhpcy5fcmVzb3VyY2UsIGltYWdlOiB0aGlzLl9pbWFnZSB9KTtcclxuICB9XHJcbiAgX3RleHRDaGFuZ2UoZXZ0OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLl90ZXh0ID0gKGV2dC5zcmNFbGVtZW50IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLl90ZXh0KTtcclxuICB9XHJcbiAgX2h0bWxDaGFuZ2UoZXZ0OiBDaGFuZ2VFdmVudEFyZ3MpIHtcclxuICAgIHRoaXMuX3RleHQgPSBldnQudmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuX3RleHQpO1xyXG4gIH1cclxuICBfdG9nZ2xlSHRtbCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdodG1sJykge1xyXG4gICAgICBpZiAodGhpcy5fdGV4dCkgdGhpcy5fdGV4dCA9IHRoaXMuX3J0ZS5nZXRUZXh0KCk7XHJcbiAgICAgIHRoaXMubW9kZSA9ICd0ZXh0JztcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5tb2RlID0gJ2h0bWwnO1xyXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuICBfb2soKSB7XHJcbiAgICB0aGlzLl9zdWJtaXQoKTtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9pbWFnZSA9IG51bGw7XHJcbiAgICB0aGlzLl9yZXNvdXJjZSA9IG51bGw7XHJcbiAgICB0aGlzLl90ZXh0ID0gbnVsbDtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd0ZXh0JylcclxuICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3J0ZS52YWx1ZSA9ICcnO1xyXG4gIH1cclxuICBmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICd0ZXh0JylcclxuICAgICAgc2V0VGltZW91dCgoKT0+IHRoaXMuX3RleHRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3J0ZS5mb2N1c0luKCk7XHJcbiAgfVxyXG4gIF9vcGVuRG9jdW1lbnQoZXZ0OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLl90YWcoRG9jdW1lbnRUYWdnaW5nQ29tcG9uZW50LCBldnQsICcjJyk7XHJcbiAgfVxyXG4gIF90YWcoY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFRhZ2dpbmdDb21wb25lbnRCYXNlPGFueT4+LCBldnQ6IE1vdXNlRXZlbnQsIHByZWZpeDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwb3B1cFJlZiA9IHRoaXMuX3BvcHVwLm9wZW4oY29tcG9uZW50LCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnYWJvdmUnIH0pO1xyXG4gICAgcG9wdXBSZWYub3BlbmVkLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgZS5vbkJpbmQoJycpO1xyXG4gICAgICBlLnNlbGVjdGVkLnBpcGUoKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSArPSBwcmVmaXggKyBlLmtleTtcclxuICAgICAgICBjb25zdCBhcmdzID0ge307XHJcbiAgICAgICAgYXJnc1tlLmtleV0gPSBlLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5yZXNvdXJjZSlcclxuICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSBhcmdzO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXNvdXJjZSwgYXJncyk7XHJcbiAgICAgICAgcG9wdXBSZWYuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIF9vcGVuTWVudGlvbihldnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuX3RhZyhVc2VyVGFnZ2luZ0NvbXBvbmVudCwgZXZ0LCAnQCcpO1xyXG4gIH1cclxuICBfb3BlbkVtb2ppKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihFbW9qaUhvc3RDb21wb25lbnQsIGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHsgcG9zaXRpb246ICdhYm92ZScgfSkuY2xvc2VkLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IEVtb2ppRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlICs9IGUubmF0aXZlO1xyXG4gICAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIF9hZGRFbW9qaShldmVudCkge1xyXG4gICAgdGhpcy5fdGV4dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSArPSBldmVudC5lbW9qaS5uYXRpdmU7XHJcbiAgfVxyXG4gIF9wYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IGV2ZW50LmNsaXBib2FyZERhdGE7XHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcbiAgICBmb3IgKGxldCBpbmRleCBpbiBpdGVtcykge1xyXG4gICAgICBsZXQgaXRlbSA9IGl0ZW1zW2luZGV4XTtcclxuICAgICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2ZpbGUnKSB7XHJcbiAgICAgICAgbGV0IGJsb2IgPSBpdGVtLmdldEFzRmlsZSgpO1xyXG4gICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgICBtZS5faW1hZ2UgPSAocmVzdWx0IGFzIHN0cmluZykuc3Vic3RyKDIyKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIF9jbGVhckltYWdlKCkge1xyXG4gICAgdGhpcy5faW1hZ2UgPSBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFZGl0VGV4dEV2ZW50IHtcclxuICBpbWFnZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIHJlc291cmNlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibW9kZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2h0bWwnXCI+XHJcbiAgICAgIDxlanMtcmljaHRleHRlZGl0b3IgW3ZhbHVlXT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiX2h0bWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2xiYXJTZXR0aW5nc109XCJ0b29sYmFyU2V0dGluZ3NcIj48L2Vqcy1yaWNodGV4dGVkaXRvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgZmxvYXRMYWJlbD1cIm5ldmVyXCIgZnhGbGV4PlxyXG4gICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBjZGtUZXh0YXJlYUF1dG9zaXplIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcclxuICAgICAgICAgICAgICAgICAgWyhiaXpkb2NUYWdnaW5nKV09XCJyZXNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJfdGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAocGFzdGUpPVwiX3Bhc3RlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbbWF0VGV4dGFyZWFBdXRvc2l6ZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21hdEF1dG9zaXplTWF4Um93c109XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJ1R5cGVIZXJlJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cy5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwib25CbHVyLmVtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICN0ZXh0QXJlYT48L3RleHRhcmVhPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBmeExheW91dD1cInJvdyBuYXYtdG9vbGJhclwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9vcGVuRG9jdW1lbnQoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidEb2N1bWVudCd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBjbGFzcz1cInRvb2xcIiBbZGlzYWJsZWRdPVwibW9kZSAhPT0gJ3RleHQnXCI+PG1hdC1pY29uPmFydGljbGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9vcGVuTWVudGlvbigkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ01lbnRpb24nfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgY2xhc3M9XCJ0b29sXCIgW2Rpc2FibGVkXT1cIm1vZGUgIT09ICd0ZXh0J1wiPjxtYXQtaWNvbj5hbHRlcm5hdGVfZW1haWw8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9vcGVuRW1vamkoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidFbW9qaSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBjbGFzcz1cInRvb2xcIiBbZGlzYWJsZWRdPVwibW9kZSAhPT0gJ3RleHQnXCI+PG1hdC1pY29uPmluc2VydF9lbW90aWNvbjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX3RvZ2dsZUh0bWwoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidUZXh0J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbj50ZXh0X2ZpZWxkczwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX29rKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBjbGFzcz1cInRvb2xcIj5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlbmQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiX2ltYWdlXCI+XHJcbiAgPGltZyBbc3JjXT1cIidkYXRhOmltYWdlL3BuZztiYXNlNjQsJysgX2ltYWdlXCIgLz5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX2NsZWFySW1hZ2UoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -280,14 +280,13 @@ export class CubeChartComponent {
280
280
  }
281
281
  CubeChartComponent.nextId = 0;
282
282
  CubeChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeChartComponent, deps: [{ token: i1.CubeService }, { token: i2.PromptService }, { token: i3.TranslateService }, { token: i4.SessionService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
283
- CubeChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeChartComponent, selector: "bizdoc-cube-chart", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", yAxis: "yAxis", chartType: "chartType", indicesChartType: "indicesChartType", scope: "scope", loading: "loading", palettes: "palettes" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { attributes: { "dir": "ltr" }, properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
283
+ CubeChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeChartComponent, selector: "bizdoc-cube-chart", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", yAxis: "yAxis", chartType: "chartType", indicesChartType: "indicesChartType", scope: "scope", loading: "loading", palettes: "palettes" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
284
284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeChartComponent, decorators: [{
285
285
  type: Component,
286
286
  args: [{
287
287
  selector: 'bizdoc-cube-chart',
288
288
  template: '',
289
289
  host: {
290
- dir: 'ltr',
291
290
  class: 'cube-view'
292
291
  }
293
292
  }]
@@ -324,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
324
323
  }], palettes: [{
325
324
  type: Input
326
325
  }] } });
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBdUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQU03RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVcvQyxxQkFBcUI7QUFDckIsTUFBTSxPQUFPLGtCQUFrQjtJQXNHN0IsaUJBQWlCO0lBQ2pCLFlBQW9CLFFBQXFCLEVBQy9CLEdBQWtCLEVBQVUsVUFBNEIsRUFBVSxRQUF3QixFQUFVLFdBQXVCO1FBRGpILGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTVEbEgsWUFBTyxHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELGtC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RyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztBQTFQTSx5QkFBTSxHQUFHLENBQUMsQ0FBQzsrR0EvQ1Asa0JBQWtCO21HQUFsQixrQkFBa0IsbWdCQVBuQixFQUFFOzJGQU9ELGtCQUFrQjtrQkFUOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osR0FBRyxFQUFFLEtBQUs7d0JBQ1YsS0FBSyxFQUFFLFdBQVc7cUJBQ25CO2lCQUNGO21OQUlDLEtBQUs7c0JBREosS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sSUFBSTtzQkFESCxLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkFTSyxNQUFNO3NCQURoQixLQUFLO2dCQVVLLE9BQU87c0JBRGpCLEtBQUs7Z0JBTU4sT0FBTztzQkFETixLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixTQUFTO3NCQURSLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVhLE9BQU87c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBR0UsRUFBRTtzQkFEVixXQUFXO2dCQVFDLFFBQVE7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hhcnQsIFNlcmllc01vZGVsLCBDcm9zc2hhaXJTZXR0aW5nc01vZGVsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IEF4aXNNb2RlbCwgQ2hhcnRBcmVhTW9kZWwsIFRvb2x0aXBTZXR0aW5nc01vZGVsLCBMZWdlbmRTZXR0aW5nc01vZGVsLCBJUG9pbnRFdmVudEFyZ3MsIElUb29sdGlwUmVuZGVyRXZlbnRBcmdzIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbnRlcm5hdGlvbmFsaXphdGlvbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1iYXNlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdvcmtib29rIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydCc7XHJcbmltcG9ydCB7IFdvcmtzaGVldCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL3dvcmtzaGVldCc7XHJcbmltcG9ydCB7IFJvdyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL3Jvdyc7XHJcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQvc3JjL2NvbHVtbic7XHJcbmltcG9ydCB7IEZPTlRfRkFNSUxZIH0gZnJvbSAnLi4vLi4vY29yZS9jb2xvcnMnO1xyXG5pbXBvcnQgeyBBWEVTX0NPREVfRElWSURFUiwgQVhFU19MQUJFTF9ESVZJREVSLCBDdWJlU2VydmljZSwgU2VyaWVzIH0gZnJvbSAnLi4vY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIENoYXJ0VHlwZSwgQ3ViZSwgWUF4aXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtY2hhcnQnLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBkaXI6ICdsdHInLFxyXG4gICAgY2xhc3M6ICdjdWJlLXZpZXcnXHJcbiAgfVxyXG59KVxyXG4vKiogY2hhcnQgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEN1YmVDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEN1YmVWaWV3ZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZyB8IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZSE6IHN0cmluZztcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBwdWJsaWMgZ2V0IHhBeGlzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl94QXhpcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHhBeGlzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgdGhpcy5feEF4aXMgPSBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBzZXJpZXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcmllcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlcmllcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgICBlbHNlIHRoaXMuX3NlcmllcyA9IG51bGw7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGljZXM/OiBzdHJpbmdbXTtcclxuICBwdWJsaWMgZ2V0IGluZGljZXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGljZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbmRpY2VzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgICBlbHNlIHRoaXMuX2luZGljZXMgPSBudWxsO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBJbnB1dCgpXHJcbiAgeUF4aXM/OiBZQXhpcztcclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBASW5wdXQoKVxyXG4gIGluZGljZXNDaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgQElucHV0KCkgc2NvcGU6IFNjb3BlVHlwZTtcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwbG9yZTogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBIb3N0QmluZGluZygpXHJcbiAgcmVhZG9ubHkgaWQgPSBgY3ViZS1jaGFydC0ke0N1YmVDaGFydENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIGNoYXJ0OiBDaGFydDtcclxuICBwcml2YXRlIF9wYWxldHRlcyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgIHB1YmxpYyBnZXQgcGFsZXR0ZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbGV0dGVzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBwYWxldHRlcyh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3BhbGV0dGVzID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgcmVhZG9ubHkgZW5hYmxlUnRsID0gdGhpcy5fc2Vzc2lvbi5pbnZlcnNlO1xyXG4gIHJlYWRvbmx5IGxlZ2VuZFNldHRpbmdzOiBMZWdlbmRTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgaXNJbnZlcnNlZDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICBtYXJnaW46IHtcclxuICAgICAgdG9wOiA1XHJcbiAgICB9LFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBwcmltYXJ5WEF4aXM6IEF4aXNNb2RlbCA9IHtcclxuICAgIHZhbHVlVHlwZTogJ0NhdGVnb3J5JyxcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IHByaW1hcnlZQXhpczogQXhpc01vZGVsID0ge1xyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgY2hhcnRBcmVhOiBDaGFydEFyZWFNb2RlbCA9IHtcclxuICAgIGJvcmRlcjoge1xyXG4gICAgICB3aWR0aDogMFxyXG4gICAgfSxcclxuICAgIG9wYWNpdHk6IDBcclxuICB9O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgZW5hYmxlQW5pbWF0aW9uOiBmYWxzZSxcclxuICAgIGJvcmRlcjogeyB3aWR0aDogMCB9LFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBjcm9zc2hhaXI6IENyb3NzaGFpclNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGU6IGZhbHNlLFxyXG4gICAgbGluZVR5cGU6ICdWZXJ0aWNhbCdcclxuICB9O1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwnIHwgJ01hdGVyaWFsRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgcHJpdmF0ZSBfZGF0YTogU2VyaWVzW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfaW50bDogSW50ZXJuYXRpb25hbGl6YXRpb24gPSBuZXcgSW50ZXJuYXRpb25hbGl6YXRpb24oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogY2hhcnQgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIF9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgICAgdGhpcy5wYWxldHRlcyA9IF9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHRoaXMuY3ViZSkgfHwgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgdGhpcy5jdXJyZW5jeUNvZGUgPSB0aGlzLl9jdWJlLmN1cnJlbmN5Q29kZTtcclxuICAgIGlmICh0aGlzLmNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnU3BsaW5lJylcclxuICAgICAgdGhpcy5jcm9zc2hhaXIuZW5hYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMucHJpbWFyeVlBeGlzLmxhYmVsRm9ybWF0ID0gdGhpcy5jdXJyZW5jeUNvZGUgPyAnYzAnIDogJ24wJztcclxuICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddICYmICFjaGFuZ2VzWydmaWx0ZXJzJ10uZmlyc3RDaGFuZ2UpXHJcbiAgICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10pXHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICB9XHJcbiAgcmVzaXplKCkge1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmNoYXJ0UmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLmN1YmUsIHRoaXMueEF4aXMsIHtcclxuICAgICAgaW5kaWNlczogdGhpcy5pbmRpY2VzLCBzZXJpZXM6IHRoaXMuc2VyaWVzLFxyXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXHJcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3BlXHJcbiAgIH0pLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5fZGF0YSA9IHI7XHJcbiAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfSwgKGU6IEh0dHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDEgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgY29uc3Qgc2VyaWVzID0gdGhpcy5fZGF0YS5tYXAocyA9PiB7XHJcbiAgICAgIGlmIChzLmluZGV4KVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB4TmFtZTogJ25hbWUnLFxyXG4gICAgICAgICAgeU5hbWU6ICd5JyxcclxuICAgICAgICAgIG5hbWU6IHMudGl0bGUsXHJcbiAgICAgICAgICBkYXRhU291cmNlOiBzLnBvaW50cyxcclxuICAgICAgICAgIHR5cGU6IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSB8fCAnU3BsaW5lJyxcclxuICAgICAgICAgIHdpZHRoOiAyLFxyXG4gICAgICAgICAgZmlsbDogdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCksXHJcbiAgICAgICAgICBzdGFja2luZ0dyb3VwOiAnaW5kZXgnLFxyXG4gICAgICAgICAgZW1wdHlQb2ludFNldHRpbmdzOiB7IG1vZGU6ICdaZXJvJyB9LFxyXG4gICAgICAgICAgbWFya2VyOiB7XHJcbiAgICAgICAgICAgIHZpc2libGU6ICF0aGlzLmluZGljZXNDaGFydFR5cGUgfHwgdGhpcy5pbmRpY2VzQ2hhcnRUeXBlID09PSAnTGluZScgfHwgdGhpcy5pbmRpY2VzQ2hhcnRUeXBlID09PSAnU3BsaW5lJyxcclxuICAgICAgICAgICAgc2hhcGU6ICdEaWFtb25kJyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMCxcclxuICAgICAgICAgICAgd2lkdGg6IDEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBTZXJpZXNNb2RlbDtcclxuICAgICAgZWxzZSByZXR1cm4ge1xyXG4gICAgICAgIHhOYW1lOiAnbmFtZScsXHJcbiAgICAgICAgeU5hbWU6ICd5JyxcclxuICAgICAgICBuYW1lOiBzLnRpdGxlLFxyXG4gICAgICAgIGRhdGFTb3VyY2U6IHMucG9pbnRzLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIG1hcmtlcjoge1xyXG4gICAgICAgICAgdmlzaWJsZTogIXRoaXMuY2hhcnRUeXBlIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnTGluZScgfHwgdGhpcy5jaGFydFR5cGUgPT09ICdTcGxpbmUnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAxMCxcclxuICAgICAgICAgIHdpZHRoOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBTZXJpZXNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sZWdlbmRTZXR0aW5ncy52aXNpYmxlID0gc2VyaWVzLmxlbmd0aCA+IDE7XHJcbiAgICB0aGlzLmNoYXJ0ICYmIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh7XHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB0aGlzLmxlZ2VuZFNldHRpbmdzLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHRoaXMucHJpbWFyeVhBeGlzLFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHRoaXMucHJpbWFyeVlBeGlzLFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLFxyXG4gICAgICB1c2VHcm91cGluZ1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgICAgcGFsZXR0ZXM6IHRoaXMucGFsZXR0ZXMsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIHRvb2x0aXBSZW5kZXI6IHRoaXMudG9vbHRpcFJlbmRlci5iaW5kKHRoaXMpLFxyXG4gICAgICBzZWxlY3Rpb25Nb2RlOiAnUG9pbnQnLFxyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgdG9vbHRpcDogdGhpcy50b29sdGlwLFxyXG4gICAgICBjaGFydEFyZWE6IHRoaXMuY2hhcnRBcmVhLFxyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0IGFzIHN0cmluZyxcclxuICAgICAgY3Jvc3NoYWlyOiB0aGlzLmNyb3NzaGFpcixcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgc2VyaWVzLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgdG9vbHRpcFJlbmRlcihlOiBJVG9vbHRpcFJlbmRlckV2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgZS50ZXh0ID0gdGhpcy5faW50bC5mb3JtYXROdW1iZXIoZS5wb2ludC55IGFzIG51bWJlciwge1xyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0c1xyXG4gICAgfSk7XHJcbiAgfTtcclxuICBwb2ludENsaWNrKGV2dDogSVBvaW50RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBhbnkgfSA9IHt9LFxyXG4gICAgICBzZXJpZSA9IHRoaXMuX2RhdGFbZXZ0LnNlcmllc0luZGV4XSxcclxuICAgICAgeyBpbmRleCwgbmFtZSwgcG9pbnRzIH0gPSBzZXJpZTtcclxuICAgIGlmICh0aGlzLnNlcmllcyAmJiB0aGlzLnNlcmllcy5sZW5ndGggJiYgIWluZGV4KVxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VyaWVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGF4ZXNbdGhpcy5zZXJpZXNbaV1dID0gbmFtZS5zcGxpdChBWEVTX0NPREVfRElWSURFUilbaV07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMueEF4aXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgeCA9IHBvaW50c1tldnQucG9pbnRJbmRleF0ueDtcclxuICAgICAgYXhlc1t0aGlzLnhBeGlzW2ldXSA9IHguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpW2ldO1xyXG4gICAgfVxyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleCB9KTtcclxuICB9XHJcbiAgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdFxyXG4gICAgICBudW1iZXJGb3JtYXQgPSB0aGlzLl9zZXJ2aWNlLm51bWJlckZvcm1hdCxcclxuICAgICAgd29ya3NoZWV0cyA9IFtdO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKHMgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IHRoaXMuX3hBeGlzLm1hcCgoeCwgaSkgPT4gKHtcclxuICAgICAgICBpbmRleDogaSArIDEsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB4KS50aXRsZSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKSk7XHJcbiAgICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICAgIGluZGV4OiB0aGlzLl94QXhpcy5sZW5ndGggKyAxLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdWYWx1ZScpLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBib2xkOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGFzIENlbGwpO1xyXG4gICAgICBjb25zdCByb3dzID0gW3tcclxuICAgICAgICBpbmRleDogMSxcclxuICAgICAgICBjZWxsc1xyXG4gICAgICB9IGFzIFJvd107XHJcbiAgICAgIHMucG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBjZWxscyA9IHRoaXMuX3hBeGlzLm1hcCgoXywgaikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaW5kZXg6IGogKyAxLFxyXG4gICAgICAgICAgICB2YWx1ZTogcC5uYW1lLnNwbGl0KEFYRVNfTEFCRUxfRElWSURFUilbal1cclxuICAgICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgICAgaW5kZXg6IHRoaXMuX3hBeGlzLmxlbmd0aCArIDEsXHJcbiAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICAgIGhBbGlnbjogJ3JpZ2h0J1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlOiBwLnlcclxuICAgICAgICB9IGFzIENlbGwpO1xyXG4gICAgICAgIHJvd3MucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgICAgICBjZWxsc1xyXG4gICAgICAgICAgfSBhcyBSb3cpXHJcbiAgICAgIH0pXHJcbiAgICAgIHdvcmtzaGVldHMucHVzaChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBlbmFibGVSdGw6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgICAgICAgbmFtZTogcy50aXRsZSxcclxuICAgICAgICAgIGNvbHVtbnM6IFsuLi50aGlzLl94QXhpcy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpXHJcbiAgICAgICAgICAgICwgeyBpbmRleDogdGhpcy5feEF4aXMubGVuZ3RoICsgMSB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIHJvd3NcclxuICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICB7XHJcbiAgICAgICAgd29ya3NoZWV0cyxcclxuICAgICAgfSxcclxuICAgICAgJ3hsc3gnXHJcbiAgICApO1xyXG4gICAgYm9vay5zYXZlKGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIl19
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBdUMsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQU03RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVUvQyxxQkFBcUI7QUFDckIsTUFBTSxPQUFPLGtCQUFrQjtJQXNHN0IsaUJBQWlCO0lBQ2pCLFlBQW9CLFFBQXFCLEVBQy9CLEdBQWtCLEVBQVUsVUFBNEIsRUFBVSxRQUF3QixFQUFVLFdBQXVCO1FBRGpILGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTVEbEgsWUFBTyxHQUFpQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELGtC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RyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztBQTFQTSx5QkFBTSxHQUFHLENBQUMsQ0FBQzsrR0EvQ1Asa0JBQWtCO21HQUFsQixrQkFBa0IscWVBTm5CLEVBQUU7MkZBTUQsa0JBQWtCO2tCQVI5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7bU5BSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBUUssS0FBSztzQkFEZixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBVUssT0FBTztzQkFEakIsS0FBSztnQkFNTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRWEsT0FBTztzQkFBekIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2EsYUFBYTtzQkFBL0IsTUFBTTtnQkFHRSxFQUFFO3NCQURWLFdBQVc7Z0JBUUMsUUFBUTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2VyaWVzTW9kZWwsIENyb3NzaGFpclNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBDaGFydEFyZWFNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIExlZ2VuZFNldHRpbmdzTW9kZWwsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV29ya2Jvb2sgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvd29ya3NoZWV0JztcclxuaW1wb3J0IHsgUm93IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvcm93JztcclxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWV4Y2VsLWV4cG9ydC9zcmMvY29sdW1uJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBBWEVTX0xBQkVMX0RJVklERVIsIEN1YmVTZXJ2aWNlLCBTZXJpZXMgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBDdWJlLCBZQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTY29wZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1jaGFydCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnY3ViZS12aWV3J1xyXG4gIH1cclxufSlcclxuLyoqIGNoYXJ0IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDdWJlVmlld2VyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGN1YmUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHVibGljIGdldCB4QXhpcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5feEF4aXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB4QXhpcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Nlcmllcz86IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBnZXQgc2VyaWVzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZXJpZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzZXJpZXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHRoaXMuX3NlcmllcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9zZXJpZXMgPSBudWxsO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBpbmRpY2VzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRpY2VzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaW5kaWNlcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9pbmRpY2VzID0gbnVsbDtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBASW5wdXQoKVxyXG4gIHlBeGlzPzogWUF4aXM7XHJcbiAgQElucHV0KClcclxuICBjaGFydFR5cGU/OiBDaGFydFR5cGU7XHJcbiAgQElucHV0KClcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmU6IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKVxyXG4gIHJlYWRvbmx5IGlkID0gYGN1YmUtY2hhcnQtJHtDdWJlQ2hhcnRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBjaGFydDogQ2hhcnQ7XHJcbiAgcHJpdmF0ZSBfcGFsZXR0ZXMgPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICBwdWJsaWMgZ2V0IHBhbGV0dGVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcGFsZXR0ZXModmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9wYWxldHRlcyA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIHJlYWRvbmx5IGVuYWJsZVJ0bCA9IHRoaXMuX3Nlc3Npb24uaW52ZXJzZTtcclxuICByZWFkb25seSBsZWdlbmRTZXR0aW5nczogTGVnZW5kU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGlzSW52ZXJzZWQ6IHRoaXMuZW5hYmxlUnRsLFxyXG4gICAgbWFyZ2luOiB7XHJcbiAgICAgIHRvcDogNVxyXG4gICAgfSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVhBeGlzOiBBeGlzTW9kZWwgPSB7XHJcbiAgICB2YWx1ZVR5cGU6ICdDYXRlZ29yeScsXHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBwcmltYXJ5WUF4aXM6IEF4aXNNb2RlbCA9IHtcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGNoYXJ0QXJlYTogQ2hhcnRBcmVhTW9kZWwgPSB7XHJcbiAgICBib3JkZXI6IHtcclxuICAgICAgd2lkdGg6IDBcclxuICAgIH0sXHJcbiAgICBvcGFjaXR5OiAwXHJcbiAgfTtcclxuICByZWFkb25seSB0b29sdGlwOiBUb29sdGlwU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIGVuYWJsZUFuaW1hdGlvbjogZmFsc2UsXHJcbiAgICBib3JkZXI6IHsgd2lkdGg6IDAgfSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgY3Jvc3NoYWlyOiBDcm9zc2hhaXJTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiBmYWxzZSxcclxuICAgIGxpbmVUeXBlOiAnVmVydGljYWwnXHJcbiAgfTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHByaXZhdGUgX2RhdGE6IFNlcmllc1tdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGw6IEludGVybmF0aW9uYWxpemF0aW9uID0gbmV3IEludGVybmF0aW9uYWxpemF0aW9uKCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGNoYXJ0IGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLCBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLCBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBfc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMucGFsZXR0ZXMgPSBfc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdMaW5lJyB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ1NwbGluZScpXHJcbiAgICAgIHRoaXMuY3Jvc3NoYWlyLmVuYWJsZSA9IHRydWU7XHJcbiAgICB0aGlzLnByaW1hcnlZQXhpcy5sYWJlbEZvcm1hdCA9IHRoaXMuY3VycmVuY3lDb2RlID8gJ2MwJyA6ICduMCc7XHJcbiAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSAmJiAhY2hhbmdlc1snZmlsdGVycyddLmZpcnN0Q2hhbmdlKVxyXG4gICAgICB0aGlzLmV4ZWN1dGUoKTtcclxuICAgIGVsc2VcclxuICAgICAgaWYgKGNoYW5nZXNbJ2hlaWdodCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5jaGFydFJlc2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5zZXJpZXModGhpcy5jdWJlLCB0aGlzLnhBeGlzLCB7XHJcbiAgICAgIGluZGljZXM6IHRoaXMuaW5kaWNlcywgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxyXG4gICAgICBzY29wZTogdGhpcy5zY29wZVxyXG4gICB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSByO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDAxID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfZHJhdygpIHtcclxuICAgIGNvbnN0IHNlcmllcyA9IHRoaXMuX2RhdGEubWFwKHMgPT4ge1xyXG4gICAgICBpZiAocy5pbmRleClcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgeE5hbWU6ICduYW1lJyxcclxuICAgICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgICBuYW1lOiBzLnRpdGxlLFxyXG4gICAgICAgICAgZGF0YVNvdXJjZTogcy5wb2ludHMsXHJcbiAgICAgICAgICB0eXBlOiB0aGlzLmluZGljZXNDaGFydFR5cGUgfHwgJ1NwbGluZScsXHJcbiAgICAgICAgICB3aWR0aDogMixcclxuICAgICAgICAgIGZpbGw6IHRoaXMuX3Nlc3Npb24uZ2V0UHJpbWVyeSgpLFxyXG4gICAgICAgICAgc3RhY2tpbmdHcm91cDogJ2luZGV4JyxcclxuICAgICAgICAgIGVtcHR5UG9pbnRTZXR0aW5nczogeyBtb2RlOiAnWmVybycgfSxcclxuICAgICAgICAgIG1hcmtlcjoge1xyXG4gICAgICAgICAgICB2aXNpYmxlOiAhdGhpcy5pbmRpY2VzQ2hhcnRUeXBlIHx8IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuaW5kaWNlc0NoYXJ0VHlwZSA9PT0gJ1NwbGluZScsXHJcbiAgICAgICAgICAgIHNoYXBlOiAnRGlhbW9uZCcsXHJcbiAgICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICAgIHdpZHRoOiAxMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICAgIGVsc2UgcmV0dXJuIHtcclxuICAgICAgICB4TmFtZTogJ25hbWUnLFxyXG4gICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgbmFtZTogcy50aXRsZSxcclxuICAgICAgICBkYXRhU291cmNlOiBzLnBvaW50cyxcclxuICAgICAgICB0eXBlOiB0aGlzLmNoYXJ0VHlwZSB8fCAnQ29sdW1uJyxcclxuICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgIHZpc2libGU6ICF0aGlzLmNoYXJ0VHlwZSB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnU3BsaW5lJyxcclxuICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICB3aWR0aDogMTBcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGVnZW5kU2V0dGluZ3MudmlzaWJsZSA9IHNlcmllcy5sZW5ndGggPiAxO1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoe1xyXG4gICAgICBsZWdlbmRTZXR0aW5nczogdGhpcy5sZWdlbmRTZXR0aW5ncyxcclxuICAgICAgcHJpbWFyeVhBeGlzOiB0aGlzLnByaW1hcnlYQXhpcyxcclxuICAgICAgcHJpbWFyeVlBeGlzOiB0aGlzLnByaW1hcnlZQXhpcyxcclxuICAgICAgZW5hYmxlRXhwb3J0OiB0cnVlLFxyXG4gICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICB0aGVtZTogdGhpcy50aGVtZSxcclxuICAgICAgdXNlR3JvdXBpbmdTZXBhcmF0b3I6IHRydWUsXHJcbiAgICAgIHBhbGV0dGVzOiB0aGlzLnBhbGV0dGVzLFxyXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICB0b29sdGlwUmVuZGVyOiB0aGlzLnRvb2x0aXBSZW5kZXIuYmluZCh0aGlzKSxcclxuICAgICAgc2VsZWN0aW9uTW9kZTogJ1BvaW50JyxcclxuICAgICAgcG9pbnRDbGljazogdGhpcy5wb2ludENsaWNrLmJpbmQodGhpcyksXHJcbiAgICAgIHRvb2x0aXA6IHRoaXMudG9vbHRpcCxcclxuICAgICAgY2hhcnRBcmVhOiB0aGlzLmNoYXJ0QXJlYSxcclxuICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCBhcyBzdHJpbmcsXHJcbiAgICAgIGNyb3NzaGFpcjogdGhpcy5jcm9zc2hhaXIsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5lbmFibGVSdGwsXHJcbiAgICAgIHNlcmllcyxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZTogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpOiB2b2lkIHtcclxuICAgIGUudGV4dCA9IHRoaXMuX2ludGwuZm9ybWF0TnVtYmVyKGUucG9pbnQueSBhcyBudW1iZXIsIHtcclxuICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3lDb2RlLFxyXG4gICAgICBmb3JtYXQ6IHRoaXMuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHNcclxuICAgIH0pO1xyXG4gIH07XHJcbiAgcG9pbnRDbGljayhldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55IH0gPSB7fSxcclxuICAgICAgc2VyaWUgPSB0aGlzLl9kYXRhW2V2dC5zZXJpZXNJbmRleF0sXHJcbiAgICAgIHsgaW5kZXgsIG5hbWUsIHBvaW50cyB9ID0gc2VyaWU7XHJcbiAgICBpZiAodGhpcy5zZXJpZXMgJiYgdGhpcy5zZXJpZXMubGVuZ3RoICYmICFpbmRleClcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlcmllcy5sZW5ndGg7IGkrKylcclxuICAgICAgICBheGVzW3RoaXMuc2VyaWVzW2ldXSA9IG5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpW2ldO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnhBeGlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHggPSBwb2ludHNbZXZ0LnBvaW50SW5kZXhdLng7XHJcbiAgICAgIGF4ZXNbdGhpcy54QXhpc1tpXV0gPSB4LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIH1cclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXggfSk7XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3RcclxuICAgICAgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIHdvcmtzaGVldHMgPSBbXTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaChzID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl94QXhpcy5tYXAoKHgsIGkpID0+ICh7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAxLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geCkudGl0bGUsXHJcbiAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gYXMgQ2VsbCkpO1xyXG4gICAgICBjZWxscy5wdXNoKHtcclxuICAgICAgICBpbmRleDogdGhpcy5feEF4aXMubGVuZ3RoICsgMSxcclxuICAgICAgICB2YWx1ZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnVmFsdWUnKSxcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgYm9sZDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBDZWxsKTtcclxuICAgICAgY29uc3Qgcm93cyA9IFt7XHJcbiAgICAgICAgaW5kZXg6IDEsXHJcbiAgICAgICAgY2VsbHNcclxuICAgICAgfSBhcyBSb3ddO1xyXG4gICAgICBzLnBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY2VsbHMgPSB0aGlzLl94QXhpcy5tYXAoKF8sIGopID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluZGV4OiBqICsgMSxcclxuICAgICAgICAgICAgdmFsdWU6IHAubmFtZS5zcGxpdChBWEVTX0xBQkVMX0RJVklERVIpW2pdXHJcbiAgICAgICAgICB9IGFzIENlbGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICAgIGluZGV4OiB0aGlzLl94QXhpcy5sZW5ndGggKyAxLFxyXG4gICAgICAgICAgc3R5bGU6IHtcclxuICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICBoQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2YWx1ZTogcC55XHJcbiAgICAgICAgfSBhcyBDZWxsKTtcclxuICAgICAgICByb3dzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGluZGV4OiBpICsgMixcclxuICAgICAgICAgICAgY2VsbHNcclxuICAgICAgICAgIH0gYXMgUm93KVxyXG4gICAgICB9KVxyXG4gICAgICB3b3Jrc2hlZXRzLnB1c2goXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgICAgIG5hbWU6IHMudGl0bGUsXHJcbiAgICAgICAgICBjb2x1bW5zOiBbLi4udGhpcy5feEF4aXMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAyNTAgfSBhcyBDb2x1bW4pKVxyXG4gICAgICAgICAgICAsIHsgaW5kZXg6IHRoaXMuX3hBeGlzLmxlbmd0aCArIDEgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICByb3dzXHJcbiAgICAgICAgfSBhcyBXb3Jrc2hlZXRcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgYm9vayA9IG5ldyBXb3JrYm9vayhcclxuICAgICAge1xyXG4gICAgICAgIHdvcmtzaGVldHMsXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIGJvb2suc2F2ZShgJHt0aXRsZX0ueGxzeGApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIENlbGwgeyB9XHJcbiJdfQ==
@@ -17,7 +17,7 @@ export class CubeInfo {
17
17
  this._cf = _cf;
18
18
  }
19
19
  navigate(axes, options) {
20
- const { cube, view, series, xAxis, filters, aggregate, indices, sum, available } = options || {};
20
+ const { cube, view, series, xAxis, filters, aggregate, indices, sum, seriesTotalLabel, xAxisTotalLabel } = options || {};
21
21
  const ccube = cube ? this._session.profile.cubes.find(c => c.name === cube) : this._session.profile.cubes[0];
22
22
  if (isArray(axes))
23
23
  axes = this._mapAxes(ccube, axes);
@@ -28,7 +28,7 @@ export class CubeInfo {
28
28
  else {
29
29
  this._router.navigate(['cube', ccube.name, 'i', xAxis, series], {
30
30
  queryParams: axes,
31
- state: { indices, aggregate, filters, sum, available }
31
+ state: { indices, aggregate, filters, sum, seriesTotalLabel, xAxisTotalLabel }
32
32
  });
33
33
  }
34
34
  }
@@ -97,4 +97,4 @@ CubeInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "1
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeInfo, decorators: [{
98
98
  type: Injectable
99
99
  }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.CubeService }, { type: i3.RouterImpl }, { type: i4.Popup }, { type: i5.BizDocComponentFactoryResolver }]; } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvY3ViZS1pbmZvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUF3Q3BFLHFDQUFxQztBQUVyQyxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFvQixRQUF3QixFQUNsQyxRQUFxQixFQUNyQixPQUFtQixFQUNuQixNQUFhLEVBQ2IsR0FBbUM7UUFKekIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFnQztJQUFJLENBQUM7SUFDbEQsUUFBUSxDQUFDLElBQW9FLEVBQUUsT0FBeUI7UUFDdEcsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNqRyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxD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QUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDcEQsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNLLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBeUI7UUFDcEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBd0IsRUFBRSxPQUFpQyxFQUFFLElBQWM7UUFDdkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM5QixJQUFJO1NBQ0wsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7cUdBcEZVLFFBQVE7eUdBQVIsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSBcIi4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEN1YmUsIEF4ZXNNYXAgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZU1hdHJpeFBvcHVwQ29tcG9uZW50IH0gZnJvbSBcIi4vbWF0cml4L3BvcHVwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gXCIuLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdW1TZXR0aW5ncyB9IGZyb20gXCIuL21hdHJpeC90YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSBcIi4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlRGF0YSB7XHJcbiAgYXhlczogQXhlc01hcDtcclxuICBvcHRpb25zPzogQ3ViZURhdGFPcHRpb25zO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVEYXRhT3B0aW9ucyB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICAvKiogY29sdW1ucyBheGVzICovXHJcbiAgeEF4aXM6IHN0cmluZztcclxuICAvKiogcm93cyBheGVzICovXHJcbiAgc2VyaWVzOiBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGluZGV4IG5hbWUgKi9cclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgdmlldz86IHN0cmluZztcclxuICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gIGZpbHRlcnM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICAvKiogYXhlcyB0byBleGNsdWRlICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIHN1bW1hcnkgcm93cyAvIGNvbHVtbnMgKi9cclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW107XHJcbiAgLyoqIGxhYmVsICovXHJcbiAgYXZhaWxhYmxlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZU9wdGlvbnMge1xyXG4gIGN1YmU/OiBzdHJpbmc7XHJcbiAgaW5kZXg/OiBzdHJpbmc7XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgYmFzZT86IHtcclxuICAgIFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTtcclxuICB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxufVxyXG5cclxuLyoqIG9wZW5zIGN1YmUgcHJldmlldyBhbmQgZXhwbG9yZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDdWJlSW5mbyB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX2NmOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHsgfVxyXG4gIG5hdmlnYXRlKGF4ZXM6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9LCBvcHRpb25zPzogQ3ViZURhdGFPcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IGN1YmUsIHZpZXcsIHNlcmllcywgeEF4aXMsIGZpbHRlcnMsIGFnZ3JlZ2F0ZSwgaW5kaWNlcywgc3VtLCBhdmFpbGFibGUgfSA9IG9wdGlvbnMgfHwge307XHJcbiAgICBjb25zdCBjY3ViZSA9IGN1YmUgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gY3ViZSkgOiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICBpZiAoaXNBcnJheShheGVzKSkgYXhlcyA9IHRoaXMuX21hcEF4ZXMoY2N1YmUsIGF4ZXMpO1xyXG4gICAgaWYgKHZpZXcpXHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCBjY3ViZS5uYW1lLCAndicsIHZpZXddLCB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IGF4ZXNcclxuICAgICAgfSk7XHJcbiAgICBlbHNlIHsgXHJcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCBjY3ViZS5uYW1lLCAnaScsIHhBeGlzLCBzZXJpZXNdLCB7XHJcbiAgICAgICAgcXVlcnlQYXJhbXM6IGF4ZXMsXHJcbiAgICAgICAgc3RhdGU6IHsgaW5kaWNlcywgYWdncmVnYXRlLCBmaWx0ZXJzLCBzdW0sIGF2YWlsYWJsZSB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgcG9wdXAoYXhlczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0sXHJcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYsXHJcbiAgICBvcHRpb25zPzogQ3ViZURhdGFPcHRpb25zKSB7XHJcbiAgICBjb25zdCBjdWJlID0gb3B0aW9ucyAmJiBvcHRpb25zLmN1YmUgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gb3B0aW9ucy5jdWJlKSA6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGNvbnN0IHsgdGVtcGxhdGUgfSA9IGN1YmU7XHJcbiAgICBpZiAoaXNBcnJheShheGVzKSkgYXhlcyA9IHRoaXMuX21hcEF4ZXMoY3ViZSwgYXhlcyk7XHJcbiAgICBpZiAodGVtcGxhdGUpIHtcclxuICAgICAgY29uc3QgY29tcCA9IHRoaXMuX2NmLmNvbXBvbmVudCh0ZW1wbGF0ZSk7XHJcbiAgICAgIHRoaXMuX29wZW4oY29tcCwgZWxlbWVudCwge1xyXG4gICAgICAgIGF4ZXMsXHJcbiAgICAgICAgb3B0aW9uc1xyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKCFvcHRpb25zKVxyXG4gICAgICAgIHRocm93ICdubyBvcHRpb25zJztcclxuICAgICAgdGhpcy5fb3BlbihDdWJlTWF0cml4UG9wdXBDb21wb25lbnQsIGVsZW1lbnQsIHtcclxuICAgICAgICBheGVzLFxyXG4gICAgICAgIG9wdGlvbnNcclxuICAgICAgfSBhcyBhbnkpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgZXhwbG9yZShheGVzOiBBeGVzTWFwIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcclxuICAgIG9wdGlvbnM/OiBFeHBsb3JlT3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBpbmRleCwgYmFzZSwgY3ViZTogbmFtZSwgc2NvcGUgfSA9IG9wdGlvbnMgfHwge307XHJcbiAgICBjb25zdCBjdWJlID0gbmFtZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBuYW1lKSA6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuXHJcbiAgICBpZiAoaXNBcnJheShheGVzKSkgYXhlcyA9IHRoaXMuX21hcEF4ZXMoY3ViZSwgYXhlcyBhcyBBcnJheTxzdHJpbmcgfCBudW1iZXI+KTtcclxuXHJcbiAgICBiYXNlICYmIHRoaXMuX3NlcnZpY2UuYmFzZShjdWJlLm5hbWUsIGF4ZXMsIGJhc2UpO1xyXG5cclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCBjdWJlLm5hbWUsICdleHBsb3JlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IGF4ZXMsXHJcbiAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgaW5kZXgsIHNjb3BlXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGF4ZXMgYXMgbWFwXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX21hcEF4ZXMoY3ViZTogQ3ViZSwgYXhlczogKHN0cmluZyB8IG51bWJlcilbXSk6IHsgW2F4aXM6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9IHtcclxuICAgIGNvbnN0IGZpbHRlcnMgPSB7fTtcclxuICAgIGF4ZXMuZm9yRWFjaCgoYSwgaSkgPT4gYSAmJiAoZmlsdGVyc1tjdWJlLmF4ZXNbaV0ubmFtZV0gPSBhKSk7XHJcbiAgICByZXR1cm4gZmlsdGVycztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29wZW4oY29tcDogQ29tcG9uZW50VHlwZTxhbnk+LCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYsIGRhdGE6IEN1YmVEYXRhKSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKGNvbXAsIGVsZW1lbnQsIHtcclxuICAgICAgZGF0YVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvY3ViZS1pbmZvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUF3Q3BFLHFDQUFxQztBQUVyQyxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFvQixRQUF3QixFQUNsQyxRQUFxQixFQUNyQixPQUFtQixFQUNuQixNQUFhLEVBQ2IsR0FBbUM7UUFKekIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFnQztJQUFJLENBQUM7SUFDbEQsUUFBUSxDQUFDLElBQW9FLEVBQUUsT0FBeUI7UUFDdEcsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN6SCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFL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QUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDcEQsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNLLFFBQVEsQ0FBQyxJQUFVLEVBQUUsSUFBeUI7UUFDcEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBd0IsRUFBRSxPQUFpQyxFQUFFLElBQWM7UUFDdkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM5QixJQUFJO1NBQ0wsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7cUdBcEZVLFFBQVE7eUdBQVIsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRWxlbWVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSBcIi4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IEN1YmUsIEF4ZXNNYXAgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vY29yZS9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZU1hdHJpeFBvcHVwQ29tcG9uZW50IH0gZnJvbSBcIi4vbWF0cml4L3BvcHVwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gXCIuLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdW1TZXR0aW5ncyB9IGZyb20gXCIuL21hdHJpeC90YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSBcIi4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlRGF0YSB7XHJcbiAgYXhlczogQXhlc01hcDtcclxuICBvcHRpb25zPzogQ3ViZURhdGFPcHRpb25zO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVEYXRhT3B0aW9ucyB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICAvKiogY29sdW1ucyBheGVzICovXHJcbiAgeEF4aXM6IHN0cmluZztcclxuICAvKiogcm93cyBheGVzICovXHJcbiAgc2VyaWVzOiBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGluZGV4IG5hbWUgKi9cclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgdmlldz86IHN0cmluZztcclxuICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gIGZpbHRlcnM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICAvKiogYXhlcyB0byBleGNsdWRlICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIHN1bW1hcnkgcm93cyAvIGNvbHVtbnMgKi9cclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW107XHJcbiAgc2VyaWVzVG90YWxMYWJlbD86IHN0cmluZztcclxuICB4QXhpc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlT3B0aW9ucyB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBpbmRleD86IHN0cmluZztcclxuICBzY29wZT86IFNjb3BlVHlwZTtcclxuICBiYXNlPzoge1xyXG4gICAgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpO1xyXG4gIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG59XHJcblxyXG4vKiogb3BlbnMgY3ViZSBwcmV2aWV3IGFuZCBleHBsb3JlICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEN1YmVJbmZvIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfcG9wdXA6IFBvcHVwLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgeyB9XHJcbiAgbmF2aWdhdGUoYXhlczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0sIG9wdGlvbnM/OiBDdWJlRGF0YU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IHsgY3ViZSwgdmlldywgc2VyaWVzLCB4QXhpcywgZmlsdGVycywgYWdncmVnYXRlLCBpbmRpY2VzLCBzdW0sIHNlcmllc1RvdGFsTGFiZWwsIHhBeGlzVG90YWxMYWJlbCB9ID0gb3B0aW9ucyB8fCB7fTtcclxuICAgIGNvbnN0IGNjdWJlID0gY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKSA6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmIChpc0FycmF5KGF4ZXMpKSBheGVzID0gdGhpcy5fbWFwQXhlcyhjY3ViZSwgYXhlcyk7XHJcbiAgICBpZiAodmlldylcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIGNjdWJlLm5hbWUsICd2Jywgdmlld10sIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogYXhlc1xyXG4gICAgICB9KTtcclxuICAgIGVsc2UgeyBcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIGNjdWJlLm5hbWUsICdpJywgeEF4aXMsIHNlcmllc10sIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogYXhlcyxcclxuICAgICAgICBzdGF0ZTogeyBpbmRpY2VzLCBhZ2dyZWdhdGUsIGZpbHRlcnMsIHN1bSwgc2VyaWVzVG90YWxMYWJlbCwgeEF4aXNUb3RhbExhYmVsIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBwb3B1cChheGVzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSxcclxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZixcclxuICAgIG9wdGlvbnM/OiBDdWJlRGF0YU9wdGlvbnMpIHtcclxuICAgIGNvbnN0IGN1YmUgPSBvcHRpb25zICYmIG9wdGlvbnMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBvcHRpb25zLmN1YmUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgY29uc3QgeyB0ZW1wbGF0ZSB9ID0gY3ViZTtcclxuICAgIGlmIChpc0FycmF5KGF4ZXMpKSBheGVzID0gdGhpcy5fbWFwQXhlcyhjdWJlLCBheGVzKTtcclxuICAgIGlmICh0ZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2YuY29tcG9uZW50KHRlbXBsYXRlKTtcclxuICAgICAgdGhpcy5fb3Blbihjb21wLCBlbGVtZW50LCB7XHJcbiAgICAgICAgYXhlcyxcclxuICAgICAgICBvcHRpb25zXHJcbiAgICAgIH0gYXMgYW55KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAoIW9wdGlvbnMpXHJcbiAgICAgICAgdGhyb3cgJ25vIG9wdGlvbnMnO1xyXG4gICAgICB0aGlzLl9vcGVuKEN1YmVNYXRyaXhQb3B1cENvbXBvbmVudCwgZWxlbWVudCwge1xyXG4gICAgICAgIGF4ZXMsXHJcbiAgICAgICAgb3B0aW9uc1xyXG4gICAgICB9IGFzIGFueSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBleHBsb3JlKGF4ZXM6IEF4ZXNNYXAgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxyXG4gICAgb3B0aW9ucz86IEV4cGxvcmVPcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IGluZGV4LCBiYXNlLCBjdWJlOiBuYW1lLCBzY29wZSB9ID0gb3B0aW9ucyB8fCB7fTtcclxuICAgIGNvbnN0IGN1YmUgPSBuYW1lID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IG5hbWUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG5cclxuICAgIGlmIChpc0FycmF5KGF4ZXMpKSBheGVzID0gdGhpcy5fbWFwQXhlcyhjdWJlLCBheGVzIGFzIEFycmF5PHN0cmluZyB8IG51bWJlcj4pO1xyXG5cclxuICAgIGJhc2UgJiYgdGhpcy5fc2VydmljZS5iYXNlKGN1YmUubmFtZSwgYXhlcywgYmFzZSk7XHJcblxyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIGN1YmUubmFtZSwgJ2V4cGxvcmUnXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogYXhlcyxcclxuICAgICAgc3RhdGU6IHtcclxuICAgICAgICBpbmRleCwgc2NvcGVcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYXhlcyBhcyBtYXBcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfbWFwQXhlcyhjdWJlOiBDdWJlLCBheGVzOiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogeyBbYXhpczogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xyXG4gICAgY29uc3QgZmlsdGVycyA9IHt9O1xyXG4gICAgYXhlcy5mb3JFYWNoKChhLCBpKSA9PiBhICYmIChmaWx0ZXJzW2N1YmUuYXhlc1tpXS5uYW1lXSA9IGEpKTtcclxuICAgIHJldHVybiBmaWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfb3Blbihjb21wOiBDb21wb25lbnRUeXBlPGFueT4sIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZiwgZGF0YTogQ3ViZURhdGEpIHtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oY29tcCwgZWxlbWVudCwge1xyXG4gICAgICBkYXRhXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=