@norwegian/core-components 7.3.2 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -289,14 +289,14 @@ export class SelectComponent extends NasComponentBase {
289
289
  selectTitleWrapper.style.display = 'none';
290
290
  }
291
291
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SelectComponent, selector: "nas-select", inputs: { id: "id", inline: "inline", label: "label", block: "block", spaceless: "spaceless", stretch: "stretch", compact: "compact", simple: "simple", light: "light", fill: "fill", error: "error", errorMessage: "errorMessage", disabled: "disabled", autogrow: "autogrow", cssClass: "cssClass", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", options: "options", selectedValue: "selectedValue", selected: "selected" }, outputs: { selectedChange: "selectedChange", keyDownEvent: "keyDownEvent" }, queries: [{ propertyName: "optionComponents", predicate: OptionComponent }, { propertyName: "optgroupComponents", predicate: OptgroupComponent }], viewQueries: [{ propertyName: "selectTitleWrapper", first: true, predicate: ["selectTitleWrapper"], descendants: true, static: true }, { propertyName: "errorMessageWrapper", first: true, predicate: ["errorMessageWrapper"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label for=\"getSelectId()\" *ngIf=\"label && !inline\">\n <span [nasClass]=\"getClass('label')\">{{label}}</span>\n</label>\n<div [nasClass]=\"getClasses()\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <select #select [id]=\"selectId\" [attr.disabled]=\"disabled\" [attr.aria-label]=\"'select'\"\n [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\" [formControl]=\"selectControl\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n <ng-template #reactiveForm>\n <ng-container [formGroup]=\"nasFormGroup\">\n <select #select [formControlName]=\"nasFormControlName\" [id]=\"selectId\" [attr.disabled]=\"disabled\"\n [attr.aria-label]=\"'select'\" [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n </ng-template>\n <p [nasClass]=\"getClass('error')\" #errorMessageWrapper *ngIf=\"exists(error) && errorMessage\" [id]=\"errorId\">\n {{errorMessage}}</p>\n <div #selectTitleWrapper [style.display]=\"'none'\" aria-hidden=\"true\">\n <span>{{selectTitle}}</span>\n </div>\n <ng-template #contentOptions>\n <ng-content></ng-content>\n </ng-template>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-select{position:relative;display:inline-block;vertical-align:top;max-width:100%;margin-bottom:24px;z-index:0}.nas-select__label{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;margin-bottom:6px}.nas-select select{-webkit-appearance:none;-moz-appearance:none;display:inline-block;cursor:pointer;margin:0;padding:12px 34px 12px 12px;padding-right:34px!important;width:100%;border-radius:0;border:3px solid #E9E7E4;outline:0;font-size:16px;color:#15273f;background-color:transparent}.nas-select select:focus:-moz-focusring{color:transparent;text-shadow:0 0 0 #1C1C1C}.nas-select select:hover,.nas-select select:focus{border-color:#15273f}.nas-select select:active{border-color:#15273f}.nas-select select::-ms-expand{display:none}.nas-select select[disabled]{color:#6f6f6f;cursor:default}.nas-select select[disabled]:hover,.nas-select select[disabled]:focus{border-color:#e9e7e4}.nas-select:after{content:\"\";position:absolute;display:inline-block;pointer-events:none;z-index:3;bottom:18px;right:12px;width:12px;height:12px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%2315273F%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat;transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--block{display:block}.nas-select--block select{display:block;width:100%}.nas-select--light:after{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23FFFFFF%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--light select{color:#fff;border-color:#fff}.nas-select--light select:hover,.nas-select--light select:focus{border-color:#e9e7e4}.nas-select--light select:focus{color:#000;background-color:#fff}.nas-select--disabled select{background-color:#6f6f6f}.nas-select--disabled:after{background-color:#6f6f6f;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23909090%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--inline,.nas-select--simple{display:inline-block;max-width:100%;overflow:hidden;line-height:inherit;padding:0;font-size:inherit;color:inherit;margin-bottom:0;border-bottom:inherit}.nas-select--inline:after,.nas-select--simple:after{top:50%;margin-top:-7px;right:0}.nas-select--inline select,.nas-select--simple select{font-size:inherit;color:inherit;padding:0;padding-right:18px!important;border:0;padding-bottom:3px;border-bottom:3px solid #E9E7E4;width:auto;transition:width .3s cubic-bezier(0,0,.1,1)}.nas-select--inline option,.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--stretch{display:block}.nas-select--stretch select{width:100%!important}.nas-select--error select{border-color:#e5212d}.nas-select--error:after{top:24px;bottom:auto}.nas-select__text{padding-right:40px;background-repeat:no-repeat;background-position:right 9px center}.nas-select__error{display:block;font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-select--inline.nas-select--error:after{top:50%!important}.nas-select--simple select{border-color:transparent}.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--compact select{padding-top:9px;padding-bottom:9px}.nas-select--compact:after{bottom:16px}.nas-select--spaceless{margin-bottom:0}.nas-select--fill select{background-color:#fff;border-color:#fff}.nas-select--rotate:after{transform:rotate(180deg);transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--rotate::after-enter,.nas-select--rotate::after-leave-active{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.nas-select--rotate::after-enter{animation:flip-in .55s ease both}.nas-select--rotate::after-leave-active{animation:flip-out .2s ease-out both}@-moz-document url-prefix(){.select select{text-indent:.01px;text-overflow:\"\";padding-right:1rem}.select option{background-color:#fff}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SelectComponent, selector: "nas-select", inputs: { id: "id", inline: "inline", label: "label", block: "block", spaceless: "spaceless", stretch: "stretch", compact: "compact", simple: "simple", light: "light", fill: "fill", error: "error", errorMessage: "errorMessage", disabled: "disabled", autogrow: "autogrow", cssClass: "cssClass", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", options: "options", selectedValue: "selectedValue", selected: "selected" }, outputs: { selectedChange: "selectedChange", keyDownEvent: "keyDownEvent" }, queries: [{ propertyName: "optionComponents", predicate: OptionComponent }, { propertyName: "optgroupComponents", predicate: OptgroupComponent }], viewQueries: [{ propertyName: "selectTitleWrapper", first: true, predicate: ["selectTitleWrapper"], descendants: true, static: true }, { propertyName: "errorMessageWrapper", first: true, predicate: ["errorMessageWrapper"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label id=\"getSelectId()\" *ngIf=\"label && !inline\">\n <span [nasClass]=\"getClass('label-text')\">{{label}}</span>\n</label>\n<div [nasClass]=\"getClasses()\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <select #select [id]=\"selectId\" [attr.disabled]=\"disabled\" [attr.aria-label]=\"'select'\"\n [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\" [formControl]=\"selectControl\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n <ng-template #reactiveForm>\n <ng-container [formGroup]=\"nasFormGroup\">\n <select #select [formControlName]=\"nasFormControlName\" [id]=\"selectId\" [attr.disabled]=\"disabled\"\n [attr.aria-label]=\"'select'\" [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n </ng-template>\n <p [nasClass]=\"getClass('error')\" #errorMessageWrapper *ngIf=\"exists(error) && errorMessage\" [id]=\"errorId\">\n {{errorMessage}}</p>\n <div #selectTitleWrapper [style.display]=\"'none'\" aria-hidden=\"true\">\n <span>{{selectTitle}}</span>\n </div>\n <ng-template #contentOptions>\n <ng-content></ng-content>\n </ng-template>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-select{position:relative;display:inline-block;vertical-align:top;max-width:100%;margin-bottom:24px;z-index:0}.nas-select__label-text{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;margin-bottom:6px}.nas-select select{-webkit-appearance:none;-moz-appearance:none;display:inline-block;cursor:pointer;margin:0;padding:12px 34px 12px 12px;padding-right:34px!important;width:100%;border-radius:0;border:3px solid #E9E7E4;outline:0;font-size:16px;color:#15273f;background-color:transparent}.nas-select select:focus:-moz-focusring{color:transparent;text-shadow:0 0 0 #1C1C1C}.nas-select select:hover,.nas-select select:focus{border-color:#15273f}.nas-select select:active{border-color:#15273f}.nas-select select::-ms-expand{display:none}.nas-select select[disabled]{color:#6f6f6f;cursor:default}.nas-select select[disabled]:hover,.nas-select select[disabled]:focus{border-color:#e9e7e4}.nas-select:after{content:\"\";position:absolute;display:inline-block;pointer-events:none;z-index:3;bottom:18px;right:12px;width:12px;height:12px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%2315273F%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat;transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--block{display:block}.nas-select--block select{display:block;width:100%}.nas-select--light:after{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23FFFFFF%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--light select{color:#fff;border-color:#fff}.nas-select--light select:hover,.nas-select--light select:focus{border-color:#e9e7e4}.nas-select--light select:focus{color:#000;background-color:#fff}.nas-select--disabled select{background-color:#6f6f6f}.nas-select--disabled:after{background-color:#6f6f6f;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23909090%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--inline,.nas-select--simple{display:inline-block;max-width:100%;overflow:hidden;line-height:inherit;padding:0;font-size:inherit;color:inherit;margin-bottom:0;border-bottom:inherit}.nas-select--inline:after,.nas-select--simple:after{top:50%;margin-top:-7px;right:0}.nas-select--inline select,.nas-select--simple select{font-size:inherit;color:inherit;padding:0;padding-right:18px!important;border:0;padding-bottom:3px;border-bottom:3px solid #E9E7E4;width:auto;transition:width .3s cubic-bezier(0,0,.1,1)}.nas-select--inline option,.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--stretch{display:block}.nas-select--stretch select{width:100%!important}.nas-select--error select{border-color:#e5212d}.nas-select--error:after{top:24px;bottom:auto}.nas-select__text{padding-right:40px;background-repeat:no-repeat;background-position:right 9px center}.nas-select__error{display:block;font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-select--inline.nas-select--error:after{top:50%!important}.nas-select--simple select{border-color:transparent}.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--compact select{padding-top:9px;padding-bottom:9px}.nas-select--compact:after{bottom:16px}.nas-select--spaceless{margin-bottom:0}.nas-select--fill select{background-color:#fff;border-color:#fff}.nas-select--rotate:after{transform:rotate(180deg);transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--rotate::after-enter,.nas-select--rotate::after-leave-active{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.nas-select--rotate::after-enter{animation:flip-in .55s ease both}.nas-select--rotate::after-leave-active{animation:flip-out .2s ease-out both}@-moz-document url-prefix(){.select select{text-indent:.01px;text-overflow:\"\";padding-right:1rem}.select option{background-color:#fff}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
293
293
  }
294
294
  __decorate([
295
295
  Debounce(150)
296
296
  ], SelectComponent.prototype, "setSelectedAndEmitChange", null);
297
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectComponent, decorators: [{
298
298
  type: Component,
299
- args: [{ selector: 'nas-select', encapsulation: ViewEncapsulation.None, template: "<label for=\"getSelectId()\" *ngIf=\"label && !inline\">\n <span [nasClass]=\"getClass('label')\">{{label}}</span>\n</label>\n<div [nasClass]=\"getClasses()\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <select #select [id]=\"selectId\" [attr.disabled]=\"disabled\" [attr.aria-label]=\"'select'\"\n [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\" [formControl]=\"selectControl\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n <ng-template #reactiveForm>\n <ng-container [formGroup]=\"nasFormGroup\">\n <select #select [formControlName]=\"nasFormControlName\" [id]=\"selectId\" [attr.disabled]=\"disabled\"\n [attr.aria-label]=\"'select'\" [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n </ng-template>\n <p [nasClass]=\"getClass('error')\" #errorMessageWrapper *ngIf=\"exists(error) && errorMessage\" [id]=\"errorId\">\n {{errorMessage}}</p>\n <div #selectTitleWrapper [style.display]=\"'none'\" aria-hidden=\"true\">\n <span>{{selectTitle}}</span>\n </div>\n <ng-template #contentOptions>\n <ng-content></ng-content>\n </ng-template>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-select{position:relative;display:inline-block;vertical-align:top;max-width:100%;margin-bottom:24px;z-index:0}.nas-select__label{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;margin-bottom:6px}.nas-select select{-webkit-appearance:none;-moz-appearance:none;display:inline-block;cursor:pointer;margin:0;padding:12px 34px 12px 12px;padding-right:34px!important;width:100%;border-radius:0;border:3px solid #E9E7E4;outline:0;font-size:16px;color:#15273f;background-color:transparent}.nas-select select:focus:-moz-focusring{color:transparent;text-shadow:0 0 0 #1C1C1C}.nas-select select:hover,.nas-select select:focus{border-color:#15273f}.nas-select select:active{border-color:#15273f}.nas-select select::-ms-expand{display:none}.nas-select select[disabled]{color:#6f6f6f;cursor:default}.nas-select select[disabled]:hover,.nas-select select[disabled]:focus{border-color:#e9e7e4}.nas-select:after{content:\"\";position:absolute;display:inline-block;pointer-events:none;z-index:3;bottom:18px;right:12px;width:12px;height:12px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%2315273F%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat;transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--block{display:block}.nas-select--block select{display:block;width:100%}.nas-select--light:after{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23FFFFFF%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--light select{color:#fff;border-color:#fff}.nas-select--light select:hover,.nas-select--light select:focus{border-color:#e9e7e4}.nas-select--light select:focus{color:#000;background-color:#fff}.nas-select--disabled select{background-color:#6f6f6f}.nas-select--disabled:after{background-color:#6f6f6f;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23909090%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--inline,.nas-select--simple{display:inline-block;max-width:100%;overflow:hidden;line-height:inherit;padding:0;font-size:inherit;color:inherit;margin-bottom:0;border-bottom:inherit}.nas-select--inline:after,.nas-select--simple:after{top:50%;margin-top:-7px;right:0}.nas-select--inline select,.nas-select--simple select{font-size:inherit;color:inherit;padding:0;padding-right:18px!important;border:0;padding-bottom:3px;border-bottom:3px solid #E9E7E4;width:auto;transition:width .3s cubic-bezier(0,0,.1,1)}.nas-select--inline option,.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--stretch{display:block}.nas-select--stretch select{width:100%!important}.nas-select--error select{border-color:#e5212d}.nas-select--error:after{top:24px;bottom:auto}.nas-select__text{padding-right:40px;background-repeat:no-repeat;background-position:right 9px center}.nas-select__error{display:block;font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-select--inline.nas-select--error:after{top:50%!important}.nas-select--simple select{border-color:transparent}.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--compact select{padding-top:9px;padding-bottom:9px}.nas-select--compact:after{bottom:16px}.nas-select--spaceless{margin-bottom:0}.nas-select--fill select{background-color:#fff;border-color:#fff}.nas-select--rotate:after{transform:rotate(180deg);transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--rotate::after-enter,.nas-select--rotate::after-leave-active{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.nas-select--rotate::after-enter{animation:flip-in .55s ease both}.nas-select--rotate::after-leave-active{animation:flip-out .2s ease-out both}@-moz-document url-prefix(){.select select{text-indent:.01px;text-overflow:\"\";padding-right:1rem}.select option{background-color:#fff}}\n"] }]
299
+ args: [{ selector: 'nas-select', encapsulation: ViewEncapsulation.None, template: "<label id=\"getSelectId()\" *ngIf=\"label && !inline\">\n <span [nasClass]=\"getClass('label-text')\">{{label}}</span>\n</label>\n<div [nasClass]=\"getClasses()\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <select #select [id]=\"selectId\" [attr.disabled]=\"disabled\" [attr.aria-label]=\"'select'\"\n [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\" [formControl]=\"selectControl\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n <ng-template #reactiveForm>\n <ng-container [formGroup]=\"nasFormGroup\">\n <select #select [formControlName]=\"nasFormControlName\" [id]=\"selectId\" [attr.disabled]=\"disabled\"\n [attr.aria-label]=\"'select'\" [attr.aria-labelledby]=\"getSelectId()\" [style.width.px]=\"labelWidth\"\n (mousedown)=\"toggleSelect($event)\" (keydown)=\"toggleSelect($event, true)\" (blur)=\"blurSelect()\"\n (change)=\"toggleSelect($event)\">\n <ng-container *ngIf=\"!hasContent\">\n <option *ngFor=\"let option of options\" [value]=\"option?.value\" [attr.aria-label]=\"option?.title\">\n {{option?.title}}</option>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"contentOptions\"></ng-container>\n </select>\n </ng-container>\n </ng-template>\n <p [nasClass]=\"getClass('error')\" #errorMessageWrapper *ngIf=\"exists(error) && errorMessage\" [id]=\"errorId\">\n {{errorMessage}}</p>\n <div #selectTitleWrapper [style.display]=\"'none'\" aria-hidden=\"true\">\n <span>{{selectTitle}}</span>\n </div>\n <ng-template #contentOptions>\n <ng-content></ng-content>\n </ng-template>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-select{position:relative;display:inline-block;vertical-align:top;max-width:100%;margin-bottom:24px;z-index:0}.nas-select__label-text{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;margin-bottom:6px}.nas-select select{-webkit-appearance:none;-moz-appearance:none;display:inline-block;cursor:pointer;margin:0;padding:12px 34px 12px 12px;padding-right:34px!important;width:100%;border-radius:0;border:3px solid #E9E7E4;outline:0;font-size:16px;color:#15273f;background-color:transparent}.nas-select select:focus:-moz-focusring{color:transparent;text-shadow:0 0 0 #1C1C1C}.nas-select select:hover,.nas-select select:focus{border-color:#15273f}.nas-select select:active{border-color:#15273f}.nas-select select::-ms-expand{display:none}.nas-select select[disabled]{color:#6f6f6f;cursor:default}.nas-select select[disabled]:hover,.nas-select select[disabled]:focus{border-color:#e9e7e4}.nas-select:after{content:\"\";position:absolute;display:inline-block;pointer-events:none;z-index:3;bottom:18px;right:12px;width:12px;height:12px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%2315273F%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat;transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--block{display:block}.nas-select--block select{display:block;width:100%}.nas-select--light:after{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23FFFFFF%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--light select{color:#fff;border-color:#fff}.nas-select--light select:hover,.nas-select--light select:focus{border-color:#e9e7e4}.nas-select--light select:focus{color:#000;background-color:#fff}.nas-select--disabled select{background-color:#6f6f6f}.nas-select--disabled:after{background-color:#6f6f6f;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2212px%22 height%3D%2212px%22 viewBox%3D%22-414 589.5 12 12%22 enable-background%3D%22new -414 589.5 12 12%22 xml%3Aspace%3D%22preserve%22%3E%3Cpolygon fill%3D%22%23909090%22 points%3D%22-402%2C593.5 -404%2C591.5 -407.9%2C595 -408%2C595 -411.9%2C591.5 -413.9%2C593.5 -408.5%2C598.4 -408%2C598.6 %09-407.4%2C598.4 %22%2F%3E%3C%2Fsvg%3E\") 0 0 no-repeat}.nas-select--inline,.nas-select--simple{display:inline-block;max-width:100%;overflow:hidden;line-height:inherit;padding:0;font-size:inherit;color:inherit;margin-bottom:0;border-bottom:inherit}.nas-select--inline:after,.nas-select--simple:after{top:50%;margin-top:-7px;right:0}.nas-select--inline select,.nas-select--simple select{font-size:inherit;color:inherit;padding:0;padding-right:18px!important;border:0;padding-bottom:3px;border-bottom:3px solid #E9E7E4;width:auto;transition:width .3s cubic-bezier(0,0,.1,1)}.nas-select--inline option,.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--stretch{display:block}.nas-select--stretch select{width:100%!important}.nas-select--error select{border-color:#e5212d}.nas-select--error:after{top:24px;bottom:auto}.nas-select__text{padding-right:40px;background-repeat:no-repeat;background-position:right 9px center}.nas-select__error{display:block;font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-select--inline.nas-select--error:after{top:50%!important}.nas-select--simple select{border-color:transparent}.nas-select--simple option{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:700}.nas-select--compact select{padding-top:9px;padding-bottom:9px}.nas-select--compact:after{bottom:16px}.nas-select--spaceless{margin-bottom:0}.nas-select--fill select{background-color:#fff;border-color:#fff}.nas-select--rotate:after{transform:rotate(180deg);transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-select--rotate::after-enter,.nas-select--rotate::after-leave-active{transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.nas-select--rotate::after-enter{animation:flip-in .55s ease both}.nas-select--rotate::after-leave-active{animation:flip-out .2s ease-out both}@-moz-document url-prefix(){.select select{text-indent:.01px;text-overflow:\"\";padding-right:1rem}.select option{background-color:#fff}}\n"] }]
300
300
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectTitleWrapper: [{
301
301
  type: ViewChild,
302
302
  args: ['selectTitleWrapper', { static: true }]
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
357
357
  }], keyDownEvent: [{
358
358
  type: Output
359
359
  }], setSelectedAndEmitChange: [] } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBRWpCLFNBQVMsRUFHVCxlQUFlLEVBSWhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFFcEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBT0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0lBOEluRDs7OztNQUlFO0lBQ0YsSUFDVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBK0I7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUIsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sRUFBRTtnQkFDakMsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFTRDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBb0JELFlBQW9CLE1BQXlCO1FBQzNDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQURGLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBeE43QyxrQkFBYSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFHbEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQW1NbkI7Ozs7V0FJRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFakU7Ozs7VUFJRTtRQUNRLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHbkQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUtuQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDcEQ7YUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4RSxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7WUFFN0QsSUFBSSxzQkFBc0IsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDdEU7U0FDRjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEM7WUFDRCxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLGNBQWMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxFQUFFO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUztZQUNyQixDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsV0FBVyxTQUFTLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVLEVBQUUsT0FBaUI7UUFDeEMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUM1RCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUV2QixJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQjtZQUVELElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTzthQUNSO1lBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUU1QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3pDO2FBQ0Y7WUFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNqRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQyxPQUFPO2lCQUNSO2FBQ0Y7WUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7b0JBQ3BELElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ3RDLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNqRyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFOzRCQUNqRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzRCQUMvQyxPQUFPO3lCQUNSO3FCQUNGO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxPQUFPLEdBQXNCO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUNoQixJQUFJLENBQUMsS0FBSztnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRO2dCQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxXQUFXO2dCQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTO2dCQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTO2dCQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRO2dCQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVE7YUFDdEIsQ0FBQztTQUNILENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBR08sd0JBQXdCLENBQUMsUUFBMkI7UUFDMUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRU8sc0JBQXNCLENBQUMsZ0JBQTRDO1FBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JELE9BQU87U0FDUjtRQUVELE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBRXBELElBQUksb0JBQW9CLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7WUFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsTUFBVyxFQUFFLFdBQW1CO1FBQ25ELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQWEsQ0FBQztRQUVsQixJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDM0QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQzdDO2FBQU07WUFDTCxLQUFLLEdBQUcsV0FBVyxDQUFDO1NBQ3JCO1FBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFeEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUNyRCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBeUI7UUFDaEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBNEIsQ0FBQztRQUVoRixJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQzFDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMzQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQTRCLENBQUM7UUFFL0QsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFMUIsSUFBSSxXQUFXLEVBQUU7WUFDZixpQkFBaUIsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRCxrQkFBa0IsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RCxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxpQkFBaUIsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sdUJBQXVCLEdBQzNCLGtCQUFrQixDQUFDLGdCQUErQixDQUFDO1FBQ3JELElBQUksV0FBVyxHQUFHLGlCQUFpQixHQUFHLGtCQUFrQixHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO1FBRWhHLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsV0FBVyxJQUFJLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztZQUNuRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzdHLElBQUksZ0JBQWdCLEdBQUcsV0FBVyxFQUFFO29CQUNsQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7aUJBQ2hDO2FBQ0Y7U0FDRjtRQUVELElBQUksV0FBVyxHQUFHLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzdCO1FBRUQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDNUMsQ0FBQzs4R0E1ZFUsZUFBZTtrR0FBZixlQUFlLDBsQkFVVCxlQUFlLHFEQUVmLGlCQUFpQixpWkNyRHBDLDBqRUFzQ007O0FEa1dKO0lBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQzsrREFXYjsyRkF6V1UsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUk7d0dBU3JDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRWYsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFDWCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBRW5CLGdCQUFnQjtzQkFEZixlQUFlO3VCQUFDLGVBQWU7Z0JBR2hDLGtCQUFrQjtzQkFEakIsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBUXpCLEVBQUU7c0JBQVYsS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBV0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUssT0FBTztzQkFEakIsS0FBSztnQkEwQkcsYUFBYTtzQkFBckIsS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7Z0JBd0JJLGNBQWM7c0JBQXZCLE1BQU07Z0JBT0csWUFBWTtzQkFBckIsTUFBTTtnQkE0SUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0NoZWNrZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVscy9zZWxlY3Qtb3B0aW9uLm1vZGVsJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0Z3JvdXBDb21wb25lbnQgfSBmcm9tICcuL29wdGdyb3VwL29wdGdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3InO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBTZWxlY3QgQ29tcG9uZW50IHwgRm9ybSBDb250cm9sc1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdDaGVja2VkLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgc2VsZWN0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBsYWJlbFdpZHRoOiBudW1iZXI7XG4gIHNlbGVjdFRpdGxlOiBzdHJpbmc7XG4gIGhhc0NvbnRlbnQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RUaXRsZVdyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWxlY3RUaXRsZVdyYXBwZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2Vycm9yTWVzc2FnZVdyYXBwZXInKSBlcnJvck1lc3NhZ2VXcmFwcGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWxlY3QnKSBzZWxlY3Q6IEVsZW1lbnRSZWY8SFRNTFNlbGVjdEVsZW1lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudClcbiAgb3B0aW9uQ29tcG9uZW50czogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0Z3JvdXBDb21wb25lbnQpXG4gIG9wdGdyb3VwQ29tcG9uZW50czogUXVlcnlMaXN0PE9wdGdyb3VwQ29tcG9uZW50PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZCBjdXN0b20gaW5saW5lIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGlubGluZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIGN1c3RvbSBsYWJlbCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBTZXRzIGJsb2NrIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGJsb2NrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFNldHMgc3BhY2VsZXNzIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBzdHJldGNoIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIHN0cmV0Y2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgY29tcGFjdCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBjb21wYWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHNpbXBsZSBzdHlsaW5nLlxuICAgICAqL1xuICBASW5wdXQoKSBzaW1wbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgbGlnaHQgc3R5bGluZy5cbiAgKi9cbiAgQElucHV0KCkgbGlnaHQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgZmlsbCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBmaWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGVycm9yIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gZXJyb3Igb2NjdXIuIEVycm9yIGF0dHJpYnV0ZSBuZWVkIHRvIGJlIHRydWUuXG4gICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGRpc2FibGVkIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBNYWtlcyB0aGUgc2VsZWN0IGNvbXBvbmVudCBhdXRvZ3Jvdy5cbiAgKi9cbiAgQElucHV0KCkgYXV0b2dyb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZCBjdXN0b20gQ1NTIGNsYXNzIHRvIHRoZSBzZWxlY3Rvci5cbiAgKi9cbiAgQElucHV0KCkgY3NzQ2xhc3M6IENsYXNzTW9kZWw7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIHNlbGVjdC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICAgKiA8bmFzLXNlbGVjdCBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIidmYXJlQ2xhc3MnXCI+PC9uYXMtc2VsZWN0PlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1zZWxlY3QgW25hc0Zvcm1Hcm91cF09XCJjbGFzc0dyb3VwXCI+PC9uYXMtc2VsZWN0PlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAgKiBAZGVzY3JpcHRpb25cbiAgICAqIEFkZCBvcHRpb25zIHRvIHRoZSBzZWxlY3Rvci5cbiAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvcHRpb25zKCk6IEFycmF5PFNlbGVjdE9wdGlvbk1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgb3B0aW9ucyh2YWx1ZTogQXJyYXk8U2VsZWN0T3B0aW9uTW9kZWw+KSB7XG4gICAgdGhpcy5vcHRpb25zVmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDAgJiYgIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMub3B0aW9uc1swXTtcblxuICAgICAgdGhpcy5zZXRTZWxlY3RlZFRpdGxlKG9wdGlvbik7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT09IG9wdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvbjtcbiAgICAgIHRoaXMuc2VsZWN0Q29udHJvbC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkVmFsdWUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBkZWZhdWx0IHNlbGVjdGVkIHZhbHVlLlxuICAqL1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBTZWxlY3RPcHRpb25Nb2RlbDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkKCk6IFNlbGVjdE9wdGlvbk1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZChvcHRpb246IFNlbGVjdE9wdGlvbk1vZGVsKSB7XG4gICAgaWYgKCFvcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkVGl0bGUob3B0aW9uKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT09IG9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvbjtcbiAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgYSBzZWxlY3Rpb24gaXMgZG9uZS5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uTW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50cyB0aGF0IGZpcmVzIGV2ZXJ5IHR5cGUgYSBrZXlkb3duIGV2ZW50IGhhcyBiZWVuIHByZXNzZWQgb24gdGhlIHNlbGVjdCBlbGVtZW50LlxuICAqL1xuICBAT3V0cHV0KCkga2V5RG93bkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIHByaXZhdGUgb3B0aW9uc1ZhbHVlOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG4gIHByaXZhdGUgb3BlbiA9IGZhbHNlO1xuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2U6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoJ25hcy1zZWxlY3QnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLm9wdGlvbkNvbXBvbmVudHMgJiYgdGhpcy5vcHRpb25Db21wb25lbnRzLmxlbmd0aCA+IDApIHx8XG4gICAgICAodGhpcy5vcHRncm91cENvbXBvbmVudHMgJiYgdGhpcy5vcHRncm91cENvbXBvbmVudHMubGVuZ3RoID4gMCkpIHtcbiAgICAgIHRoaXMuaGFzQ29udGVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbkNvbXBvbmVudHMgJiYgdGhpcy5vcHRpb25Db21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0Rmlyc3RPcHRpb25TZWxlY3RlZCh0aGlzLm9wdGlvbkNvbXBvbmVudHMpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRncm91cENvbXBvbmVudHMgJiYgdGhpcy5vcHRncm91cENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlyc3RPcHRncm91cENvbXBvbmVudCA9IHRoaXMub3B0Z3JvdXBDb21wb25lbnRzLmZpcnN0O1xuXG4gICAgICBpZiAoZmlyc3RPcHRncm91cENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnNldEZpcnN0T3B0aW9uU2VsZWN0ZWQoZmlyc3RPcHRncm91cENvbXBvbmVudC5vcHRpb25Db21wb25lbnRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKCF0aGlzLmhhc0NvbnRlbnQgJiYgIXRoaXMuc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVGl0bGUodGhpcy5vcHRpb25zWzBdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRUaXRsZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtc2VsZWN0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0IHNlbGVjdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyB0aGlzLmlkIDogYG5hcy1zZWxlY3QtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXQgZXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkXG4gICAgICA/IHRoaXMuaWQgKyAnX19lcnJvcidcbiAgICAgIDogYG5hcy1zZWxlY3QtJHt0aGlzLmNvbXBvbmVudElkfV9fZXJyb3JgO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0KGV2ZW50OiBhbnksIGtleWRvd24/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKChldmVudCAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpIHx8ICFldmVudCB8fCAhZXZlbnQua2V5KSB7XG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuXG4gICAgICBpZiAoa2V5ZG93bikge1xuICAgICAgICB0aGlzLmtleURvd25FdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFldmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMub3B0aW9ucy5maW5kKCh4KSA9PiB4LnZhbHVlID09PSB0YXJnZXQudmFsdWUpO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgKCF0aGlzLnNlbGVjdGVkIHx8IHNlbGVjdGVkLnZhbHVlICE9PSB0aGlzLnNlbGVjdGVkLnZhbHVlKSkge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRBbmRFbWl0Q2hhbmdlKHNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vcHRpb25Db21wb25lbnRzICYmIHRoaXMub3B0aW9uQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5vcHRpb25Db21wb25lbnRzLmZpbmQoKHgpID0+IHgub3B0aW9uLnZhbHVlID09PSB0YXJnZXQudmFsdWUpO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgKCF0aGlzLnNlbGVjdGVkIHx8IHNlbGVjdGVkLm9wdGlvbi52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZC52YWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkQW5kRW1pdENoYW5nZShzZWxlY3RlZC5vcHRpb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vcHRncm91cENvbXBvbmVudHMgJiYgdGhpcy5vcHRncm91cENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLm9wdGdyb3VwQ29tcG9uZW50cy5mb3JFYWNoKChvcHRncm91cENvbXBvbmVudCkgPT4ge1xuICAgICAgICAgIGlmIChvcHRncm91cENvbXBvbmVudC5vcHRpb25Db21wb25lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IG9wdGdyb3VwQ29tcG9uZW50Lm9wdGlvbkNvbXBvbmVudHMuZmluZCgoeCkgPT4geC5vcHRpb24udmFsdWUgPT09IHRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgKCF0aGlzLnNlbGVjdGVkIHx8IHNlbGVjdGVkLm9wdGlvbi52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEFuZEVtaXRDaGFuZ2Uoc2VsZWN0ZWQub3B0aW9uKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVNoYWRvdyh0YXJnZXQsIHRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgYmx1clNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIGdldENsYXNzZXMoKTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIGNvbnN0IGNsYXNzZXM6IEFycmF5PENsYXNzTW9kZWw+ID0gW1xuICAgICAgdGhpcy5nZXRDbGFzcygnJywgW1xuICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLmlubGluZSkgJiYgJ2lubGluZScsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuYmxvY2spICYmICdibG9jaycsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3BhY2VsZXNzKSAmJiAnc3BhY2VsZXNzJyxcbiAgICAgICAgdGhpcy5leGlzdHModGhpcy5zdHJldGNoKSAmJiAnc3RyZXRjaCcsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuY29tcGFjdCkgJiYgJ2NvbXBhY3QnLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLnNpbXBsZSkgJiYgJ3NpbXBsZScsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMubGlnaHQpICYmICdsaWdodCcsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZmlsbCkgJiYgJ2ZpbGwnLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgICB0aGlzLm9wZW4gJiYgJ3JvdGF0ZSdcbiAgICAgIF0pLFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5jc3NDbGFzcykge1xuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuY3NzQ2xhc3MpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgQERlYm91bmNlKDE1MClcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEFuZEVtaXRDaGFuZ2Uoc2VsZWN0ZWQ6IFNlbGVjdE9wdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNldEZpcnN0T3B0aW9uU2VsZWN0ZWQob3B0aW9uQ29tcG9uZW50czogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD4pOiB2b2lkIHtcbiAgICBpZiAoIW9wdGlvbkNvbXBvbmVudHMgfHwgb3B0aW9uQ29tcG9uZW50cy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uQ29tcG9uZW50ID0gb3B0aW9uQ29tcG9uZW50cy5maXJzdDtcblxuICAgIGlmIChmaXJzdE9wdGlvbkNvbXBvbmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZmlyc3RPcHRpb25Db21wb25lbnQub3B0aW9uO1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFRpdGxlKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTaGFkb3codGFyZ2V0OiBhbnksIHRhcmdldFZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5sYWJlbCB8fCB0aGlzLmJsb2NrIHx8ICF0aGlzLmF1dG9ncm93IHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU6IHN0cmluZztcblxuICAgIGlmICh0YXJnZXQuc2VsZWN0ZWRPcHRpb25zICYmIHRhcmdldC5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB2YWx1ZSA9IHRhcmdldC5zZWxlY3RlZE9wdGlvbnNbMF0uaW5uZXJIVE1MO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHRhcmdldFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpO1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpO1xuICAgIHNoYWRvdy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgc2hhZG93LnN0eWxlLnRvcCA9ICctMTAwMHB4JztcbiAgICBzaGFkb3cuc3R5bGUubGVmdCA9ICctMTAwMHB4JztcbiAgICBzaGFkb3cuc3R5bGUud2lkdGggPSAnYXV0byc7XG4gICAgc2hhZG93LnN0eWxlLm1heFdpZHRoID0gJ25vbmUnO1xuICAgIHNoYWRvdy5zdHlsZS5mb250U2l6ZSA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyk7XG4gICAgc2hhZG93LnN0eWxlLmZvbnRGYW1pbHkgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5Jyk7XG4gICAgc2hhZG93LnN0eWxlLmZvbnRXZWlnaHQgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtd2VpZ2h0Jyk7XG4gICAgc2hhZG93LnN0eWxlLmxldHRlclNwYWNpbmcgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2xldHRlci1zcGFjaW5nJyk7XG4gICAgc2hhZG93LnN0eWxlLnBhZGRpbmdUb3AgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJyk7XG4gICAgc2hhZG93LnN0eWxlLnBhZGRpbmdSaWdodCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1yaWdodCcpO1xuICAgIHNoYWRvdy5zdHlsZS5wYWRkaW5nQm90dG9tID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpO1xuICAgIHNoYWRvdy5zdHlsZS5wYWRkaW5nTGVmdCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1sZWZ0Jyk7XG4gICAgc2hhZG93LnN0eWxlLmJvcmRlclRvcCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcCcpO1xuICAgIHNoYWRvdy5zdHlsZS5ib3JkZXJSaWdodCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0Jyk7XG4gICAgc2hhZG93LnN0eWxlLmJvcmRlckJvdHRvbSA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWJvdHRvbScpO1xuICAgIHNoYWRvdy5zdHlsZS5ib3JkZXJMZWZ0ID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItbGVmdCcpO1xuXG4gICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7XG4gICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7XG4gICAgb3B0aW9uLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIHNoYWRvdy5hcHBlbmRDaGlsZChvcHRpb24pO1xuXG4gICAgdGFyZ2V0LnN0eWxlLndpZHRoID0gYCR7c2hhZG93Lm9mZnNldFdpZHRoICsgNn1weGA7XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkVGl0bGUob3B0aW9uOiBTZWxlY3RPcHRpb25Nb2RlbCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdFRpdGxlV3JhcHBlciA9IHRoaXMuc2VsZWN0VGl0bGVXcmFwcGVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoIXNlbGVjdFRpdGxlV3JhcHBlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9uKSB7XG4gICAgICBzZWxlY3RUaXRsZVdyYXBwZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdFRpdGxlID0gb3B0aW9uLnRpdGxlO1xuICAgIHNlbGVjdFRpdGxlV3JhcHBlci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICBzZWxlY3RUaXRsZVdyYXBwZXIuc3R5bGUud2hpdGVTcGFjZSA9ICdub3dyYXAnO1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdEVsZW1lbnQgPSB0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKCFzZWxlY3RFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzZWxlY3RFbGVtZW50KTtcbiAgICBsZXQgc2VsZWN0UGFkZGluZ0xlZnQgPSAwO1xuICAgIGxldCBzZWxlY3RQYWRkaW5nUmlnaHQgPSAwO1xuICAgIGxldCBzZWxlY3RCb3JkZXJMZWZ0ID0gMDtcbiAgICBsZXQgc2VsZWN0Qm9yZGVyUmlnaHQgPSAwO1xuXG4gICAgaWYgKHNlbGVjdFN0eWxlKSB7XG4gICAgICBzZWxlY3RQYWRkaW5nTGVmdCA9IHBhcnNlSW50KHNlbGVjdFN0eWxlLnBhZGRpbmdMZWZ0LCAxMCk7XG4gICAgICBzZWxlY3RQYWRkaW5nUmlnaHQgPSBwYXJzZUludChzZWxlY3RTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKTtcbiAgICAgIHNlbGVjdEJvcmRlckxlZnQgPSBwYXJzZUludChzZWxlY3RTdHlsZS5ib3JkZXJMZWZ0LCAxMCk7XG4gICAgICBzZWxlY3RCb3JkZXJSaWdodCA9IHBhcnNlSW50KHNlbGVjdFN0eWxlLmJvcmRlclJpZ2h0LCAxMCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0VGl0bGVXcmFwcGVyVGl0bGUgPVxuICAgICAgc2VsZWN0VGl0bGVXcmFwcGVyLmxhc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgbGV0IG9mZnNldFdpZHRoID0gc2VsZWN0UGFkZGluZ0xlZnQgKyBzZWxlY3RQYWRkaW5nUmlnaHQgKyBzZWxlY3RCb3JkZXJMZWZ0ICsgc2VsZWN0Qm9yZGVyUmlnaHQ7XG5cbiAgICBpZiAoc2VsZWN0VGl0bGVXcmFwcGVyVGl0bGUpIHtcbiAgICAgIG9mZnNldFdpZHRoICs9IHNlbGVjdFRpdGxlV3JhcHBlclRpdGxlLm9mZnNldFdpZHRoO1xuICAgICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmIHRoaXMuZXJyb3JNZXNzYWdlV3JhcHBlcikge1xuICAgICAgICBjb25zdCBzZWxlY3RFcnJvcldpZHRoID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lcnJvck1lc3NhZ2VXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpLndpZHRoLCAxMCk7XG4gICAgICAgIGlmIChzZWxlY3RFcnJvcldpZHRoID4gb2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICBvZmZzZXRXaWR0aCA9IHNlbGVjdEVycm9yV2lkdGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob2Zmc2V0V2lkdGggPiAwKSB7XG4gICAgICB0aGlzLmxhYmVsV2lkdGggPSBvZmZzZXRXaWR0aDtcbiAgICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RUaXRsZVdyYXBwZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxufVxuIiwiPGxhYmVsIGZvcj1cImdldFNlbGVjdElkKClcIiAqbmdJZj1cImxhYmVsICYmICFpbmxpbmVcIj5cbiAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCI+e3tsYWJlbH19PC9zcGFuPlxuPC9sYWJlbD5cbjxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzZXMoKVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgIDxzZWxlY3QgI3NlbGVjdCBbaWRdPVwic2VsZWN0SWRcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NlbGVjdCdcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImdldFNlbGVjdElkKClcIiBbc3R5bGUud2lkdGgucHhdPVwibGFiZWxXaWR0aFwiIFtmb3JtQ29udHJvbF09XCJzZWxlY3RDb250cm9sXCJcbiAgICAgIChtb3VzZWRvd24pPVwidG9nZ2xlU2VsZWN0KCRldmVudClcIiAoa2V5ZG93bik9XCJ0b2dnbGVTZWxlY3QoJGV2ZW50LCB0cnVlKVwiIChibHVyKT1cImJsdXJTZWxlY3QoKVwiXG4gICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0NvbnRlbnRcIj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uPy52YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uPy50aXRsZVwiPlxuICAgICAgICAgIHt7b3B0aW9uPy50aXRsZX19PC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50T3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgICAgPHNlbGVjdCAjc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCIgW2lkXT1cInNlbGVjdElkXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidzZWxlY3QnXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImdldFNlbGVjdElkKClcIiBbc3R5bGUud2lkdGgucHhdPVwibGFiZWxXaWR0aFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwidG9nZ2xlU2VsZWN0KCRldmVudClcIiAoa2V5ZG93bik9XCJ0b2dnbGVTZWxlY3QoJGV2ZW50LCB0cnVlKVwiIChibHVyKT1cImJsdXJTZWxlY3QoKVwiXG4gICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlU2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNDb250ZW50XCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uPy52YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uPy50aXRsZVwiPlxuICAgICAgICAgICAge3tvcHRpb24/LnRpdGxlfX08L29wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50T3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnZXJyb3InKVwiICNlcnJvck1lc3NhZ2VXcmFwcGVyICpuZ0lmPVwiZXhpc3RzKGVycm9yKSAmJiBlcnJvck1lc3NhZ2VcIiBbaWRdPVwiZXJyb3JJZFwiPlxuICAgIHt7ZXJyb3JNZXNzYWdlfX08L3A+XG4gIDxkaXYgI3NlbGVjdFRpdGxlV3JhcHBlciBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICA8c3Bhbj57e3NlbGVjdFRpdGxlfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2NvbnRlbnRPcHRpb25zPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PiJdfQ==
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBRWpCLFNBQVMsRUFHVCxlQUFlLEVBSWhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFFcEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBT0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0lBOEluRDs7OztNQUlFO0lBQ0YsSUFDVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBK0I7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFD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M0IsU0FBUzsrQkFDRSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUk7d0dBU3JDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRWYsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFDWCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBRW5CLGdCQUFnQjtzQkFEZixlQUFlO3VCQUFDLGVBQWU7Z0JBR2hDLGtCQUFrQjtzQkFEakIsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBUXpCLEVBQUU7c0JBQVYsS0FBSztnQkFPRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csTUFBTTtzQkFBZCxLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBV0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUUssT0FBTztzQkFEakIsS0FBSztnQkEwQkcsYUFBYTtzQkFBckIsS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7Z0JBd0JJLGNBQWM7c0JBQXZCLE1BQU07Z0JBT0csWUFBWTtzQkFBckIsTUFBTTtnQkE0SUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0NoZWNrZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVscy9zZWxlY3Qtb3B0aW9uLm1vZGVsJztcbmltcG9ydCB7IE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0Z3JvdXBDb21wb25lbnQgfSBmcm9tICcuL29wdGdyb3VwL29wdGdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3InO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBTZWxlY3QgQ29tcG9uZW50IHwgRm9ybSBDb250cm9sc1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdDaGVja2VkLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgc2VsZWN0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBsYWJlbFdpZHRoOiBudW1iZXI7XG4gIHNlbGVjdFRpdGxlOiBzdHJpbmc7XG4gIGhhc0NvbnRlbnQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RUaXRsZVdyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWxlY3RUaXRsZVdyYXBwZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2Vycm9yTWVzc2FnZVdyYXBwZXInKSBlcnJvck1lc3NhZ2VXcmFwcGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWxlY3QnKSBzZWxlY3Q6IEVsZW1lbnRSZWY8SFRNTFNlbGVjdEVsZW1lbnQ+O1xuICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudClcbiAgb3B0aW9uQ29tcG9uZW50czogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0Z3JvdXBDb21wb25lbnQpXG4gIG9wdGdyb3VwQ29tcG9uZW50czogUXVlcnlMaXN0PE9wdGdyb3VwQ29tcG9uZW50PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZCBjdXN0b20gaW5saW5lIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGlubGluZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIGN1c3RvbSBsYWJlbCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICAgKiBAZGVzY3JpcHRpb25cbiAgICAgKiBTZXRzIGJsb2NrIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGJsb2NrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgICAqIFNldHMgc3BhY2VsZXNzIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBzdHJldGNoIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIHN0cmV0Y2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgY29tcGFjdCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBjb21wYWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHNpbXBsZSBzdHlsaW5nLlxuICAgICAqL1xuICBASW5wdXQoKSBzaW1wbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgbGlnaHQgc3R5bGluZy5cbiAgKi9cbiAgQElucHV0KCkgbGlnaHQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgZmlsbCBzdHlsaW5nLlxuICAqL1xuICBASW5wdXQoKSBmaWxsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGVycm9yIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gZXJyb3Igb2NjdXIuIEVycm9yIGF0dHJpYnV0ZSBuZWVkIHRvIGJlIHRydWUuXG4gICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGRpc2FibGVkIHN0eWxpbmcuXG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBNYWtlcyB0aGUgc2VsZWN0IGNvbXBvbmVudCBhdXRvZ3Jvdy5cbiAgKi9cbiAgQElucHV0KCkgYXV0b2dyb3c/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZCBjdXN0b20gQ1NTIGNsYXNzIHRvIHRoZSBzZWxlY3Rvci5cbiAgKi9cbiAgQElucHV0KCkgY3NzQ2xhc3M6IENsYXNzTW9kZWw7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIHNlbGVjdC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICAgKiA8bmFzLXNlbGVjdCBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIidmYXJlQ2xhc3MnXCI+PC9uYXMtc2VsZWN0PlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1zZWxlY3QgW25hc0Zvcm1Hcm91cF09XCJjbGFzc0dyb3VwXCI+PC9uYXMtc2VsZWN0PlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAgKiBAZGVzY3JpcHRpb25cbiAgICAqIEFkZCBvcHRpb25zIHRvIHRoZSBzZWxlY3Rvci5cbiAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBvcHRpb25zKCk6IEFycmF5PFNlbGVjdE9wdGlvbk1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1ZhbHVlO1xuICB9XG4gIHB1YmxpYyBzZXQgb3B0aW9ucyh2YWx1ZTogQXJyYXk8U2VsZWN0T3B0aW9uTW9kZWw+KSB7XG4gICAgdGhpcy5vcHRpb25zVmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDAgJiYgIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMub3B0aW9uc1swXTtcblxuICAgICAgdGhpcy5zZXRTZWxlY3RlZFRpdGxlKG9wdGlvbik7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT09IG9wdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvbjtcbiAgICAgIHRoaXMuc2VsZWN0Q29udHJvbC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkVmFsdWUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBkZWZhdWx0IHNlbGVjdGVkIHZhbHVlLlxuICAqL1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBTZWxlY3RPcHRpb25Nb2RlbDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkKCk6IFNlbGVjdE9wdGlvbk1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZChvcHRpb246IFNlbGVjdE9wdGlvbk1vZGVsKSB7XG4gICAgaWYgKCFvcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkVGl0bGUob3B0aW9uKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgPT09IG9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvbjtcbiAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlLnZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBldmVudCB0aGF0IGlzIGZpcmVkIGV2ZXJ5IHRpbWUgYSBzZWxlY3Rpb24gaXMgZG9uZS5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uTW9kZWw+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50cyB0aGF0IGZpcmVzIGV2ZXJ5IHR5cGUgYSBrZXlkb3duIGV2ZW50IGhhcyBiZWVuIHByZXNzZWQgb24gdGhlIHNlbGVjdCBlbGVtZW50LlxuICAqL1xuICBAT3V0cHV0KCkga2V5RG93bkV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIHByaXZhdGUgb3B0aW9uc1ZhbHVlOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG4gIHByaXZhdGUgb3BlbiA9IGZhbHNlO1xuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2U6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoJ25hcy1zZWxlY3QnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLm9wdGlvbkNvbXBvbmVudHMgJiYgdGhpcy5vcHRpb25Db21wb25lbnRzLmxlbmd0aCA+IDApIHx8XG4gICAgICAodGhpcy5vcHRncm91cENvbXBvbmVudHMgJiYgdGhpcy5vcHRncm91cENvbXBvbmVudHMubGVuZ3RoID4gMCkpIHtcbiAgICAgIHRoaXMuaGFzQ29udGVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbkNvbXBvbmVudHMgJiYgdGhpcy5vcHRpb25Db21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0Rmlyc3RPcHRpb25TZWxlY3RlZCh0aGlzLm9wdGlvbkNvbXBvbmVudHMpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRncm91cENvbXBvbmVudHMgJiYgdGhpcy5vcHRncm91cENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlyc3RPcHRncm91cENvbXBvbmVudCA9IHRoaXMub3B0Z3JvdXBDb21wb25lbnRzLmZpcnN0O1xuXG4gICAgICBpZiAoZmlyc3RPcHRncm91cENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnNldEZpcnN0T3B0aW9uU2VsZWN0ZWQoZmlyc3RPcHRncm91cENvbXBvbmVudC5vcHRpb25Db21wb25lbnRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKCF0aGlzLmhhc0NvbnRlbnQgJiYgIXRoaXMuc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkVGl0bGUodGhpcy5vcHRpb25zWzBdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRUaXRsZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtc2VsZWN0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0IHNlbGVjdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyB0aGlzLmlkIDogYG5hcy1zZWxlY3QtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXQgZXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkXG4gICAgICA/IHRoaXMuaWQgKyAnX19lcnJvcidcbiAgICAgIDogYG5hcy1zZWxlY3QtJHt0aGlzLmNvbXBvbmVudElkfV9fZXJyb3JgO1xuICB9XG5cbiAgdG9nZ2xlU2VsZWN0KGV2ZW50OiBhbnksIGtleWRvd24/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKChldmVudCAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpIHx8ICFldmVudCB8fCAhZXZlbnQua2V5KSB7XG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuXG4gICAgICBpZiAoa2V5ZG93bikge1xuICAgICAgICB0aGlzLmtleURvd25FdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFldmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcblxuICAgICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMub3B0aW9ucy5maW5kKCh4KSA9PiB4LnZhbHVlID09PSB0YXJnZXQudmFsdWUpO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgKCF0aGlzLnNlbGVjdGVkIHx8IHNlbGVjdGVkLnZhbHVlICE9PSB0aGlzLnNlbGVjdGVkLnZhbHVlKSkge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRBbmRFbWl0Q2hhbmdlKHNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vcHRpb25Db21wb25lbnRzICYmIHRoaXMub3B0aW9uQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5vcHRpb25Db21wb25lbnRzLmZpbmQoKHgpID0+IHgub3B0aW9uLnZhbHVlID09PSB0YXJnZXQudmFsdWUpO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgKCF0aGlzLnNlbGVjdGVkIHx8IHNlbGVjdGVkLm9wdGlvbi52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZC52YWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkQW5kRW1pdENoYW5nZShzZWxlY3RlZC5vcHRpb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vcHRncm91cENvbXBvbmVudHMgJiYgdGhpcy5vcHRncm91cENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLm9wdGdyb3VwQ29tcG9uZW50cy5mb3JFYWNoKChvcHRncm91cENvbXBvbmVudCkgPT4ge1xuICAgICAgICAgIGlmIChvcHRncm91cENvbXBvbmVudC5vcHRpb25Db21wb25lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IG9wdGdyb3VwQ29tcG9uZW50Lm9wdGlvbkNvbXBvbmVudHMuZmluZCgoeCkgPT4geC5vcHRpb24udmFsdWUgPT09IHRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgKCF0aGlzLnNlbGVjdGVkIHx8IHNlbGVjdGVkLm9wdGlvbi52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEFuZEVtaXRDaGFuZ2Uoc2VsZWN0ZWQub3B0aW9uKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVNoYWRvdyh0YXJnZXQsIHRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgYmx1clNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIGdldENsYXNzZXMoKTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIGNvbnN0IGNsYXNzZXM6IEFycmF5PENsYXNzTW9kZWw+ID0gW1xuICAgICAgdGhpcy5nZXRDbGFzcygnJywgW1xuICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLmlubGluZSkgJiYgJ2lubGluZScsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuYmxvY2spICYmICdibG9jaycsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3BhY2VsZXNzKSAmJiAnc3BhY2VsZXNzJyxcbiAgICAgICAgdGhpcy5leGlzdHModGhpcy5zdHJldGNoKSAmJiAnc3RyZXRjaCcsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuY29tcGFjdCkgJiYgJ2NvbXBhY3QnLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLnNpbXBsZSkgJiYgJ3NpbXBsZScsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMubGlnaHQpICYmICdsaWdodCcsXG4gICAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZmlsbCkgJiYgJ2ZpbGwnLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgICB0aGlzLm9wZW4gJiYgJ3JvdGF0ZSdcbiAgICAgIF0pLFxuICAgIF07XG5cbiAgICBpZiAodGhpcy5jc3NDbGFzcykge1xuICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuY3NzQ2xhc3MpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgQERlYm91bmNlKDE1MClcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEFuZEVtaXRDaGFuZ2Uoc2VsZWN0ZWQ6IFNlbGVjdE9wdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNldEZpcnN0T3B0aW9uU2VsZWN0ZWQob3B0aW9uQ29tcG9uZW50czogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD4pOiB2b2lkIHtcbiAgICBpZiAoIW9wdGlvbkNvbXBvbmVudHMgfHwgb3B0aW9uQ29tcG9uZW50cy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uQ29tcG9uZW50ID0gb3B0aW9uQ29tcG9uZW50cy5maXJzdDtcblxuICAgIGlmIChmaXJzdE9wdGlvbkNvbXBvbmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZmlyc3RPcHRpb25Db21wb25lbnQub3B0aW9uO1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZFRpdGxlKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTaGFkb3codGFyZ2V0OiBhbnksIHRhcmdldFZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5sYWJlbCB8fCB0aGlzLmJsb2NrIHx8ICF0aGlzLmF1dG9ncm93IHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU6IHN0cmluZztcblxuICAgIGlmICh0YXJnZXQuc2VsZWN0ZWRPcHRpb25zICYmIHRhcmdldC5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB2YWx1ZSA9IHRhcmdldC5zZWxlY3RlZE9wdGlvbnNbMF0uaW5uZXJIVE1MO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHRhcmdldFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IHNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpO1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpO1xuICAgIHNoYWRvdy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgc2hhZG93LnN0eWxlLnRvcCA9ICctMTAwMHB4JztcbiAgICBzaGFkb3cuc3R5bGUubGVmdCA9ICctMTAwMHB4JztcbiAgICBzaGFkb3cuc3R5bGUud2lkdGggPSAnYXV0byc7XG4gICAgc2hhZG93LnN0eWxlLm1heFdpZHRoID0gJ25vbmUnO1xuICAgIHNoYWRvdy5zdHlsZS5mb250U2l6ZSA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyk7XG4gICAgc2hhZG93LnN0eWxlLmZvbnRGYW1pbHkgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5Jyk7XG4gICAgc2hhZG93LnN0eWxlLmZvbnRXZWlnaHQgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtd2VpZ2h0Jyk7XG4gICAgc2hhZG93LnN0eWxlLmxldHRlclNwYWNpbmcgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2xldHRlci1zcGFjaW5nJyk7XG4gICAgc2hhZG93LnN0eWxlLnBhZGRpbmdUb3AgPSBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJyk7XG4gICAgc2hhZG93LnN0eWxlLnBhZGRpbmdSaWdodCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1yaWdodCcpO1xuICAgIHNoYWRvdy5zdHlsZS5wYWRkaW5nQm90dG9tID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpO1xuICAgIHNoYWRvdy5zdHlsZS5wYWRkaW5nTGVmdCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1sZWZ0Jyk7XG4gICAgc2hhZG93LnN0eWxlLmJvcmRlclRvcCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcCcpO1xuICAgIHNoYWRvdy5zdHlsZS5ib3JkZXJSaWdodCA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXJpZ2h0Jyk7XG4gICAgc2hhZG93LnN0eWxlLmJvcmRlckJvdHRvbSA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWJvdHRvbScpO1xuICAgIHNoYWRvdy5zdHlsZS5ib3JkZXJMZWZ0ID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItbGVmdCcpO1xuXG4gICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7XG4gICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7XG4gICAgb3B0aW9uLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIHNoYWRvdy5hcHBlbmRDaGlsZChvcHRpb24pO1xuXG4gICAgdGFyZ2V0LnN0eWxlLndpZHRoID0gYCR7c2hhZG93Lm9mZnNldFdpZHRoICsgNn1weGA7XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkVGl0bGUob3B0aW9uOiBTZWxlY3RPcHRpb25Nb2RlbCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdFRpdGxlV3JhcHBlciA9IHRoaXMuc2VsZWN0VGl0bGVXcmFwcGVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoIXNlbGVjdFRpdGxlV3JhcHBlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghb3B0aW9uKSB7XG4gICAgICBzZWxlY3RUaXRsZVdyYXBwZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdFRpdGxlID0gb3B0aW9uLnRpdGxlO1xuICAgIHNlbGVjdFRpdGxlV3JhcHBlci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICBzZWxlY3RUaXRsZVdyYXBwZXIuc3R5bGUud2hpdGVTcGFjZSA9ICdub3dyYXAnO1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdEVsZW1lbnQgPSB0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKCFzZWxlY3RFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzZWxlY3RFbGVtZW50KTtcbiAgICBsZXQgc2VsZWN0UGFkZGluZ0xlZnQgPSAwO1xuICAgIGxldCBzZWxlY3RQYWRkaW5nUmlnaHQgPSAwO1xuICAgIGxldCBzZWxlY3RCb3JkZXJMZWZ0ID0gMDtcbiAgICBsZXQgc2VsZWN0Qm9yZGVyUmlnaHQgPSAwO1xuXG4gICAgaWYgKHNlbGVjdFN0eWxlKSB7XG4gICAgICBzZWxlY3RQYWRkaW5nTGVmdCA9IHBhcnNlSW50KHNlbGVjdFN0eWxlLnBhZGRpbmdMZWZ0LCAxMCk7XG4gICAgICBzZWxlY3RQYWRkaW5nUmlnaHQgPSBwYXJzZUludChzZWxlY3RTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKTtcbiAgICAgIHNlbGVjdEJvcmRlckxlZnQgPSBwYXJzZUludChzZWxlY3RTdHlsZS5ib3JkZXJMZWZ0LCAxMCk7XG4gICAgICBzZWxlY3RCb3JkZXJSaWdodCA9IHBhcnNlSW50KHNlbGVjdFN0eWxlLmJvcmRlclJpZ2h0LCAxMCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0VGl0bGVXcmFwcGVyVGl0bGUgPVxuICAgICAgc2VsZWN0VGl0bGVXcmFwcGVyLmxhc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgbGV0IG9mZnNldFdpZHRoID0gc2VsZWN0UGFkZGluZ0xlZnQgKyBzZWxlY3RQYWRkaW5nUmlnaHQgKyBzZWxlY3RCb3JkZXJMZWZ0ICsgc2VsZWN0Qm9yZGVyUmlnaHQ7XG5cbiAgICBpZiAoc2VsZWN0VGl0bGVXcmFwcGVyVGl0bGUpIHtcbiAgICAgIG9mZnNldFdpZHRoICs9IHNlbGVjdFRpdGxlV3JhcHBlclRpdGxlLm9mZnNldFdpZHRoO1xuICAgICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmIHRoaXMuZXJyb3JNZXNzYWdlV3JhcHBlcikge1xuICAgICAgICBjb25zdCBzZWxlY3RFcnJvcldpZHRoID0gcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lcnJvck1lc3NhZ2VXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpLndpZHRoLCAxMCk7XG4gICAgICAgIGlmIChzZWxlY3RFcnJvcldpZHRoID4gb2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICBvZmZzZXRXaWR0aCA9IHNlbGVjdEVycm9yV2lkdGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob2Zmc2V0V2lkdGggPiAwKSB7XG4gICAgICB0aGlzLmxhYmVsV2lkdGggPSBvZmZzZXRXaWR0aDtcbiAgICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RUaXRsZVdyYXBwZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxufVxuIiwiPGxhYmVsIGlkPVwiZ2V0U2VsZWN0SWQoKVwiICpuZ0lmPVwibGFiZWwgJiYgIWlubGluZVwiPlxuICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsLXRleHQnKVwiPnt7bGFiZWx9fTwvc3Bhbj5cbjwvbGFiZWw+XG48ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzc2VzKClcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFuYXNGb3JtR3JvdXAgfHwgIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgICA8c2VsZWN0ICNzZWxlY3QgW2lkXT1cInNlbGVjdElkXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidzZWxlY3QnXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRTZWxlY3RJZCgpXCIgW3N0eWxlLndpZHRoLnB4XT1cImxhYmVsV2lkdGhcIiBbZm9ybUNvbnRyb2xdPVwic2VsZWN0Q29udHJvbFwiXG4gICAgICAobW91c2Vkb3duKT1cInRvZ2dsZVNlbGVjdCgkZXZlbnQpXCIgKGtleWRvd24pPVwidG9nZ2xlU2VsZWN0KCRldmVudCwgdHJ1ZSlcIiAoYmx1cik9XCJibHVyU2VsZWN0KClcIlxuICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVTZWxlY3QoJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNDb250ZW50XCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbj8udmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbj8udGl0bGVcIj5cbiAgICAgICAgICB7e29wdGlvbj8udGl0bGV9fTwvb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudE9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlbGVjdD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgIDxzZWxlY3QgI3NlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVwiIFtpZF09XCJzZWxlY3RJZFwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2VsZWN0J1wiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRTZWxlY3RJZCgpXCIgW3N0eWxlLndpZHRoLnB4XT1cImxhYmVsV2lkdGhcIlxuICAgICAgICAobW91c2Vkb3duKT1cInRvZ2dsZVNlbGVjdCgkZXZlbnQpXCIgKGtleWRvd24pPVwidG9nZ2xlU2VsZWN0KCRldmVudCwgdHJ1ZSlcIiAoYmx1cik9XCJibHVyU2VsZWN0KClcIlxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzQ29udGVudFwiPlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbj8udmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbj8udGl0bGVcIj5cbiAgICAgICAgICAgIHt7b3B0aW9uPy50aXRsZX19PC9vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudE9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8cCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2Vycm9yJylcIiAjZXJyb3JNZXNzYWdlV3JhcHBlciAqbmdJZj1cImV4aXN0cyhlcnJvcikgJiYgZXJyb3JNZXNzYWdlXCIgW2lkXT1cImVycm9ySWRcIj5cbiAgICB7e2Vycm9yTWVzc2FnZX19PC9wPlxuICA8ZGl2ICNzZWxlY3RUaXRsZVdyYXBwZXIgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPHNwYW4+e3tzZWxlY3RUaXRsZX19PC9zcGFuPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNjb250ZW50T3B0aW9ucz5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj4iXX0=
@@ -84,7 +84,6 @@ export class SpinnerComponent extends NasComponentBase {
84
84
  return [
85
85
  this.exists(this.small) && 'small',
86
86
  this.exists(this.rounded) && 'rounded',
87
- this.exists(this.roundedSmall) && 'rounded--small',
88
87
  this.exists(this.overlay) && 'overlay'
89
88
  ];
90
89
  }
@@ -101,11 +100,11 @@ export class SpinnerComponent extends NasComponentBase {
101
100
  return classes;
102
101
  }
103
102
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SpinnerComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SpinnerComponent, selector: "nas-spinner", inputs: { text: "text", refreshText: "refreshText", small: "small", overlay: "overlay", enable: "enable", refresh: "refresh", blockScrolling: "blockScrolling", rounded: "rounded", roundedSmall: "roundedSmall", cssClass: "cssClass" }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"getClasses('', modifiers)\" *ngIf=\"enable\">\n <span [nasClass]=\"getClass('box')\">\n <span [nasClass]=\"getClass('border')\"></span>\n </span>\n <div *ngIf=\"text\" [nasClass]=\"getClass('text')\">\n <div>{{text}}</div>\n <div [nasClass]=\"getClass('refresh')\" *ngIf=\"showRefreshLink\" (click)=\"refreshPage()\"> <a> {{refreshText}} </a></div>\n </div>\n</div>\n\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-spinner{position:relative;text-align:center}.nas-spinner__box{position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto;margin-bottom:8px;width:48px;height:48px;background-color:#e5212d}.nas-spinner__border{position:absolute;display:block;top:52px;left:0;width:48px;height:8px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner__text{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;position:relative;z-index:2;margin-top:24px;text-align:center;width:100%}.nas-spinner--small .nas-spinner__box{width:24px;height:24px}.nas-spinner--small .nas-spinner__text{margin-top:16px}.nas-spinner--small .nas-spinner__border{position:absolute;top:27px;left:0;width:24px;height:3px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner--overlay{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;top:0;left:0;width:100%;height:100%;z-index:40}.nas-spinner--overlay:before{content:\"\";display:block;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#ffffffb3;animation:fade-in .5s ease-out both}.nas-spinner--rounded,.nas-spinner--rounded--small{height:48px;width:48px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);background-image:conic-gradient(transparent 25%,#15273f);animation:spin 1.5s linear infinite;border-radius:50%;position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto}.nas-spinner--rounded .nas-spinner__box,.nas-spinner--rounded--small .nas-spinner__box,.nas-spinner--rounded .nas-spinner__border,.nas-spinner--rounded--small .nas-spinner__border{display:none}.nas-spinner--rounded--small{height:16px;width:16px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 6px,transparent 85%,#1C1C1C 100%);background-image:conic-gradient(transparent 15%,#15273f)}.nas-spinner__refresh{padding-left:5px;position:absolute;width:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinner{0%{transform:translate(0) scaleX(0)}50%{transform:translate(0) scaleX(1)}to{transform:translate(100%) scaleX(0)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SpinnerComponent, selector: "nas-spinner", inputs: { text: "text", refreshText: "refreshText", small: "small", overlay: "overlay", enable: "enable", refresh: "refresh", blockScrolling: "blockScrolling", rounded: "rounded", cssClass: "cssClass" }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"getClasses('', modifiers)\" *ngIf=\"enable\">\n <span [nasClass]=\"getClass('box')\">\n <span [nasClass]=\"getClass('border')\"></span>\n </span>\n <div *ngIf=\"text\" [nasClass]=\"getClass('text')\">\n <div>{{text}}</div>\n <div [nasClass]=\"getClass('refresh')\" *ngIf=\"showRefreshLink\" (click)=\"refreshPage()\">\n <a> {{refreshText}} </a>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-spinner{position:relative;text-align:center}.nas-spinner__box{position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto;margin-bottom:8px;width:48px;height:48px;background-color:#e5212d}.nas-spinner__border{position:absolute;display:block;top:52px;left:0;width:48px;height:8px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner__text{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;position:relative;z-index:2;margin-top:24px;text-align:center;width:100%}.nas-spinner--small .nas-spinner__box{width:24px;height:24px}.nas-spinner--small .nas-spinner__text{margin-top:16px}.nas-spinner--small .nas-spinner__border{position:absolute;top:27px;left:0;width:24px;height:3px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner--overlay{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;top:0;left:0;width:100%;height:100%;z-index:40}.nas-spinner--overlay:before{content:\"\";display:block;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#ffffffb3;animation:fade-in .5s ease-out both}.nas-spinner--rounded .nas-spinner__box,.nas-spinner--rounded.nas-spinner--small .nas-spinner__box .nas-spinner__box{height:48px;width:48px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);background-image:conic-gradient(transparent 25%,#15273f);background-color:unset;animation:spin 1.5s linear infinite;border-radius:50%;position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto}.nas-spinner--rounded .nas-spinner__border,.nas-spinner--rounded.nas-spinner--small .nas-spinner__box .nas-spinner__border{display:none}.nas-spinner--rounded.nas-spinner--small .nas-spinner__box{height:16px;width:16px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 6px,transparent 85%,#1C1C1C 100%);background-image:conic-gradient(transparent 15%,#15273f)}.nas-spinner--rounded.nas-spinner--small .nas-spinner__text{margin-top:16px}.nas-spinner--rounded.nas-spinner--small .nas-spinner__border{display:none}.nas-spinner__refresh{padding-left:5px;position:absolute;width:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinner{0%{transform:translate(0) scaleX(0)}50%{transform:translate(0) scaleX(1)}to{transform:translate(100%) scaleX(0)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
105
104
  }
106
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SpinnerComponent, decorators: [{
107
106
  type: Component,
108
- args: [{ selector: 'nas-spinner', encapsulation: ViewEncapsulation.None, template: "<div [nasClass]=\"getClasses('', modifiers)\" *ngIf=\"enable\">\n <span [nasClass]=\"getClass('box')\">\n <span [nasClass]=\"getClass('border')\"></span>\n </span>\n <div *ngIf=\"text\" [nasClass]=\"getClass('text')\">\n <div>{{text}}</div>\n <div [nasClass]=\"getClass('refresh')\" *ngIf=\"showRefreshLink\" (click)=\"refreshPage()\"> <a> {{refreshText}} </a></div>\n </div>\n</div>\n\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-spinner{position:relative;text-align:center}.nas-spinner__box{position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto;margin-bottom:8px;width:48px;height:48px;background-color:#e5212d}.nas-spinner__border{position:absolute;display:block;top:52px;left:0;width:48px;height:8px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner__text{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;position:relative;z-index:2;margin-top:24px;text-align:center;width:100%}.nas-spinner--small .nas-spinner__box{width:24px;height:24px}.nas-spinner--small .nas-spinner__text{margin-top:16px}.nas-spinner--small .nas-spinner__border{position:absolute;top:27px;left:0;width:24px;height:3px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner--overlay{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;top:0;left:0;width:100%;height:100%;z-index:40}.nas-spinner--overlay:before{content:\"\";display:block;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#ffffffb3;animation:fade-in .5s ease-out both}.nas-spinner--rounded,.nas-spinner--rounded--small{height:48px;width:48px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);background-image:conic-gradient(transparent 25%,#15273f);animation:spin 1.5s linear infinite;border-radius:50%;position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto}.nas-spinner--rounded .nas-spinner__box,.nas-spinner--rounded--small .nas-spinner__box,.nas-spinner--rounded .nas-spinner__border,.nas-spinner--rounded--small .nas-spinner__border{display:none}.nas-spinner--rounded--small{height:16px;width:16px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 6px,transparent 85%,#1C1C1C 100%);background-image:conic-gradient(transparent 15%,#15273f)}.nas-spinner__refresh{padding-left:5px;position:absolute;width:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinner{0%{transform:translate(0) scaleX(0)}50%{transform:translate(0) scaleX(1)}to{transform:translate(100%) scaleX(0)}}\n"] }]
107
+ args: [{ selector: 'nas-spinner', encapsulation: ViewEncapsulation.None, template: "<div [nasClass]=\"getClasses('', modifiers)\" *ngIf=\"enable\">\n <span [nasClass]=\"getClass('box')\">\n <span [nasClass]=\"getClass('border')\"></span>\n </span>\n <div *ngIf=\"text\" [nasClass]=\"getClass('text')\">\n <div>{{text}}</div>\n <div [nasClass]=\"getClass('refresh')\" *ngIf=\"showRefreshLink\" (click)=\"refreshPage()\">\n <a> {{refreshText}} </a>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-spinner{position:relative;text-align:center}.nas-spinner__box{position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto;margin-bottom:8px;width:48px;height:48px;background-color:#e5212d}.nas-spinner__border{position:absolute;display:block;top:52px;left:0;width:48px;height:8px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner__text{font-family:NorwegianTextPro,Arial,Apercu,Helvetica Neue,Helvetica,sans-serif;font-weight:400;position:relative;z-index:2;margin-top:24px;text-align:center;width:100%}.nas-spinner--small .nas-spinner__box{width:24px;height:24px}.nas-spinner--small .nas-spinner__text{margin-top:16px}.nas-spinner--small .nas-spinner__border{position:absolute;top:27px;left:0;width:24px;height:3px;background-color:#15273f;animation:spinner ease 1s;animation-iteration-count:infinite;animation-fill-mode:forwards;transform-origin:left}.nas-spinner--overlay{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;top:0;left:0;width:100%;height:100%;z-index:40}.nas-spinner--overlay:before{content:\"\";display:block;position:fixed;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#ffffffb3;animation:fade-in .5s ease-out both}.nas-spinner--rounded .nas-spinner__box,.nas-spinner--rounded.nas-spinner--small .nas-spinner__box .nas-spinner__box{height:48px;width:48px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);background-image:conic-gradient(transparent 25%,#15273f);background-color:unset;animation:spin 1.5s linear infinite;border-radius:50%;position:relative;display:block;z-index:2;margin-left:auto;margin-right:auto}.nas-spinner--rounded .nas-spinner__border,.nas-spinner--rounded.nas-spinner--small .nas-spinner__box .nas-spinner__border{display:none}.nas-spinner--rounded.nas-spinner--small .nas-spinner__box{height:16px;width:16px;-webkit-mask:radial-gradient(circle 16px,transparent 99%,#1C1C1C 100%);mask:radial-gradient(circle 6px,transparent 85%,#1C1C1C 100%);background-image:conic-gradient(transparent 15%,#15273f)}.nas-spinner--rounded.nas-spinner--small .nas-spinner__text{margin-top:16px}.nas-spinner--rounded.nas-spinner--small .nas-spinner__border{display:none}.nas-spinner__refresh{padding-left:5px;position:absolute;width:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinner{0%{transform:translate(0) scaleX(0)}50%{transform:translate(0) scaleX(1)}to{transform:translate(100%) scaleX(0)}}\n"] }]
109
108
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { text: [{
110
109
  type: Input
111
110
  }], refreshText: [{
@@ -122,9 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
122
121
  type: Input
123
122
  }], rounded: [{
124
123
  type: Input
125
- }], roundedSmall: [{
126
- type: Input
127
124
  }], cssClass: [{
128
125
  type: Input
129
126
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBRzlDOzs7RUFHRTtBQU9GLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUE4Q3BEOzs7Ozs7TUFNRTtJQUNGLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBZTtRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBd0NELFlBQW9CLFFBQW1CO1FBQ3JDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQURI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LEtBQUs7Z0JBU0csT0FBTztzQkFBZixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBSZW5kZXJlcjIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIFNwaW5uZXIgQ29tcG9uZW50IHwgTGF5b3V0XG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGVuYWJsZVZhbHVlOiBib29sZWFuO1xuICBwcml2YXRlIHJlZnJlc2hMaW5rVGltb3V0OiBhbnk7XG4gIHB1YmxpYyBzaG93UmVmcmVzaExpbms6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVmcmVzaFNlY29uZFZhbHVlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gaW5mb3JtYXRpb24gbWVzc2FnZSB0aGF0IGlzIGRpc3BsYXllZCBvbiB0aGUgc3Bpbm5lci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1zcGlubmVyIFt0ZXh0XT1cInRleHRcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gaW5mb3JtYXRpb24gbWVzc2FnZSB0aGF0IGlzIGRpc3BsYXllZCBvbiB0aGUgcmVmcmVzaCBsaW5rLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNwaW5uZXIgW3JlZnJlc2hUZXh0XT1cInRleHRcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKSByZWZyZXNoVGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgc21hbGwgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1zZWxlY3Qgc21hbGw+PC9uYXMtc2VsZWN0PlxuICAgKiBvclxuICAgKiA8bmFzLXNlbGVjdCBbc21hbGxdPVwidHJ1ZVwiPjwvbmFzLXNlbGVjdD5cbiAgKi9cbiAgQElucHV0KCkgc21hbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgb3ZlcmxheSBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNlbGVjdCBvdmVybGF5PjwvbmFzLXNlbGVjdD5cbiAgICogb3JcbiAgICogPG5hcy1zZWxlY3QgW292ZXJsYXldPVwidHJ1ZVwiPjwvbmFzLXNlbGVjdD5cbiAgKi9cbiAgQElucHV0KCkgb3ZlcmxheT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRW5hYmxlcyB0aGUgc3Bpbm5lciBhZnRlciA1MDBtcy4gSWYgZmFsc2UgYWdhaW4gd2l0aGluIDUwMG1zLCB0aGUgc3Bpbm5lciB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQgYXQgYWxsLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNwaW5uZXIgW2VuYWJsZV09XCJlbmFibGVcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgZW5hYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZVZhbHVlO1xuICB9XG4gIHNldCBlbmFibGUoZW5hYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5lbmFibGVWYWx1ZSA9IGVuYWJsZTtcbiAgICB0aGlzLnNldEVuYWJsZWQodGhpcy5lbmFibGVWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvbnBcbiAgICogU2V0cyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBiZWZvcmUgc2hvd2luZyB0aGUgcmVmcmVzaCBsaW5rLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNwaW5uZXIgW3JlZnJlc2hdPVwiMTBcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgcmVmcmVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoU2Vjb25kVmFsdWU7XG4gIH1cbiAgc2V0IHJlZnJlc2godmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA9PT0gMCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlZnJlc2hTZWNvbmRWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQmxvY2sgcGFnZSBzY3JvbGxpbmcuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtc2VsZWN0IGJsb2NrU2Nyb2xsaW5nPjwvbmFzLXNlbGVjdD5cbiAgICogb3JcbiAgICogPG5hcy1zZWxlY3QgW2Jsb2NrU2Nyb2xsaW5nXT1cInRydWVcIj48L25hcy1zZWxlY3Q+XG4gICovXG4gIEBJbnB1dCgpIGJsb2NrU2Nyb2xsaW5nID0gdHJ1ZTtcblxuICAvKipcbiAqIEBwcm9wZXJ0eSBJbnB1dFxuICogQGRlc2NyaXB0aW9uXG4gKiBOZXcgcm91bmQgc3Bpbm5lciBkZXNpZ25cbiAqIEBleGFtcGxlXG4gKiA8bmFzLXNwaW5uZXIgcm91bmRlZD48L25hcy1zcGlubmVyPlxuKi9cbiAgQElucHV0KCkgcm91bmRlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4qIEBwcm9wZXJ0eSBJbnB1dFxuKiBAZGVzY3JpcHRpb25cbiogTmV3IHJvdW5kIHNtYWxsIHNwaW5uZXIgZGVzaWduXG4qIEBleGFtcGxlXG4qIDxuYXMtc3Bpbm5lciByb3VuZGVkU21hbGw+PC9uYXMtc3Bpbm5lcj5cbiovXG4gIEBJbnB1dCgpIHJvdW5kZWRTbWFsbD86IGJvb2xlYW47XG4gIC8qKlxuICogQHByb3BlcnR5IElucHV0XG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZHMgY3VzdG9tIENTUyBjbGFzcyB0byB0aGUgc3Bpbm5lci4gU3Bpbm5lciB3aWxsIHNldHQgYWRkaXRpb25hbCBjdXN0b20gc3R5bGluZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPG5hcy1zcGlubmVyIFtjc3NDbGFzc109XCInbXktY3VzdG9tLWNsYXNzJ1wiPiA8L25hcy1zcGlubmVyPlxuICovXG4gIEBJbnB1dCgpIGNzc0NsYXNzPzogQ2xhc3NNb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBzdXBlcignbmFzLXNwaW5uZXInKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RW5hYmxlZCh0aGlzLmVuYWJsZVZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93UmVmcmVzaExpbmsgPSBmYWxzZTtcblxuICAgIGlmIChlbmFibGVkKSB7XG4gICAgICB0aGlzLmVuYWJsZVZhbHVlID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmJsb2NrU2Nyb2xsaW5nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ2Jsb2NrLXNjcm9sbGluZycpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZWZyZXNoID4gMCAmJiB0aGlzLnJlZnJlc2hUZXh0ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoTGlua1RpbW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd1JlZnJlc2hMaW5rID0gdHJ1ZTtcbiAgICAgICAgfSwgdGhpcy5yZWZyZXNoU2Vjb25kVmFsdWUgKiAxMDAwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVmcmVzaExpbmtUaW1vdXQpO1xuXG4gICAgICB0aGlzLmVuYWJsZVZhbHVlID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dSZWZyZXNoTGluayA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5ibG9ja1Njcm9sbGluZykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGRvY3VtZW50LmJvZHksICdibG9jay1zY3JvbGxpbmcnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZWZyZXNoUGFnZSgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICBnZXQgbW9kaWZpZXJzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnNtYWxsKSAmJiAnc21hbGwnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5yb3VuZGVkKSAmJiAncm91bmRlZCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnJvdW5kZWRTbWFsbCkgJiYgJ3JvdW5kZWQtLXNtYWxsJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMub3ZlcmxheSkgJiYgJ292ZXJsYXknXG4gICAgXTtcbiAgfVxuXG4gIGdldENsYXNzZXMoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzPzogYW55KTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBuZXcgQXJyYXk8Q2xhc3NNb2RlbD4oKTtcblxuICAgIGlmICh0aGlzLmNzc0NsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5jc3NDbGFzcyk7XG4gICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG5cbiAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDbGFzcyhlbGVtZW50LCBtb2RpZmllcnMpKTtcblxuICAgIGlmICh0aGlzLmNzc0NsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5jc3NDbGFzcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzZXMoJycsIG1vZGlmaWVycylcIiAqbmdJZj1cImVuYWJsZVwiPlxuICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2JveCcpXCI+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdib3JkZXInKVwiPjwvc3Bhbj5cbiAgPC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwidGV4dFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCI+XG4gICAgPGRpdj57e3RleHR9fTwvZGl2PlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZWZyZXNoJylcIiAqbmdJZj1cInNob3dSZWZyZXNoTGlua1wiIChjbGljayk9XCJyZWZyZXNoUGFnZSgpXCI+IDxhPiB7e3JlZnJlc2hUZXh0fX0gPC9hPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBRzlDOzs7RUFHRTtBQU9GLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUE4Q3BEOzs7Ozs7TUFNRTtJQUNGLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBZTtRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBZ0NELFlBQW9CLFFBQW1CO1FBQ3JDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQURI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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBSZW5kZXJlcjIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIFNwaW5uZXIgQ29tcG9uZW50IHwgTGF5b3V0XG4qL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmFzLXNwaW5uZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NwaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU3Bpbm5lckNvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGVuYWJsZVZhbHVlOiBib29sZWFuO1xuICBwcml2YXRlIHJlZnJlc2hMaW5rVGltb3V0OiBhbnk7XG4gIHB1YmxpYyBzaG93UmVmcmVzaExpbms6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVmcmVzaFNlY29uZFZhbHVlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gaW5mb3JtYXRpb24gbWVzc2FnZSB0aGF0IGlzIGRpc3BsYXllZCBvbiB0aGUgc3Bpbm5lci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1zcGlubmVyIFt0ZXh0XT1cInRleHRcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gaW5mb3JtYXRpb24gbWVzc2FnZSB0aGF0IGlzIGRpc3BsYXllZCBvbiB0aGUgcmVmcmVzaCBsaW5rLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNwaW5uZXIgW3JlZnJlc2hUZXh0XT1cInRleHRcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKSByZWZyZXNoVGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgc21hbGwgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1zZWxlY3Qgc21hbGw+PC9uYXMtc2VsZWN0PlxuICAgKiBvclxuICAgKiA8bmFzLXNlbGVjdCBbc21hbGxdPVwidHJ1ZVwiPjwvbmFzLXNlbGVjdD5cbiAgKi9cbiAgQElucHV0KCkgc21hbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgb3ZlcmxheSBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNlbGVjdCBvdmVybGF5PjwvbmFzLXNlbGVjdD5cbiAgICogb3JcbiAgICogPG5hcy1zZWxlY3QgW292ZXJsYXldPVwidHJ1ZVwiPjwvbmFzLXNlbGVjdD5cbiAgKi9cbiAgQElucHV0KCkgb3ZlcmxheT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRW5hYmxlcyB0aGUgc3Bpbm5lciBhZnRlciA1MDBtcy4gSWYgZmFsc2UgYWdhaW4gd2l0aGluIDUwMG1zLCB0aGUgc3Bpbm5lciB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQgYXQgYWxsLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNwaW5uZXIgW2VuYWJsZV09XCJlbmFibGVcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgZW5hYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZVZhbHVlO1xuICB9XG4gIHNldCBlbmFibGUoZW5hYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5lbmFibGVWYWx1ZSA9IGVuYWJsZTtcbiAgICB0aGlzLnNldEVuYWJsZWQodGhpcy5lbmFibGVWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvbnBcbiAgICogU2V0cyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBiZWZvcmUgc2hvd2luZyB0aGUgcmVmcmVzaCBsaW5rLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXNwaW5uZXIgW3JlZnJlc2hdPVwiMTBcIj48L25hcy1zcGlubmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgcmVmcmVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoU2Vjb25kVmFsdWU7XG4gIH1cbiAgc2V0IHJlZnJlc2godmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA9PT0gMCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlZnJlc2hTZWNvbmRWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQmxvY2sgcGFnZSBzY3JvbGxpbmcuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtc2VsZWN0IGJsb2NrU2Nyb2xsaW5nPjwvbmFzLXNlbGVjdD5cbiAgICogb3JcbiAgICogPG5hcy1zZWxlY3QgW2Jsb2NrU2Nyb2xsaW5nXT1cInRydWVcIj48L25hcy1zZWxlY3Q+XG4gICovXG4gIEBJbnB1dCgpIGJsb2NrU2Nyb2xsaW5nID0gdHJ1ZTtcblxuICAvKipcbiAqIEBwcm9wZXJ0eSBJbnB1dFxuICogQGRlc2NyaXB0aW9uXG4gKiBOZXcgcm91bmQgc3Bpbm5lciBkZXNpZ25cbiAqIEBleGFtcGxlXG4gKiA8bmFzLXNwaW5uZXIgcm91bmRlZD48L25hcy1zcGlubmVyPlxuKi9cbiAgQElucHV0KCkgcm91bmRlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gKiBAcHJvcGVydHkgSW5wdXRcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkcyBjdXN0b20gQ1NTIGNsYXNzIHRvIHRoZSBzcGlubmVyLiBTcGlubmVyIHdpbGwgc2V0dCBhZGRpdGlvbmFsIGN1c3RvbSBzdHlsaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8bmFzLXNwaW5uZXIgW2Nzc0NsYXNzXT1cIidteS1jdXN0b20tY2xhc3MnXCI+IDwvbmFzLXNwaW5uZXI+XG4gKi9cbiAgQElucHV0KCkgY3NzQ2xhc3M/OiBDbGFzc01vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKCduYXMtc3Bpbm5lcicpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRFbmFibGVkKHRoaXMuZW5hYmxlVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dSZWZyZXNoTGluayA9IGZhbHNlO1xuXG4gICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgIHRoaXMuZW5hYmxlVmFsdWUgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuYmxvY2tTY3JvbGxpbmcpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCAnYmxvY2stc2Nyb2xsaW5nJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlZnJlc2ggPiAwICYmIHRoaXMucmVmcmVzaFRleHQgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hMaW5rVGltb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93UmVmcmVzaExpbmsgPSB0cnVlO1xuICAgICAgICB9LCB0aGlzLnJlZnJlc2hTZWNvbmRWYWx1ZSAqIDEwMDApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoTGlua1RpbW91dCk7XG5cbiAgICAgIHRoaXMuZW5hYmxlVmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd1JlZnJlc2hMaW5rID0gZmFsc2U7XG5cbiAgICAgIGlmICh0aGlzLmJsb2NrU2Nyb2xsaW5nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ2Jsb2NrLXNjcm9sbGluZycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hQYWdlKCkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgfVxuXG4gIGdldCBtb2RpZmllcnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc21hbGwpICYmICdzbWFsbCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnJvdW5kZWQpICYmICdyb3VuZGVkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMub3ZlcmxheSkgJiYgJ292ZXJsYXknXG4gICAgXTtcbiAgfVxuXG4gIGdldENsYXNzZXMoZWxlbWVudD86IHN0cmluZywgbW9kaWZpZXJzPzogYW55KTogQXJyYXk8Q2xhc3NNb2RlbD4ge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBuZXcgQXJyYXk8Q2xhc3NNb2RlbD4oKTtcblxuICAgIGlmICh0aGlzLmNzc0NsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5jc3NDbGFzcyk7XG4gICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG5cbiAgICBjbGFzc2VzLnB1c2godGhpcy5nZXRDbGFzcyhlbGVtZW50LCBtb2RpZmllcnMpKTtcblxuICAgIGlmICh0aGlzLmNzc0NsYXNzKSB7XG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5jc3NDbGFzcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH1cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzZXMoJycsIG1vZGlmaWVycylcIiAqbmdJZj1cImVuYWJsZVwiPlxuICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2JveCcpXCI+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdib3JkZXInKVwiPjwvc3Bhbj5cbiAgPC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwidGV4dFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCI+XG4gICAgPGRpdj57e3RleHR9fTwvZGl2PlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZWZyZXNoJylcIiAqbmdJZj1cInNob3dSZWZyZXNoTGlua1wiIChjbGljayk9XCJyZWZyZXNoUGFnZSgpXCI+XG4gICAgICA8YT4ge3tyZWZyZXNoVGV4dH19IDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=