@skyux/forms 9.21.2 → 10.0.0-alpha.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 (49) hide show
  1. package/documentation.json +805 -805
  2. package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +5 -5
  3. package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +4 -4
  4. package/esm2022/lib/modules/character-counter/character-counter.module.mjs +4 -4
  5. package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +3 -3
  6. package/esm2022/lib/modules/checkbox/checkbox.component.mjs +5 -5
  7. package/esm2022/lib/modules/checkbox/checkbox.module.mjs +4 -4
  8. package/esm2022/lib/modules/file-attachment/file-attachment-label.component.mjs +3 -3
  9. package/esm2022/lib/modules/file-attachment/file-attachment.component.mjs +6 -6
  10. package/esm2022/lib/modules/file-attachment/file-attachment.service.mjs +4 -4
  11. package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +4 -4
  12. package/esm2022/lib/modules/file-attachment/file-drop.component.mjs +4 -4
  13. package/esm2022/lib/modules/file-attachment/file-item.component.mjs +5 -5
  14. package/esm2022/lib/modules/file-attachment/file-item.service.mjs +4 -4
  15. package/esm2022/lib/modules/file-attachment/file-size.pipe.mjs +5 -5
  16. package/esm2022/lib/modules/form-error/form-error.component.mjs +3 -3
  17. package/esm2022/lib/modules/form-error/form-errors.component.mjs +3 -3
  18. package/esm2022/lib/modules/form-error/form-errors.module.mjs +4 -4
  19. package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +4 -4
  20. package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +3 -3
  21. package/esm2022/lib/modules/input-box/input-box-help-inline.component.mjs +3 -3
  22. package/esm2022/lib/modules/input-box/input-box-host.service.mjs +4 -4
  23. package/esm2022/lib/modules/input-box/input-box.component.mjs +6 -6
  24. package/esm2022/lib/modules/input-box/input-box.module.mjs +4 -4
  25. package/esm2022/lib/modules/radio/radio-group-id.service.mjs +5 -5
  26. package/esm2022/lib/modules/radio/radio-group.component.mjs +6 -6
  27. package/esm2022/lib/modules/radio/radio-label.component.mjs +3 -3
  28. package/esm2022/lib/modules/radio/radio.component.mjs +6 -6
  29. package/esm2022/lib/modules/radio/radio.module.mjs +4 -4
  30. package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +5 -5
  31. package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +3 -3
  32. package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +6 -6
  33. package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +3 -3
  34. package/esm2022/lib/modules/selection-box/selection-box.component.mjs +6 -6
  35. package/esm2022/lib/modules/selection-box/selection-box.module.mjs +4 -4
  36. package/esm2022/lib/modules/shared/forms-utility.mjs +1 -1
  37. package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +4 -4
  38. package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +3 -3
  39. package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +5 -5
  40. package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +4 -4
  41. package/esm2022/testing/character-counter/character-counter-indicator-harness.mjs +1 -1
  42. package/esm2022/testing/checkbox/checkbox-harness.mjs +1 -1
  43. package/esm2022/testing/checkbox-fixture.mjs +1 -1
  44. package/esm2022/testing/input-box/input-box-harness.mjs +1 -1
  45. package/esm2022/testing/radio-fixture.mjs +1 -1
  46. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  47. package/fesm2022/skyux-forms.mjs +142 -142
  48. package/fesm2022/skyux-forms.mjs.map +1 -1
  49. package/package.json +12 -12
@@ -169,20 +169,20 @@ export class SkyInputBoxComponent {
169
169
  control.addValidators([this.#previousMaxLengthValidator]);
170
170
  }
171
171
  }
172
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyInputBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
173
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyInputBoxComponent, selector: "sky-input-box", inputs: { hasErrors: "hasErrors", disabled: "disabled", labelText: "labelText", characterLimit: "characterLimit", stacked: "stacked", helpPopoverTitle: "helpPopoverTitle", helpPopoverContent: "helpPopoverContent", hintText: "hintText" }, host: { properties: { "class": "this.cssClass" } }, providers: [
172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyInputBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: SkyInputBoxComponent, selector: "sky-input-box", inputs: { hasErrors: "hasErrors", disabled: "disabled", labelText: "labelText", characterLimit: "characterLimit", stacked: "stacked", helpPopoverTitle: "helpPopoverTitle", helpPopoverContent: "helpPopoverContent", hintText: "hintText" }, host: { properties: { "class": "this.cssClass" } }, providers: [
174
174
  SkyContentInfoProvider,
175
175
  SkyInputBoxAdapterService,
176
176
  SkyInputBoxHostService,
177
- ], queries: [{ propertyName: "formControl", first: true, predicate: FormControlDirective, descendants: true }, { propertyName: "formControlByName", first: true, predicate: FormControlName, descendants: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "inputRef", first: true, predicate: SkyInputBoxControlDirective, descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\" />\n <label\n *ngIf=\"labelText\"\n class=\"sky-control-label\"\n [for]=\"controlId\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</label\n >\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <sky-input-box-help-inline\n *ngIf=\"helpPopoverContent\"\n class=\"sky-control-help\"\n [labelText]=\"labelText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n\n <ng-content select=\".sky-control-help\" />\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <sky-character-counter-indicator\n *ngIf=\"characterLimit !== undefined\"\n [characterCount]=\"controlDir?.value?.length || 0\"\n [characterCountLimit]=\"characterLimit\"\n />\n <ng-content select=\"sky-character-counter-indicator\" />\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content\n select=\"input,select,.sky-form-control:not(textarea),sky-text-editor\"\n />\n <ng-container\n *ngIf=\"hostInputTemplate\"\n [ngTemplateOutlet]=\"hostInputTemplate\"\n />\n <ng-content select=\"textarea\" />\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\" />\n <ng-container\n *ngIf=\"hostButtonsLeftTemplate\"\n [ngTemplateOutlet]=\"hostButtonsLeftTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n />\n <ng-container\n *ngIf=\"hostButtonsTemplate\"\n [ngTemplateOutlet]=\"hostButtonsTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-inset\" />\n <ng-container\n *ngIf=\"hostButtonsInsetTemplate\"\n [ngTemplateOutlet]=\"hostButtonsInsetTemplate\"\n />\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset\" />\n <ng-container\n *ngIf=\"hostIconsInsetTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset-left\" />\n <ng-container\n *ngIf=\"hostIconsInsetLeftTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetLeftTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <sky-form-errors\n [id]=\"errorId\"\n [errors]=\"controlDir?.errors\"\n [labelText]=\"labelText\"\n [showErrors]=\"controlDir?.touched || controlDir?.dirty\"\n >\n <ng-content select=\".sky-error-label,.sky-error-indicator\" />\n </sky-form-errors>\n</ng-template>\n\n<ng-template #hintTextTemplate>\n <div\n *ngIf=\"hintText\"\n class=\"sky-font-deemphasized sky-input-box-hint-text\"\n [id]=\"hintTextId\"\n >\n {{ hintText }}\n </div>\n</ng-template>\n", styles: [".sky-input-box{--sky-background-color-input-box-group: transparent;--sky-background-color-input-box-group-focused: transparent}.sky-theme-modern .sky-input-box{--sky-background-color-input-box-group: #ffffff;--sky-background-color-input-box-group-focused: #ffffff}.sky-theme-modern.sky-theme-mode-dark .sky-input-box{--sky-background-color-input-box-group: #000000;--sky-background-color-input-box-group-focused: #000000}sky-input-box{display:block}sky-input-box .sky-input-box-input-container{width:100%}sky-input-box .sky-error-indicator{margin-top:5px}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap;background-color:var(--sky-background-color-input-box-group)}sky-input-box .sky-form-group:focus-within{background-color:var(--sky-background-color-input-box-group-focused)}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:33px;display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{flex-grow:1;text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-grow:0;flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}sky-input-box .sky-input-box-hint-text{flex-basis:100%;margin-top:var(--sky-margin-stacked-xs)}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:6px;border-bottom-left-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:#686c73;margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:55px}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-right:-1px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-group-icon{width:55px}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:#686c73;font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:-2px}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:-1px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;color:#686c73;flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;padding:0 15px;width:100%}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{z-index:4}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding:6px 0 1px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:13px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:3px 0 -3px 5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:not(:last-child){margin-right:5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:3px 0 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{margin-top:-23px;padding-top:26px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:6px;font-size:16px;height:auto;line-height:20px;padding-right:15px;padding-bottom:9px;padding-left:15px;position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill{box-shadow:none!important;clip-path:inset(2px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill{box-shadow:none!important;clip-path:inset(2px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill:hover,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-ms-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn{background-color:transparent;border-radius:6px;transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control:not(textarea),.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control:not(textarea){padding-top:10px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+textarea.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* textarea.sky-form-control{border-top:10px solid transparent}@-moz-document url-prefix(){.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{padding-left:10px}}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - 10px);z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:-26px;padding-top:0;resize:vertical;border-top:29px solid transparent}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:29px solid transparent!important}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:29px solid transparent!important}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 15px;width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #d2d2d2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8;z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus{border:none;box-shadow:inset 0 0 0 2px #1870b8;color:#212327;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid:active .sky-form-group{color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{background-color:#ededee}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:#ededee;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;opacity:1}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group{background-color:transparent;border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-form-control,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-input-group-btn .sky-btn{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus .sky-form-group,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus.sky-input-box-group-form-control-invalid .sky-form-group{color:#1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn.sky-btn-default{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn:focus{border-color:#1870b8;color:#fbfcfe}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SkyCharacterCounterIndicatorComponent, selector: "sky-character-counter-indicator", inputs: ["characterCount", "characterCountLimit"] }, { kind: "component", type: i3.SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "showErrors"] }, { kind: "component", type: i4.SkyInputBoxHelpInlineComponent, selector: "sky-input-box-help-inline", inputs: ["labelText", "popoverTitle", "popoverContent"] }, { kind: "directive", type: i5.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], encapsulation: i0.ViewEncapsulation.None }); }
177
+ ], queries: [{ propertyName: "formControl", first: true, predicate: FormControlDirective, descendants: true }, { propertyName: "formControlByName", first: true, predicate: FormControlName, descendants: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "inputRef", first: true, predicate: SkyInputBoxControlDirective, descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\" />\n <label\n *ngIf=\"labelText\"\n class=\"sky-control-label\"\n [for]=\"controlId\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</label\n >\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <sky-input-box-help-inline\n *ngIf=\"helpPopoverContent\"\n class=\"sky-control-help\"\n [labelText]=\"labelText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n\n <ng-content select=\".sky-control-help\" />\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <sky-character-counter-indicator\n *ngIf=\"characterLimit !== undefined\"\n [characterCount]=\"controlDir?.value?.length || 0\"\n [characterCountLimit]=\"characterLimit\"\n />\n <ng-content select=\"sky-character-counter-indicator\" />\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content\n select=\"input,select,.sky-form-control:not(textarea),sky-text-editor\"\n />\n <ng-container\n *ngIf=\"hostInputTemplate\"\n [ngTemplateOutlet]=\"hostInputTemplate\"\n />\n <ng-content select=\"textarea\" />\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\" />\n <ng-container\n *ngIf=\"hostButtonsLeftTemplate\"\n [ngTemplateOutlet]=\"hostButtonsLeftTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n />\n <ng-container\n *ngIf=\"hostButtonsTemplate\"\n [ngTemplateOutlet]=\"hostButtonsTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-inset\" />\n <ng-container\n *ngIf=\"hostButtonsInsetTemplate\"\n [ngTemplateOutlet]=\"hostButtonsInsetTemplate\"\n />\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset\" />\n <ng-container\n *ngIf=\"hostIconsInsetTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset-left\" />\n <ng-container\n *ngIf=\"hostIconsInsetLeftTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetLeftTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <sky-form-errors\n [id]=\"errorId\"\n [errors]=\"controlDir?.errors\"\n [labelText]=\"labelText\"\n [showErrors]=\"controlDir?.touched || controlDir?.dirty\"\n >\n <ng-content select=\".sky-error-label,.sky-error-indicator\" />\n </sky-form-errors>\n</ng-template>\n\n<ng-template #hintTextTemplate>\n <div\n *ngIf=\"hintText\"\n class=\"sky-font-deemphasized sky-input-box-hint-text\"\n [id]=\"hintTextId\"\n >\n {{ hintText }}\n </div>\n</ng-template>\n", styles: [".sky-input-box{--sky-background-color-input-box-group: transparent;--sky-background-color-input-box-group-focused: transparent}.sky-theme-modern .sky-input-box{--sky-background-color-input-box-group: #ffffff;--sky-background-color-input-box-group-focused: #ffffff}.sky-theme-modern.sky-theme-mode-dark .sky-input-box{--sky-background-color-input-box-group: #000000;--sky-background-color-input-box-group-focused: #000000}sky-input-box{display:block}sky-input-box .sky-input-box-input-container{width:100%}sky-input-box .sky-error-indicator{margin-top:5px}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap;background-color:var(--sky-background-color-input-box-group)}sky-input-box .sky-form-group:focus-within{background-color:var(--sky-background-color-input-box-group-focused)}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:33px;display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{flex-grow:1;text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-grow:0;flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}sky-input-box .sky-input-box-hint-text{flex-basis:100%;margin-top:var(--sky-margin-stacked-xs)}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:6px;border-bottom-left-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:#686c73;margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:55px}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-right:-1px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-group-icon{width:55px}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:#686c73;font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:-2px}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:-1px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;color:#686c73;flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;padding:0 15px;width:100%}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{z-index:4}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding:6px 0 1px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:13px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:3px 0 -3px 5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:not(:last-child){margin-right:5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:3px 0 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{margin-top:-23px;padding-top:26px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:6px;font-size:16px;height:auto;line-height:20px;padding-right:15px;padding-bottom:9px;padding-left:15px;position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill:hover,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-ms-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn{background-color:transparent;border-radius:6px;transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control:not(textarea),.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control:not(textarea){padding-top:10px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+textarea.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* textarea.sky-form-control{border-top:10px solid transparent}@-moz-document url-prefix(){.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{padding-left:10px}}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - 10px);z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:-26px;padding-top:0;resize:vertical;border-top:29px solid transparent}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:29px solid transparent!important}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 15px;width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #d2d2d2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8;z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus{border:none;box-shadow:inset 0 0 0 2px #1870b8;color:#212327;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid:active .sky-form-group{color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{background-color:#ededee}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:#ededee;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;opacity:1}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group{background-color:transparent;border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-form-control,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-input-group-btn .sky-btn{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus .sky-form-group,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus.sky-input-box-group-form-control-invalid .sky-form-group{color:#1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn.sky-btn-default{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn:focus{border-color:#1870b8;color:#fbfcfe}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SkyCharacterCounterIndicatorComponent, selector: "sky-character-counter-indicator", inputs: ["characterCount", "characterCountLimit"] }, { kind: "component", type: i3.SkyFormErrorsComponent, selector: "sky-form-errors", inputs: ["errors", "labelText", "showErrors"] }, { kind: "component", type: i4.SkyInputBoxHelpInlineComponent, selector: "sky-input-box-help-inline", inputs: ["labelText", "popoverTitle", "popoverContent"] }, { kind: "directive", type: i5.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], encapsulation: i0.ViewEncapsulation.None }); }
178
178
  }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyInputBoxComponent, decorators: [{
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyInputBoxComponent, decorators: [{
180
180
  type: Component,
181
181
  args: [{ selector: 'sky-input-box', providers: [
182
182
  SkyContentInfoProvider,
183
183
  SkyInputBoxAdapterService,
184
184
  SkyInputBoxHostService,
185
- ], encapsulation: ViewEncapsulation.None, template: "<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\" />\n <label\n *ngIf=\"labelText\"\n class=\"sky-control-label\"\n [for]=\"controlId\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</label\n >\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <sky-input-box-help-inline\n *ngIf=\"helpPopoverContent\"\n class=\"sky-control-help\"\n [labelText]=\"labelText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n\n <ng-content select=\".sky-control-help\" />\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <sky-character-counter-indicator\n *ngIf=\"characterLimit !== undefined\"\n [characterCount]=\"controlDir?.value?.length || 0\"\n [characterCountLimit]=\"characterLimit\"\n />\n <ng-content select=\"sky-character-counter-indicator\" />\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content\n select=\"input,select,.sky-form-control:not(textarea),sky-text-editor\"\n />\n <ng-container\n *ngIf=\"hostInputTemplate\"\n [ngTemplateOutlet]=\"hostInputTemplate\"\n />\n <ng-content select=\"textarea\" />\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\" />\n <ng-container\n *ngIf=\"hostButtonsLeftTemplate\"\n [ngTemplateOutlet]=\"hostButtonsLeftTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n />\n <ng-container\n *ngIf=\"hostButtonsTemplate\"\n [ngTemplateOutlet]=\"hostButtonsTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-inset\" />\n <ng-container\n *ngIf=\"hostButtonsInsetTemplate\"\n [ngTemplateOutlet]=\"hostButtonsInsetTemplate\"\n />\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset\" />\n <ng-container\n *ngIf=\"hostIconsInsetTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset-left\" />\n <ng-container\n *ngIf=\"hostIconsInsetLeftTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetLeftTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <sky-form-errors\n [id]=\"errorId\"\n [errors]=\"controlDir?.errors\"\n [labelText]=\"labelText\"\n [showErrors]=\"controlDir?.touched || controlDir?.dirty\"\n >\n <ng-content select=\".sky-error-label,.sky-error-indicator\" />\n </sky-form-errors>\n</ng-template>\n\n<ng-template #hintTextTemplate>\n <div\n *ngIf=\"hintText\"\n class=\"sky-font-deemphasized sky-input-box-hint-text\"\n [id]=\"hintTextId\"\n >\n {{ hintText }}\n </div>\n</ng-template>\n", styles: [".sky-input-box{--sky-background-color-input-box-group: transparent;--sky-background-color-input-box-group-focused: transparent}.sky-theme-modern .sky-input-box{--sky-background-color-input-box-group: #ffffff;--sky-background-color-input-box-group-focused: #ffffff}.sky-theme-modern.sky-theme-mode-dark .sky-input-box{--sky-background-color-input-box-group: #000000;--sky-background-color-input-box-group-focused: #000000}sky-input-box{display:block}sky-input-box .sky-input-box-input-container{width:100%}sky-input-box .sky-error-indicator{margin-top:5px}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap;background-color:var(--sky-background-color-input-box-group)}sky-input-box .sky-form-group:focus-within{background-color:var(--sky-background-color-input-box-group-focused)}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:33px;display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{flex-grow:1;text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-grow:0;flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}sky-input-box .sky-input-box-hint-text{flex-basis:100%;margin-top:var(--sky-margin-stacked-xs)}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:6px;border-bottom-left-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:#686c73;margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:55px}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-right:-1px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-group-icon{width:55px}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:#686c73;font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:-2px}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:-1px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;color:#686c73;flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;padding:0 15px;width:100%}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{z-index:4}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding:6px 0 1px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:13px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:3px 0 -3px 5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:not(:last-child){margin-right:5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:3px 0 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{margin-top:-23px;padding-top:26px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:6px;font-size:16px;height:auto;line-height:20px;padding-right:15px;padding-bottom:9px;padding-left:15px;position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill{box-shadow:none!important;clip-path:inset(2px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill{box-shadow:none!important;clip-path:inset(2px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill:hover,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-ms-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn{background-color:transparent;border-radius:6px;transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control:not(textarea),.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control:not(textarea){padding-top:10px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+textarea.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* textarea.sky-form-control{border-top:10px solid transparent}@-moz-document url-prefix(){.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{padding-left:10px}}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - 10px);z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:-26px;padding-top:0;resize:vertical;border-top:29px solid transparent}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:29px solid transparent!important}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:29px solid transparent!important}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 15px;width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #d2d2d2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8;z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus{border:none;box-shadow:inset 0 0 0 2px #1870b8;color:#212327;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid:active .sky-form-group{color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{background-color:#ededee}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:#ededee;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;opacity:1}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group{background-color:transparent;border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-form-control,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-input-group-btn .sky-btn{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus .sky-form-group,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus.sky-input-box-group-form-control-invalid .sky-form-group{color:#1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn.sky-btn-default{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn:focus{border-color:#1870b8;color:#fbfcfe}\n"] }]
185
+ ], encapsulation: ViewEncapsulation.None, template: "<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\" />\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\" />\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" /><ng-container\n *ngTemplateOutlet=\"inlineHelpTemplate\"\n />\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\" />\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\" />\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\" />\n </div>\n <ng-container *ngTemplateOutlet=\"hintTextTemplate\" />\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\" />\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\" />\n <label\n *ngIf=\"labelText\"\n class=\"sky-control-label\"\n [for]=\"controlId\"\n [ngClass]=\"{\n 'sky-control-label-required': required\n }\"\n >{{ labelText }}</label\n >\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <sky-input-box-help-inline\n *ngIf=\"helpPopoverContent\"\n class=\"sky-control-help\"\n [labelText]=\"labelText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n\n <ng-content select=\".sky-control-help\" />\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <sky-character-counter-indicator\n *ngIf=\"characterLimit !== undefined\"\n [characterCount]=\"controlDir?.value?.length || 0\"\n [characterCountLimit]=\"characterLimit\"\n />\n <ng-content select=\"sky-character-counter-indicator\" />\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content\n select=\"input,select,.sky-form-control:not(textarea),sky-text-editor\"\n />\n <ng-container\n *ngIf=\"hostInputTemplate\"\n [ngTemplateOutlet]=\"hostInputTemplate\"\n />\n <ng-content select=\"textarea\" />\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\" />\n <ng-container\n *ngIf=\"hostButtonsLeftTemplate\"\n [ngTemplateOutlet]=\"hostButtonsLeftTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n />\n <ng-container\n *ngIf=\"hostButtonsTemplate\"\n [ngTemplateOutlet]=\"hostButtonsTemplate\"\n />\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-inset\" />\n <ng-container\n *ngIf=\"hostButtonsInsetTemplate\"\n [ngTemplateOutlet]=\"hostButtonsInsetTemplate\"\n />\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset\" />\n <ng-container\n *ngIf=\"hostIconsInsetTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content select=\".sky-input-group-icon.sky-input-box-icon-inset-left\" />\n <ng-container\n *ngIf=\"hostIconsInsetLeftTemplate\"\n [ngTemplateOutlet]=\"hostIconsInsetLeftTemplate\"\n />\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <sky-form-errors\n [id]=\"errorId\"\n [errors]=\"controlDir?.errors\"\n [labelText]=\"labelText\"\n [showErrors]=\"controlDir?.touched || controlDir?.dirty\"\n >\n <ng-content select=\".sky-error-label,.sky-error-indicator\" />\n </sky-form-errors>\n</ng-template>\n\n<ng-template #hintTextTemplate>\n <div\n *ngIf=\"hintText\"\n class=\"sky-font-deemphasized sky-input-box-hint-text\"\n [id]=\"hintTextId\"\n >\n {{ hintText }}\n </div>\n</ng-template>\n", styles: [".sky-input-box{--sky-background-color-input-box-group: transparent;--sky-background-color-input-box-group-focused: transparent}.sky-theme-modern .sky-input-box{--sky-background-color-input-box-group: #ffffff;--sky-background-color-input-box-group-focused: #ffffff}.sky-theme-modern.sky-theme-mode-dark .sky-input-box{--sky-background-color-input-box-group: #000000;--sky-background-color-input-box-group-focused: #000000}sky-input-box{display:block}sky-input-box .sky-input-box-input-container{width:100%}sky-input-box .sky-error-indicator{margin-top:5px}sky-input-box .sky-form-group{display:flex;flex-wrap:wrap;background-color:var(--sky-background-color-input-box-group)}sky-input-box .sky-form-group:focus-within{background-color:var(--sky-background-color-input-box-group-focused)}sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;width:100%}sky-input-box .sky-input-box-input-group-inner{display:flex;background-color:#fff;width:100%;z-index:1}sky-input-box .sky-input-box-input-group-inner:not(.sky-field-status-active):not(.sky-field-status-invalid){border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2}sky-input-box .sky-input-box-btn-inset .sky-btn{background-color:transparent;border:none}sky-input-box .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-icon-inset-left-wrapper{display:flex}sky-input-box .sky-input-box-icon-inset-wrapper .sky-input-group-icon,sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-group-icon{width:33px;display:flex;align-items:center;justify-content:center}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:#cdcfd2}sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-wrapper .sky-icon,sky-input-box .sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper .sky-icon{color:#686c73}sky-input-box sky-character-counter-indicator{flex-grow:1;text-align:right;margin-bottom:5px;margin-left:auto}sky-input-box .sky-control-label+sky-character-counter-indicator{flex-grow:0;flex-shrink:.001}sky-input-box .sky-form-control,sky-input-box .sky-form-control:focus{border:none;flex-basis:100%}sky-input-box .sky-form-control:focus,sky-input-box .sky-form-control.ng-invalid.ng-touched,sky-input-box .sky-form-control:focus:focus,sky-input-box .sky-form-control:focus.ng-invalid.ng-touched{border:none;box-shadow:none}sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 10px;width:initial}sky-input-box .sky-input-box-hint-text{flex-basis:100%;margin-top:var(--sky-margin-stacked-xs)}.sky-theme-modern .sky-input-box .sky-input-box-group{display:flex}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control{flex-grow:1;position:relative}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:first-child .sky-form-group{border-top-left-radius:6px;border-bottom-left-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control:last-child .sky-form-group{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-box-form-group-inner{display:flex;flex-grow:1;flex-wrap:wrap}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn{border-radius:0;color:#686c73;margin:0;padding:0;position:relative;transition:border-color .15s,box-shadow .15s,color .15s;width:55px}.sky-theme-modern .sky-input-box .sky-input-group-btn .sky-btn .sky-icon{font-size:24px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn{border-top-left-radius:6px;border-bottom-left-radius:6px;margin-right:-1px}.sky-theme-modern .sky-input-box .sky-input-group-btn:first-child .sky-btn:focus{z-index:1}.sky-theme-modern .sky-input-box .sky-input-group-btn:last-child .sky-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.sky-theme-modern .sky-input-box .sky-input-group-icon{width:55px}.sky-theme-modern .sky-input-box .sky-input-group-icon .sky-icon{color:#686c73;font-size:24px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid:not(:last-child),.sky-theme-modern .sky-input-box .sky-input-group-btn:focus-within:not(:last-child){z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control+.sky-input-group-btn .sky-btn{margin-left:-2px}.sky-theme-modern .sky-input-box .sky-input-group-btn+.sky-input-group-btn .sky-btn{margin-left:-1px}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #d2d2d2;color:#686c73;flex-wrap:nowrap;margin-bottom:0;padding:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper{display:flex;padding:0 15px;width:100%}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-bottom:0;position:relative;z-index:2}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{z-index:4}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label{padding:6px 0 1px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-label,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-character-count-label{font-size:13px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help{margin:3px 0 -3px 5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper .sky-control-help:not(:last-child){margin-right:5px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper sky-character-counter-indicator{margin-left:auto;padding:3px 0 0}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{margin-top:-23px;padding-top:26px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control{background-color:transparent;border:none;border-radius:6px;font-size:16px;height:auto;line-height:20px;padding-right:15px;padding-bottom:9px;padding-left:15px;position:relative}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:autofill:hover,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-webkit-autofill:hover{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:focus,.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control.ng-invalid{box-shadow:none;outline:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-webkit-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control::-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-controlinput:-moz-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-form-control:-ms-input-placeholder{font-size:16px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:hover+.sky-form-control:-webkit-autofill{clip-path:inset(1px round 6px)!important}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn{background-color:transparent;border-radius:6px;transition-property:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-btn-inset .sky-btn:not(:active):not(:focus):not(:hover){box-shadow:none}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control{margin-top:0}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+.sky-form-control:not(textarea),.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* .sky-form-control:not(textarea){padding-top:10px}.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+textarea.sky-form-control,.sky-theme-modern .sky-input-box .sky-form-group .sky-input-box-label-wrapper:empty+* textarea.sky-form-control{border-top:10px solid transparent}@-moz-document url-prefix(){.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{padding-left:10px}}.sky-theme-modern .sky-input-box .sky-form-group select.sky-form-control{background-position-x:calc(100% - 10px);z-index:3}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control{margin-top:-26px;padding-top:0;resize:vertical;border-top:29px solid transparent}.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:autofill,.sky-theme-modern .sky-input-box .sky-form-group textarea.sky-form-control:-webkit-autofill{border-top:29px solid transparent!important}.sky-theme-modern .sky-input-box .sky-input-box-icon-inset-left-wrapper .sky-input-box-icon-inset-left{padding:0 0 0 15px;width:initial}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:hover .sky-form-group{border:none;box-shadow:inset 0 0 0 1px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #d2d2d2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:hover{border:none;box-shadow:inset 0 0 0 1px #1870b8;z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:active,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus{border:none;box-shadow:inset 0 0 0 2px #1870b8;color:#212327;z-index:2}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-group-btn .sky-btn:focus:not(:active){outline:none;border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control:active .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-invalid:active .sky-form-group{color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active),.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid{z-index:1}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active) .sky-form-group,.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-input-box-group-form-control-focus:not(:active).sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 3px #0000004d;color:#1870b8}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box:not(.sky-input-box-disabled) .sky-form-group .sky-control-label{transition:border-color .15s,box-shadow .15s,color .15s}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-control,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-control-label,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn{cursor:not-allowed}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-wrapper,.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-box-icon-inset-left-wrapper{background-color:transparent}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-form-group{background-color:#ededee}.sky-theme-modern .sky-input-box.sky-input-box-disabled .sky-input-group-btn .sky-btn{background-color:#ededee;border:none;box-shadow:inset 0 0 0 1px #d2d2d2;opacity:1}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group{background-color:transparent;border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-form-control,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-form-group .sky-input-group-btn .sky-btn{background-color:transparent;color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus .sky-form-group,.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-focus.sky-input-box-group-form-control-invalid .sky-form-group{color:#1870b8}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-box-group-form-control-invalid .sky-form-group{border:none;box-shadow:inset 0 0 0 2px var(--sky-highlight-color-danger);color:#d93a3d}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn{border:none;box-shadow:inset 0 0 0 1px #686c73;color:#c0c2c5}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn.sky-btn-default{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-input-box .sky-input-group-btn .sky-btn:focus{border-color:#1870b8;color:#fbfcfe}\n"] }]
186
186
  }], propDecorators: { hasErrors: [{
187
187
  type: Input
188
188
  }], disabled: [{
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
217
217
  read: ElementRef,
218
218
  }]
219
219
  }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsT0FBTyxFQUVQLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUdsRTs7R0FFRztBQWNILE1BQU0sT0FBTyxvQkFBb0I7SUFiakM7UUFnQkUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xELG9CQUFlLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDcEQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBNEZ2Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFNbkIsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsZUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEMsb0JBQWUsR0FBRyxJQUFJLGFBQWEsQ0FBcUIsQ0FBQyxDQUFDLENBQUM7UUFHcEUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQWlDckIsY0FBUyxHQUFHLEtBQUssQ0FBQztLQXlIbkI7SUF2UUMsVUFBVSxDQUE2QjtJQUN2QyxnQkFBZ0IsQ0FBa0M7SUFDbEQsZUFBZSxDQUFxQztJQUNwRCxNQUFNLENBQXdCO0lBQzlCLFdBQVcsQ0FBc0I7SUFDakMsU0FBUyxDQUFxQjtJQTRCOUI7OztPQUdHO0lBQ0gsSUFDVyxjQUFjLENBQUMsS0FBa0I7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBaUJEOzs7T0FHRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQXlCO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQXlDRCxJQUFjLGlCQUFpQjtRQUM3QixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sQ0FDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFTO0lBQ2xCLGdCQUFnQixDQUFxQjtJQUNyQyxVQUFVLENBQXFCO0lBRS9CLGlCQUFpQixDQUF5QjtJQUMxQywyQkFBMkIsQ0FBMEI7SUFFOUMsUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsVUFBVTtZQUNiLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFN0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBNEIsQ0FBQztZQUUzRCw4RUFBOEU7WUFDOUUsa0ZBQWtGO1lBQ2xGLGlEQUFpRDtZQUNqRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzFELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFFMUMsSUFBSSxvQkFBb0IsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFO2dCQUNuRCxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQzthQUMvQjtpQkFBTSxJQUFJLENBQUMsb0JBQW9CLElBQUksWUFBWSxLQUFLLE1BQU0sRUFBRTtnQkFDM0QsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDN0I7WUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN6RTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2FBQzlEO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FDcEMsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFM0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBRWpDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3hDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FDNUQsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQTZCO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDeEQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUMxRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3RELElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDaEUsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBaUI7UUFDL0IseUZBQXlGO1FBQ3pGLDBGQUEwRjtRQUMxRixnRUFBZ0U7UUFDaEUsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUE2QztRQUM3RCxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDaEQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQ3JELElBQUksQ0FBQyxjQUFjLENBQ3BCLENBQUM7WUFFRixPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7OEdBelFVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDBVQVRwQjtZQUNULHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsc0JBQXNCO1NBQ3ZCLG1FQXVIYSxvQkFBb0Isb0ZBR3BCLGVBQWUsMEVBR2YsT0FBTywyRUFHUCwyQkFBMkIsMkJBQ2pDLFVBQVUsNkJDbExwQiw2NExBOExBOzsyRkR4SWEsb0JBQW9CO2tCQWJoQyxTQUFTOytCQUNFLGVBQWUsYUFHZDt3QkFDVCxzQkFBc0I7d0JBQ3RCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3FCQUN2QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQWtCOUIsU0FBUztzQkFEZixLQUFLO2dCQVdDLFFBQVE7c0JBRGQsS0FBSztnQkFTQyxTQUFTO3NCQURmLEtBQUs7Z0JBUUssY0FBYztzQkFEeEIsS0FBSztnQkFpQkssT0FBTztzQkFEakIsS0FBSztnQkFXQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQVFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBK0JDLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQUliLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUkzQixpQkFBaUI7c0JBRHZCLFlBQVk7dUJBQUMsZUFBZTtnQkFJdEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU87Z0JBTWQsUUFBUTtzQkFIZCxZQUFZO3VCQUFDLDJCQUEyQixFQUFFO3dCQUN6QyxJQUFJLEVBQUUsVUFBVTtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCb29sZWFuSW5wdXQsXG4gIE51bWJlcklucHV0LFxuICBjb2VyY2VCb29sZWFuUHJvcGVydHksXG4gIGNvZXJjZU51bWJlclByb3BlcnR5LFxufSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSxcbiAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gIEZvcm1Db250cm9sTmFtZSxcbiAgTmdNb2RlbCxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUNvbnRlbnRJbmZvUHJvdmlkZXIsIFNreUlkU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lJbnB1dEJveEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC1ib3gtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUlucHV0Qm94Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vaW5wdXQtYm94LWNvbnRyb2wuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICcuL2lucHV0LWJveC1ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hQb3B1bGF0ZUFyZ3MgfSBmcm9tICcuL2lucHV0LWJveC1wb3B1bGF0ZS1hcmdzJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgc3R5bGluZyBhbmQgYWNjZXNzaWJpbGl0eSB0byBmb3JtIGVsZW1lbnRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktaW5wdXQtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWJveC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lDb250ZW50SW5mb1Byb3ZpZGVyLFxuICAgIFNreUlucHV0Qm94QWRhcHRlclNlcnZpY2UsXG4gICAgU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgXSxcbiAgLy8gTm90ZSB0aGF0IGNoYW5nZSBkZXRlY3Rpb24gaXMgbm90IHNldCB0byBPblB1c2g7IGRlZmF1bHQgY2hhbmdlIGRldGVjdGlvbiBhbGxvd3MgdGhlXG4gIC8vIGludmFsaWQgQ1NTIGNsYXNzIHRvIGJlIGFkZGVkIHdoZW4gdGhlIGNvbnRlbnQgY29udHJvbCdzIGludmFsaWQvZGlydHkgc3RhdGUgY2hhbmdlcy5cbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5SW5wdXRCb3hDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveVxue1xuICAjY2hhbmdlUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI2lucHV0Qm94SG9zdFN2YyA9IGluamVjdChTa3lJbnB1dEJveEhvc3RTZXJ2aWNlKTtcbiAgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreUlucHV0Qm94QWRhcHRlclNlcnZpY2UpO1xuICAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCB0aGUgaW5wdXQgYm94IGluIGFuIGVycm9yIHN0YXRlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgaW5wdXQgYm94XG4gICAqIGRpc3BsYXlzIGluIGFuIGVycm9yIHN0YXRlIHdoZW4gZWl0aGVyIHRoZSBgbmdNb2RlbGAgb3IgdGhlIEFuZ3VsYXIgYEZvcm1Db250cm9sYCBjb250YWlucyBhbiBlcnJvci5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGFzRXJyb3JzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZpc3VhbGx5IGhpZ2hsaWdodCB0aGUgaW5wdXQgYm94IGFzIGRpc2FibGVkLiBUbyBkaXNhYmxlIHRoZSBpbnB1dCBib3gnc1xuICAgKiBpbnB1dCBlbGVtZW50LCB1c2UgdGhlIEhUTUwgYGRpc2FibGVkYCBhdHRyaWJ1dGUgb3IgdGhlIEFuZ3VsYXIgYEZvcm1Db250cm9sLmRpc2FibGVkYFxuICAgKiBwcm9wZXJ0eS4gWW91IG11c3Qgc2V0IGJvdGggcHJvcGVydGllcyB0byBkaXNhYmxlIGFuIGlucHV0IGVsZW1lbnQgYW5kIHZpc3VhbGx5IGluZGljYXRlXG4gICAqIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXQgYm94LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IGFzIHRoZSBpbnB1dCdzIGxhYmVsIGFuZCBpbiBrbm93biB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLiBUaGUgbGFiZWxcbiAgICogd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYGlucHV0YCwgYHNlbGVjdGAsIGB0ZXh0YXJlYWAsIG9yIGNvbXBhdGlibGUgU0tZIFVYXG4gICAqIGNvbXBvbmVudCBpbmNsdWRlZCBpbiB0aGUgaW5wdXQgYm94LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkIGluIHRoZSBpbnB1dC4gQSBbU0tZIFVYIGNoYXJhY3RlciBjb3VudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoYXJhY3Rlci1jb3VudClcbiAgICogd2lsbCBiZSBwbGFjZWQgb24gdGhlIGlucHV0IGVsZW1lbnQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgdmFsaWRhdG9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGFyYWN0ZXJMaW1pdCh2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICB0aGlzLiNfY2hhcmFjdGVyTGltaXQgPVxuICAgICAgdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCB1bmRlZmluZWQpO1xuXG4gICAgdGhpcy4jdXBkYXRlTWF4TGVuZ3RoVmFsaWRhdG9yKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJhY3RlckxpbWl0KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGFyYWN0ZXJMaW1pdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnB1dCBib3ggaXMgc3RhY2tlZCBvbiBhbm90aGVyIGlucHV0IGJveC4gV2hlbiBzcGVjaWZpZWQsIHRoZSBhcHByb3ByaWF0ZVxuICAgKiB2ZXJ0aWNhbCBzcGFjaW5nIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIGlucHV0IGJveC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3RhY2tlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy4jX3N0YWNrZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuY3NzQ2xhc3MgPSB0aGlzLiNfc3RhY2tlZCA/ICdza3ktbWFyZ2luLXN0YWNrZWQtbGcnIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSBpbnB1dCBib3ggbGFiZWwuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFtQZXJzaXN0ZW50IGlubGluZSBoZWxwIHRleHRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvZGVzaWduL2d1aWRlbGluZXMvdXNlci1hc3Npc3RhbmNlI2lubGluZS1oZWxwKSB0aGF0IHByb3ZpZGVzXG4gICAqIGFkZGl0aW9uYWwgY29udGV4dCB0byB0aGUgdXNlci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaGludFRleHQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19oaW50VGV4dCA9IHZhbHVlO1xuXG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkubmV4dCh2YWx1ZSA/IHRoaXMuaGludFRleHRJZCA6IHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhpbnRUZXh0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19oaW50VGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBob3N0SW5wdXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhvc3RCdXR0b25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBob3N0QnV0dG9uc0luc2V0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBob3N0QnV0dG9uc0xlZnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZvcm1Db250cm9sSGFzRm9jdXMgPSBmYWxzZTtcblxuICBwdWJsaWMgaG9zdEljb25zSW5zZXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbElkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgZXJyb3JJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGhpbnRUZXh0SWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIHB1YmxpYyByZWFkb25seSBhcmlhRGVzY3JpYmVkQnkgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KDEpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwdWJsaWMgY3NzQ2xhc3MgPSAnJztcblxuICBAQ29udGVudENoaWxkKEZvcm1Db250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUNvbnRyb2xOYW1lKVxuICBwdWJsaWMgZm9ybUNvbnRyb2xCeU5hbWU6IEZvcm1Db250cm9sTmFtZSB8IHVuZGVmaW5lZDtcblxuICBAQ29udGVudENoaWxkKE5nTW9kZWwpXG4gIHB1YmxpYyBuZ01vZGVsOiBOZ01vZGVsIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5SW5wdXRCb3hDb250cm9sRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHVibGljIGlucHV0UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBjb250cm9sRGlyOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBoZWxwUG9wb3Zlck9wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGdldCBoYXNFcnJvcnNDb21wdXRlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5oYXNFcnJvcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuI2NvbnRyb2xIYXNFcnJvcnModGhpcy5jb250cm9sRGlyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLiNoYXNSZXF1aXJlZFZhbGlkYXRvcigpIHx8IHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQucmVxdWlyZWRcbiAgICApO1xuICB9XG5cbiAgI19zdGFja2VkID0gZmFsc2U7XG4gICNfY2hhcmFjdGVyTGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgI19oaW50VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNwcmV2aW91c0lucHV0UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICAjcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3I6IFZhbGlkYXRvckZuIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNpbnB1dEJveEhvc3RTdmMuaW5pdCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sRGlyID1cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wgfHwgdGhpcy5mb3JtQ29udHJvbEJ5TmFtZSB8fCB0aGlzLm5nTW9kZWw7XG5cbiAgICBpZiAodGhpcy5pbnB1dFJlZikge1xuICAgICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgLy8gQ2hlY2sgZm9yIHRoZSBBbmd1bGFyIHJlcXVpcmVkIHZhbGlkYXRvciBhbmQgYWRkIGFuIGFyaWEtcmVxdWlyZWQgYXR0cmlidXRlXG4gICAgICAvLyB0byBtYXRjaC4gRm9yIHRlbXBsYXRlLWRyaXZlbiBmb3JtcywgdGhlIGlucHV0IHdpbGwgaGF2ZSBhIGByZXF1aXJlZGAgYXR0cmlidXRlXG4gICAgICAvLyBzbyB0aGUgYXJpYS1yZXF1aXJlZCBhdHRyaWJ1dGUgaXMgdW5uZWNlc3NhcnkuXG4gICAgICBjb25zdCBoYXNSZXF1aXJlZFZhbGlkYXRvciA9IHRoaXMuI2hhc1JlcXVpcmVkVmFsaWRhdG9yKCk7XG4gICAgICBjb25zdCBhcmlhUmVxdWlyZWQgPSBpbnB1dEVsLmFyaWFSZXF1aXJlZDtcblxuICAgICAgaWYgKGhhc1JlcXVpcmVkVmFsaWRhdG9yICYmIGFyaWFSZXF1aXJlZCAhPT0gJ3RydWUnKSB7XG4gICAgICAgIGlucHV0RWwuYXJpYVJlcXVpcmVkID0gJ3RydWUnO1xuICAgICAgfSBlbHNlIGlmICghaGFzUmVxdWlyZWRWYWxpZGF0b3IgJiYgYXJpYVJlcXVpcmVkID09PSAndHJ1ZScpIHtcbiAgICAgICAgaW5wdXRFbC5hcmlhUmVxdWlyZWQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5oYXNFcnJvcnNDb21wdXRlZCkge1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbCwgJ2FyaWEtaW52YWxpZCcsICd0cnVlJyk7XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dEVsLCAnYXJpYS1lcnJvcm1lc3NhZ2UnLCB0aGlzLmVycm9ySWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGlucHV0RWwsICdhcmlhLWludmFsaWQnKTtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGlucHV0RWwsICdhcmlhLWVycm9ybWVzc2FnZScpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS51cGRhdGVEZXNjcmliZWRCeShcbiAgICAgICAgdGhpcy5pbnB1dFJlZixcbiAgICAgICAgdGhpcy5oaW50VGV4dElkLFxuICAgICAgICB0aGlzLmhpbnRUZXh0LFxuICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMuaW5wdXRSZWYgIT09IHRoaXMuI3ByZXZpb3VzSW5wdXRSZWYpIHtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoaW5wdXRFbCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0RWwsICdpZCcsIHRoaXMuY29udHJvbElkKTtcblxuICAgICAgICB0aGlzLiN1cGRhdGVNYXhMZW5ndGhWYWxpZGF0b3IoKTtcblxuICAgICAgICB0aGlzLiNwcmV2aW91c0lucHV0UmVmID0gdGhpcy5pbnB1dFJlZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JtQ29udHJvbEZvY3VzSW4oKTogdm9pZCB7XG4gICAgY29uc3QgaW5saW5lSGVscEVsID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0SW5saW5lSGVscEVsZW1lbnQoXG4gICAgICB0aGlzLiNlbGVtZW50UmVmLFxuICAgICk7XG4gICAgaWYgKCF0aGlzLiNhZGFwdGVyU2VydmljZS5pc0ZvY3VzSW5FbGVtZW50KGlubGluZUhlbHBFbCkpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUhhc0ZvY3VzKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtQ29udHJvbEZvY3VzT3V0KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZUhhc0ZvY3VzKGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkluc2V0SWNvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNDb250cm9sKHRoaXMuI2VsZW1lbnRSZWYpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3B1bGF0ZShhcmdzOiBTa3lJbnB1dEJveFBvcHVsYXRlQXJncyk6IHZvaWQge1xuICAgIHRoaXMuaG9zdElucHV0VGVtcGxhdGUgPSBhcmdzLmlucHV0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0QnV0dG9uc1RlbXBsYXRlID0gYXJncy5idXR0b25zVGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0QnV0dG9uc0xlZnRUZW1wbGF0ZSA9IGFyZ3MuYnV0dG9uc0xlZnRUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZSA9IGFyZ3MuYnV0dG9uc0luc2V0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0SWNvbnNJbnNldFRlbXBsYXRlID0gYXJncy5pY29uc0luc2V0VGVtcGxhdGU7XG4gICAgdGhpcy5ob3N0SWNvbnNJbnNldExlZnRUZW1wbGF0ZSA9IGFyZ3MuaWNvbnNJbnNldExlZnRUZW1wbGF0ZTtcbiAgfVxuXG4gICNoYXNSZXF1aXJlZFZhbGlkYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNvbnRyb2xEaXI/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gICN1cGRhdGVIYXNGb2N1cyhoYXNGb2N1czogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIFNvbWUgY29tcG9uZW50cyBtYW5pcHVsYXRlIHRoZSBmb2N1cyBvZiBlbGVtZW50cyBpbnNpZGUgYW4gaW5wdXQgYm94IHByb2dyYW1tYXRpY2FsbHksXG4gICAgLy8gd2hpY2ggY2FuIGNhdXNlIGFuIGBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yYCBpZiBmb2N1cyB3YXMgc2V0IGFmdGVyXG4gICAgLy8gaW5pdGlhbCBjaGFuZ2UgZGV0ZWN0aW9uLiBVc2luZyBgc2V0VGltZW91dCgpYCBoZXJlIGZpeGVzIGl0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbEhhc0ZvY3VzID0gaGFzRm9jdXM7XG4gICAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICAjY29udHJvbEhhc0Vycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSk7XG4gIH1cblxuICAjdXBkYXRlTWF4TGVuZ3RoVmFsaWRhdG9yKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xEaXI/LmNvbnRyb2w7XG5cbiAgICBpZiAodGhpcy4jcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3IpIHtcbiAgICAgIGNvbnRyb2w/LnJlbW92ZVZhbGlkYXRvcnModGhpcy4jcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3IpO1xuICAgICAgdGhpcy4jcHJldmlvdXNNYXhMZW5ndGhWYWxpZGF0b3IgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgJiYgdGhpcy5jaGFyYWN0ZXJMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvciA9IFZhbGlkYXRvcnMubWF4TGVuZ3RoKFxuICAgICAgICB0aGlzLmNoYXJhY3RlckxpbWl0LFxuICAgICAgKTtcblxuICAgICAgY29udHJvbC5hZGRWYWxpZGF0b3JzKFt0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvcl0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiXG4gIGNsYXNzPVwic2t5LWlucHV0LWJveFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWlucHV0LWJveC1kaXNhYmxlZCc6IGRpc2FibGVkXG4gIH1cIlxuPlxuICA8ZGl2IGNsYXNzPVwic2t5LWZvcm0tZ3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1sYWJlbC13cmFwcGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZVwiIC8+PG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImlubGluZUhlbHBUZW1wbGF0ZVwiXG4gICAgICAvPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoYXJhY3RlckNvdW50VGVtcGxhdGVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zTGVmdFRlbXBsYXRlXCIgLz5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktaW5wdXQtYm94LWlucHV0LWdyb3VwLWlubmVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZmllbGQtc3RhdHVzLWFjdGl2ZSc6IGZvcm1Db250cm9sSGFzRm9jdXMsXG4gICAgICAgICAgJ3NreS1maWVsZC1zdGF0dXMtaW52YWxpZCc6IGhhc0Vycm9yc0NvbXB1dGVkXG4gICAgICAgIH1cIlxuICAgICAgICAoZm9jdXNpbik9XCJmb3JtQ29udHJvbEZvY3VzSW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJmb3JtQ29udHJvbEZvY3VzT3V0KClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldExlZnRUZW1wbGF0ZVwiIC8+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNJbnNldFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25zSW5zZXRUZW1wbGF0ZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zVGVtcGxhdGVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50VGV4dFRlbXBsYXRlXCIgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JMYWJlbFRlbXBsYXRlXCIgLz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgY2xhc3M9XCJza3ktaW5wdXQtYm94XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktaW5wdXQtYm94LWRpc2FibGVkJzogZGlzYWJsZWRcbiAgfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtYm94LWdyb3VwXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNMZWZ0VGVtcGxhdGVcIiAvPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWlucHV0LWJveC1ncm91cC1mb3JtLWNvbnRyb2xcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LWlucHV0LWJveC1ncm91cC1mb3JtLWNvbnRyb2wtZm9jdXMnOiBmb3JtQ29udHJvbEhhc0ZvY3VzLFxuICAgICAgICAnc2t5LWlucHV0LWJveC1ncm91cC1mb3JtLWNvbnRyb2wtaW52YWxpZCc6IGhhc0Vycm9yc0NvbXB1dGVkXG4gICAgICB9XCJcbiAgICAgIChmb2N1c2luKT1cImZvcm1Db250cm9sRm9jdXNJbigpXCJcbiAgICAgIChmb2N1c291dCk9XCJmb3JtQ29udHJvbEZvY3VzT3V0KClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktZm9ybS1ncm91cFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldExlZnRUZW1wbGF0ZVwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtYm94LWZvcm0tZ3JvdXAtaW5uZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWJveC1sYWJlbC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZVwiIC8+PG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImlubGluZUhlbHBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNoYXJhY3RlckNvdW50VGVtcGxhdGVcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zSW5zZXRUZW1wbGF0ZVwiIC8+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uc0luc2V0VGVtcGxhdGVcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNUZW1wbGF0ZVwiIC8+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGludFRleHRUZW1wbGF0ZVwiIC8+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvckxhYmVsVGVtcGxhdGVcIiAvPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1jb250cm9sLWxhYmVsXCIgLz5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJsYWJlbFRleHRcIlxuICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWxcIlxuICAgIFtmb3JdPVwiY29udHJvbElkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnOiByZXF1aXJlZFxuICAgIH1cIlxuICAgID57eyBsYWJlbFRleHQgfX08L2xhYmVsXG4gID5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5saW5lSGVscFRlbXBsYXRlPlxuICA8c2t5LWlucHV0LWJveC1oZWxwLWlubGluZVxuICAgICpuZ0lmPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICBjbGFzcz1cInNreS1jb250cm9sLWhlbHBcIlxuICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAvPlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktY29udHJvbC1oZWxwXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hhcmFjdGVyQ291bnRUZW1wbGF0ZT5cbiAgPHNreS1jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3JcbiAgICAqbmdJZj1cImNoYXJhY3RlckxpbWl0ICE9PSB1bmRlZmluZWRcIlxuICAgIFtjaGFyYWN0ZXJDb3VudF09XCJjb250cm9sRGlyPy52YWx1ZT8ubGVuZ3RoIHx8IDBcIlxuICAgIFtjaGFyYWN0ZXJDb3VudExpbWl0XT1cImNoYXJhY3RlckxpbWl0XCJcbiAgLz5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWNoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvclwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0VGVtcGxhdGU+XG4gIDxuZy1jb250ZW50XG4gICAgc2VsZWN0PVwiaW5wdXQsc2VsZWN0LC5za3ktZm9ybS1jb250cm9sOm5vdCh0ZXh0YXJlYSksc2t5LXRleHQtZWRpdG9yXCJcbiAgLz5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiaG9zdElucHV0VGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RJbnB1dFRlbXBsYXRlXCJcbiAgLz5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidGV4dGFyZWFcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zTGVmdFRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWlucHV0LWdyb3VwLWJ0bi5za3ktaW5wdXQtYm94LWJ0bi1sZWZ0XCIgLz5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiaG9zdEJ1dHRvbnNMZWZ0VGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RCdXR0b25zTGVmdFRlbXBsYXRlXCJcbiAgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc1RlbXBsYXRlPlxuICA8bmctY29udGVudFxuICAgIHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtYnRuOm5vdCguc2t5LWlucHV0LWJveC1idG4tbGVmdCk6bm90KC5za3ktaW5wdXQtYm94LWJ0bi1pbnNldClcIlxuICAvPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJob3N0QnV0dG9uc1RlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJob3N0QnV0dG9uc1RlbXBsYXRlXCJcbiAgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0luc2V0VGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtYnRuLnNreS1pbnB1dC1ib3gtYnRuLWluc2V0XCIgLz5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiaG9zdEJ1dHRvbnNJbnNldFRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJob3N0QnV0dG9uc0luc2V0VGVtcGxhdGVcIlxuICAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpY29uc0luc2V0VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtYm94LWljb24taW5zZXQtd3JhcHBlclwiIChjbGljayk9XCJvbkluc2V0SWNvbkNsaWNrKClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWlucHV0LWdyb3VwLWljb24uc2t5LWlucHV0LWJveC1pY29uLWluc2V0XCIgLz5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImhvc3RJY29uc0luc2V0VGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG9zdEljb25zSW5zZXRUZW1wbGF0ZVwiXG4gICAgLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ljb25zSW5zZXRMZWZ0VGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtaWNvbi1pbnNldC1sZWZ0LXdyYXBwZXJcIlxuICAgIChjbGljayk9XCJvbkluc2V0SWNvbkNsaWNrKClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1pY29uLnNreS1pbnB1dC1ib3gtaWNvbi1pbnNldC1sZWZ0XCIgLz5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cImhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZXJyb3JMYWJlbFRlbXBsYXRlPlxuICA8c2t5LWZvcm0tZXJyb3JzXG4gICAgW2lkXT1cImVycm9ySWRcIlxuICAgIFtlcnJvcnNdPVwiY29udHJvbERpcj8uZXJyb3JzXCJcbiAgICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiXG4gICAgW3Nob3dFcnJvcnNdPVwiY29udHJvbERpcj8udG91Y2hlZCB8fCBjb250cm9sRGlyPy5kaXJ0eVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWVycm9yLWxhYmVsLC5za3ktZXJyb3ItaW5kaWNhdG9yXCIgLz5cbiAgPC9za3ktZm9ybS1lcnJvcnM+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hpbnRUZXh0VGVtcGxhdGU+XG4gIDxkaXZcbiAgICAqbmdJZj1cImhpbnRUZXh0XCJcbiAgICBjbGFzcz1cInNreS1mb250LWRlZW1waGFzaXplZCBza3ktaW5wdXQtYm94LWhpbnQtdGV4dFwiXG4gICAgW2lkXT1cImhpbnRUZXh0SWRcIlxuICA+XG4gICAge3sgaGludFRleHQgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL2lucHV0LWJveC9pbnB1dC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsT0FBTyxFQUVQLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUdsRTs7R0FFRztBQWNILE1BQU0sT0FBTyxvQkFBb0I7SUFiakM7UUFnQkUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxz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biAgTnVtYmVySW5wdXQsXG4gIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSxcbiAgY29lcmNlTnVtYmVyUHJvcGVydHksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlLFxuICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgRm9ybUNvbnRyb2xOYW1lLFxuICBOZ01vZGVsLFxuICBWYWxpZGF0b3JGbixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5Q29udGVudEluZm9Qcm92aWRlciwgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUlucHV0Qm94QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2lucHV0LWJveC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC1ib3gtY29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJy4vaW5wdXQtYm94LWhvc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveFBvcHVsYXRlQXJncyB9IGZyb20gJy4vaW5wdXQtYm94LXBvcHVsYXRlLWFyZ3MnO1xuXG4vKipcbiAqIEEgd3JhcHBlciBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBzdHlsaW5nIGFuZCBhY2Nlc3NpYmlsaXR5IHRvIGZvcm0gZWxlbWVudHMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1pbnB1dC1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreUNvbnRlbnRJbmZvUHJvdmlkZXIsXG4gICAgU2t5SW5wdXRCb3hBZGFwdGVyU2VydmljZSxcbiAgICBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICBdLFxuICAvLyBOb3RlIHRoYXQgY2hhbmdlIGRldGVjdGlvbiBpcyBub3Qgc2V0IHRvIE9uUHVzaDsgZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0aW9uIGFsbG93cyB0aGVcbiAgLy8gaW52YWxpZCBDU1MgY2xhc3MgdG8gYmUgYWRkZWQgd2hlbiB0aGUgY29udGVudCBjb250cm9sJ3MgaW52YWxpZC9kaXJ0eSBzdGF0ZSBjaGFuZ2VzLlxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJbnB1dEJveENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95XG57XG4gICNjaGFuZ2VSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAjaW5wdXRCb3hIb3N0U3ZjID0gaW5qZWN0KFNreUlucHV0Qm94SG9zdFNlcnZpY2UpO1xuICAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5SW5wdXRCb3hBZGFwdGVyU2VydmljZSk7XG4gICNpZFN2YyA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgI3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmlzdWFsbHkgaGlnaGxpZ2h0IHRoZSBpbnB1dCBib3ggaW4gYW4gZXJyb3Igc3RhdGUuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBpbnB1dCBib3hcbiAgICogZGlzcGxheXMgaW4gYW4gZXJyb3Igc3RhdGUgd2hlbiBlaXRoZXIgdGhlIGBuZ01vZGVsYCBvciB0aGUgQW5ndWxhciBgRm9ybUNvbnRyb2xgIGNvbnRhaW5zIGFuIGVycm9yLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoYXNFcnJvcnM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdmlzdWFsbHkgaGlnaGxpZ2h0IHRoZSBpbnB1dCBib3ggYXMgZGlzYWJsZWQuIFRvIGRpc2FibGUgdGhlIGlucHV0IGJveCdzXG4gICAqIGlucHV0IGVsZW1lbnQsIHVzZSB0aGUgSFRNTCBgZGlzYWJsZWRgIGF0dHJpYnV0ZSBvciB0aGUgQW5ndWxhciBgRm9ybUNvbnRyb2wuZGlzYWJsZWRgXG4gICAqIHByb3BlcnR5LiBZb3UgbXVzdCBzZXQgYm90aCBwcm9wZXJ0aWVzIHRvIGRpc2FibGUgYW4gaW5wdXQgZWxlbWVudCBhbmQgdmlzdWFsbHkgaW5kaWNhdGVcbiAgICogdGhlIGRpc2FibGVkIHN0YXRlIG9uIHRoZSBpbnB1dCBib3guXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IHRvIGRpc3BsYXkgYXMgdGhlIGlucHV0J3MgbGFiZWwgYW5kIGluIGtub3duIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMuIFRoZSBsYWJlbFxuICAgKiB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBgaW5wdXRgLCBgc2VsZWN0YCwgYHRleHRhcmVhYCwgb3IgY29tcGF0aWJsZSBTS1kgVVhcbiAgICogY29tcG9uZW50IGluY2x1ZGVkIGluIHRoZSBpbnB1dCBib3guXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIGlucHV0LiBBIFtTS1kgVVggY2hhcmFjdGVyIGNvdW50XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hhcmFjdGVyLWNvdW50KVxuICAgKiB3aWxsIGJlIHBsYWNlZCBvbiB0aGUgaW5wdXQgZWxlbWVudCB3aXRoIHRoZSBhcHByb3ByaWF0ZSB2YWxpZGF0b3IuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoYXJhY3RlckxpbWl0KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgIHRoaXMuI19jaGFyYWN0ZXJMaW1pdCA9XG4gICAgICB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIHVuZGVmaW5lZCk7XG5cbiAgICB0aGlzLiN1cGRhdGVNYXhMZW5ndGhWYWxpZGF0b3IoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmFjdGVyTGltaXQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoYXJhY3RlckxpbWl0O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGJveCBpcyBzdGFja2VkIG9uIGFub3RoZXIgaW5wdXQgYm94LiBXaGVuIHNwZWNpZmllZCwgdGhlIGFwcHJvcHJpYXRlXG4gICAqIHZlcnRpY2FsIHNwYWNpbmcgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgaW5wdXQgYm94LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdGFja2VkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLiNfc3RhY2tlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jc3NDbGFzcyA9IHRoaXMuI19zdGFja2VkID8gJ3NreS1tYXJnaW4tc3RhY2tlZC1sZycgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBoZWxwIHBvcG92ZXIuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgYWRkZWQgdG8gdGhlIGlucHV0IGJveCBsYWJlbC4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogW1BlcnNpc3RlbnQgaW5saW5lIGhlbHAgdGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9kZXNpZ24vZ3VpZGVsaW5lcy91c2VyLWFzc2lzdGFuY2UjaW5saW5lLWhlbHApIHRoYXQgcHJvdmlkZXNcbiAgICogYWRkaXRpb25hbCBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoaW50VGV4dCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2hpbnRUZXh0ID0gdmFsdWU7XG5cbiAgICB0aGlzLmFyaWFEZXNjcmliZWRCeS5uZXh0KHZhbHVlID8gdGhpcy5oaW50VGV4dElkIDogdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGludFRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2hpbnRUZXh0O1xuICB9XG5cbiAgcHVibGljIGhvc3RJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaG9zdEJ1dHRvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGhvc3RCdXR0b25zTGVmdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZm9ybUNvbnRyb2xIYXNGb2N1cyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBob3N0SWNvbnNJbnNldFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaG9zdEljb25zSW5zZXRMZWZ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb250cm9sSWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gIHB1YmxpYyByZWFkb25seSBlcnJvcklkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGludFRleHRJZCA9IHRoaXMuI2lkU3ZjLmdlbmVyYXRlSWQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGFyaWFEZXNjcmliZWRCeSA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4oMSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHB1YmxpYyBjc3NDbGFzcyA9ICcnO1xuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUNvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZChGb3JtQ29udHJvbE5hbWUpXG4gIHB1YmxpYyBmb3JtQ29udHJvbEJ5TmFtZTogRm9ybUNvbnRyb2xOYW1lIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoTmdNb2RlbClcbiAgcHVibGljIG5nTW9kZWw6IE5nTW9kZWwgfCB1bmRlZmluZWQ7XG5cbiAgQENvbnRlbnRDaGlsZChTa3lJbnB1dEJveENvbnRyb2xEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwdWJsaWMgaW5wdXRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2xEaXI6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGhlbHBQb3BvdmVyT3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgZ2V0IGhhc0Vycm9yc0NvbXB1dGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmhhc0Vycm9ycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy4jY29udHJvbEhhc0Vycm9ycyh0aGlzLmNvbnRyb2xEaXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhc0Vycm9ycztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuI2hhc1JlcXVpcmVkVmFsaWRhdG9yKCkgfHwgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudC5yZXF1aXJlZFxuICAgICk7XG4gIH1cblxuICAjX3N0YWNrZWQgPSBmYWxzZTtcbiAgI19jaGFyYWN0ZXJMaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjX2hpbnRUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI3ByZXZpb3VzSW5wdXRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gICNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvcjogVmFsaWRhdG9yRm4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2lucHV0Qm94SG9zdFN2Yy5pbml0KHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xEaXIgPVxuICAgICAgdGhpcy5mb3JtQ29udHJvbCB8fCB0aGlzLmZvcm1Db250cm9sQnlOYW1lIHx8IHRoaXMubmdNb2RlbDtcblxuICAgIGlmICh0aGlzLmlucHV0UmVmKSB7XG4gICAgICBjb25zdCBpbnB1dEVsID0gdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAvLyBDaGVjayBmb3IgdGhlIEFuZ3VsYXIgcmVxdWlyZWQgdmFsaWRhdG9yIGFuZCBhZGQgYW4gYXJpYS1yZXF1aXJlZCBhdHRyaWJ1dGVcbiAgICAgIC8vIHRvIG1hdGNoLiBGb3IgdGVtcGxhdGUtZHJpdmVuIGZvcm1zLCB0aGUgaW5wdXQgd2lsbCBoYXZlIGEgYHJlcXVpcmVkYCBhdHRyaWJ1dGVcbiAgICAgIC8vIHNvIHRoZSBhcmlhLXJlcXVpcmVkIGF0dHJpYnV0ZSBpcyB1bm5lY2Vzc2FyeS5cbiAgICAgIGNvbnN0IGhhc1JlcXVpcmVkVmFsaWRhdG9yID0gdGhpcy4jaGFzUmVxdWlyZWRWYWxpZGF0b3IoKTtcbiAgICAgIGNvbnN0IGFyaWFSZXF1aXJlZCA9IGlucHV0RWwuYXJpYVJlcXVpcmVkO1xuXG4gICAgICBpZiAoaGFzUmVxdWlyZWRWYWxpZGF0b3IgJiYgYXJpYVJlcXVpcmVkICE9PSAndHJ1ZScpIHtcbiAgICAgICAgaW5wdXRFbC5hcmlhUmVxdWlyZWQgPSAndHJ1ZSc7XG4gICAgICB9IGVsc2UgaWYgKCFoYXNSZXF1aXJlZFZhbGlkYXRvciAmJiBhcmlhUmVxdWlyZWQgPT09ICd0cnVlJykge1xuICAgICAgICBpbnB1dEVsLmFyaWFSZXF1aXJlZCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmhhc0Vycm9yc0NvbXB1dGVkKSB7XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dEVsLCAnYXJpYS1pbnZhbGlkJywgJ3RydWUnKTtcbiAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0RWwsICdhcmlhLWVycm9ybWVzc2FnZScsIHRoaXMuZXJyb3JJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoaW5wdXRFbCwgJ2FyaWEtaW52YWxpZCcpO1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoaW5wdXRFbCwgJ2FyaWEtZXJyb3JtZXNzYWdlJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnVwZGF0ZURlc2NyaWJlZEJ5KFxuICAgICAgICB0aGlzLmlucHV0UmVmLFxuICAgICAgICB0aGlzLmhpbnRUZXh0SWQsXG4gICAgICAgIHRoaXMuaGludFRleHQsXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5pbnB1dFJlZiAhPT0gdGhpcy4jcHJldmlvdXNJbnB1dFJlZikge1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhpbnB1dEVsLCAnc2t5LWZvcm0tY29udHJvbCcpO1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbCwgJ2lkJywgdGhpcy5jb250cm9sSWQpO1xuXG4gICAgICAgIHRoaXMuI3VwZGF0ZU1heExlbmd0aFZhbGlkYXRvcigpO1xuXG4gICAgICAgIHRoaXMuI3ByZXZpb3VzSW5wdXRSZWYgPSB0aGlzLmlucHV0UmVmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFyaWFEZXNjcmliZWRCeS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGZvcm1Db250cm9sRm9jdXNJbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbmxpbmVIZWxwRWwgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRJbmxpbmVIZWxwRWxlbWVudChcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYsXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmlzRm9jdXNJbkVsZW1lbnQoaW5saW5lSGVscEVsKSkge1xuICAgICAgdGhpcy4jdXBkYXRlSGFzRm9jdXModHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1Db250cm9sRm9jdXNPdXQoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlSGFzRm9jdXMoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uSW5zZXRJY29uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0NvbnRyb2wodGhpcy4jZWxlbWVudFJlZik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlKGFyZ3M6IFNreUlucHV0Qm94UG9wdWxhdGVBcmdzKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0SW5wdXRUZW1wbGF0ZSA9IGFyZ3MuaW5wdXRUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RCdXR0b25zVGVtcGxhdGUgPSBhcmdzLmJ1dHRvbnNUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RCdXR0b25zTGVmdFRlbXBsYXRlID0gYXJncy5idXR0b25zTGVmdFRlbXBsYXRlO1xuICAgIHRoaXMuaG9zdEJ1dHRvbnNJbnNldFRlbXBsYXRlID0gYXJncy5idXR0b25zSW5zZXRUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RJY29uc0luc2V0VGVtcGxhdGUgPSBhcmdzLmljb25zSW5zZXRUZW1wbGF0ZTtcbiAgICB0aGlzLmhvc3RJY29uc0luc2V0TGVmdFRlbXBsYXRlID0gYXJncy5pY29uc0luc2V0TGVmdFRlbXBsYXRlO1xuICB9XG5cbiAgI2hhc1JlcXVpcmVkVmFsaWRhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29udHJvbERpcj8uY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG5cbiAgI3VwZGF0ZUhhc0ZvY3VzKGhhc0ZvY3VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gU29tZSBjb21wb25lbnRzIG1hbmlwdWxhdGUgdGhlIGZvY3VzIG9mIGVsZW1lbnRzIGluc2lkZSBhbiBpbnB1dCBib3ggcHJvZ3JhbW1hdGljYWxseSxcbiAgICAvLyB3aGljaCBjYW4gY2F1c2UgYW4gYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgIGlmIGZvY3VzIHdhcyBzZXQgYWZ0ZXJcbiAgICAvLyBpbml0aWFsIGNoYW5nZSBkZXRlY3Rpb24uIFVzaW5nIGBzZXRUaW1lb3V0KClgIGhlcmUgZml4ZXMgaXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sSGFzRm9jdXMgPSBoYXNGb2N1cztcbiAgICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gICNjb250cm9sSGFzRXJyb3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiAoY29udHJvbC5kaXJ0eSB8fCBjb250cm9sLnRvdWNoZWQpKTtcbiAgfVxuXG4gICN1cGRhdGVNYXhMZW5ndGhWYWxpZGF0b3IoKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbERpcj8uY29udHJvbDtcblxuICAgIGlmICh0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvcikge1xuICAgICAgY29udHJvbD8ucmVtb3ZlVmFsaWRhdG9ycyh0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvcik7XG4gICAgICB0aGlzLiNwcmV2aW91c01heExlbmd0aFZhbGlkYXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbCAmJiB0aGlzLmNoYXJhY3RlckxpbWl0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI3ByZXZpb3VzTWF4TGVuZ3RoVmFsaWRhdG9yID0gVmFsaWRhdG9ycy5tYXhMZW5ndGgoXG4gICAgICAgIHRoaXMuY2hhcmFjdGVyTGltaXQsXG4gICAgICApO1xuXG4gICAgICBjb250cm9sLmFkZFZhbGlkYXRvcnMoW3RoaXMuI3ByZXZpb3VzTWF4TGVuZ3RoVmFsaWRhdG9yXSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCJcbiAgY2xhc3M9XCJza3ktaW5wdXQtYm94XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICdza3ktaW5wdXQtYm94LWRpc2FibGVkJzogZGlzYWJsZWRcbiAgfVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJza3ktZm9ybS1ncm91cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtYm94LWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFRlbXBsYXRlXCIgLz48bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5saW5lSGVscFRlbXBsYXRlXCJcbiAgICAgIC8+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hhcmFjdGVyQ291bnRUZW1wbGF0ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNMZWZ0VGVtcGxhdGVcIiAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1pbnB1dC1ib3gtaW5wdXQtZ3JvdXAtaW5uZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1maWVsZC1zdGF0dXMtYWN0aXZlJzogZm9ybUNvbnRyb2xIYXNGb2N1cyxcbiAgICAgICAgICAnc2t5LWZpZWxkLXN0YXR1cy1pbnZhbGlkJzogaGFzRXJyb3JzQ29tcHV0ZWRcbiAgICAgICAgfVwiXG4gICAgICAgIChmb2N1c2luKT1cImZvcm1Db250cm9sRm9jdXNJbigpXCJcbiAgICAgICAgKGZvY3Vzb3V0KT1cImZvcm1Db250cm9sRm9jdXNPdXQoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uc0luc2V0TGVmdFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0luc2V0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNJbnNldFRlbXBsYXRlXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNUZW1wbGF0ZVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhpbnRUZXh0VGVtcGxhdGVcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvckxhYmVsVGVtcGxhdGVcIiAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICBjbGFzcz1cInNreS1pbnB1dC1ib3hcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1pbnB1dC1ib3gtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICB9XCJcbj5cbiAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtZ3JvdXBcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0xlZnRUZW1wbGF0ZVwiIC8+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktaW5wdXQtYm94LWdyb3VwLWZvcm0tY29udHJvbFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdza3ktaW5wdXQtYm94LWdyb3VwLWZvcm0tY29udHJvbC1mb2N1cyc6IGZvcm1Db250cm9sSGFzRm9jdXMsXG4gICAgICAgICdza3ktaW5wdXQtYm94LWdyb3VwLWZvcm0tY29udHJvbC1pbnZhbGlkJzogaGFzRXJyb3JzQ29tcHV0ZWRcbiAgICAgIH1cIlxuICAgICAgKGZvY3VzaW4pPVwiZm9ybUNvbnRyb2xGb2N1c0luKClcIlxuICAgICAgKGZvY3Vzb3V0KT1cImZvcm1Db250cm9sRm9jdXNPdXQoKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uc0luc2V0TGVmdFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtZm9ybS1ncm91cC1pbm5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtYm94LWxhYmVsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFRlbXBsYXRlXCIgLz48bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5saW5lSGVscFRlbXBsYXRlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hhcmFjdGVyQ291bnRUZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnNJbnNldFRlbXBsYXRlXCIgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25zSW5zZXRUZW1wbGF0ZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc1RlbXBsYXRlXCIgLz5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50VGV4dFRlbXBsYXRlXCIgLz5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yTGFiZWxUZW1wbGF0ZVwiIC8+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtbGFiZWxcIiAvPlxuICA8bGFiZWxcbiAgICAqbmdJZj1cImxhYmVsVGV4dFwiXG4gICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgW2Zvcl09XCJjb250cm9sSWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHJlcXVpcmVkXG4gICAgfVwiXG4gICAgPnt7IGxhYmVsVGV4dCB9fTwvbGFiZWxcbiAgPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbmxpbmVIZWxwVGVtcGxhdGU+XG4gIDxza3ktaW5wdXQtYm94LWhlbHAtaW5saW5lXG4gICAgKm5nSWY9XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscFwiXG4gICAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIlxuICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gIC8+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1jb250cm9sLWhlbHBcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjaGFyYWN0ZXJDb3VudFRlbXBsYXRlPlxuICA8c2t5LWNoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvclxuICAgICpuZ0lmPVwiY2hhcmFjdGVyTGltaXQgIT09IHVuZGVmaW5lZFwiXG4gICAgW2NoYXJhY3RlckNvdW50XT1cImNvbnRyb2xEaXI/LnZhbHVlPy5sZW5ndGggfHwgMFwiXG4gICAgW2NoYXJhY3RlckNvdW50TGltaXRdPVwiY2hhcmFjdGVyTGltaXRcIlxuICAvPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnRcbiAgICBzZWxlY3Q9XCJpbnB1dCxzZWxlY3QsLnNreS1mb3JtLWNvbnRyb2w6bm90KHRleHRhcmVhKSxza3ktdGV4dC1lZGl0b3JcIlxuICAvPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJob3N0SW5wdXRUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG9zdElucHV0VGVtcGxhdGVcIlxuICAvPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJ0ZXh0YXJlYVwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnNMZWZ0VGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtYnRuLnNreS1pbnB1dC1ib3gtYnRuLWxlZnRcIiAvPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJob3N0QnV0dG9uc0xlZnRUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG9zdEJ1dHRvbnNMZWZ0VGVtcGxhdGVcIlxuICAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50XG4gICAgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1idG46bm90KC5za3ktaW5wdXQtYm94LWJ0bi1sZWZ0KTpub3QoLnNreS1pbnB1dC1ib3gtYnRuLWluc2V0KVwiXG4gIC8+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cImhvc3RCdXR0b25zVGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RCdXR0b25zVGVtcGxhdGVcIlxuICAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zSW5zZXRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1pbnB1dC1ncm91cC1idG4uc2t5LWlucHV0LWJveC1idG4taW5zZXRcIiAvPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJob3N0QnV0dG9uc0luc2V0VGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvc3RCdXR0b25zSW5zZXRUZW1wbGF0ZVwiXG4gIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ljb25zSW5zZXRUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ib3gtaWNvbi1pbnNldC13cmFwcGVyXCIgKGNsaWNrKT1cIm9uSW5zZXRJY29uQ2xpY2soKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktaW5wdXQtZ3JvdXAtaWNvbi5za3ktaW5wdXQtYm94LWljb24taW5zZXRcIiAvPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiaG9zdEljb25zSW5zZXRUZW1wbGF0ZVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJob3N0SWNvbnNJbnNldFRlbXBsYXRlXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvbnNJbnNldExlZnRUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWJveC1pY29uLWluc2V0LWxlZnQtd3JhcHBlclwiXG4gICAgKGNsaWNrKT1cIm9uSW5zZXRJY29uQ2xpY2soKVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWlucHV0LWdyb3VwLWljb24uc2t5LWlucHV0LWJveC1pY29uLWluc2V0LWxlZnRcIiAvPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiaG9zdEljb25zSW5zZXRMZWZ0VGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG9zdEljb25zSW5zZXRMZWZ0VGVtcGxhdGVcIlxuICAgIC8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlcnJvckxhYmVsVGVtcGxhdGU+XG4gIDxza3ktZm9ybS1lcnJvcnNcbiAgICBbaWRdPVwiZXJyb3JJZFwiXG4gICAgW2Vycm9yc109XCJjb250cm9sRGlyPy5lcnJvcnNcIlxuICAgIFtsYWJlbFRleHRdPVwibGFiZWxUZXh0XCJcbiAgICBbc2hvd0Vycm9yc109XCJjb250cm9sRGlyPy50b3VjaGVkIHx8IGNvbnRyb2xEaXI/LmRpcnR5XCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktZXJyb3ItbGFiZWwsLnNreS1lcnJvci1pbmRpY2F0b3JcIiAvPlxuICA8L3NreS1mb3JtLWVycm9ycz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGludFRleHRUZW1wbGF0ZT5cbiAgPGRpdlxuICAgICpuZ0lmPVwiaGludFRleHRcIlxuICAgIGNsYXNzPVwic2t5LWZvbnQtZGVlbXBoYXNpemVkIHNreS1pbnB1dC1ib3gtaGludC10ZXh0XCJcbiAgICBbaWRdPVwiaGludFRleHRJZFwiXG4gID5cbiAgICB7eyBoaW50VGV4dCB9fVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -8,20 +8,20 @@ import { SkyInputBoxHelpInlineComponent } from './input-box-help-inline.componen
8
8
  import { SkyInputBoxComponent } from './input-box.component';
9
9
  import * as i0 from "@angular/core";
10
10
  export class SkyInputBoxModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyInputBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.9", ngImport: i0, type: SkyInputBoxModule, declarations: [SkyInputBoxComponent], imports: [CommonModule,
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyInputBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: SkyInputBoxModule, declarations: [SkyInputBoxComponent], imports: [CommonModule,
13
13
  SkyCharacterCounterModule,
14
14
  SkyFormErrorsComponent,
15
15
  SkyInputBoxControlDirective,
16
16
  SkyInputBoxHelpInlineComponent,
17
17
  SkyThemeModule], exports: [SkyInputBoxComponent, SkyInputBoxControlDirective] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyInputBoxModule, imports: [CommonModule,
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyInputBoxModule, imports: [CommonModule,
19
19
  SkyCharacterCounterModule,
20
20
  SkyFormErrorsComponent,
21
21
  SkyInputBoxHelpInlineComponent,
22
22
  SkyThemeModule] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyInputBoxModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyInputBoxModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  declarations: [SkyInputBoxComponent],
@@ -41,10 +41,10 @@ export class SkyRadioGroupIdService {
41
41
  #emitRadioIds() {
42
42
  this.#radioIds$.next(Array.from(this.#radioIds.values()));
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyRadioGroupIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyRadioGroupIdService }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyRadioGroupIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyRadioGroupIdService }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyRadioGroupIdService, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyRadioGroupIdService, decorators: [{
48
48
  type: Injectable
49
- }], ctorParameters: function () { return []; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBRW5EOzs7R0FHRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxDQUFzQjtJQUMvQixVQUFVLENBQTRCO0lBQ3RDLFlBQVksQ0FBdUI7SUFFbkM7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsRUFBVSxFQUFFLGNBQXNCO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxjQUFjLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVLENBQUMsRUFBVTtRQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQXhDVSxzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVHJhY2tzIHRoZSBlbGVtZW50IElEcyBmb3IgYWxsIHJhZGlvcyB3aXRoaW4gYSByYWRpbyBncm91cC5cbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9Hcm91cElkU2VydmljZSB7XG4gIHB1YmxpYyBnZXQgcmFkaW9JZHMoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLiNyYWRpb0lkc09icztcbiAgfVxuXG4gICNyYWRpb0lkczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgI3JhZGlvSWRzJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPjtcbiAgI3JhZGlvSWRzT2JzOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNyYWRpb0lkcyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLiNyYWRpb0lkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG4gICAgdGhpcy4jcmFkaW9JZHNPYnMgPSB0aGlzLiNyYWRpb0lkcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlcyBhIHJhZGlvIGlucHV0J3MgSUQgd2l0aCBpdHMgcGFyZW50IHJhZGlvIGdyb3VwLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgQSB1bmlxdWUgSUQgZm9yIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dEVsZW1lbnRJZCBUaGUgSUQgYXBwbGllZCB0byB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcihpZDogc3RyaW5nLCBpbnB1dEVsZW1lbnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNyYWRpb0lkcy5oYXMoaWQpIHx8IHRoaXMuI3JhZGlvSWRzLmdldChpZCkgIT09IGlucHV0RWxlbWVudElkKSB7XG4gICAgICB0aGlzLiNyYWRpb0lkcy5zZXQoaWQsIGlucHV0RWxlbWVudElkKTtcbiAgICAgIHRoaXMuI2VtaXRSYWRpb0lkcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhc3NvY2lhdGVzIGEgcmFkaW8gaW5wdXQncyBJRCB3aXRoIGl0cyBwYXJlbnQgcmFkaW8gZ3JvdXAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBUaGUgSUQgdXNlZCB0byByZWdpc3RlciB0aGUgcmFkaW8gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXIoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNyYWRpb0lkcy5oYXMoaWQpKSB7XG4gICAgICB0aGlzLiNyYWRpb0lkcy5kZWxldGUoaWQpO1xuICAgICAgdGhpcy4jZW1pdFJhZGlvSWRzKCk7XG4gICAgfVxuICB9XG5cbiAgI2VtaXRSYWRpb0lkcygpOiB2b2lkIHtcbiAgICB0aGlzLiNyYWRpb0lkcyQubmV4dChBcnJheS5mcm9tKHRoaXMuI3JhZGlvSWRzLnZhbHVlcygpKSk7XG4gIH1cbn1cbiJdfQ==
49
+ }], ctorParameters: () => [] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy9zcmMvbGliL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBRW5EOzs7R0FHRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsU0FBUyxDQUFzQjtJQUMvQixVQUFVLENBQTRCO0lBQ3RDLFlBQVksQ0FBdUI7SUFFbkM7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsRUFBVSxFQUFFLGNBQXNCO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBeENVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUcmFja3MgdGhlIGVsZW1lbnQgSURzIGZvciBhbGwgcmFkaW9zIHdpdGhpbiBhIHJhZGlvIGdyb3VwLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlIHtcbiAgcHVibGljIGdldCByYWRpb0lkcygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuI3JhZGlvSWRzT2JzO1xuICB9XG5cbiAgI3JhZGlvSWRzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAjcmFkaW9JZHMkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+O1xuICAjcmFkaW9JZHNPYnM6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3JhZGlvSWRzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMuI3JhZGlvSWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcbiAgICB0aGlzLiNyYWRpb0lkc09icyA9IHRoaXMuI3JhZGlvSWRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGVzIGEgcmFkaW8gaW5wdXQncyBJRCB3aXRoIGl0cyBwYXJlbnQgcmFkaW8gZ3JvdXAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBBIHVuaXF1ZSBJRCBmb3IgdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0RWxlbWVudElkIFRoZSBJRCBhcHBsaWVkIHRvIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyKGlkOiBzdHJpbmcsIGlucHV0RWxlbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3JhZGlvSWRzLmhhcyhpZCkgfHwgdGhpcy4jcmFkaW9JZHMuZ2V0KGlkKSAhPT0gaW5wdXRFbGVtZW50SWQpIHtcbiAgICAgIHRoaXMuI3JhZGlvSWRzLnNldChpZCwgaW5wdXRFbGVtZW50SWQpO1xuICAgICAgdGhpcy4jZW1pdFJhZGlvSWRzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERpc2Fzc29jaWF0ZXMgYSByYWRpbyBpbnB1dCdzIElEIHdpdGggaXRzIHBhcmVudCByYWRpbyBncm91cC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIFRoZSBJRCB1c2VkIHRvIHJlZ2lzdGVyIHRoZSByYWRpbyBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3JhZGlvSWRzLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuI3JhZGlvSWRzLmRlbGV0ZShpZCk7XG4gICAgICB0aGlzLiNlbWl0UmFkaW9JZHMoKTtcbiAgICB9XG4gIH1cblxuICAjZW1pdFJhZGlvSWRzKCk6IHZvaWQge1xuICAgIHRoaXMuI3JhZGlvSWRzJC5uZXh0KEFycmF5LmZyb20odGhpcy4jcmFkaW9JZHMudmFsdWVzKCkpKTtcbiAgfVxufVxuIl19
@@ -231,17 +231,17 @@ export class SkyRadioGroupComponent {
231
231
  this.#updateRadioButtonTabIndexes();
232
232
  this.#updateRadioButtonDisabled();
233
233
  }
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyRadioGroupIdService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SkyRadioGroupComponent, selector: "sky-radio-group", inputs: { ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", disabled: "disabled", name: "name", required: "required", value: "value", tabIndex: "tabIndex" }, providers: [SkyRadioGroupIdService], queries: [{ propertyName: "radios", predicate: SkyRadioComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content />\n</div>\n" }); }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyRadioGroupIdService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
235
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: SkyRadioGroupComponent, selector: "sky-radio-group", inputs: { ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", disabled: "disabled", name: "name", required: "required", value: "value", tabIndex: "tabIndex" }, providers: [SkyRadioGroupIdService], queries: [{ propertyName: "radios", predicate: SkyRadioComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content />\n</div>\n" }); }
236
236
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SkyRadioGroupComponent, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: SkyRadioGroupComponent, decorators: [{
238
238
  type: Component,
239
239
  args: [{ selector: 'sky-radio-group', providers: [SkyRadioGroupIdService], template: "<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content />\n</div>\n" }]
240
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyRadioGroupIdService }, { type: i2.NgControl, decorators: [{
240
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyRadioGroupIdService }, { type: i2.NgControl, decorators: [{
241
241
  type: Self
242
242
  }, {
243
243
  type: Optional
244
- }] }]; }, propDecorators: { ariaLabelledBy: [{
244
+ }] }], propDecorators: { ariaLabelledBy: [{
245
245
  type: Input
246
246
  }], ariaLabel: [{
247
247
  type: Input
@@ -259,4 +259,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
259
259
  type: ContentChildren,
260
260
  args: [SkyRadioComponent, { descendants: true }]
261
261
  }] } });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUd0RCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFckI7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQzs7OztPQUlHO0lBQ0gsSUFDVyxRQUFRLENBQUMsS0FBMEI7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLGdCQUFnQixFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7WUFDbkMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsSUFBVyxR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LEVBQUUsQ0FBQztJQUNwQyxDQUFDOzhHQTlSVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixnTkFGdEIsQ0FBQyxzQkFBc0IsQ0FBQyxpREFzSGxCLGlCQUFpQixnREN4SnBDLHlTQVdBOzsyRkR5QmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQixhQUVoQixDQUFDLHNCQUFzQixDQUFDOzswQkE0SWhDLElBQUk7OzBCQUFJLFFBQVE7NENBL0haLGNBQWM7c0JBRHBCLEtBQUs7Z0JBV0MsU0FBUztzQkFEZixLQUFLO2dCQVNLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBb0JLLElBQUk7c0JBRGQsS0FBSztnQkFzQkMsUUFBUTtzQkFEZCxLQUFLO2dCQVVLLEtBQUs7c0JBRGYsS0FBSztnQkFvQkssUUFBUTtzQkFEbEIsS0FBSztnQkFxQkMsTUFBTTtzQkFEWixlQUFlO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuXG5pbXBvcnQgeyBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlIH0gZnJvbSAnLi9yYWRpby1ncm91cC1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIE9yZ2FuaXplcyByYWRpbyBidXR0b25zIGludG8gYSBncm91cC4gSXQgaXMgcmVxdWlyZWQgZm9yIHJhZGlvXG4gKiBidXR0b25zIG9uIEFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMsIGFuZCB3ZSByZWNvbW1lbmQgdXNpbmcgaXQgd2l0aCBhbGwgcmFkaW8gYnV0dG9ucy5cbiAqIE9uIEFuZ3VsYXIgZm9ybXMsIHRoZSBjb21wb25lbnQgbWFuYWdlcyB0aGUgc2VsZWN0ZWQgdmFsdWVzIGFuZCBrZWVwcyB0aGUgZm9ybXMgdXAtdG8tZGF0ZS5cbiAqIFdoZW4gdXNlcnMgc2VsZWN0IGEgcmFkaW8gYnV0dG9uLCBpdHMgdmFsdWUgaXMgZHJpdmVuIHRocm91Z2ggYW4gYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcmFkaW8tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9Hcm91cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIEhUTUwgZWxlbWVudCBJRCBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVsc1xuICAgKiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLiBUaGlzIHNldHMgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCdzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGAgaW5zdGVhZC5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsbGVkYnkpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLiBUaGlzIHNldHMgdGhlXG4gICAqIHJhZGlvIGJ1dHRvbiBncm91cCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgYXJpYUxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtbGFiZWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGlucHV0IG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBuZXdEaXNhYmxlZFN0YXRlID0gU2t5Rm9ybXNVdGlsaXR5LmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuI19kaXNhYmxlZCAhPT0gbmV3RGlzYWJsZWRTdGF0ZSkge1xuICAgICAgdGhpcy4jX2Rpc2FibGVkID0gbmV3RGlzYWJsZWRTdGF0ZTtcbiAgICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgZm9yIHRoZSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMgdGhhdCB0aGUgY29tcG9uZW50IGdyb3VwcyB0b2dldGhlci5cbiAgICogVGhpcyBwcm9wZXJ0eSBvdmVyd3JpdGVzIHRoZSBkZXByZWNhdGVkIGBuYW1lYCBwcm9wZXJ0eSBvbiBpbmRpdmlkdWFsIGBza3ktcmFkaW9gIGVsZW1lbnRzLFxuICAgKiBhbmQgaXQgaXMgcmVxdWlyZWQgdW5sZXNzIHRoZSBgbmFtZWAgcHJvcGVydHkgaXMgc2V0IG9uIGluZGl2aWR1YWwgYHNreS1yYWRpb2AgZWxlbWVudHMuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI19uYW1lID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI19uYW1lID0gdGhpcy4jZGVmYXVsdE5hbWU7XG4gICAgfVxuICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uTmFtZXMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX25hbWU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgaXMgcmVxdWlyZWQgZm9yIGZvcm0gdmFsaWRhdGlvbi5cbiAgICogV2hlbiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLCB0aGUgY29tcG9uZW50IGFkZHMgYGFyaWEtcmVxdWlyZWRgIGFuZCBgcmVxdWlyZWRgXG4gICAqIGF0dHJpYnV0ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnQgc28gdGhhdCBmb3JtcyBkaXNwbGF5IGFuIGludmFsaWQgc3RhdGUgdW50aWwgdGhlIGlucHV0IGVsZW1lbnRcbiAgICogaXMgY29tcGxldGUuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1yZXF1aXJlZGAgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtcmVxdWlyZWQpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gYnV0dG9uIHRvIHNlbGVjdCBieSBkZWZhdWx0IHdoZW4gdGhlIGdyb3VwIGxvYWRzLlxuICAgKiBUaGUgdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlIGB2YWx1ZWAgcHJvcGVydHkgb2YgYW4gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50IHdpdGhpbiB0aGVcbiAgICogZ3JvdXAuXG4gICAqL1xuICAvLyBUT0RPOiBMb29rIGludG8gbW9yZSBzdHJvbmdseSB0eXBpbmcgaW4gYSBicmVha2luZyBjaGFuZ2VcbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgaXNOZXdWYWx1ZSA9IHZhbHVlICE9PSB0aGlzLiNjb250cm9sVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHRoaXMuI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggZm9yIGFsbCB0aGUgcmFkaW8gYnV0dG9ucyBpbiB0aGUgZ3JvdXAuIElmIHRoZSBpbmRleCBpcyBub3QgZGVmaW5lZCxcbiAgICogdGhlIGluZGljZXMgZm9yIGluZGl2aWR1YWwgcmFkaW8gYnV0dG9ucyBhcmUgc2V0IHRvIHRoZWlyIHBvc2l0aW9ucyBvbiBsb2FkLlxuICAgKiBUaGlzIHByb3BlcnR5IHN1cHBvcnRzIGFjY2Vzc2liaWxpdHkgYnkgcGxhY2luZyBmb2N1cyBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHJhZGlvXG4gICAqIGJ1dHRvbi4gSWYgbm8gcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLCBpdCBwbGFjZXMgZm9jdXMgb24gdGhlIGZpcnN0IG9yIGxhc3QgYnV0dG9uXG4gICAqIGRlcGVuZGluZyBvbiBob3cgdXNlcnMgbmF2aWdhdGUgdG8gdGhlIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLiNfdGFiSW5kZXggIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLiNfdGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uVGFiSW5kZXhlcygpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdXIgcmFkaW8gY29tcG9uZW50cyBhcmUgdXN1YWxseSBpbXBsZW1lbnRlZCB1c2luZyBhbiB1bm9yZGVyZWQgbGlzdC4gVGhpcyBpcyBhblxuICAgKiBhY2Nlc3NpYmlsaXR5IHZpb2xhdGlvbiBiZWNhdXNlIHRoZSB1bm9yZGVyZWQgbGlzdCBoYXMgYW4gaW1wbGljaXQgcm9sZSB3aGljaFxuICAgKiBpbnRlcnJ1cHRzIHRoZSAncmFkaW9ncm91cCcgYW5kICdyYWRpbycgcmVsYXRpb25zaGlwLiBUbyBjb3JyZWN0IHRoaXMsIHdlIGNhbiBzZXQgdGhlXG4gICAqIHJhZGlvIGdyb3VwJ3MgJ2FyaWEtb3ducycgYXR0cmlidXRlIHRvIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgcmFkaW8gSURzLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtb3duc2AgYXR0cmlidXRlLCBzZWUgdGhlIFtXQUktQVJJQSBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI2FyaWEtb3ducyksIGFuZCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYHJhZGlvYCByb2xlLCBzZWUgW2l0cyBkZWZpbml0aW9uXShodHRwczovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvI3JhZGlvKS5cbiAgICovXG4gIHB1YmxpYyBhcmlhT3duczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2t5UmFkaW9Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIHJhZGlvczogUXVlcnlMaXN0PFNreVJhZGlvQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcblxuICAjY29udHJvbFZhbHVlOiBhbnk7XG5cbiAgI2RlZmF1bHROYW1lID0gYHNreS1yYWRpby1ncm91cC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAjX25hbWUgPSAnJztcblxuICAjX3RhYkluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI3JhZGlvR3JvdXBJZFN2YzogU2t5UmFkaW9Hcm91cElkU2VydmljZTtcbiAgI25nQ29udHJvbDogTmdDb250cm9sIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICByYWRpb0dyb3VwSWRTdmM6IFNreVJhZGlvR3JvdXBJZFNlcnZpY2UsXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI3JhZGlvR3JvdXBJZFN2YyA9IHJhZGlvR3JvdXBJZFN2YztcbiAgICB0aGlzLiNuZ0NvbnRyb2wgPSBuZ0NvbnRyb2w7XG4gICAgdGhpcy5uYW1lID0gdGhpcy4jZGVmYXVsdE5hbWU7XG5cbiAgICB0aGlzLiNyYWRpb0dyb3VwSWRTdmMucmFkaW9JZHNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGlkcykgPT4ge1xuICAgICAgICB0aGlzLmFyaWFPd25zID0gaWRzLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIExldCBjaGlsZCByYWRpbyBjb21wb25lbnRzIHJlbmRlciBiZWZvcmUgdXBkYXRpbmcuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNyZXNldFJhZGlvQnV0dG9ucygpO1xuICAgIH0pO1xuXG4gICAgLy8gV2F0Y2ggZm9yIHJhZGlvIHNlbGVjdGlvbnMuXG4gICAgdGhpcy53YXRjaEZvclNlbGVjdGlvbnMoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBXYWl0IGZvciBjaGlsZCByYWRpbyBjb21wb25lbnRzIHRvIGZpbmlzaCBhbnkgcmVuZGVyaW5nIHVwZGF0ZXMuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3Jlc2V0UmFkaW9CdXR0b25zKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byB0aGUgbmV3IHJhZGlvIGJ1dHRvbnNcbiAgICAgICAgdGhpcy53YXRjaEZvclNlbGVjdGlvbnMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI25nQ29udHJvbCkge1xuICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBmb3IgYW55b25lIHN0aWxsIHVzaW5nIFZhbGlkYXRvcnMuUmVxdWlyZWQuXG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fCBTa3lGb3Jtc1V0aWxpdHkuaGFzUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuI25nQ29udHJvbCk7XG5cbiAgICAgIC8vIEF2b2lkIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdhdGNoRm9yU2VsZWN0aW9ucygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8uY2hhbmdlXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZTogU2t5UmFkaW9DaGFuZ2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI29uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGNoYW5nZS52YWx1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgcmFkaW8uYmx1ci5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBpc05ld1ZhbHVlID0gdmFsdWUgIT09IHRoaXMuI2NvbnRyb2xWYWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGlzTmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuI2NvbnRyb2xWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy4jdXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGNvbnRyb2wuIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fTtcblxuICAjdXBkYXRlUmFkaW9CdXR0b25EaXNhYmxlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PlxuICAgICAgICByYWRpby5zZXRHcm91cERpc2FibGVkU3RhdGUodGhpcy5kaXNhYmxlZCksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVSYWRpb0J1dHRvblRhYkluZGV4ZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgICByYWRpby5ncm91cFRhYkluZGV4ID0gdGhpcy50YWJJbmRleDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJhZGlvcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICByYWRpby5jaGVja2VkID0gdGhpcy4jY29udHJvbFZhbHVlID09PSByYWRpby52YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gICNyZXNldFJhZGlvQnV0dG9ucygpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk7XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25UYWJJbmRleGVzKCk7XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25EaXNhYmxlZCgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXJhZGlvLWdyb3VwXCJcbiAgcm9sZT1cInJhZGlvZ3JvdXBcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gIFthdHRyLmFyaWEtb3duc109XCJhcmlhT3duc1wiXG4gIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyB0cnVlIDogbnVsbFwiXG4gIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkID8gJycgOiBudWxsXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuIl19
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUd0RCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFckI7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sc0JBQXNCO0lBdUJqQzs7OztPQUlHO0lBQ0gsSUFDVyxRQUFRLENBQUMsS0FBMEI7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztZQUNuQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJ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QztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0E5UlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsZ05BRnRCLENBQUMsc0JBQXNCLENBQUMsaURBc0hsQixpQkFBaUIsZ0RDeEpwQyx5U0FXQTs7MkZEeUJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFFaEIsQ0FBQyxzQkFBc0IsQ0FBQzs7MEJBNEloQyxJQUFJOzswQkFBSSxRQUFRO3lDQS9IWixjQUFjO3NCQURwQixLQUFLO2dCQVdDLFNBQVM7c0JBRGYsS0FBSztnQkFTSyxRQUFRO3NCQURsQixLQUFLO2dCQW9CSyxJQUFJO3NCQURkLEtBQUs7Z0JBc0JDLFFBQVE7c0JBRGQsS0FBSztnQkFVSyxLQUFLO3NCQURmLEtBQUs7Z0JBb0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBcUJDLE1BQU07c0JBRFosZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSB9IGZyb20gJy4uL3NoYXJlZC9mb3Jtcy11dGlsaXR5JztcblxuaW1wb3J0IHsgU2t5UmFkaW9Hcm91cElkU2VydmljZSB9IGZyb20gJy4vcmFkaW8tZ3JvdXAtaWQuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJhZGlvQ2hhbmdlIH0gZnJvbSAnLi90eXBlcy9yYWRpby1jaGFuZ2UnO1xuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBPcmdhbml6ZXMgcmFkaW8gYnV0dG9ucyBpbnRvIGEgZ3JvdXAuIEl0IGlzIHJlcXVpcmVkIGZvciByYWRpb1xuICogYnV0dG9ucyBvbiBBbmd1bGFyIHJlYWN0aXZlIGZvcm1zLCBhbmQgd2UgcmVjb21tZW5kIHVzaW5nIGl0IHdpdGggYWxsIHJhZGlvIGJ1dHRvbnMuXG4gKiBPbiBBbmd1bGFyIGZvcm1zLCB0aGUgY29tcG9uZW50IG1hbmFnZXMgdGhlIHNlbGVjdGVkIHZhbHVlcyBhbmQga2VlcHMgdGhlIGZvcm1zIHVwLXRvLWRhdGUuXG4gKiBXaGVuIHVzZXJzIHNlbGVjdCBhIHJhZGlvIGJ1dHRvbiwgaXRzIHZhbHVlIGlzIGRyaXZlbiB0aHJvdWdoIGFuIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiB0aGUgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJhZGlvLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5UmFkaW9Hcm91cElkU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvR3JvdXBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHNcbiAgICogdGhlIHJhZGlvIGJ1dHRvbiBncm91cC4gVGhpcyBzZXRzIHRoZSByYWRpbyBidXR0b24gZ3JvdXAncyBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBhcmlhTGFiZWxgIGluc3RlYWQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbGxlZGJ5KS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIHJhZGlvIGJ1dHRvbiBncm91cC4gVGhpcyBzZXRzIHRoZVxuICAgKiByYWRpbyBidXR0b24gZ3JvdXAncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlIHRvIHByb3ZpZGUgYSB0ZXh0IGVxdWl2YWxlbnQgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGxlZEJ5YCBpbnN0ZWFkLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbmV3RGlzYWJsZWRTdGF0ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLiNfZGlzYWJsZWQgIT09IG5ld0Rpc2FibGVkU3RhdGUpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IG5ld0Rpc2FibGVkU3RhdGU7XG4gICAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbkRpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zIHRoYXQgdGhlIGNvbXBvbmVudCBncm91cHMgdG9nZXRoZXIuXG4gICAqIFRoaXMgcHJvcGVydHkgb3ZlcndyaXRlcyB0aGUgZGVwcmVjYXRlZCBgbmFtZWAgcHJvcGVydHkgb24gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50cyxcbiAgICogYW5kIGl0IGlzIHJlcXVpcmVkIHVubGVzcyB0aGUgYG5hbWVgIHByb3BlcnR5IGlzIHNldCBvbiBpbmRpdmlkdWFsIGBza3ktcmFkaW9gIGVsZW1lbnRzLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfbmFtZSA9IHRoaXMuI2RlZmF1bHROYW1lO1xuICAgIH1cbiAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk7XG4gIH1cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIHJlcXVpcmVkIGZvciBmb3JtIHZhbGlkYXRpb24uXG4gICAqIFdoZW4geW91IHNldCB0aGlzIHByb3BlcnR5IHRvIGB0cnVlYCwgdGhlIGNvbXBvbmVudCBhZGRzIGBhcmlhLXJlcXVpcmVkYCBhbmQgYHJlcXVpcmVkYFxuICAgKiBhdHRyaWJ1dGVzIHRvIHRoZSBpbnB1dCBlbGVtZW50IHNvIHRoYXQgZm9ybXMgZGlzcGxheSBhbiBpbnZhbGlkIHN0YXRlIHVudGlsIHRoZSBpbnB1dCBlbGVtZW50XG4gICAqIGlzIGNvbXBsZXRlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtcmVxdWlyZWRgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLXJlcXVpcmVkKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGJ1dHRvbiB0byBzZWxlY3QgYnkgZGVmYXVsdCB3aGVuIHRoZSBncm91cCBsb2Fkcy5cbiAgICogVGhlIHZhbHVlIGNvcnJlc3BvbmRzIHRvIHRoZSBgdmFsdWVgIHByb3BlcnR5IG9mIGFuIGluZGl2aWR1YWwgYHNreS1yYWRpb2AgZWxlbWVudCB3aXRoaW4gdGhlXG4gICAqIGdyb3VwLlxuICAgKi9cbiAgLy8gVE9ETzogTG9vayBpbnRvIG1vcmUgc3Ryb25nbHkgdHlwaW5nIGluIGEgYnJlYWtpbmcgY2hhbmdlXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy4jY29udHJvbFZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLiN1cGRhdGVDaGVja2VkUmFkaW9Gcm9tVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluZGV4IGZvciBhbGwgdGhlIHJhZGlvIGJ1dHRvbnMgaW4gdGhlIGdyb3VwLiBJZiB0aGUgaW5kZXggaXMgbm90IGRlZmluZWQsXG4gICAqIHRoZSBpbmRpY2VzIGZvciBpbmRpdmlkdWFsIHJhZGlvIGJ1dHRvbnMgYXJlIHNldCB0byB0aGVpciBwb3NpdGlvbnMgb24gbG9hZC5cbiAgICogVGhpcyBwcm9wZXJ0eSBzdXBwb3J0cyBhY2Nlc3NpYmlsaXR5IGJ5IHBsYWNpbmcgZm9jdXMgb24gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCByYWRpb1xuICAgKiBidXR0b24uIElmIG5vIHJhZGlvIGJ1dHRvbiBpcyBzZWxlY3RlZCwgaXQgcGxhY2VzIGZvY3VzIG9uIHRoZSBmaXJzdCBvciBsYXN0IGJ1dHRvblxuICAgKiBkZXBlbmRpbmcgb24gaG93IHVzZXJzIG5hdmlnYXRlIHRvIHRoZSByYWRpbyBidXR0b24gZ3JvdXAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRhYkluZGV4KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy4jX3RhYkluZGV4ICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy4jX3RhYkluZGV4ID0gdmFsdWU7XG4gICAgICB0aGlzLiN1cGRhdGVSYWRpb0J1dHRvblRhYkluZGV4ZXMoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfdGFiSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogT3VyIHJhZGlvIGNvbXBvbmVudHMgYXJlIHVzdWFsbHkgaW1wbGVtZW50ZWQgdXNpbmcgYW4gdW5vcmRlcmVkIGxpc3QuIFRoaXMgaXMgYW5cbiAgICogYWNjZXNzaWJpbGl0eSB2aW9sYXRpb24gYmVjYXVzZSB0aGUgdW5vcmRlcmVkIGxpc3QgaGFzIGFuIGltcGxpY2l0IHJvbGUgd2hpY2hcbiAgICogaW50ZXJydXB0cyB0aGUgJ3JhZGlvZ3JvdXAnIGFuZCAncmFkaW8nIHJlbGF0aW9uc2hpcC4gVG8gY29ycmVjdCB0aGlzLCB3ZSBjYW4gc2V0IHRoZVxuICAgKiByYWRpbyBncm91cCdzICdhcmlhLW93bnMnIGF0dHJpYnV0ZSB0byBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIHJhZGlvIElEcy5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLW93bnNgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLW93bnMpLCBhbmQgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGByYWRpb2Agcm9sZSwgc2VlIFtpdHMgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNyYWRpbykuXG4gICAqL1xuICBwdWJsaWMgYXJpYU93bnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAQ29udGVudENoaWxkcmVuKFNreVJhZGlvQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHB1YmxpYyByYWRpb3M6IFF1ZXJ5TGlzdDxTa3lSYWRpb0NvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgI2NvbnRyb2xWYWx1ZTogYW55O1xuXG4gICNkZWZhdWx0TmFtZSA9IGBza3ktcmFkaW8tZ3JvdXAtJHtuZXh0VW5pcXVlSWQrK31gO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgI19uYW1lID0gJyc7XG5cbiAgI190YWJJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNyYWRpb0dyb3VwSWRTdmM6IFNreVJhZGlvR3JvdXBJZFNlcnZpY2U7XG4gICNuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcmFkaW9Hcm91cElkU3ZjOiBTa3lSYWRpb0dyb3VwSWRTZXJ2aWNlLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIGlmIChuZ0NvbnRyb2wpIHtcbiAgICAgIG5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNyYWRpb0dyb3VwSWRTdmMgPSByYWRpb0dyb3VwSWRTdmM7XG4gICAgdGhpcy4jbmdDb250cm9sID0gbmdDb250cm9sO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuI2RlZmF1bHROYW1lO1xuXG4gICAgdGhpcy4jcmFkaW9Hcm91cElkU3ZjLnJhZGlvSWRzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChpZHMpID0+IHtcbiAgICAgICAgdGhpcy5hcmlhT3ducyA9IGlkcy5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBMZXQgY2hpbGQgcmFkaW8gY29tcG9uZW50cyByZW5kZXIgYmVmb3JlIHVwZGF0aW5nLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jcmVzZXRSYWRpb0J1dHRvbnMoKTtcbiAgICB9KTtcblxuICAgIC8vIFdhdGNoIGZvciByYWRpbyBzZWxlY3Rpb25zLlxuICAgIHRoaXMud2F0Y2hGb3JTZWxlY3Rpb25zKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gV2FpdCBmb3IgY2hpbGQgcmFkaW8gY29tcG9uZW50cyB0byBmaW5pc2ggYW55IHJlbmRlcmluZyB1cGRhdGVzLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNyZXNldFJhZGlvQnV0dG9ucygpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIG5ldyByYWRpbyBidXR0b25zXG4gICAgICAgIHRoaXMud2F0Y2hGb3JTZWxlY3Rpb25zKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNuZ0NvbnRyb2wpIHtcbiAgICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHN1cHBvcnQgZm9yIGFueW9uZSBzdGlsbCB1c2luZyBWYWxpZGF0b3JzLlJlcXVpcmVkLlxuICAgICAgdGhpcy5yZXF1aXJlZCA9XG4gICAgICAgIHRoaXMucmVxdWlyZWQgfHwgU2t5Rm9ybXNVdGlsaXR5Lmhhc1JlcXVpcmVkVmFsaWRhdGlvbih0aGlzLiNuZ0NvbnRyb2wpO1xuXG4gICAgICAvLyBBdm9pZCBhbiBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yLlxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3YXRjaEZvclNlbGVjdGlvbnMoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgIHJhZGlvLmNoYW5nZVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChjaGFuZ2U6IFNreVJhZGlvQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2UudmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHJhZGlvLmJsdXIucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jb25Ub3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgaXNOZXdWYWx1ZSA9IHZhbHVlICE9PSB0aGlzLiNjb250cm9sVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLiNjb250cm9sVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI3VwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBjb250cm9sLiBJbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNvbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgI29uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge307XG5cbiAgI3VwZGF0ZVJhZGlvQnV0dG9uRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9zKSB7XG4gICAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT5cbiAgICAgICAgcmFkaW8uc2V0R3JvdXBEaXNhYmxlZFN0YXRlKHRoaXMuZGlzYWJsZWQpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yYWRpb3MpIHtcbiAgICAgIHRoaXMucmFkaW9zLmZvckVhY2goKHJhZGlvKSA9PiB7XG4gICAgICAgIHJhZGlvLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlUmFkaW9CdXR0b25UYWJJbmRleGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8uZ3JvdXBUYWJJbmRleCA9IHRoaXMudGFiSW5kZXg7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yYWRpb3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJhZGlvcy5mb3JFYWNoKChyYWRpbykgPT4ge1xuICAgICAgcmFkaW8uY2hlY2tlZCA9IHRoaXMuI2NvbnRyb2xWYWx1ZSA9PT0gcmFkaW8udmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICAjcmVzZXRSYWRpb0J1dHRvbnMoKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk7XG4gICAgdGhpcy4jdXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uVGFiSW5kZXhlcygpO1xuICAgIHRoaXMuI3VwZGF0ZVJhZGlvQnV0dG9uRGlzYWJsZWQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1yYWRpby1ncm91cFwiXG4gIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkID8gdHJ1ZSA6IG51bGxcIlxuICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCA/ICcnIDogbnVsbFwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==