@norwegian/core-components 7.16.0 → 7.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -113,11 +113,11 @@ export class PhoneNumberComponent extends NasComponentBase {
113
113
  this.lastWasTab = false;
114
114
  }
115
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PhoneNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PhoneNumberComponent, selector: "nas-phone-number", inputs: { options: "options", preferredOptions: "preferredOptions", prefixCountryCode: "prefixCountryCode", label: "label", optionsLabel: "optionsLabel", preferredOptionsLabel: "preferredOptionsLabel", inputLabel: "inputLabel", placeholder: "placeholder", id: "id", type: "type", error: "error", disabled: "disabled", spaceless: "spaceless", errorMessage: "errorMessage", info: "info", icon: "icon", readonly: "readonly", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], required: "required", nasFormControlName: "nasFormControlName", nasFormControlNamePrefix: "nasFormControlNamePrefix", nasFormGroup: "nasFormGroup", model: "model", cssClass: "cssClass", selectedValue: "selectedValue", selected: "selected" }, outputs: { modelChange: "modelChange", selectedChange: "selectedChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\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-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\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: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.SelectComponent, selector: "nas-select", inputs: ["id", "inline", "label", "block", "spaceless", "stretch", "compact", "simple", "light", "fill", "error", "errorMessage", "disabled", "autogrow", "cssClass", "nasFormControlName", "nasFormGroup", "options", "selectedValue", "selected"], outputs: ["selectedChange", "keyDownEvent"] }, { kind: "component", type: i4.OptionComponent, selector: "nas-option", inputs: ["option"] }, { kind: "component", type: i5.OptgroupComponent, selector: "nas-optgroup", inputs: ["label"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PhoneNumberComponent, selector: "nas-phone-number", inputs: { options: "options", preferredOptions: "preferredOptions", prefixCountryCode: "prefixCountryCode", label: "label", optionsLabel: "optionsLabel", preferredOptionsLabel: "preferredOptionsLabel", inputLabel: "inputLabel", placeholder: "placeholder", id: "id", type: "type", error: "error", disabled: "disabled", spaceless: "spaceless", errorMessage: "errorMessage", info: "info", icon: "icon", readonly: "readonly", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], required: "required", nasFormControlName: "nasFormControlName", nasFormControlNamePrefix: "nasFormControlNamePrefix", nasFormGroup: "nasFormGroup", model: "model", cssClass: "cssClass", selectedValue: "selectedValue", selected: "selected" }, outputs: { modelChange: "modelChange", selectedChange: "selectedChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" presentValue [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" presentValue [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" presentValue [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" presentValue [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\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-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-right:4px;max-width:90px}:host ::ng-deep .nas-select select::-ms-expand{display:none}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-right:0}}:host ::ng-deep .nas-select option{white-space:nowrap}\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: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.SelectComponent, selector: "nas-select", inputs: ["id", "inline", "label", "block", "spaceless", "stretch", "compact", "simple", "light", "fill", "error", "errorMessage", "disabled", "autogrow", "presentValue", "cssClass", "nasFormControlName", "nasFormGroup", "options", "selectedValue", "selected"], outputs: ["selectedChange", "keyDownEvent"] }, { kind: "component", type: i4.OptionComponent, selector: "nas-option", inputs: ["option"] }, { kind: "component", type: i5.OptgroupComponent, selector: "nas-optgroup", inputs: ["label"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
117
117
  }
118
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PhoneNumberComponent, decorators: [{
119
119
  type: Component,
120
- args: [{ selector: 'nas-phone-number', template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\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-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"] }]
120
+ args: [{ selector: 'nas-phone-number', template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" presentValue [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" presentValue [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" presentValue [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" presentValue [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\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-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-right:4px;max-width:90px}:host ::ng-deep .nas-select select::-ms-expand{display:none}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-right:0}}:host ::ng-deep .nas-select option{white-space:nowrap}\n"] }]
121
121
  }], ctorParameters: function () { return []; }, propDecorators: { options: [{
122
122
  type: Input
123
123
  }], preferredOptions: [{
@@ -179,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
179
179
  type: HostListener,
180
180
  args: ['document:keydown', ['$event']]
181
181
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7QUFLdEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQXNOeEQsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUE4QkQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FB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YW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTW9kZWwgfSBmcm9tICcuLi9zZWxlY3QvbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gUGhvbmUgbnVtYmVyIENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1waG9uZS1udW1iZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVOdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGNvdW50cnkgY29kZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFycmF5PFNlbGVjdE9wdGlvbk1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQcmVmZXJyZWQgb3B0aW9ucyB3aWxsIGJlIGxpc3RlZCBvbiB0b3AuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwcmVmZXJyZWQtb3B0aW9uc109XCJwcmVmZXJyZWRPcHRpb25zXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmZXJyZWRPcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2luZ2xlIFBob25lIG51bWJlciBwcmVmaXgvY291bnRyeSBjb2RlLCBpZiBleGlzdHMgd2lsbCByZXBsYWNlIHRoZSBkcm9wZG93biBzZWxlY3RvciBmb3IgY291bnRyeWNvZGVcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3ByZWZpeENvdW50cnlDb2RlXT1cIicrNDcnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmaXhDb3VudHJ5Q29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgbGFiZWwgZm9yIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2xhYmVsXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGxhYmVsIGZvciBvcHRpb25zLiBPbmx5IGluIHVzZSB3aGVuIHByZWZlcnJlZE9wdGlvbnMgYXJlIHVzZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyPjxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPi4uLjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgb3B0aW9uc0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBsYWJlbCBmb3IgcHJlZmVycmVkT3B0aW9ucy4gT25seSBpbiB1c2Ugd2hlbiBwcmVmZXJyZWRPcHRpb25zIGFyZSB1c2VkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlcj48bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHByZWZlcnJlZE9wdGlvbnNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICogQHByb3BlcnR5IElucHV0XG4gKiBAZGVzY3JpcHRpb25cbiAqIExhYmVsIG92ZXIgcGhvbmUgbnVtYmVyIGlucHV0IGZpZWxkXG4gKiBAZXhhbXBsZVxuICogPG5hcy1waG9uZS1udW1iZXI+PG5hcy1vcHRncm91cCBbaW5wdXRMYWJlbF09XCJvcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4qL1xuICBASW5wdXQoKSBpbnB1dExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBwbGFjZSBob2xkZXIgZm9yIG5hdGl2ZSBpbnB1dCBlbGVtZW50IG9mIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3BsYWNlaG9sZGVyXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpZF09XCIncGhvbmVOdW1iZXInXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gRGVmYXVsdCB2YWx1ZSBpcyBudW1iZXJcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3R5cGVdPVwiJ3RleHQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSB0eXBlID0gJ251bWJlcic7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBpbiBhbiBlcnJvciBzdGF0ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgZXJyb3I+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBkaXNhYmxlZCBvciBubywgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBkaXNhYmxlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCBzcGFjZWxlc3Mgc3R5bGluZyAocmVtb3Zpbmcgc3BhY2luZylcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgc3BhY2VsZXNzPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgc3BhY2VsZXNzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBlcnJvciBvY2N1ci4gRXJyb3IgYXR0cmlidXRlIG5lZWQgdG8gYmUgdHJ1ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2Vycm9yTWVzc2FnZV09XCIncGxlYXNlIGZpbGwgaW4gdGhlIHBob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluZm8gdGV4dCByZWxhdGVkIHRvIHRoZSBpbnB1dFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaW5mb109XCIncGxlYXNlIHdyaXRlIDggZGlnaXQgcGhvbmUgbnVtYmVyIHdpdGhvdXQgc3BhY2VzJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaW5mbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGljb24gb24gdGhlIGlucHV0XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpY29uXT1cIidyZW1vdmUnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgcmVhZG9ubHk+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGFyaWEgZGVzY3JpYmVkYnkgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ3Bob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuXG4gICAqICBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciByZXF1aXJlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwiJ3Bob25lTnVtYmVyJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIHNlbGVjdC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Db250cm9sTmFtZVByZWZpeF09XCIncGhvbmVOdW1iZXJQcmVmaXgnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVQcmVmaXg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Hcm91cF09XCJteUZvcm1cIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kZWwgYmluZGVkIHdpdGggbmF0aXZlIGlucHV0IGVsZW1lbnQgb2YgcGhvbmUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgWyhtb2RlbCldPVwibW9kZWxcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIHByaXZhdGUgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgQElucHV0KCkgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnBob25lTnVtYmVyO1xuICB9XG4gIHNldCBtb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5waG9uZU51bWJlciA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSAhIXZhbHVlO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLnBob25lTnVtYmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBvdXRwdXQgZXZlbnQgdGhhdCBmaWVzIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoKVwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIGN1c3RvbSBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdG9yLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBDbGFzc01vZGVsO1xuXG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IFNlbGVjdE9wdGlvbk1vZGVsO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFsoc2VsZWN0ZWQpXT1cInNlbGVjdGVkXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKTogU2VsZWN0T3B0aW9uTW9kZWwge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uTW9kZWwpIHtcbiAgICBpZiAoIW9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIGEgc2VsZWN0aW9uIGlzIGRvbmUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uTW9kZWw+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IGAke3RoaXMuaWR9X19udW1iZXJgOiBgbmFzLXBob25lLW51bWJlci0ke3RoaXMuY29tcG9uZW50SWR9X19udW1iZXJgO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xuICBwdWJsaWMgdmFsaWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1czogYm9vbGVhbjtcbiAgcHVibGljIGxhc3RXYXNUYWI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1waG9uZS1udW1iZXInKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBlLmtleSA9PT0gJ1RhYic7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkID0gISF2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnB1dElkKTtcbiAgICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG5cbiAgbWFpbkNsYXNzKCk6IENsYXNzTW9kZWwge1xuICAgIGNvbnN0IHsgZXJyb3IsIGRpc2FibGVkLCBzcGFjZWxlc3MsIGFjdGl2ZSwgdmFsaWQsIGZvY3VzIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoJycsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmICdlcnJvcicsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgICAgdGhpcy5hY3RpdmUgJiYgJ2FjdGl2ZScsXG4gICAgICB0aGlzLnZhbGlkICYmICd2YWxpZCcsXG4gICAgICB0aGlzLmZvY3VzICYmICdmb2N1cydcbiAgICBdKTtcbiAgfVxuXG4gIHNldEFjdGl2ZU9uRm9jdXMoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7ICAgIFxuICAgIGlmKHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpIHx8ICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9jdXMgPSB0aGlzLmxhc3RXYXNUYWI7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLmZvY3VzID0gYWN0aXZlICYmIHRoaXMubGFzdFdhc1RhYjtcblxuICAgIHRoaXMubGFzdFdhc1RhYiA9IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cIm1haW5DbGFzcygpXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCIgWyhzZWxlY3RlZCldPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiIFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvclwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWxcIiAoZm9jdXMpPVwic2V0QWN0aXZlT25Gb2N1cyh0cnVlKVwiIChibHVyKT1cInNldEFjdGl2ZU9uRm9jdXMoZmFsc2UpXCIvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlZml4JylcIiAqbmdJZj1cInByZWZpeENvdW50cnlDb2RlIGVsc2Ugc2VsZWN0Q291bnRyeUNvZGVSZWFjdGl2ZVwiPlxuICAgICAgICB7e3ByZWZpeENvdW50cnlDb2RlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RDb3VudHJ5Q29kZVJlYWN0aXZlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCJcbiAgICAgICAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICAgIDxuYXMtc2VsZWN0ICpuZ0lmPVwicHJlZmVycmVkT3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzcGFjZWxlc3NdPVwic3BhY2VsZXNzXCJcbiAgICAgICAgICAgIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCIgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIiBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWwgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dC1sYWJlbCcpXCIgKm5nSWY9XCJpbnB1dExhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tpbnB1dExhYmVsfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0JylcIiBbYXR0ci5pZF09XCJpbnB1dElkXCIgW2F0dHIudHlwZV09XCJ0eXBlXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiAoZm9jdXMpPVwic2V0QWN0aXZlT25Gb2N1cyh0cnVlKVwiIChibHVyKT1cInNldEFjdGl2ZU9uRm9jdXMoZmFsc2UpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8c3BhbiAqbmdJZj1cImV4aXN0cyhlcnJvcilcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UnKVwiPlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlLS1pY29uJylcIj5cbiAgICAgIDxuYXMtaWNvbiB0eXBlPVwibmVnYXRpdmVcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0tdGV4dCcpXCIgW2lkXT1cImVycm9ySWRcIiAqbmdJZj1cImV4aXN0cyhlcnJvcikgJiYgZXJyb3JNZXNzYWdlXCI+IHt7IGVycm9yTWVzc2FnZSB9fVxuICAgIDwvcD5cbiAgPC9zcGFuPlxuPC9kaXY+Il19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7QUFLdEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQXNOeEQsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUE4QkQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FB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YW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTW9kZWwgfSBmcm9tICcuLi9zZWxlY3QvbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gUGhvbmUgbnVtYmVyIENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1waG9uZS1udW1iZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVOdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGNvdW50cnkgY29kZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFycmF5PFNlbGVjdE9wdGlvbk1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQcmVmZXJyZWQgb3B0aW9ucyB3aWxsIGJlIGxpc3RlZCBvbiB0b3AuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwcmVmZXJyZWQtb3B0aW9uc109XCJwcmVmZXJyZWRPcHRpb25zXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmZXJyZWRPcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2luZ2xlIFBob25lIG51bWJlciBwcmVmaXgvY291bnRyeSBjb2RlLCBpZiBleGlzdHMgd2lsbCByZXBsYWNlIHRoZSBkcm9wZG93biBzZWxlY3RvciBmb3IgY291bnRyeWNvZGVcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3ByZWZpeENvdW50cnlDb2RlXT1cIicrNDcnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmaXhDb3VudHJ5Q29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgbGFiZWwgZm9yIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2xhYmVsXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGxhYmVsIGZvciBvcHRpb25zLiBPbmx5IGluIHVzZSB3aGVuIHByZWZlcnJlZE9wdGlvbnMgYXJlIHVzZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyPjxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPi4uLjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgb3B0aW9uc0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBsYWJlbCBmb3IgcHJlZmVycmVkT3B0aW9ucy4gT25seSBpbiB1c2Ugd2hlbiBwcmVmZXJyZWRPcHRpb25zIGFyZSB1c2VkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlcj48bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHByZWZlcnJlZE9wdGlvbnNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICogQHByb3BlcnR5IElucHV0XG4gKiBAZGVzY3JpcHRpb25cbiAqIExhYmVsIG92ZXIgcGhvbmUgbnVtYmVyIGlucHV0IGZpZWxkXG4gKiBAZXhhbXBsZVxuICogPG5hcy1waG9uZS1udW1iZXI+PG5hcy1vcHRncm91cCBbaW5wdXRMYWJlbF09XCJvcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4qL1xuICBASW5wdXQoKSBpbnB1dExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBwbGFjZSBob2xkZXIgZm9yIG5hdGl2ZSBpbnB1dCBlbGVtZW50IG9mIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3BsYWNlaG9sZGVyXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpZF09XCIncGhvbmVOdW1iZXInXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gRGVmYXVsdCB2YWx1ZSBpcyBudW1iZXJcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3R5cGVdPVwiJ3RleHQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSB0eXBlID0gJ251bWJlcic7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBpbiBhbiBlcnJvciBzdGF0ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgZXJyb3I+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBkaXNhYmxlZCBvciBubywgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBkaXNhYmxlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCBzcGFjZWxlc3Mgc3R5bGluZyAocmVtb3Zpbmcgc3BhY2luZylcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgc3BhY2VsZXNzPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgc3BhY2VsZXNzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBlcnJvciBvY2N1ci4gRXJyb3IgYXR0cmlidXRlIG5lZWQgdG8gYmUgdHJ1ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2Vycm9yTWVzc2FnZV09XCIncGxlYXNlIGZpbGwgaW4gdGhlIHBob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluZm8gdGV4dCByZWxhdGVkIHRvIHRoZSBpbnB1dFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaW5mb109XCIncGxlYXNlIHdyaXRlIDggZGlnaXQgcGhvbmUgbnVtYmVyIHdpdGhvdXQgc3BhY2VzJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaW5mbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGljb24gb24gdGhlIGlucHV0XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpY29uXT1cIidyZW1vdmUnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgcmVhZG9ubHk+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGFyaWEgZGVzY3JpYmVkYnkgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ3Bob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuXG4gICAqICBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciByZXF1aXJlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwiJ3Bob25lTnVtYmVyJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIHNlbGVjdC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Db250cm9sTmFtZVByZWZpeF09XCIncGhvbmVOdW1iZXJQcmVmaXgnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVQcmVmaXg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Hcm91cF09XCJteUZvcm1cIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kZWwgYmluZGVkIHdpdGggbmF0aXZlIGlucHV0IGVsZW1lbnQgb2YgcGhvbmUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgWyhtb2RlbCldPVwibW9kZWxcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIHByaXZhdGUgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgQElucHV0KCkgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnBob25lTnVtYmVyO1xuICB9XG4gIHNldCBtb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5waG9uZU51bWJlciA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSAhIXZhbHVlO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLnBob25lTnVtYmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBvdXRwdXQgZXZlbnQgdGhhdCBmaWVzIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoKVwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIGN1c3RvbSBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdG9yLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBDbGFzc01vZGVsO1xuXG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IFNlbGVjdE9wdGlvbk1vZGVsO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFsoc2VsZWN0ZWQpXT1cInNlbGVjdGVkXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKTogU2VsZWN0T3B0aW9uTW9kZWwge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uTW9kZWwpIHtcbiAgICBpZiAoIW9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIGEgc2VsZWN0aW9uIGlzIGRvbmUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uTW9kZWw+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IGAke3RoaXMuaWR9X19udW1iZXJgOiBgbmFzLXBob25lLW51bWJlci0ke3RoaXMuY29tcG9uZW50SWR9X19udW1iZXJgO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xuICBwdWJsaWMgdmFsaWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1czogYm9vbGVhbjtcbiAgcHVibGljIGxhc3RXYXNUYWI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1waG9uZS1udW1iZXInKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBlLmtleSA9PT0gJ1RhYic7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkID0gISF2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnB1dElkKTtcbiAgICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG5cbiAgbWFpbkNsYXNzKCk6IENsYXNzTW9kZWwge1xuICAgIGNvbnN0IHsgZXJyb3IsIGRpc2FibGVkLCBzcGFjZWxlc3MsIGFjdGl2ZSwgdmFsaWQsIGZvY3VzIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoJycsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmICdlcnJvcicsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgICAgdGhpcy5hY3RpdmUgJiYgJ2FjdGl2ZScsXG4gICAgICB0aGlzLnZhbGlkICYmICd2YWxpZCcsXG4gICAgICB0aGlzLmZvY3VzICYmICdmb2N1cydcbiAgICBdKTtcbiAgfVxuXG4gIHNldEFjdGl2ZU9uRm9jdXMoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7ICAgIFxuICAgIGlmKHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpIHx8ICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9jdXMgPSB0aGlzLmxhc3RXYXNUYWI7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLmZvY3VzID0gYWN0aXZlICYmIHRoaXMubGFzdFdhc1RhYjtcblxuICAgIHRoaXMubGFzdFdhc1RhYiA9IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cIm1haW5DbGFzcygpXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgcHJlc2VudFZhbHVlIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NwYWNlbGVzc109XCJzcGFjZWxlc3NcIiBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCIgWyhzZWxlY3RlZCldPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICA8L25hcy1zZWxlY3Q+XG4gICAgICAgICAgPG5hcy1zZWxlY3QgKm5nSWY9XCJwcmVmZXJyZWRPcHRpb25zXCIgcHJlc2VudFZhbHVlIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzcGFjZWxlc3NdPVwic3BhY2VsZXNzXCJcbiAgICAgICAgICAgIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwicHJlZmVycmVkT3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcHJlZmVycmVkT3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgICA8bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJvcHRpb25zTGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5hcy1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW29wdGlvbl09XCJvcHRpb25cIj48L25hcy1vcHRpb24+XG4gICAgICAgICAgICA8L25hcy1vcHRncm91cD5cbiAgICAgICAgICA8L25hcy1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdudW1iZXInKVwiPlxuICAgICAgICA8bGFiZWwgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dC1sYWJlbCcpXCIgKm5nSWY9XCJpbnB1dExhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tpbnB1dExhYmVsfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0JylcIiBbYXR0ci5pZF09XCJpbnB1dElkXCIgW2F0dHIudHlwZV09XCJ0eXBlXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbFwiIChmb2N1cyk9XCJzZXRBY3RpdmVPbkZvY3VzKHRydWUpXCIgKGJsdXIpPVwic2V0QWN0aXZlT25Gb2N1cyhmYWxzZSlcIi8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3JlYWN0aXZlRm9ybT5cbiAgICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdwcmVmaXgnKVwiICpuZ0lmPVwicHJlZml4Q291bnRyeUNvZGUgZWxzZSBzZWxlY3RDb3VudHJ5Q29kZVJlYWN0aXZlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlUmVhY3RpdmU+XG4gICAgICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdjb3VudHJ5LWNvZGUnKVwiPlxuICAgICAgICAgIDxuYXMtc2VsZWN0ICpuZ0lmPVwiIXByZWZlcnJlZE9wdGlvbnNcIiBwcmVzZW50VmFsdWUgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCJcbiAgICAgICAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICAgIDxuYXMtc2VsZWN0ICpuZ0lmPVwicHJlZmVycmVkT3B0aW9uc1wiIHByZXNlbnRWYWx1ZSBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVByZWZpeFwiIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgICA8bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5hcy1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbl09XCJvcHRpb25cIj48L25hcy1vcHRpb24+XG4gICAgICAgICAgICA8L25hcy1vcHRncm91cD5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ251bWJlcicpXCIgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiIFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvclwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCIgKGZvY3VzKT1cInNldEFjdGl2ZU9uRm9jdXModHJ1ZSlcIiAoYmx1cik9XCJzZXRBY3RpdmVPbkZvY3VzKGZhbHNlKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCJleGlzdHMoZXJyb3IpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlJylcIj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0taWNvbicpXCI+XG4gICAgICA8bmFzLWljb24gdHlwZT1cIm5lZ2F0aXZlXCI+PC9uYXMtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8cCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UtLXRleHQnKVwiIFtpZF09XCJlcnJvcklkXCIgKm5nSWY9XCJleGlzdHMoZXJyb3IpICYmIGVycm9yTWVzc2FnZVwiPiB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L3A+XG4gIDwvc3Bhbj5cbjwvZGl2PiJdfQ==