@spicainternational/ngx-sds-components 5.4.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2020/src/lib/avatar/avatar-group.component.mjs +3 -3
  2. package/esm2020/src/lib/date-picker/date-picker.component.mjs +112 -47
  3. package/esm2020/src/lib/date-pipes/date-format.pipe.mjs +48 -2
  4. package/esm2020/src/lib/modal/dialog/dialog.component.mjs +6 -3
  5. package/esm2020/src/lib/quick-info/quick-info.component.mjs +12 -18
  6. package/esm2020/src/lib/tooltip/tooltip.directive.mjs +11 -9
  7. package/fesm2015/spicainternational-ngx-sds-components-src-lib-avatar.mjs +2 -2
  8. package/fesm2015/spicainternational-ngx-sds-components-src-lib-avatar.mjs.map +1 -1
  9. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +115 -49
  10. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  11. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs +47 -1
  12. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  13. package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs +5 -2
  14. package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  15. package/fesm2015/spicainternational-ngx-sds-components-src-lib-quick-info.mjs +11 -17
  16. package/fesm2015/spicainternational-ngx-sds-components-src-lib-quick-info.mjs.map +1 -1
  17. package/fesm2015/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +10 -8
  18. package/fesm2015/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -1
  19. package/fesm2020/spicainternational-ngx-sds-components-src-lib-avatar.mjs +2 -2
  20. package/fesm2020/spicainternational-ngx-sds-components-src-lib-avatar.mjs.map +1 -1
  21. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +112 -47
  22. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  23. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs +47 -1
  24. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  25. package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs +5 -2
  26. package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  27. package/fesm2020/spicainternational-ngx-sds-components-src-lib-quick-info.mjs +11 -17
  28. package/fesm2020/spicainternational-ngx-sds-components-src-lib-quick-info.mjs.map +1 -1
  29. package/fesm2020/spicainternational-ngx-sds-components-src-lib-tooltip.mjs +10 -8
  30. package/fesm2020/spicainternational-ngx-sds-components-src-lib-tooltip.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/src/lib/date-picker/date-picker.component.d.ts +9 -4
  33. package/src/lib/date-pipes/date-format.pipe.d.ts +1 -1
  34. package/src/lib/modal/dialog/dialog.component.d.ts +2 -1
  35. package/src/lib/quick-info/quick-info.component.d.ts +2 -2
@@ -41,10 +41,10 @@ export class SdsAvatarGroupComponent {
41
41
  }
42
42
  }
43
43
  SdsAvatarGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- SdsAvatarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsAvatarGroupComponent, selector: "sds-avatar-group", inputs: { stacked: "stacked", max: "max", size: "size", borderColor: "borderColor", avatars: "avatars", dropdownContents: "dropdownContents" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [size]=\"size\"\r\n [style.margin-right.rem]=\"stacked ? size/-3 : size/15\"\r\n >\r\n </sds-avatar>\r\n\r\n <sds-avatar\r\n *ngIf=\"showOverflow\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [size]=\"size\"\r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view\r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of (dropdownContents === 'all' ? avatars : overflow)\"\r\n class=\"d-flex align-items-center ps-3 py-2 pe-5 my-2 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [size]=\"1.8\"\r\n >\r\n </sds-avatar>\r\n <div class=\"ms-3\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>\r\n", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{cursor:default}.overflow-avatars-container .overflow-avatar-container:hover{background-color:#eaf3f9}\n"], components: [{ type: i1.SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "initialsText", "cursor", "size"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ SdsAvatarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsAvatarGroupComponent, selector: "sds-avatar-group", inputs: { stacked: "stacked", max: "max", size: "size", borderColor: "borderColor", avatars: "avatars", dropdownContents: "dropdownContents" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [size]=\"size\"\r\n [style.margin-right.rem]=\"stacked ? size/-3 : size/15\"\r\n >\r\n </sds-avatar>\r\n\r\n <sds-avatar\r\n *ngIf=\"showOverflow\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [size]=\"size\"\r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n [wrapperAttr]=\"{ class: 'sds-avatar-group-overflow-popover' }\"\r\n >\r\n <dx-scroll-view\r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of (dropdownContents === 'all' ? avatars : overflow)\"\r\n class=\"d-flex align-items-center p-1 my-1 mx-1 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [size]=\"1.8\"\r\n >\r\n </sds-avatar>\r\n <div class=\"ms-2 ps-1\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>\r\n", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{cursor:default}::ng-deep .sds-avatar-group-overflow-popover .dx-popup-content{padding:.25rem;font-size:1rem}\n"], components: [{ type: i1.SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "initialsText", "cursor", "size"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarGroupComponent, decorators: [{
46
46
  type: Component,
47
- args: [{ selector: 'sds-avatar-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [size]=\"size\"\r\n [style.margin-right.rem]=\"stacked ? size/-3 : size/15\"\r\n >\r\n </sds-avatar>\r\n\r\n <sds-avatar\r\n *ngIf=\"showOverflow\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [size]=\"size\"\r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view\r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of (dropdownContents === 'all' ? avatars : overflow)\"\r\n class=\"d-flex align-items-center ps-3 py-2 pe-5 my-2 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [size]=\"1.8\"\r\n >\r\n </sds-avatar>\r\n <div class=\"ms-3\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>\r\n", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{cursor:default}.overflow-avatars-container .overflow-avatar-container:hover{background-color:#eaf3f9}\n"] }]
47
+ args: [{ selector: 'sds-avatar-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [size]=\"size\"\r\n [style.margin-right.rem]=\"stacked ? size/-3 : size/15\"\r\n >\r\n </sds-avatar>\r\n\r\n <sds-avatar\r\n *ngIf=\"showOverflow\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [size]=\"size\"\r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n [wrapperAttr]=\"{ class: 'sds-avatar-group-overflow-popover' }\"\r\n >\r\n <dx-scroll-view\r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of (dropdownContents === 'all' ? avatars : overflow)\"\r\n class=\"d-flex align-items-center p-1 my-1 mx-1 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [size]=\"1.8\"\r\n >\r\n </sds-avatar>\r\n <div class=\"ms-2 ps-1\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>\r\n", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{cursor:default}::ng-deep .sds-avatar-group-overflow-popover .dx-popup-content{padding:.25rem;font-size:1rem}\n"] }]
48
48
  }], ctorParameters: function () { return []; }, propDecorators: { stacked: [{
49
49
  type: Input
50
50
  }], max: [{
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
58
58
  }], dropdownContents: [{
59
59
  type: Input
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2F2YXRhci9hdmF0YXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvYXZhdGFyL2F2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVM1RyxNQUFNLE9BQU8sdUJBQXVCO0lBbUJoQztRQUNJLDhEQUE4RDtRQWJsRCxxQkFBZ0IsR0FBdUIsS0FBSyxDQUFDO1FBZXpELGlGQUFpRjtRQUVqRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMxQixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUNwRztpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbkM7U0FDSjtJQUNMLENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVaLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOztvSEF2RFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNk5DVHBDLG05REFrREE7MkZEekNhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTswRUFJL0IsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdmF0YXJNb2RlbCB9IGZyb20gJy4vYXZhdGFyLWdyb3VwLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzZHMtYXZhdGFyLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzQXZhdGFyR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIHN0YWNrZWQ7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4PzogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNpemU6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBib3JkZXJDb2xvcj86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdmF0YXJzOiBBcnJheTxBdmF0YXJNb2RlbD47XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25Db250ZW50czogJ2FsbCcgfCAnb3ZlcmZsb3cnID0gJ2FsbCc7XHJcblxyXG4gICAgcHVibGljIG92ZXJmbG93OiBBcnJheTxBdmF0YXJNb2RlbD47XHJcbiAgICBwdWJsaWMgaW5mbG93OiBBcnJheTxBdmF0YXJNb2RlbD47XHJcblxyXG4gICAgcHVibGljIG92ZXJmbG93Q291bnREaXNwbGF5OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgb3ZlckZsb3dCb3JkZXJTdHlsZTogJ3NvbGlkJyB8ICdub25lJztcclxuXHJcbiAgICBwdWJsaWMgb3ZlcmZsb3dFbGVtZW50VVVJRDogc3RyaW5nO1xyXG4gICAgcHVibGljIHNob3dEcm9wZG93bjogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzaG93T3ZlcmZsb3c6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5vdmVyZmxvd0VsZW1lbnRVVUlEID0gJ3Nkcy1hZy0nICsgY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuXHJcbiAgICAgICAgLy8gaW5pdCB2YWx1ZXMgaW4gY29uc3RydWN0b3Igc28gc3Rvcnlib29rIGRvZXNuJ3QgaGF2ZSBpc3N1ZXMgd2l0aCBpbml0aWFsIHN0YXRlXHJcblxyXG4gICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50VVVJRCA9IGBzZHMtYWctJHtNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApfWA7XHJcbiAgICAgICAgdGhpcy5vdmVyRmxvd0JvcmRlclN0eWxlID0gJ25vbmUnO1xyXG4gICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93T3ZlcmZsb3cgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmF2YXRhcnMgPSBbXTtcclxuICAgICAgICB0aGlzLm92ZXJmbG93ID0gW107XHJcbiAgICAgICAgdGhpcy5pbmZsb3cgPSBbXTtcclxuICAgICAgICB0aGlzLm92ZXJmbG93Q291bnREaXNwbGF5ID0gJyc7XHJcbiAgICAgICAgdGhpcy5zaXplID0gMjtcclxuICAgICAgICB0aGlzLnN0YWNrZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2F2YXRhcnMnXSB8fCBjaGFuZ2VzWydtYXgnXSl7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCAmJiB0aGlzLmF2YXRhcnMpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhdmF0YXJzID0gWy4uLnRoaXMuYXZhdGFyc107XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZmxvdyA9IGF2YXRhcnMuc3BsaWNlKDAsIHRoaXMubWF4KTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmZsb3cgPSBhdmF0YXJzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93T3ZlcmZsb3cgPSB0aGlzLm92ZXJmbG93Lmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93Q291bnREaXNwbGF5ID0gYCske01hdGgubWluKDk5LCB0aGlzLm92ZXJmbG93Lmxlbmd0aCl9YDtcclxuICAgICAgICAgICAgICAgIHRoaXMub3ZlckZsb3dCb3JkZXJTdHlsZSA9IHRoaXMuYXZhdGFycy5maWx0ZXIoeCA9PiB4LmJvcmRlclN0eWxlKS5sZW5ndGggPiAwID8gJ3NvbGlkJyA6ICdub25lJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5mbG93ID0gWy4uLnRoaXMuYXZhdGFyc107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICAgIHB1YmxpYyBvbk92ZXJmbG93Q2xpY2tlZCgpIHtcclxuICAgICAgICB0aGlzLnNob3dEcm9wZG93biA9IHRydWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhdmF0YXItZ3JvdXAtY29udGFpbmVyXCI+XHJcbiAgICA8c2RzLWF2YXRhciAqbmdGb3I9XCJsZXQgYXZhdGFyIG9mIGluZmxvd1wiXHJcbiAgICAgICAgW3RleHRdPVwiYXZhdGFyLnRleHRcIlxyXG4gICAgICAgIFtjb2xvcktleV09XCJhdmF0YXIuY29sb3JLZXlcIlxyXG4gICAgICAgIFtib3JkZXJDb2xvcl09XCJib3JkZXJDb2xvclwiXHJcbiAgICAgICAgW2JvcmRlclN0eWxlXT1cImF2YXRhci5ib3JkZXJTdHlsZSA/IGF2YXRhci5ib3JkZXJTdHlsZSA6ICdub25lJ1wiXHJcbiAgICAgICAgW3BpY3R1cmVVcmldPVwiYXZhdGFyLnBpY3R1cmVVcmkgPz8gJydcIlxyXG4gICAgICAgIFtzaG93SGludF09XCJ0cnVlXCJcclxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICBbc3R5bGUubWFyZ2luLXJpZ2h0LnJlbV09XCJzdGFja2VkID8gc2l6ZS8tMyA6IHNpemUvMTVcIlxyXG4gICAgICAgID5cclxuICAgIDwvc2RzLWF2YXRhcj5cclxuXHJcbiAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgICpuZ0lmPVwic2hvd092ZXJmbG93XCJcclxuICAgICAgICBbaWRdPVwib3ZlcmZsb3dFbGVtZW50VVVJRFwiXHJcbiAgICAgICAgY2xhc3M9XCJvdmVyZmxvd1wiXHJcbiAgICAgICAgW2luaXRpYWxzVGV4dF09XCJvdmVyZmxvd0NvdW50RGlzcGxheVwiXHJcbiAgICAgICAgW2JvcmRlckNvbG9yXT1cImJvcmRlckNvbG9yXCJcclxuICAgICAgICBbYm9yZGVyU3R5bGVdPVwib3ZlckZsb3dCb3JkZXJTdHlsZVwiXHJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXHJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3ZlcmZsb3dDbGlja2VkKClcIlxyXG4gICAgPlxyXG4gICAgPC9zZHMtYXZhdGFyPlxyXG5cclxuICAgIDxkeC1wb3BvdmVyXHJcbiAgICAgICAgdGFyZ2V0PVwiI3t7b3ZlcmZsb3dFbGVtZW50VVVJRH19XCJcclxuICAgICAgICBbKHZpc2libGUpXT1cInNob3dEcm9wZG93blwiXHJcbiAgICA+XHJcbiAgICAgICAgPGR4LXNjcm9sbC12aWV3XHJcbiAgICAgICAgICAgIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF2YXRhcnMtY29udGFpbmVyIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGF2YXRhciBvZiAoZHJvcGRvd25Db250ZW50cyA9PT0gJ2FsbCcgPyBhdmF0YXJzIDogb3ZlcmZsb3cpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHMtMyBweS0yIHBlLTUgbXktMiBvdmVyZmxvdy1hdmF0YXItY29udGFpbmVyXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZHMtYXZhdGFyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImF2YXRhci50ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yS2V5XT1cImF2YXRhci5jb2xvcktleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtib3JkZXJTdHlsZV09XCJhdmF0YXIuYm9yZGVyU3R5bGUgPyBhdmF0YXIuYm9yZGVyU3R5bGUgOiAnbm9uZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGljdHVyZVVyaV09XCJhdmF0YXIucGljdHVyZVVyaSA/PyAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIxLjhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L3Nkcy1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTNcIj57e2F2YXRhci50ZXh0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4LXNjcm9sbC12aWV3PlxyXG4gICAgPC9keC1wb3BvdmVyPlxyXG48L2Rpdj5cclxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2F2YXRhci9hdmF0YXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvYXZhdGFyL2F2YXRhci1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVM1RyxNQUFNLE9BQU8sdUJBQXVCO0lBbUJoQztRQUNJLDhEQUE4RDtRQWJsRCxxQkFBZ0IsR0FBdUIsS0FBSyxDQUFDO1FBZXpELGlGQUFpRjtRQUVqRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMxQixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUNwRztpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDbkM7U0FDSjtJQUNMLENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVaLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOztvSEF2RFEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNk5DVHBDLGtpRUFtREE7MkZEMUNhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTswRUFJL0IsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdmF0YXJNb2RlbCB9IGZyb20gJy4vYXZhdGFyLWdyb3VwLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzZHMtYXZhdGFyLWdyb3VwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzQXZhdGFyR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIHN0YWNrZWQ7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4PzogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNpemU6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBib3JkZXJDb2xvcj86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdmF0YXJzOiBBcnJheTxBdmF0YXJNb2RlbD47XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25Db250ZW50czogJ2FsbCcgfCAnb3ZlcmZsb3cnID0gJ2FsbCc7XHJcblxyXG4gICAgcHVibGljIG92ZXJmbG93OiBBcnJheTxBdmF0YXJNb2RlbD47XHJcbiAgICBwdWJsaWMgaW5mbG93OiBBcnJheTxBdmF0YXJNb2RlbD47XHJcblxyXG4gICAgcHVibGljIG92ZXJmbG93Q291bnREaXNwbGF5OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgb3ZlckZsb3dCb3JkZXJTdHlsZTogJ3NvbGlkJyB8ICdub25lJztcclxuXHJcbiAgICBwdWJsaWMgb3ZlcmZsb3dFbGVtZW50VVVJRDogc3RyaW5nO1xyXG4gICAgcHVibGljIHNob3dEcm9wZG93bjogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzaG93T3ZlcmZsb3c6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5vdmVyZmxvd0VsZW1lbnRVVUlEID0gJ3Nkcy1hZy0nICsgY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuXHJcbiAgICAgICAgLy8gaW5pdCB2YWx1ZXMgaW4gY29uc3RydWN0b3Igc28gc3Rvcnlib29rIGRvZXNuJ3QgaGF2ZSBpc3N1ZXMgd2l0aCBpbml0aWFsIHN0YXRlXHJcblxyXG4gICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50VVVJRCA9IGBzZHMtYWctJHtNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApfWA7XHJcbiAgICAgICAgdGhpcy5vdmVyRmxvd0JvcmRlclN0eWxlID0gJ25vbmUnO1xyXG4gICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93T3ZlcmZsb3cgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmF2YXRhcnMgPSBbXTtcclxuICAgICAgICB0aGlzLm92ZXJmbG93ID0gW107XHJcbiAgICAgICAgdGhpcy5pbmZsb3cgPSBbXTtcclxuICAgICAgICB0aGlzLm92ZXJmbG93Q291bnREaXNwbGF5ID0gJyc7XHJcbiAgICAgICAgdGhpcy5zaXplID0gMjtcclxuICAgICAgICB0aGlzLnN0YWNrZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2F2YXRhcnMnXSB8fCBjaGFuZ2VzWydtYXgnXSl7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCAmJiB0aGlzLmF2YXRhcnMpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhdmF0YXJzID0gWy4uLnRoaXMuYXZhdGFyc107XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZmxvdyA9IGF2YXRhcnMuc3BsaWNlKDAsIHRoaXMubWF4KTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmZsb3cgPSBhdmF0YXJzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93T3ZlcmZsb3cgPSB0aGlzLm92ZXJmbG93Lmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93Q291bnREaXNwbGF5ID0gYCske01hdGgubWluKDk5LCB0aGlzLm92ZXJmbG93Lmxlbmd0aCl9YDtcclxuICAgICAgICAgICAgICAgIHRoaXMub3ZlckZsb3dCb3JkZXJTdHlsZSA9IHRoaXMuYXZhdGFycy5maWx0ZXIoeCA9PiB4LmJvcmRlclN0eWxlKS5sZW5ndGggPiAwID8gJ3NvbGlkJyA6ICdub25lJztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5mbG93ID0gWy4uLnRoaXMuYXZhdGFyc107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICAgIHB1YmxpYyBvbk92ZXJmbG93Q2xpY2tlZCgpIHtcclxuICAgICAgICB0aGlzLnNob3dEcm9wZG93biA9IHRydWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhdmF0YXItZ3JvdXAtY29udGFpbmVyXCI+XHJcbiAgICA8c2RzLWF2YXRhciAqbmdGb3I9XCJsZXQgYXZhdGFyIG9mIGluZmxvd1wiXHJcbiAgICAgICAgW3RleHRdPVwiYXZhdGFyLnRleHRcIlxyXG4gICAgICAgIFtjb2xvcktleV09XCJhdmF0YXIuY29sb3JLZXlcIlxyXG4gICAgICAgIFtib3JkZXJDb2xvcl09XCJib3JkZXJDb2xvclwiXHJcbiAgICAgICAgW2JvcmRlclN0eWxlXT1cImF2YXRhci5ib3JkZXJTdHlsZSA/IGF2YXRhci5ib3JkZXJTdHlsZSA6ICdub25lJ1wiXHJcbiAgICAgICAgW3BpY3R1cmVVcmldPVwiYXZhdGFyLnBpY3R1cmVVcmkgPz8gJydcIlxyXG4gICAgICAgIFtzaG93SGludF09XCJ0cnVlXCJcclxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICBbc3R5bGUubWFyZ2luLXJpZ2h0LnJlbV09XCJzdGFja2VkID8gc2l6ZS8tMyA6IHNpemUvMTVcIlxyXG4gICAgICAgID5cclxuICAgIDwvc2RzLWF2YXRhcj5cclxuXHJcbiAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgICpuZ0lmPVwic2hvd092ZXJmbG93XCJcclxuICAgICAgICBbaWRdPVwib3ZlcmZsb3dFbGVtZW50VVVJRFwiXHJcbiAgICAgICAgY2xhc3M9XCJvdmVyZmxvd1wiXHJcbiAgICAgICAgW2luaXRpYWxzVGV4dF09XCJvdmVyZmxvd0NvdW50RGlzcGxheVwiXHJcbiAgICAgICAgW2JvcmRlckNvbG9yXT1cImJvcmRlckNvbG9yXCJcclxuICAgICAgICBbYm9yZGVyU3R5bGVdPVwib3ZlckZsb3dCb3JkZXJTdHlsZVwiXHJcbiAgICAgICAgY3Vyc29yPVwicG9pbnRlclwiXHJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uT3ZlcmZsb3dDbGlja2VkKClcIlxyXG4gICAgPlxyXG4gICAgPC9zZHMtYXZhdGFyPlxyXG5cclxuICAgIDxkeC1wb3BvdmVyXHJcbiAgICAgICAgdGFyZ2V0PVwiI3t7b3ZlcmZsb3dFbGVtZW50VVVJRH19XCJcclxuICAgICAgICBbKHZpc2libGUpXT1cInNob3dEcm9wZG93blwiXHJcbiAgICAgICAgW3dyYXBwZXJBdHRyXT1cInsgY2xhc3M6ICdzZHMtYXZhdGFyLWdyb3VwLW92ZXJmbG93LXBvcG92ZXInIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICA8ZHgtc2Nyb2xsLXZpZXdcclxuICAgICAgICAgICAgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXZhdGFycy1jb250YWluZXIgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYXZhdGFyIG9mIChkcm9wZG93bkNvbnRlbnRzID09PSAnYWxsJyA/IGF2YXRhcnMgOiBvdmVyZmxvdylcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwLTEgbXktMSBteC0xIG92ZXJmbG93LWF2YXRhci1jb250YWluZXJcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNkcy1hdmF0YXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiYXZhdGFyLnRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JLZXldPVwiYXZhdGFyLmNvbG9yS2V5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2JvcmRlclN0eWxlXT1cImF2YXRhci5ib3JkZXJTdHlsZSA/IGF2YXRhci5ib3JkZXJTdHlsZSA6ICdub25lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwaWN0dXJlVXJpXT1cImF2YXRhci5waWN0dXJlVXJpID8/ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjEuOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2RzLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMiBwcy0xXCI+e3thdmF0YXIudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keC1zY3JvbGwtdmlldz5cclxuICAgIDwvZHgtcG9wb3Zlcj5cclxuPC9kaXY+XHJcbiJdfQ==