@skyux/lookup 8.7.2 → 8.8.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.
@@ -1,22 +1,21 @@
1
- var _SkyCountryFieldComponent_instances, _SkyCountryFieldComponent_changeDetector, _SkyCountryFieldComponent_defaultCountryData, _SkyCountryFieldComponent_elRef, _SkyCountryFieldComponent_idle, _SkyCountryFieldComponent_injector, _SkyCountryFieldComponent_internalFormChange, _SkyCountryFieldComponent_isInitialChange, _SkyCountryFieldComponent_ngControl, _SkyCountryFieldComponent_ngUnsubscribe, _SkyCountryFieldComponent_themeSvc, _SkyCountryFieldComponent_windowRef, _SkyCountryFieldComponent__defaultCountry, _SkyCountryFieldComponent__disabled, _SkyCountryFieldComponent__hideSelectedCountryFlag, _SkyCountryFieldComponent__includePhoneInfo, _SkyCountryFieldComponent__selectedCountry, _SkyCountryFieldComponent__supportedCountryISOs, _SkyCountryFieldComponent_addEventListeners, _SkyCountryFieldComponent_countriesAreEqual, _SkyCountryFieldComponent_countriesEqual, _SkyCountryFieldComponent_removeEventListeners, _SkyCountryFieldComponent_setupCountries, _SkyCountryFieldComponent_sortCountriesWithSelectedAndDefault, _SkyCountryFieldComponent_updateInputBox;
1
+ var _SkyCountryFieldComponent_instances, _SkyCountryFieldComponent_changeDetector, _SkyCountryFieldComponent_defaultCountryData, _SkyCountryFieldComponent_elRef, _SkyCountryFieldComponent_injector, _SkyCountryFieldComponent_internalFormChange, _SkyCountryFieldComponent_isInitialChange, _SkyCountryFieldComponent_ngControl, _SkyCountryFieldComponent_ngUnsubscribe, _SkyCountryFieldComponent_themeSvc, _SkyCountryFieldComponent__defaultCountry, _SkyCountryFieldComponent__disabled, _SkyCountryFieldComponent__hideSelectedCountryFlag, _SkyCountryFieldComponent__includePhoneInfo, _SkyCountryFieldComponent__selectedCountry, _SkyCountryFieldComponent__supportedCountryISOs, _SkyCountryFieldComponent_countriesAreEqual, _SkyCountryFieldComponent_countriesEqual, _SkyCountryFieldComponent_setupCountries, _SkyCountryFieldComponent_sortCountriesWithSelectedAndDefault, _SkyCountryFieldComponent_updateInputBox;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
3
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild, forwardRef, inject, } from '@angular/core';
4
4
  import { NG_VALIDATORS, NgControl, NgModel, UntypedFormControl, } from '@angular/forms';
5
5
  import 'intl-tel-input';
6
- import { Subject, fromEvent } from 'rxjs';
6
+ import { Subject } from 'rxjs';
7
7
  import { takeUntil } from 'rxjs/operators';
8
8
  import { SkyAutocompleteInputDirective } from '../autocomplete/autocomplete-input.directive';
9
9
  import { SKY_COUNTRY_FIELD_CONTEXT } from './types/country-field-context-token';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "@skyux/core";
12
- import * as i2 from "@skyux/forms";
13
- import * as i3 from "@skyux/theme";
14
- import * as i4 from "@angular/common";
15
- import * as i5 from "@angular/forms";
16
- import * as i6 from "../autocomplete/autocomplete.component";
17
- import * as i7 from "../autocomplete/autocomplete-input.directive";
18
- import * as i8 from "@skyux/indicators";
19
- import * as i9 from "@skyux/i18n";
11
+ import * as i1 from "@skyux/forms";
12
+ import * as i2 from "@skyux/theme";
13
+ import * as i3 from "@angular/common";
14
+ import * as i4 from "@angular/forms";
15
+ import * as i5 from "../autocomplete/autocomplete.component";
16
+ import * as i6 from "../autocomplete/autocomplete-input.directive";
17
+ import * as i7 from "@skyux/indicators";
18
+ import * as i8 from "@skyux/i18n";
20
19
  const DEFAULT_COUNTRY_CODE = 'us';
21
20
  const SKY_COUNTRY_FIELD_VALIDATOR = {
22
21
  provide: NG_VALIDATORS,
@@ -50,10 +49,6 @@ export class SkyCountryFieldComponent {
50
49
  * @default false
51
50
  */
52
51
  set disabled(isDisabled) {
53
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_instances, "m", _SkyCountryFieldComponent_removeEventListeners).call(this);
54
- if (!isDisabled) {
55
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_instances, "m", _SkyCountryFieldComponent_addEventListeners).call(this);
56
- }
57
52
  __classPrivateFieldSet(this, _SkyCountryFieldComponent__disabled, isDisabled ?? false, "f");
58
53
  if (isDisabled) {
59
54
  this.countrySearchFormControl.disable();
@@ -142,7 +137,7 @@ export class SkyCountryFieldComponent {
142
137
  get selectedCountry() {
143
138
  return __classPrivateFieldGet(this, _SkyCountryFieldComponent__selectedCountry, "f");
144
139
  }
145
- constructor(changeDetector, elRef, windowRef, injector, inputBoxHostSvc, themeSvc) {
140
+ constructor(changeDetector, elRef, injector, inputBoxHostSvc, themeSvc) {
146
141
  this.inputBoxHostSvc = inputBoxHostSvc;
147
142
  _SkyCountryFieldComponent_instances.add(this);
148
143
  /**
@@ -150,7 +145,6 @@ export class SkyCountryFieldComponent {
150
145
  */
151
146
  this.selectedCountryChange = new EventEmitter();
152
147
  this.countries = [];
153
- this.isInputFocused = false;
154
148
  this.searchTextMinimumCharacters = 2;
155
149
  this.context = inject(SKY_COUNTRY_FIELD_CONTEXT, {
156
150
  optional: true,
@@ -159,14 +153,12 @@ export class SkyCountryFieldComponent {
159
153
  _SkyCountryFieldComponent_changeDetector.set(this, void 0);
160
154
  _SkyCountryFieldComponent_defaultCountryData.set(this, void 0);
161
155
  _SkyCountryFieldComponent_elRef.set(this, void 0);
162
- _SkyCountryFieldComponent_idle.set(this, new Subject());
163
156
  _SkyCountryFieldComponent_injector.set(this, void 0);
164
157
  _SkyCountryFieldComponent_internalFormChange.set(this, false);
165
158
  _SkyCountryFieldComponent_isInitialChange.set(this, true);
166
159
  _SkyCountryFieldComponent_ngControl.set(this, null);
167
160
  _SkyCountryFieldComponent_ngUnsubscribe.set(this, new Subject());
168
161
  _SkyCountryFieldComponent_themeSvc.set(this, void 0);
169
- _SkyCountryFieldComponent_windowRef.set(this, void 0);
170
162
  _SkyCountryFieldComponent__defaultCountry.set(this, void 0);
171
163
  _SkyCountryFieldComponent__disabled.set(this, false);
172
164
  _SkyCountryFieldComponent__hideSelectedCountryFlag.set(this, false);
@@ -180,7 +172,6 @@ export class SkyCountryFieldComponent {
180
172
  this.onTouched = () => { };
181
173
  __classPrivateFieldSet(this, _SkyCountryFieldComponent_changeDetector, changeDetector, "f");
182
174
  __classPrivateFieldSet(this, _SkyCountryFieldComponent_elRef, elRef, "f");
183
- __classPrivateFieldSet(this, _SkyCountryFieldComponent_windowRef, windowRef, "f");
184
175
  __classPrivateFieldSet(this, _SkyCountryFieldComponent_injector, injector, "f");
185
176
  __classPrivateFieldSet(this, _SkyCountryFieldComponent_themeSvc, themeSvc, "f");
186
177
  this.inputId = `sky-country-field-input-${uniqueId++}`;
@@ -214,9 +205,6 @@ export class SkyCountryFieldComponent {
214
205
  this.selectedCountry = newValue;
215
206
  }
216
207
  });
217
- if (!this.disabled) {
218
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_instances, "m", _SkyCountryFieldComponent_addEventListeners).call(this);
219
- }
220
208
  }
221
209
  ngAfterViewInit() {
222
210
  /* istanbul ignore else */
@@ -234,7 +222,6 @@ export class SkyCountryFieldComponent {
234
222
  */
235
223
  ngOnDestroy() {
236
224
  this.selectedCountryChange.complete();
237
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_instances, "m", _SkyCountryFieldComponent_removeEventListeners).call(this);
238
225
  __classPrivateFieldGet(this, _SkyCountryFieldComponent_ngUnsubscribe, "f").next();
239
226
  __classPrivateFieldGet(this, _SkyCountryFieldComponent_ngUnsubscribe, "f").complete();
240
227
  }
@@ -285,23 +272,7 @@ export class SkyCountryFieldComponent {
285
272
  __classPrivateFieldGet(this, _SkyCountryFieldComponent_changeDetector, "f").markForCheck();
286
273
  }
287
274
  }
288
- _SkyCountryFieldComponent_changeDetector = new WeakMap(), _SkyCountryFieldComponent_defaultCountryData = new WeakMap(), _SkyCountryFieldComponent_elRef = new WeakMap(), _SkyCountryFieldComponent_idle = new WeakMap(), _SkyCountryFieldComponent_injector = new WeakMap(), _SkyCountryFieldComponent_internalFormChange = new WeakMap(), _SkyCountryFieldComponent_isInitialChange = new WeakMap(), _SkyCountryFieldComponent_ngControl = new WeakMap(), _SkyCountryFieldComponent_ngUnsubscribe = new WeakMap(), _SkyCountryFieldComponent_themeSvc = new WeakMap(), _SkyCountryFieldComponent_windowRef = new WeakMap(), _SkyCountryFieldComponent__defaultCountry = new WeakMap(), _SkyCountryFieldComponent__disabled = new WeakMap(), _SkyCountryFieldComponent__hideSelectedCountryFlag = new WeakMap(), _SkyCountryFieldComponent__includePhoneInfo = new WeakMap(), _SkyCountryFieldComponent__selectedCountry = new WeakMap(), _SkyCountryFieldComponent__supportedCountryISOs = new WeakMap(), _SkyCountryFieldComponent_instances = new WeakSet(), _SkyCountryFieldComponent_addEventListeners = function _SkyCountryFieldComponent_addEventListeners() {
289
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_instances, "m", _SkyCountryFieldComponent_removeEventListeners).call(this);
290
- __classPrivateFieldSet(this, _SkyCountryFieldComponent_idle, new Subject(), "f");
291
- const documentObj = __classPrivateFieldGet(this, _SkyCountryFieldComponent_windowRef, "f").nativeWindow.document;
292
- fromEvent(documentObj, 'mousedown')
293
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyCountryFieldComponent_idle, "f")))
294
- .subscribe((event) => {
295
- this.isInputFocused = __classPrivateFieldGet(this, _SkyCountryFieldComponent_elRef, "f").nativeElement.contains(event.target);
296
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_changeDetector, "f").markForCheck();
297
- });
298
- fromEvent(documentObj, 'focusin')
299
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyCountryFieldComponent_idle, "f")))
300
- .subscribe((event) => {
301
- this.isInputFocused = __classPrivateFieldGet(this, _SkyCountryFieldComponent_elRef, "f").nativeElement.contains(event.target);
302
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_changeDetector, "f").markForCheck();
303
- });
304
- }, _SkyCountryFieldComponent_countriesAreEqual = function _SkyCountryFieldComponent_countriesAreEqual(country1, country2) {
275
+ _SkyCountryFieldComponent_changeDetector = new WeakMap(), _SkyCountryFieldComponent_defaultCountryData = new WeakMap(), _SkyCountryFieldComponent_elRef = new WeakMap(), _SkyCountryFieldComponent_injector = new WeakMap(), _SkyCountryFieldComponent_internalFormChange = new WeakMap(), _SkyCountryFieldComponent_isInitialChange = new WeakMap(), _SkyCountryFieldComponent_ngControl = new WeakMap(), _SkyCountryFieldComponent_ngUnsubscribe = new WeakMap(), _SkyCountryFieldComponent_themeSvc = new WeakMap(), _SkyCountryFieldComponent__defaultCountry = new WeakMap(), _SkyCountryFieldComponent__disabled = new WeakMap(), _SkyCountryFieldComponent__hideSelectedCountryFlag = new WeakMap(), _SkyCountryFieldComponent__includePhoneInfo = new WeakMap(), _SkyCountryFieldComponent__selectedCountry = new WeakMap(), _SkyCountryFieldComponent__supportedCountryISOs = new WeakMap(), _SkyCountryFieldComponent_instances = new WeakSet(), _SkyCountryFieldComponent_countriesAreEqual = function _SkyCountryFieldComponent_countriesAreEqual(country1, country2) {
305
276
  if (country1 && country2) {
306
277
  return country1.iso2 === country2.iso2;
307
278
  }
@@ -311,9 +282,6 @@ _SkyCountryFieldComponent_changeDetector = new WeakMap(), _SkyCountryFieldCompon
311
282
  return !country1 && !country2;
312
283
  }, _SkyCountryFieldComponent_countriesEqual = function _SkyCountryFieldComponent_countriesEqual(a, b) {
313
284
  return a.iso2 === b.iso2 && a.name === b.name;
314
- }, _SkyCountryFieldComponent_removeEventListeners = function _SkyCountryFieldComponent_removeEventListeners() {
315
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_idle, "f").next();
316
- __classPrivateFieldGet(this, _SkyCountryFieldComponent_idle, "f").complete();
317
285
  }, _SkyCountryFieldComponent_setupCountries = function _SkyCountryFieldComponent_setupCountries() {
318
286
  /**
319
287
  * The json functions here ensures that we get a copy of the array and not the global original.
@@ -391,14 +359,14 @@ _SkyCountryFieldComponent_changeDetector = new WeakMap(), _SkyCountryFieldCompon
391
359
  });
392
360
  }
393
361
  };
394
- SkyCountryFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCountryFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyAppWindowRef }, { token: i0.Injector }, { token: i2.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
395
- SkyCountryFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyCountryFieldComponent, selector: "sky-country-field", inputs: { autocompleteAttribute: "autocompleteAttribute", defaultCountry: "defaultCountry", disabled: "disabled", hideSelectedCountryFlag: "hideSelectedCountryFlag", includePhoneInfo: "includePhoneInfo", supportedCountryISOs: "supportedCountryISOs" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [SKY_COUNTRY_FIELD_VALIDATOR], viewQueries: [{ propertyName: "countrySearchAutocompleteDirective", first: true, predicate: SkyAutocompleteInputDirective, descendants: true }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "searchIconTemplateRef", first: true, predicate: ["searchIconTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <span\n class=\"sky-country-field-container\"\n [ngClass]=\"{\n 'sky-country-field-disabled': disabled\n }\"\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"inputId\"\n [data]=\"countries\"\n [propertiesToSearch]=\"['name', 'iso2']\"\n [searchResultTemplate]=\"countrySearchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n (selectionChange)=\"onCountrySelected($event)\"\n >\n <div\n class=\"sky-country-field-input\"\n [ngClass]=\"{\n 'sky-country-field-input-with-flag':\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n }\"\n >\n <div\n *ngIf=\"\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n \"\n class=\"sky-country-field-flag\"\n >\n <div\n class=\"iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry.iso2.toLowerCase()\"\n ></div>\n </div>\n <textarea\n class=\"sky-form-control\"\n name=\"selectedCountry\"\n rows=\"1\"\n skyAutocomplete\n [attr.aria-label]=\"\n 'skyux_country_field_search_placeholder' | skyLibResources\n \"\n [attr.id]=\"inputId\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [formControl]=\"countrySearchFormControl\"\n [placeholder]=\"\n context?.showPlaceholderText || currentTheme === 'default'\n ? ('skyux_country_field_search_placeholder' | skyLibResources)\n : ''\n \"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </sky-autocomplete>\n </span>\n</ng-template>\n\n<ng-template let-item=\"item\" #countrySearchResultTemplate>\n <div\n class=\"sky-country-field-search-result-flag\"\n [ngClass]=\"'iti__flag iti__' + item.iso2.toLowerCase()\"\n ></div>\n {{ item.name }}\n <span *ngIf=\"includePhoneInfo\" class=\"sky-deemphasized\">\n {{ item.dialCode }}\n </span>\n</ng-template>\n\n<!-- This template should only be used in modern theme input boxes. -->\n<ng-template #searchIconTemplateRef>\n <div class=\"sky-input-group-icon sky-input-box-icon-inset\">\n <sky-icon iconType=\"skyux\" icon=\"search\"></sky-icon>\n </div>\n</ng-template>\n", styles: [".iti{position:relative;display:inline-block}.iti *{box-sizing:border-box;-moz-box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti input,.iti input[type=text],.iti input[type=tel]{position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;padding-right:36px;margin-right:0}.iti__flag-container{position:absolute;top:0;bottom:0;right:0;padding:1px}.iti__selected-flag{z-index:1;position:relative;display:flex;align-items:center;height:100%;padding:0 6px 0 8px}.iti__arrow{margin-left:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #555}.iti__arrow--up{border-top:none;border-bottom:4px solid #555}.iti__country-list{position:absolute;z-index:2;list-style:none;text-align:left;padding:0;margin:0 0 0 -1px;box-shadow:1px 1px 4px #0003;background-color:#fff;border:1px solid #CCC;white-space:nowrap;max-height:200px;overflow-y:scroll;-webkit-overflow-scrolling:touch}.iti__country-list--dropup{bottom:100%;margin-bottom:-1px}@media (max-width: 500px){.iti__country-list{white-space:normal}}.iti__flag-box{display:inline-block;width:20px}.iti__divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #CCC}.iti__country{padding:5px 10px;outline:none}.iti__dial-code{color:#999}.iti__country.iti__highlight{background-color:#0000000d}.iti__flag-box,.iti__country-name,.iti__dial-code{vertical-align:middle}.iti__flag-box,.iti__country-name{margin-right:6px}.iti--allow-dropdown input,.iti--allow-dropdown input[type=text],.iti--allow-dropdown input[type=tel],.iti--separate-dial-code input,.iti--separate-dial-code input[type=text],.iti--separate-dial-code input[type=tel]{padding-right:6px;padding-left:52px;margin-left:0}.iti--allow-dropdown .iti__flag-container,.iti--separate-dial-code .iti__flag-container{right:auto;left:0}.iti--allow-dropdown .iti__flag-container:hover{cursor:pointer}.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:#0000000d}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover{cursor:default}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover .iti__selected-flag,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover .iti__selected-flag{background-color:transparent}.iti--separate-dial-code .iti__selected-flag{background-color:#0000000d}.iti--separate-dial-code .iti__selected-dial-code{margin-left:6px}.iti--container{position:absolute;top:-1000px;left:-1000px;z-index:1060;padding:1px}.iti--container:hover{cursor:pointer}.iti-mobile .iti--container{inset:30px;position:fixed}.iti-mobile .iti__country-list{max-height:100%;width:100%}.iti-mobile .iti__country{padding:10px;line-height:1.5em}.iti__flag{width:20px}.iti__flag.iti__be{width:18px}.iti__flag.iti__ch{width:15px}.iti__flag.iti__mc{width:19px}.iti__flag.iti__ne{width:18px}.iti__flag.iti__np{width:13px}.iti__flag.iti__va{width:15px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-size:5652px 15px}}.iti__flag.iti__ac{height:10px;background-position:0px 0px}.iti__flag.iti__ad{height:14px;background-position:-22px 0px}.iti__flag.iti__ae{height:10px;background-position:-44px 0px}.iti__flag.iti__af{height:14px;background-position:-66px 0px}.iti__flag.iti__ag{height:14px;background-position:-88px 0px}.iti__flag.iti__ai{height:10px;background-position:-110px 0px}.iti__flag.iti__al{height:15px;background-position:-132px 0px}.iti__flag.iti__am{height:10px;background-position:-154px 0px}.iti__flag.iti__ao{height:14px;background-position:-176px 0px}.iti__flag.iti__aq{height:14px;background-position:-198px 0px}.iti__flag.iti__ar{height:13px;background-position:-220px 0px}.iti__flag.iti__as{height:10px;background-position:-242px 0px}.iti__flag.iti__at{height:14px;background-position:-264px 0px}.iti__flag.iti__au{height:10px;background-position:-286px 0px}.iti__flag.iti__aw{height:14px;background-position:-308px 0px}.iti__flag.iti__ax{height:13px;background-position:-330px 0px}.iti__flag.iti__az{height:10px;background-position:-352px 0px}.iti__flag.iti__ba{height:10px;background-position:-374px 0px}.iti__flag.iti__bb{height:14px;background-position:-396px 0px}.iti__flag.iti__bd{height:12px;background-position:-418px 0px}.iti__flag.iti__be{height:15px;background-position:-440px 0px}.iti__flag.iti__bf{height:14px;background-position:-460px 0px}.iti__flag.iti__bg{height:12px;background-position:-482px 0px}.iti__flag.iti__bh{height:12px;background-position:-504px 0px}.iti__flag.iti__bi{height:12px;background-position:-526px 0px}.iti__flag.iti__bj{height:14px;background-position:-548px 0px}.iti__flag.iti__bl{height:14px;background-position:-570px 0px}.iti__flag.iti__bm{height:10px;background-position:-592px 0px}.iti__flag.iti__bn{height:10px;background-position:-614px 0px}.iti__flag.iti__bo{height:14px;background-position:-636px 0px}.iti__flag.iti__bq{height:14px;background-position:-658px 0px}.iti__flag.iti__br{height:14px;background-position:-680px 0px}.iti__flag.iti__bs{height:10px;background-position:-702px 0px}.iti__flag.iti__bt{height:14px;background-position:-724px 0px}.iti__flag.iti__bv{height:15px;background-position:-746px 0px}.iti__flag.iti__bw{height:14px;background-position:-768px 0px}.iti__flag.iti__by{height:10px;background-position:-790px 0px}.iti__flag.iti__bz{height:14px;background-position:-812px 0px}.iti__flag.iti__ca{height:10px;background-position:-834px 0px}.iti__flag.iti__cc{height:10px;background-position:-856px 0px}.iti__flag.iti__cd{height:15px;background-position:-878px 0px}.iti__flag.iti__cf{height:14px;background-position:-900px 0px}.iti__flag.iti__cg{height:14px;background-position:-922px 0px}.iti__flag.iti__ch{height:15px;background-position:-944px 0px}.iti__flag.iti__ci{height:14px;background-position:-961px 0px}.iti__flag.iti__ck{height:10px;background-position:-983px 0px}.iti__flag.iti__cl{height:14px;background-position:-1005px 0px}.iti__flag.iti__cm{height:14px;background-position:-1027px 0px}.iti__flag.iti__cn{height:14px;background-position:-1049px 0px}.iti__flag.iti__co{height:14px;background-position:-1071px 0px}.iti__flag.iti__cp{height:14px;background-position:-1093px 0px}.iti__flag.iti__cr{height:12px;background-position:-1115px 0px}.iti__flag.iti__cu{height:10px;background-position:-1137px 0px}.iti__flag.iti__cv{height:12px;background-position:-1159px 0px}.iti__flag.iti__cw{height:14px;background-position:-1181px 0px}.iti__flag.iti__cx{height:10px;background-position:-1203px 0px}.iti__flag.iti__cy{height:14px;background-position:-1225px 0px}.iti__flag.iti__cz{height:14px;background-position:-1247px 0px}.iti__flag.iti__de{height:12px;background-position:-1269px 0px}.iti__flag.iti__dg{height:10px;background-position:-1291px 0px}.iti__flag.iti__dj{height:14px;background-position:-1313px 0px}.iti__flag.iti__dk{height:15px;background-position:-1335px 0px}.iti__flag.iti__dm{height:10px;background-position:-1357px 0px}.iti__flag.iti__do{height:14px;background-position:-1379px 0px}.iti__flag.iti__dz{height:14px;background-position:-1401px 0px}.iti__flag.iti__ea{height:14px;background-position:-1423px 0px}.iti__flag.iti__ec{height:14px;background-position:-1445px 0px}.iti__flag.iti__ee{height:13px;background-position:-1467px 0px}.iti__flag.iti__eg{height:14px;background-position:-1489px 0px}.iti__flag.iti__eh{height:10px;background-position:-1511px 0px}.iti__flag.iti__er{height:10px;background-position:-1533px 0px}.iti__flag.iti__es{height:14px;background-position:-1555px 0px}.iti__flag.iti__et{height:10px;background-position:-1577px 0px}.iti__flag.iti__eu{height:14px;background-position:-1599px 0px}.iti__flag.iti__fi{height:12px;background-position:-1621px 0px}.iti__flag.iti__fj{height:10px;background-position:-1643px 0px}.iti__flag.iti__fk{height:10px;background-position:-1665px 0px}.iti__flag.iti__fm{height:11px;background-position:-1687px 0px}.iti__flag.iti__fo{height:15px;background-position:-1709px 0px}.iti__flag.iti__fr{height:14px;background-position:-1731px 0px}.iti__flag.iti__ga{height:15px;background-position:-1753px 0px}.iti__flag.iti__gb{height:10px;background-position:-1775px 0px}.iti__flag.iti__gd{height:12px;background-position:-1797px 0px}.iti__flag.iti__ge{height:14px;background-position:-1819px 0px}.iti__flag.iti__gf{height:14px;background-position:-1841px 0px}.iti__flag.iti__gg{height:14px;background-position:-1863px 0px}.iti__flag.iti__gh{height:14px;background-position:-1885px 0px}.iti__flag.iti__gi{height:10px;background-position:-1907px 0px}.iti__flag.iti__gl{height:14px;background-position:-1929px 0px}.iti__flag.iti__gm{height:14px;background-position:-1951px 0px}.iti__flag.iti__gn{height:14px;background-position:-1973px 0px}.iti__flag.iti__gp{height:14px;background-position:-1995px 0px}.iti__flag.iti__gq{height:14px;background-position:-2017px 0px}.iti__flag.iti__gr{height:14px;background-position:-2039px 0px}.iti__flag.iti__gs{height:10px;background-position:-2061px 0px}.iti__flag.iti__gt{height:13px;background-position:-2083px 0px}.iti__flag.iti__gu{height:11px;background-position:-2105px 0px}.iti__flag.iti__gw{height:10px;background-position:-2127px 0px}.iti__flag.iti__gy{height:12px;background-position:-2149px 0px}.iti__flag.iti__hk{height:14px;background-position:-2171px 0px}.iti__flag.iti__hm{height:10px;background-position:-2193px 0px}.iti__flag.iti__hn{height:10px;background-position:-2215px 0px}.iti__flag.iti__hr{height:10px;background-position:-2237px 0px}.iti__flag.iti__ht{height:12px;background-position:-2259px 0px}.iti__flag.iti__hu{height:10px;background-position:-2281px 0px}.iti__flag.iti__ic{height:14px;background-position:-2303px 0px}.iti__flag.iti__id{height:14px;background-position:-2325px 0px}.iti__flag.iti__ie{height:10px;background-position:-2347px 0px}.iti__flag.iti__il{height:15px;background-position:-2369px 0px}.iti__flag.iti__im{height:10px;background-position:-2391px 0px}.iti__flag.iti__in{height:14px;background-position:-2413px 0px}.iti__flag.iti__io{height:10px;background-position:-2435px 0px}.iti__flag.iti__iq{height:14px;background-position:-2457px 0px}.iti__flag.iti__ir{height:12px;background-position:-2479px 0px}.iti__flag.iti__is{height:15px;background-position:-2501px 0px}.iti__flag.iti__it{height:14px;background-position:-2523px 0px}.iti__flag.iti__je{height:12px;background-position:-2545px 0px}.iti__flag.iti__jm{height:10px;background-position:-2567px 0px}.iti__flag.iti__jo{height:10px;background-position:-2589px 0px}.iti__flag.iti__jp{height:14px;background-position:-2611px 0px}.iti__flag.iti__ke{height:14px;background-position:-2633px 0px}.iti__flag.iti__kg{height:12px;background-position:-2655px 0px}.iti__flag.iti__kh{height:13px;background-position:-2677px 0px}.iti__flag.iti__ki{height:10px;background-position:-2699px 0px}.iti__flag.iti__km{height:12px;background-position:-2721px 0px}.iti__flag.iti__kn{height:14px;background-position:-2743px 0px}.iti__flag.iti__kp{height:10px;background-position:-2765px 0px}.iti__flag.iti__kr{height:14px;background-position:-2787px 0px}.iti__flag.iti__kw{height:10px;background-position:-2809px 0px}.iti__flag.iti__ky{height:10px;background-position:-2831px 0px}.iti__flag.iti__kz{height:10px;background-position:-2853px 0px}.iti__flag.iti__la{height:14px;background-position:-2875px 0px}.iti__flag.iti__lb{height:14px;background-position:-2897px 0px}.iti__flag.iti__lc{height:10px;background-position:-2919px 0px}.iti__flag.iti__li{height:12px;background-position:-2941px 0px}.iti__flag.iti__lk{height:10px;background-position:-2963px 0px}.iti__flag.iti__lr{height:11px;background-position:-2985px 0px}.iti__flag.iti__ls{height:14px;background-position:-3007px 0px}.iti__flag.iti__lt{height:12px;background-position:-3029px 0px}.iti__flag.iti__lu{height:12px;background-position:-3051px 0px}.iti__flag.iti__lv{height:10px;background-position:-3073px 0px}.iti__flag.iti__ly{height:10px;background-position:-3095px 0px}.iti__flag.iti__ma{height:14px;background-position:-3117px 0px}.iti__flag.iti__mc{height:15px;background-position:-3139px 0px}.iti__flag.iti__md{height:10px;background-position:-3160px 0px}.iti__flag.iti__me{height:10px;background-position:-3182px 0px}.iti__flag.iti__mf{height:14px;background-position:-3204px 0px}.iti__flag.iti__mg{height:14px;background-position:-3226px 0px}.iti__flag.iti__mh{height:11px;background-position:-3248px 0px}.iti__flag.iti__mk{height:10px;background-position:-3270px 0px}.iti__flag.iti__ml{height:14px;background-position:-3292px 0px}.iti__flag.iti__mm{height:14px;background-position:-3314px 0px}.iti__flag.iti__mn{height:10px;background-position:-3336px 0px}.iti__flag.iti__mo{height:14px;background-position:-3358px 0px}.iti__flag.iti__mp{height:10px;background-position:-3380px 0px}.iti__flag.iti__mq{height:14px;background-position:-3402px 0px}.iti__flag.iti__mr{height:14px;background-position:-3424px 0px}.iti__flag.iti__ms{height:10px;background-position:-3446px 0px}.iti__flag.iti__mt{height:14px;background-position:-3468px 0px}.iti__flag.iti__mu{height:14px;background-position:-3490px 0px}.iti__flag.iti__mv{height:14px;background-position:-3512px 0px}.iti__flag.iti__mw{height:14px;background-position:-3534px 0px}.iti__flag.iti__mx{height:12px;background-position:-3556px 0px}.iti__flag.iti__my{height:10px;background-position:-3578px 0px}.iti__flag.iti__mz{height:14px;background-position:-3600px 0px}.iti__flag.iti__na{height:14px;background-position:-3622px 0px}.iti__flag.iti__nc{height:10px;background-position:-3644px 0px}.iti__flag.iti__ne{height:15px;background-position:-3666px 0px}.iti__flag.iti__nf{height:10px;background-position:-3686px 0px}.iti__flag.iti__ng{height:10px;background-position:-3708px 0px}.iti__flag.iti__ni{height:12px;background-position:-3730px 0px}.iti__flag.iti__nl{height:14px;background-position:-3752px 0px}.iti__flag.iti__no{height:15px;background-position:-3774px 0px}.iti__flag.iti__np{height:15px;background-position:-3796px 0px}.iti__flag.iti__nr{height:10px;background-position:-3811px 0px}.iti__flag.iti__nu{height:10px;background-position:-3833px 0px}.iti__flag.iti__nz{height:10px;background-position:-3855px 0px}.iti__flag.iti__om{height:10px;background-position:-3877px 0px}.iti__flag.iti__pa{height:14px;background-position:-3899px 0px}.iti__flag.iti__pe{height:14px;background-position:-3921px 0px}.iti__flag.iti__pf{height:14px;background-position:-3943px 0px}.iti__flag.iti__pg{height:15px;background-position:-3965px 0px}.iti__flag.iti__ph{height:10px;background-position:-3987px 0px}.iti__flag.iti__pk{height:14px;background-position:-4009px 0px}.iti__flag.iti__pl{height:13px;background-position:-4031px 0px}.iti__flag.iti__pm{height:14px;background-position:-4053px 0px}.iti__flag.iti__pn{height:10px;background-position:-4075px 0px}.iti__flag.iti__pr{height:14px;background-position:-4097px 0px}.iti__flag.iti__ps{height:10px;background-position:-4119px 0px}.iti__flag.iti__pt{height:14px;background-position:-4141px 0px}.iti__flag.iti__pw{height:13px;background-position:-4163px 0px}.iti__flag.iti__py{height:11px;background-position:-4185px 0px}.iti__flag.iti__qa{height:8px;background-position:-4207px 0px}.iti__flag.iti__re{height:14px;background-position:-4229px 0px}.iti__flag.iti__ro{height:14px;background-position:-4251px 0px}.iti__flag.iti__rs{height:14px;background-position:-4273px 0px}.iti__flag.iti__ru{height:14px;background-position:-4295px 0px}.iti__flag.iti__rw{height:14px;background-position:-4317px 0px}.iti__flag.iti__sa{height:14px;background-position:-4339px 0px}.iti__flag.iti__sb{height:10px;background-position:-4361px 0px}.iti__flag.iti__sc{height:10px;background-position:-4383px 0px}.iti__flag.iti__sd{height:10px;background-position:-4405px 0px}.iti__flag.iti__se{height:13px;background-position:-4427px 0px}.iti__flag.iti__sg{height:14px;background-position:-4449px 0px}.iti__flag.iti__sh{height:10px;background-position:-4471px 0px}.iti__flag.iti__si{height:10px;background-position:-4493px 0px}.iti__flag.iti__sj{height:15px;background-position:-4515px 0px}.iti__flag.iti__sk{height:14px;background-position:-4537px 0px}.iti__flag.iti__sl{height:14px;background-position:-4559px 0px}.iti__flag.iti__sm{height:15px;background-position:-4581px 0px}.iti__flag.iti__sn{height:14px;background-position:-4603px 0px}.iti__flag.iti__so{height:14px;background-position:-4625px 0px}.iti__flag.iti__sr{height:14px;background-position:-4647px 0px}.iti__flag.iti__ss{height:10px;background-position:-4669px 0px}.iti__flag.iti__st{height:10px;background-position:-4691px 0px}.iti__flag.iti__sv{height:12px;background-position:-4713px 0px}.iti__flag.iti__sx{height:14px;background-position:-4735px 0px}.iti__flag.iti__sy{height:14px;background-position:-4757px 0px}.iti__flag.iti__sz{height:14px;background-position:-4779px 0px}.iti__flag.iti__ta{height:10px;background-position:-4801px 0px}.iti__flag.iti__tc{height:10px;background-position:-4823px 0px}.iti__flag.iti__td{height:14px;background-position:-4845px 0px}.iti__flag.iti__tf{height:14px;background-position:-4867px 0px}.iti__flag.iti__tg{height:13px;background-position:-4889px 0px}.iti__flag.iti__th{height:14px;background-position:-4911px 0px}.iti__flag.iti__tj{height:10px;background-position:-4933px 0px}.iti__flag.iti__tk{height:10px;background-position:-4955px 0px}.iti__flag.iti__tl{height:10px;background-position:-4977px 0px}.iti__flag.iti__tm{height:14px;background-position:-4999px 0px}.iti__flag.iti__tn{height:14px;background-position:-5021px 0px}.iti__flag.iti__to{height:10px;background-position:-5043px 0px}.iti__flag.iti__tr{height:14px;background-position:-5065px 0px}.iti__flag.iti__tt{height:12px;background-position:-5087px 0px}.iti__flag.iti__tv{height:10px;background-position:-5109px 0px}.iti__flag.iti__tw{height:14px;background-position:-5131px 0px}.iti__flag.iti__tz{height:14px;background-position:-5153px 0px}.iti__flag.iti__ua{height:14px;background-position:-5175px 0px}.iti__flag.iti__ug{height:14px;background-position:-5197px 0px}.iti__flag.iti__um{height:11px;background-position:-5219px 0px}.iti__flag.iti__un{height:14px;background-position:-5241px 0px}.iti__flag.iti__us{height:11px;background-position:-5263px 0px}.iti__flag.iti__uy{height:14px;background-position:-5285px 0px}.iti__flag.iti__uz{height:10px;background-position:-5307px 0px}.iti__flag.iti__va{height:15px;background-position:-5329px 0px}.iti__flag.iti__vc{height:14px;background-position:-5346px 0px}.iti__flag.iti__ve{height:14px;background-position:-5368px 0px}.iti__flag.iti__vg{height:10px;background-position:-5390px 0px}.iti__flag.iti__vi{height:14px;background-position:-5412px 0px}.iti__flag.iti__vn{height:14px;background-position:-5434px 0px}.iti__flag.iti__vu{height:12px;background-position:-5456px 0px}.iti__flag.iti__wf{height:14px;background-position:-5478px 0px}.iti__flag.iti__ws{height:10px;background-position:-5500px 0px}.iti__flag.iti__xk{height:15px;background-position:-5522px 0px}.iti__flag.iti__ye{height:14px;background-position:-5544px 0px}.iti__flag.iti__yt{height:14px;background-position:-5566px 0px}.iti__flag.iti__za{height:14px;background-position:-5588px 0px}.iti__flag.iti__zm{height:14px;background-position:-5610px 0px}.iti__flag.iti__zw{height:10px;background-position:-5632px 0px}.iti__flag{height:15px;box-shadow:0 0 1px #888;background-image:url(../img/flags.png);background-repeat:no-repeat;background-color:#dbdbdb;background-position:20px 0}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(../img/flags@2x.png)}}.iti__flag.iti__np{background-color:transparent}.sky-country-field-country-btn+::ng-deep .sky-form-control{border-left:none}.sky-country-field-container{width:100%}.sky-country-field-search-result-flag{display:inline-block;margin-right:5px}.sky-country-field-flag{display:none}.sky-country-field-disabled .sky-country-field-input{cursor:default;background-color:#cdcfd2}.sky-country-field-disabled .sky-country-field-flag{opacity:.65}.sky-country-field-input{cursor:text;display:flex;position:relative}.sky-country-field-input .sky-country-field-flag{align-items:center;margin-bottom:auto;margin-top:auto;position:absolute;left:13px;height:35px;bottom:0}.sky-country-field-input textarea{overflow:hidden;resize:none;white-space:nowrap}.sky-country-field-input-with-flag .sky-country-field-flag{display:flex}.sky-country-field-input-with-flag .sky-form-control{padding-left:40px}.sky-country-field-country-selected,.sky-country-field-country-default{border-bottom:1px solid #e2e3e4}:host(.ng-invalid.ng-touched) .sky-country-field-input textarea{box-shadow:0 0 8px #ef404499;border:1px solid var(--sky-highlight-color-danger);outline:none}::ng-deep .sky-theme-modern .sky-country-field-disabled .sky-country-field-flag{filter:grayscale(100%)}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input{background-color:transparent;border-radius:6px}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input textarea.sky-form-control{overflow:hidden;resize:none;white-space:nowrap}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input-with-flag .sky-country-field-flag{height:40px;left:15px;opacity:1}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input-with-flag .sky-form-control{padding-left:45px}.iti__flag{max-width:25px;max-height:13px;background-image:url(https://sky.blackbaudcdn.net/static/skyux-public-assets/1.0.0-beta.2/assets/images/intl-tel-input/flags.webp)!important}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag .iti__flag{background-image:url(https://sky.blackbaudcdn.net/static/skyux-public-assets/1.0.0-beta.2/assets/images/intl-tel-input/flags@2x.webp)!important}}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.SkyAutocompleteComponent, selector: "sky-autocomplete", inputs: ["ariaLabelledBy", "data", "debounceTime", "descriptorProperty", "enableShowMore", "messageStream", "wrapperClass", "propertiesToSearch", "search", "searchResultTemplate", "searchTextMinimumCharacters", "searchFilters", "searchResultsLimit", "showAddButton", "noResultsFoundText", "searchAsyncDisabled"], outputs: ["addClick", "showMoreClick", "selectionChange", "searchAsync"] }, { kind: "directive", type: i7.SkyAutocompleteInputDirective, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: ["autocompleteAttribute", "disabled"] }, { kind: "component", type: i8.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i9.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
+ SkyCountryFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCountryFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i1.SkyInputBoxHostService, optional: true }, { token: i2.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
363
+ SkyCountryFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyCountryFieldComponent, selector: "sky-country-field", inputs: { autocompleteAttribute: "autocompleteAttribute", defaultCountry: "defaultCountry", disabled: "disabled", hideSelectedCountryFlag: "hideSelectedCountryFlag", includePhoneInfo: "includePhoneInfo", supportedCountryISOs: "supportedCountryISOs" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [SKY_COUNTRY_FIELD_VALIDATOR], viewQueries: [{ propertyName: "countrySearchAutocompleteDirective", first: true, predicate: SkyAutocompleteInputDirective, descendants: true }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "searchIconTemplateRef", first: true, predicate: ["searchIconTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <span\n class=\"sky-country-field-container\"\n [ngClass]=\"{\n 'sky-country-field-disabled': disabled\n }\"\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"inputId\"\n [data]=\"countries\"\n [propertiesToSearch]=\"['name', 'iso2']\"\n [searchResultTemplate]=\"countrySearchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n (selectionChange)=\"onCountrySelected($event)\"\n >\n <div\n class=\"sky-country-field-input\"\n [ngClass]=\"{\n 'sky-country-field-input-with-flag':\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n }\"\n >\n <div\n *ngIf=\"\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n \"\n class=\"sky-country-field-flag\"\n >\n <div\n class=\"iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry.iso2.toLowerCase()\"\n ></div>\n </div>\n <textarea\n class=\"sky-form-control\"\n name=\"selectedCountry\"\n rows=\"1\"\n skyAutocomplete\n [attr.aria-label]=\"\n 'skyux_country_field_search_placeholder' | skyLibResources\n \"\n [attr.id]=\"inputId\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [formControl]=\"countrySearchFormControl\"\n [placeholder]=\"\n context?.showPlaceholderText || currentTheme === 'default'\n ? ('skyux_country_field_search_placeholder' | skyLibResources)\n : ''\n \"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </sky-autocomplete>\n </span>\n</ng-template>\n\n<ng-template let-item=\"item\" #countrySearchResultTemplate>\n <div\n class=\"sky-country-field-search-result-flag\"\n [ngClass]=\"'iti__flag iti__' + item.iso2.toLowerCase()\"\n ></div>\n {{ item.name }}\n <span *ngIf=\"includePhoneInfo\" class=\"sky-deemphasized\">\n {{ item.dialCode }}\n </span>\n</ng-template>\n\n<!-- This template should only be used in modern theme input boxes. -->\n<ng-template #searchIconTemplateRef>\n <div class=\"sky-input-group-icon sky-input-box-icon-inset\">\n <sky-icon iconType=\"skyux\" icon=\"search\"></sky-icon>\n </div>\n</ng-template>\n", styles: [".iti{position:relative;display:inline-block}.iti *{box-sizing:border-box;-moz-box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti input,.iti input[type=text],.iti input[type=tel]{position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;padding-right:36px;margin-right:0}.iti__flag-container{position:absolute;top:0;bottom:0;right:0;padding:1px}.iti__selected-flag{z-index:1;position:relative;display:flex;align-items:center;height:100%;padding:0 6px 0 8px}.iti__arrow{margin-left:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #555}.iti__arrow--up{border-top:none;border-bottom:4px solid #555}.iti__country-list{position:absolute;z-index:2;list-style:none;text-align:left;padding:0;margin:0 0 0 -1px;box-shadow:1px 1px 4px #0003;background-color:#fff;border:1px solid #CCC;white-space:nowrap;max-height:200px;overflow-y:scroll;-webkit-overflow-scrolling:touch}.iti__country-list--dropup{bottom:100%;margin-bottom:-1px}@media (max-width: 500px){.iti__country-list{white-space:normal}}.iti__flag-box{display:inline-block;width:20px}.iti__divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #CCC}.iti__country{padding:5px 10px;outline:none}.iti__dial-code{color:#999}.iti__country.iti__highlight{background-color:#0000000d}.iti__flag-box,.iti__country-name,.iti__dial-code{vertical-align:middle}.iti__flag-box,.iti__country-name{margin-right:6px}.iti--allow-dropdown input,.iti--allow-dropdown input[type=text],.iti--allow-dropdown input[type=tel],.iti--separate-dial-code input,.iti--separate-dial-code input[type=text],.iti--separate-dial-code input[type=tel]{padding-right:6px;padding-left:52px;margin-left:0}.iti--allow-dropdown .iti__flag-container,.iti--separate-dial-code .iti__flag-container{right:auto;left:0}.iti--allow-dropdown .iti__flag-container:hover{cursor:pointer}.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:#0000000d}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover{cursor:default}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover .iti__selected-flag,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover .iti__selected-flag{background-color:transparent}.iti--separate-dial-code .iti__selected-flag{background-color:#0000000d}.iti--separate-dial-code .iti__selected-dial-code{margin-left:6px}.iti--container{position:absolute;top:-1000px;left:-1000px;z-index:1060;padding:1px}.iti--container:hover{cursor:pointer}.iti-mobile .iti--container{inset:30px;position:fixed}.iti-mobile .iti__country-list{max-height:100%;width:100%}.iti-mobile .iti__country{padding:10px;line-height:1.5em}.iti__flag{width:20px}.iti__flag.iti__be{width:18px}.iti__flag.iti__ch{width:15px}.iti__flag.iti__mc{width:19px}.iti__flag.iti__ne{width:18px}.iti__flag.iti__np{width:13px}.iti__flag.iti__va{width:15px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-size:5652px 15px}}.iti__flag.iti__ac{height:10px;background-position:0px 0px}.iti__flag.iti__ad{height:14px;background-position:-22px 0px}.iti__flag.iti__ae{height:10px;background-position:-44px 0px}.iti__flag.iti__af{height:14px;background-position:-66px 0px}.iti__flag.iti__ag{height:14px;background-position:-88px 0px}.iti__flag.iti__ai{height:10px;background-position:-110px 0px}.iti__flag.iti__al{height:15px;background-position:-132px 0px}.iti__flag.iti__am{height:10px;background-position:-154px 0px}.iti__flag.iti__ao{height:14px;background-position:-176px 0px}.iti__flag.iti__aq{height:14px;background-position:-198px 0px}.iti__flag.iti__ar{height:13px;background-position:-220px 0px}.iti__flag.iti__as{height:10px;background-position:-242px 0px}.iti__flag.iti__at{height:14px;background-position:-264px 0px}.iti__flag.iti__au{height:10px;background-position:-286px 0px}.iti__flag.iti__aw{height:14px;background-position:-308px 0px}.iti__flag.iti__ax{height:13px;background-position:-330px 0px}.iti__flag.iti__az{height:10px;background-position:-352px 0px}.iti__flag.iti__ba{height:10px;background-position:-374px 0px}.iti__flag.iti__bb{height:14px;background-position:-396px 0px}.iti__flag.iti__bd{height:12px;background-position:-418px 0px}.iti__flag.iti__be{height:15px;background-position:-440px 0px}.iti__flag.iti__bf{height:14px;background-position:-460px 0px}.iti__flag.iti__bg{height:12px;background-position:-482px 0px}.iti__flag.iti__bh{height:12px;background-position:-504px 0px}.iti__flag.iti__bi{height:12px;background-position:-526px 0px}.iti__flag.iti__bj{height:14px;background-position:-548px 0px}.iti__flag.iti__bl{height:14px;background-position:-570px 0px}.iti__flag.iti__bm{height:10px;background-position:-592px 0px}.iti__flag.iti__bn{height:10px;background-position:-614px 0px}.iti__flag.iti__bo{height:14px;background-position:-636px 0px}.iti__flag.iti__bq{height:14px;background-position:-658px 0px}.iti__flag.iti__br{height:14px;background-position:-680px 0px}.iti__flag.iti__bs{height:10px;background-position:-702px 0px}.iti__flag.iti__bt{height:14px;background-position:-724px 0px}.iti__flag.iti__bv{height:15px;background-position:-746px 0px}.iti__flag.iti__bw{height:14px;background-position:-768px 0px}.iti__flag.iti__by{height:10px;background-position:-790px 0px}.iti__flag.iti__bz{height:14px;background-position:-812px 0px}.iti__flag.iti__ca{height:10px;background-position:-834px 0px}.iti__flag.iti__cc{height:10px;background-position:-856px 0px}.iti__flag.iti__cd{height:15px;background-position:-878px 0px}.iti__flag.iti__cf{height:14px;background-position:-900px 0px}.iti__flag.iti__cg{height:14px;background-position:-922px 0px}.iti__flag.iti__ch{height:15px;background-position:-944px 0px}.iti__flag.iti__ci{height:14px;background-position:-961px 0px}.iti__flag.iti__ck{height:10px;background-position:-983px 0px}.iti__flag.iti__cl{height:14px;background-position:-1005px 0px}.iti__flag.iti__cm{height:14px;background-position:-1027px 0px}.iti__flag.iti__cn{height:14px;background-position:-1049px 0px}.iti__flag.iti__co{height:14px;background-position:-1071px 0px}.iti__flag.iti__cp{height:14px;background-position:-1093px 0px}.iti__flag.iti__cr{height:12px;background-position:-1115px 0px}.iti__flag.iti__cu{height:10px;background-position:-1137px 0px}.iti__flag.iti__cv{height:12px;background-position:-1159px 0px}.iti__flag.iti__cw{height:14px;background-position:-1181px 0px}.iti__flag.iti__cx{height:10px;background-position:-1203px 0px}.iti__flag.iti__cy{height:14px;background-position:-1225px 0px}.iti__flag.iti__cz{height:14px;background-position:-1247px 0px}.iti__flag.iti__de{height:12px;background-position:-1269px 0px}.iti__flag.iti__dg{height:10px;background-position:-1291px 0px}.iti__flag.iti__dj{height:14px;background-position:-1313px 0px}.iti__flag.iti__dk{height:15px;background-position:-1335px 0px}.iti__flag.iti__dm{height:10px;background-position:-1357px 0px}.iti__flag.iti__do{height:14px;background-position:-1379px 0px}.iti__flag.iti__dz{height:14px;background-position:-1401px 0px}.iti__flag.iti__ea{height:14px;background-position:-1423px 0px}.iti__flag.iti__ec{height:14px;background-position:-1445px 0px}.iti__flag.iti__ee{height:13px;background-position:-1467px 0px}.iti__flag.iti__eg{height:14px;background-position:-1489px 0px}.iti__flag.iti__eh{height:10px;background-position:-1511px 0px}.iti__flag.iti__er{height:10px;background-position:-1533px 0px}.iti__flag.iti__es{height:14px;background-position:-1555px 0px}.iti__flag.iti__et{height:10px;background-position:-1577px 0px}.iti__flag.iti__eu{height:14px;background-position:-1599px 0px}.iti__flag.iti__fi{height:12px;background-position:-1621px 0px}.iti__flag.iti__fj{height:10px;background-position:-1643px 0px}.iti__flag.iti__fk{height:10px;background-position:-1665px 0px}.iti__flag.iti__fm{height:11px;background-position:-1687px 0px}.iti__flag.iti__fo{height:15px;background-position:-1709px 0px}.iti__flag.iti__fr{height:14px;background-position:-1731px 0px}.iti__flag.iti__ga{height:15px;background-position:-1753px 0px}.iti__flag.iti__gb{height:10px;background-position:-1775px 0px}.iti__flag.iti__gd{height:12px;background-position:-1797px 0px}.iti__flag.iti__ge{height:14px;background-position:-1819px 0px}.iti__flag.iti__gf{height:14px;background-position:-1841px 0px}.iti__flag.iti__gg{height:14px;background-position:-1863px 0px}.iti__flag.iti__gh{height:14px;background-position:-1885px 0px}.iti__flag.iti__gi{height:10px;background-position:-1907px 0px}.iti__flag.iti__gl{height:14px;background-position:-1929px 0px}.iti__flag.iti__gm{height:14px;background-position:-1951px 0px}.iti__flag.iti__gn{height:14px;background-position:-1973px 0px}.iti__flag.iti__gp{height:14px;background-position:-1995px 0px}.iti__flag.iti__gq{height:14px;background-position:-2017px 0px}.iti__flag.iti__gr{height:14px;background-position:-2039px 0px}.iti__flag.iti__gs{height:10px;background-position:-2061px 0px}.iti__flag.iti__gt{height:13px;background-position:-2083px 0px}.iti__flag.iti__gu{height:11px;background-position:-2105px 0px}.iti__flag.iti__gw{height:10px;background-position:-2127px 0px}.iti__flag.iti__gy{height:12px;background-position:-2149px 0px}.iti__flag.iti__hk{height:14px;background-position:-2171px 0px}.iti__flag.iti__hm{height:10px;background-position:-2193px 0px}.iti__flag.iti__hn{height:10px;background-position:-2215px 0px}.iti__flag.iti__hr{height:10px;background-position:-2237px 0px}.iti__flag.iti__ht{height:12px;background-position:-2259px 0px}.iti__flag.iti__hu{height:10px;background-position:-2281px 0px}.iti__flag.iti__ic{height:14px;background-position:-2303px 0px}.iti__flag.iti__id{height:14px;background-position:-2325px 0px}.iti__flag.iti__ie{height:10px;background-position:-2347px 0px}.iti__flag.iti__il{height:15px;background-position:-2369px 0px}.iti__flag.iti__im{height:10px;background-position:-2391px 0px}.iti__flag.iti__in{height:14px;background-position:-2413px 0px}.iti__flag.iti__io{height:10px;background-position:-2435px 0px}.iti__flag.iti__iq{height:14px;background-position:-2457px 0px}.iti__flag.iti__ir{height:12px;background-position:-2479px 0px}.iti__flag.iti__is{height:15px;background-position:-2501px 0px}.iti__flag.iti__it{height:14px;background-position:-2523px 0px}.iti__flag.iti__je{height:12px;background-position:-2545px 0px}.iti__flag.iti__jm{height:10px;background-position:-2567px 0px}.iti__flag.iti__jo{height:10px;background-position:-2589px 0px}.iti__flag.iti__jp{height:14px;background-position:-2611px 0px}.iti__flag.iti__ke{height:14px;background-position:-2633px 0px}.iti__flag.iti__kg{height:12px;background-position:-2655px 0px}.iti__flag.iti__kh{height:13px;background-position:-2677px 0px}.iti__flag.iti__ki{height:10px;background-position:-2699px 0px}.iti__flag.iti__km{height:12px;background-position:-2721px 0px}.iti__flag.iti__kn{height:14px;background-position:-2743px 0px}.iti__flag.iti__kp{height:10px;background-position:-2765px 0px}.iti__flag.iti__kr{height:14px;background-position:-2787px 0px}.iti__flag.iti__kw{height:10px;background-position:-2809px 0px}.iti__flag.iti__ky{height:10px;background-position:-2831px 0px}.iti__flag.iti__kz{height:10px;background-position:-2853px 0px}.iti__flag.iti__la{height:14px;background-position:-2875px 0px}.iti__flag.iti__lb{height:14px;background-position:-2897px 0px}.iti__flag.iti__lc{height:10px;background-position:-2919px 0px}.iti__flag.iti__li{height:12px;background-position:-2941px 0px}.iti__flag.iti__lk{height:10px;background-position:-2963px 0px}.iti__flag.iti__lr{height:11px;background-position:-2985px 0px}.iti__flag.iti__ls{height:14px;background-position:-3007px 0px}.iti__flag.iti__lt{height:12px;background-position:-3029px 0px}.iti__flag.iti__lu{height:12px;background-position:-3051px 0px}.iti__flag.iti__lv{height:10px;background-position:-3073px 0px}.iti__flag.iti__ly{height:10px;background-position:-3095px 0px}.iti__flag.iti__ma{height:14px;background-position:-3117px 0px}.iti__flag.iti__mc{height:15px;background-position:-3139px 0px}.iti__flag.iti__md{height:10px;background-position:-3160px 0px}.iti__flag.iti__me{height:10px;background-position:-3182px 0px}.iti__flag.iti__mf{height:14px;background-position:-3204px 0px}.iti__flag.iti__mg{height:14px;background-position:-3226px 0px}.iti__flag.iti__mh{height:11px;background-position:-3248px 0px}.iti__flag.iti__mk{height:10px;background-position:-3270px 0px}.iti__flag.iti__ml{height:14px;background-position:-3292px 0px}.iti__flag.iti__mm{height:14px;background-position:-3314px 0px}.iti__flag.iti__mn{height:10px;background-position:-3336px 0px}.iti__flag.iti__mo{height:14px;background-position:-3358px 0px}.iti__flag.iti__mp{height:10px;background-position:-3380px 0px}.iti__flag.iti__mq{height:14px;background-position:-3402px 0px}.iti__flag.iti__mr{height:14px;background-position:-3424px 0px}.iti__flag.iti__ms{height:10px;background-position:-3446px 0px}.iti__flag.iti__mt{height:14px;background-position:-3468px 0px}.iti__flag.iti__mu{height:14px;background-position:-3490px 0px}.iti__flag.iti__mv{height:14px;background-position:-3512px 0px}.iti__flag.iti__mw{height:14px;background-position:-3534px 0px}.iti__flag.iti__mx{height:12px;background-position:-3556px 0px}.iti__flag.iti__my{height:10px;background-position:-3578px 0px}.iti__flag.iti__mz{height:14px;background-position:-3600px 0px}.iti__flag.iti__na{height:14px;background-position:-3622px 0px}.iti__flag.iti__nc{height:10px;background-position:-3644px 0px}.iti__flag.iti__ne{height:15px;background-position:-3666px 0px}.iti__flag.iti__nf{height:10px;background-position:-3686px 0px}.iti__flag.iti__ng{height:10px;background-position:-3708px 0px}.iti__flag.iti__ni{height:12px;background-position:-3730px 0px}.iti__flag.iti__nl{height:14px;background-position:-3752px 0px}.iti__flag.iti__no{height:15px;background-position:-3774px 0px}.iti__flag.iti__np{height:15px;background-position:-3796px 0px}.iti__flag.iti__nr{height:10px;background-position:-3811px 0px}.iti__flag.iti__nu{height:10px;background-position:-3833px 0px}.iti__flag.iti__nz{height:10px;background-position:-3855px 0px}.iti__flag.iti__om{height:10px;background-position:-3877px 0px}.iti__flag.iti__pa{height:14px;background-position:-3899px 0px}.iti__flag.iti__pe{height:14px;background-position:-3921px 0px}.iti__flag.iti__pf{height:14px;background-position:-3943px 0px}.iti__flag.iti__pg{height:15px;background-position:-3965px 0px}.iti__flag.iti__ph{height:10px;background-position:-3987px 0px}.iti__flag.iti__pk{height:14px;background-position:-4009px 0px}.iti__flag.iti__pl{height:13px;background-position:-4031px 0px}.iti__flag.iti__pm{height:14px;background-position:-4053px 0px}.iti__flag.iti__pn{height:10px;background-position:-4075px 0px}.iti__flag.iti__pr{height:14px;background-position:-4097px 0px}.iti__flag.iti__ps{height:10px;background-position:-4119px 0px}.iti__flag.iti__pt{height:14px;background-position:-4141px 0px}.iti__flag.iti__pw{height:13px;background-position:-4163px 0px}.iti__flag.iti__py{height:11px;background-position:-4185px 0px}.iti__flag.iti__qa{height:8px;background-position:-4207px 0px}.iti__flag.iti__re{height:14px;background-position:-4229px 0px}.iti__flag.iti__ro{height:14px;background-position:-4251px 0px}.iti__flag.iti__rs{height:14px;background-position:-4273px 0px}.iti__flag.iti__ru{height:14px;background-position:-4295px 0px}.iti__flag.iti__rw{height:14px;background-position:-4317px 0px}.iti__flag.iti__sa{height:14px;background-position:-4339px 0px}.iti__flag.iti__sb{height:10px;background-position:-4361px 0px}.iti__flag.iti__sc{height:10px;background-position:-4383px 0px}.iti__flag.iti__sd{height:10px;background-position:-4405px 0px}.iti__flag.iti__se{height:13px;background-position:-4427px 0px}.iti__flag.iti__sg{height:14px;background-position:-4449px 0px}.iti__flag.iti__sh{height:10px;background-position:-4471px 0px}.iti__flag.iti__si{height:10px;background-position:-4493px 0px}.iti__flag.iti__sj{height:15px;background-position:-4515px 0px}.iti__flag.iti__sk{height:14px;background-position:-4537px 0px}.iti__flag.iti__sl{height:14px;background-position:-4559px 0px}.iti__flag.iti__sm{height:15px;background-position:-4581px 0px}.iti__flag.iti__sn{height:14px;background-position:-4603px 0px}.iti__flag.iti__so{height:14px;background-position:-4625px 0px}.iti__flag.iti__sr{height:14px;background-position:-4647px 0px}.iti__flag.iti__ss{height:10px;background-position:-4669px 0px}.iti__flag.iti__st{height:10px;background-position:-4691px 0px}.iti__flag.iti__sv{height:12px;background-position:-4713px 0px}.iti__flag.iti__sx{height:14px;background-position:-4735px 0px}.iti__flag.iti__sy{height:14px;background-position:-4757px 0px}.iti__flag.iti__sz{height:14px;background-position:-4779px 0px}.iti__flag.iti__ta{height:10px;background-position:-4801px 0px}.iti__flag.iti__tc{height:10px;background-position:-4823px 0px}.iti__flag.iti__td{height:14px;background-position:-4845px 0px}.iti__flag.iti__tf{height:14px;background-position:-4867px 0px}.iti__flag.iti__tg{height:13px;background-position:-4889px 0px}.iti__flag.iti__th{height:14px;background-position:-4911px 0px}.iti__flag.iti__tj{height:10px;background-position:-4933px 0px}.iti__flag.iti__tk{height:10px;background-position:-4955px 0px}.iti__flag.iti__tl{height:10px;background-position:-4977px 0px}.iti__flag.iti__tm{height:14px;background-position:-4999px 0px}.iti__flag.iti__tn{height:14px;background-position:-5021px 0px}.iti__flag.iti__to{height:10px;background-position:-5043px 0px}.iti__flag.iti__tr{height:14px;background-position:-5065px 0px}.iti__flag.iti__tt{height:12px;background-position:-5087px 0px}.iti__flag.iti__tv{height:10px;background-position:-5109px 0px}.iti__flag.iti__tw{height:14px;background-position:-5131px 0px}.iti__flag.iti__tz{height:14px;background-position:-5153px 0px}.iti__flag.iti__ua{height:14px;background-position:-5175px 0px}.iti__flag.iti__ug{height:14px;background-position:-5197px 0px}.iti__flag.iti__um{height:11px;background-position:-5219px 0px}.iti__flag.iti__un{height:14px;background-position:-5241px 0px}.iti__flag.iti__us{height:11px;background-position:-5263px 0px}.iti__flag.iti__uy{height:14px;background-position:-5285px 0px}.iti__flag.iti__uz{height:10px;background-position:-5307px 0px}.iti__flag.iti__va{height:15px;background-position:-5329px 0px}.iti__flag.iti__vc{height:14px;background-position:-5346px 0px}.iti__flag.iti__ve{height:14px;background-position:-5368px 0px}.iti__flag.iti__vg{height:10px;background-position:-5390px 0px}.iti__flag.iti__vi{height:14px;background-position:-5412px 0px}.iti__flag.iti__vn{height:14px;background-position:-5434px 0px}.iti__flag.iti__vu{height:12px;background-position:-5456px 0px}.iti__flag.iti__wf{height:14px;background-position:-5478px 0px}.iti__flag.iti__ws{height:10px;background-position:-5500px 0px}.iti__flag.iti__xk{height:15px;background-position:-5522px 0px}.iti__flag.iti__ye{height:14px;background-position:-5544px 0px}.iti__flag.iti__yt{height:14px;background-position:-5566px 0px}.iti__flag.iti__za{height:14px;background-position:-5588px 0px}.iti__flag.iti__zm{height:14px;background-position:-5610px 0px}.iti__flag.iti__zw{height:10px;background-position:-5632px 0px}.iti__flag{height:15px;box-shadow:0 0 1px #888;background-image:url(../img/flags.png);background-repeat:no-repeat;background-color:#dbdbdb;background-position:20px 0}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(../img/flags@2x.png)}}.iti__flag.iti__np{background-color:transparent}.sky-country-field-country-btn+::ng-deep .sky-form-control{border-left:none}.sky-country-field-container{width:100%}.sky-country-field-search-result-flag{display:inline-block;margin-right:5px}.sky-country-field-flag{display:none}.sky-country-field-disabled .sky-country-field-input{cursor:default;background-color:#cdcfd2}.sky-country-field-disabled .sky-country-field-flag{opacity:.65}.sky-country-field-input{cursor:text;display:flex;position:relative}.sky-country-field-input .sky-country-field-flag{align-items:center;margin-bottom:auto;margin-top:auto;position:absolute;left:13px;height:35px;bottom:0}.sky-country-field-input textarea{overflow:hidden;resize:none;white-space:nowrap}.sky-country-field-input-with-flag .sky-country-field-flag{display:flex}.sky-country-field-input-with-flag .sky-form-control{padding-left:40px}.sky-country-field-country-selected,.sky-country-field-country-default{border-bottom:1px solid #e2e3e4}:host(.ng-invalid.ng-touched) .sky-country-field-input textarea{box-shadow:0 0 8px #ef404499;border:1px solid var(--sky-highlight-color-danger);outline:none}::ng-deep .sky-theme-modern .sky-country-field-disabled .sky-country-field-flag{filter:grayscale(100%)}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input{background-color:transparent;border-radius:6px}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input textarea.sky-form-control{overflow:hidden;resize:none;white-space:nowrap}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input-with-flag .sky-country-field-flag{height:40px;left:15px;opacity:1}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input-with-flag .sky-form-control{padding-left:45px}.iti__flag{max-width:25px;max-height:13px;background-image:url(https://sky.blackbaudcdn.net/static/skyux-public-assets/1.0.0-beta.2/assets/images/intl-tel-input/flags.webp)!important}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag .iti__flag{background-image:url(https://sky.blackbaudcdn.net/static/skyux-public-assets/1.0.0-beta.2/assets/images/intl-tel-input/flags@2x.webp)!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.SkyAutocompleteComponent, selector: "sky-autocomplete", inputs: ["ariaLabelledBy", "data", "debounceTime", "descriptorProperty", "enableShowMore", "messageStream", "wrapperClass", "propertiesToSearch", "search", "searchResultTemplate", "searchTextMinimumCharacters", "searchFilters", "searchResultsLimit", "showAddButton", "noResultsFoundText", "searchAsyncDisabled"], outputs: ["addClick", "showMoreClick", "selectionChange", "searchAsync", "openChange"] }, { kind: "directive", type: i6.SkyAutocompleteInputDirective, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: ["autocompleteAttribute", "disabled"] }, { kind: "component", type: i7.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
396
364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCountryFieldComponent, decorators: [{
397
365
  type: Component,
398
366
  args: [{ selector: 'sky-country-field', providers: [SKY_COUNTRY_FIELD_VALIDATOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!inputBoxHostSvc\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n</ng-container>\n\n<ng-template #inputTemplateRef>\n <span\n class=\"sky-country-field-container\"\n [ngClass]=\"{\n 'sky-country-field-disabled': disabled\n }\"\n >\n <sky-autocomplete\n [ariaLabelledBy]=\"inputId\"\n [data]=\"countries\"\n [propertiesToSearch]=\"['name', 'iso2']\"\n [searchResultTemplate]=\"countrySearchResultTemplate\"\n [searchTextMinimumCharacters]=\"searchTextMinimumCharacters\"\n (selectionChange)=\"onCountrySelected($event)\"\n >\n <div\n class=\"sky-country-field-input\"\n [ngClass]=\"{\n 'sky-country-field-input-with-flag':\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n }\"\n >\n <div\n *ngIf=\"\n selectedCountry && selectedCountry.iso2 && !hideSelectedCountryFlag\n \"\n class=\"sky-country-field-flag\"\n >\n <div\n class=\"iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry.iso2.toLowerCase()\"\n ></div>\n </div>\n <textarea\n class=\"sky-form-control\"\n name=\"selectedCountry\"\n rows=\"1\"\n skyAutocomplete\n [attr.aria-label]=\"\n 'skyux_country_field_search_placeholder' | skyLibResources\n \"\n [attr.id]=\"inputId\"\n [autocompleteAttribute]=\"autocompleteAttribute\"\n [formControl]=\"countrySearchFormControl\"\n [placeholder]=\"\n context?.showPlaceholderText || currentTheme === 'default'\n ? ('skyux_country_field_search_placeholder' | skyLibResources)\n : ''\n \"\n (blur)=\"onAutocompleteBlur()\"\n ></textarea>\n </div>\n </sky-autocomplete>\n </span>\n</ng-template>\n\n<ng-template let-item=\"item\" #countrySearchResultTemplate>\n <div\n class=\"sky-country-field-search-result-flag\"\n [ngClass]=\"'iti__flag iti__' + item.iso2.toLowerCase()\"\n ></div>\n {{ item.name }}\n <span *ngIf=\"includePhoneInfo\" class=\"sky-deemphasized\">\n {{ item.dialCode }}\n </span>\n</ng-template>\n\n<!-- This template should only be used in modern theme input boxes. -->\n<ng-template #searchIconTemplateRef>\n <div class=\"sky-input-group-icon sky-input-box-icon-inset\">\n <sky-icon iconType=\"skyux\" icon=\"search\"></sky-icon>\n </div>\n</ng-template>\n", styles: [".iti{position:relative;display:inline-block}.iti *{box-sizing:border-box;-moz-box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti input,.iti input[type=text],.iti input[type=tel]{position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;padding-right:36px;margin-right:0}.iti__flag-container{position:absolute;top:0;bottom:0;right:0;padding:1px}.iti__selected-flag{z-index:1;position:relative;display:flex;align-items:center;height:100%;padding:0 6px 0 8px}.iti__arrow{margin-left:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #555}.iti__arrow--up{border-top:none;border-bottom:4px solid #555}.iti__country-list{position:absolute;z-index:2;list-style:none;text-align:left;padding:0;margin:0 0 0 -1px;box-shadow:1px 1px 4px #0003;background-color:#fff;border:1px solid #CCC;white-space:nowrap;max-height:200px;overflow-y:scroll;-webkit-overflow-scrolling:touch}.iti__country-list--dropup{bottom:100%;margin-bottom:-1px}@media (max-width: 500px){.iti__country-list{white-space:normal}}.iti__flag-box{display:inline-block;width:20px}.iti__divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #CCC}.iti__country{padding:5px 10px;outline:none}.iti__dial-code{color:#999}.iti__country.iti__highlight{background-color:#0000000d}.iti__flag-box,.iti__country-name,.iti__dial-code{vertical-align:middle}.iti__flag-box,.iti__country-name{margin-right:6px}.iti--allow-dropdown input,.iti--allow-dropdown input[type=text],.iti--allow-dropdown input[type=tel],.iti--separate-dial-code input,.iti--separate-dial-code input[type=text],.iti--separate-dial-code input[type=tel]{padding-right:6px;padding-left:52px;margin-left:0}.iti--allow-dropdown .iti__flag-container,.iti--separate-dial-code .iti__flag-container{right:auto;left:0}.iti--allow-dropdown .iti__flag-container:hover{cursor:pointer}.iti--allow-dropdown .iti__flag-container:hover .iti__selected-flag{background-color:#0000000d}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover{cursor:default}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover .iti__selected-flag,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover .iti__selected-flag{background-color:transparent}.iti--separate-dial-code .iti__selected-flag{background-color:#0000000d}.iti--separate-dial-code .iti__selected-dial-code{margin-left:6px}.iti--container{position:absolute;top:-1000px;left:-1000px;z-index:1060;padding:1px}.iti--container:hover{cursor:pointer}.iti-mobile .iti--container{inset:30px;position:fixed}.iti-mobile .iti__country-list{max-height:100%;width:100%}.iti-mobile .iti__country{padding:10px;line-height:1.5em}.iti__flag{width:20px}.iti__flag.iti__be{width:18px}.iti__flag.iti__ch{width:15px}.iti__flag.iti__mc{width:19px}.iti__flag.iti__ne{width:18px}.iti__flag.iti__np{width:13px}.iti__flag.iti__va{width:15px}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-size:5652px 15px}}.iti__flag.iti__ac{height:10px;background-position:0px 0px}.iti__flag.iti__ad{height:14px;background-position:-22px 0px}.iti__flag.iti__ae{height:10px;background-position:-44px 0px}.iti__flag.iti__af{height:14px;background-position:-66px 0px}.iti__flag.iti__ag{height:14px;background-position:-88px 0px}.iti__flag.iti__ai{height:10px;background-position:-110px 0px}.iti__flag.iti__al{height:15px;background-position:-132px 0px}.iti__flag.iti__am{height:10px;background-position:-154px 0px}.iti__flag.iti__ao{height:14px;background-position:-176px 0px}.iti__flag.iti__aq{height:14px;background-position:-198px 0px}.iti__flag.iti__ar{height:13px;background-position:-220px 0px}.iti__flag.iti__as{height:10px;background-position:-242px 0px}.iti__flag.iti__at{height:14px;background-position:-264px 0px}.iti__flag.iti__au{height:10px;background-position:-286px 0px}.iti__flag.iti__aw{height:14px;background-position:-308px 0px}.iti__flag.iti__ax{height:13px;background-position:-330px 0px}.iti__flag.iti__az{height:10px;background-position:-352px 0px}.iti__flag.iti__ba{height:10px;background-position:-374px 0px}.iti__flag.iti__bb{height:14px;background-position:-396px 0px}.iti__flag.iti__bd{height:12px;background-position:-418px 0px}.iti__flag.iti__be{height:15px;background-position:-440px 0px}.iti__flag.iti__bf{height:14px;background-position:-460px 0px}.iti__flag.iti__bg{height:12px;background-position:-482px 0px}.iti__flag.iti__bh{height:12px;background-position:-504px 0px}.iti__flag.iti__bi{height:12px;background-position:-526px 0px}.iti__flag.iti__bj{height:14px;background-position:-548px 0px}.iti__flag.iti__bl{height:14px;background-position:-570px 0px}.iti__flag.iti__bm{height:10px;background-position:-592px 0px}.iti__flag.iti__bn{height:10px;background-position:-614px 0px}.iti__flag.iti__bo{height:14px;background-position:-636px 0px}.iti__flag.iti__bq{height:14px;background-position:-658px 0px}.iti__flag.iti__br{height:14px;background-position:-680px 0px}.iti__flag.iti__bs{height:10px;background-position:-702px 0px}.iti__flag.iti__bt{height:14px;background-position:-724px 0px}.iti__flag.iti__bv{height:15px;background-position:-746px 0px}.iti__flag.iti__bw{height:14px;background-position:-768px 0px}.iti__flag.iti__by{height:10px;background-position:-790px 0px}.iti__flag.iti__bz{height:14px;background-position:-812px 0px}.iti__flag.iti__ca{height:10px;background-position:-834px 0px}.iti__flag.iti__cc{height:10px;background-position:-856px 0px}.iti__flag.iti__cd{height:15px;background-position:-878px 0px}.iti__flag.iti__cf{height:14px;background-position:-900px 0px}.iti__flag.iti__cg{height:14px;background-position:-922px 0px}.iti__flag.iti__ch{height:15px;background-position:-944px 0px}.iti__flag.iti__ci{height:14px;background-position:-961px 0px}.iti__flag.iti__ck{height:10px;background-position:-983px 0px}.iti__flag.iti__cl{height:14px;background-position:-1005px 0px}.iti__flag.iti__cm{height:14px;background-position:-1027px 0px}.iti__flag.iti__cn{height:14px;background-position:-1049px 0px}.iti__flag.iti__co{height:14px;background-position:-1071px 0px}.iti__flag.iti__cp{height:14px;background-position:-1093px 0px}.iti__flag.iti__cr{height:12px;background-position:-1115px 0px}.iti__flag.iti__cu{height:10px;background-position:-1137px 0px}.iti__flag.iti__cv{height:12px;background-position:-1159px 0px}.iti__flag.iti__cw{height:14px;background-position:-1181px 0px}.iti__flag.iti__cx{height:10px;background-position:-1203px 0px}.iti__flag.iti__cy{height:14px;background-position:-1225px 0px}.iti__flag.iti__cz{height:14px;background-position:-1247px 0px}.iti__flag.iti__de{height:12px;background-position:-1269px 0px}.iti__flag.iti__dg{height:10px;background-position:-1291px 0px}.iti__flag.iti__dj{height:14px;background-position:-1313px 0px}.iti__flag.iti__dk{height:15px;background-position:-1335px 0px}.iti__flag.iti__dm{height:10px;background-position:-1357px 0px}.iti__flag.iti__do{height:14px;background-position:-1379px 0px}.iti__flag.iti__dz{height:14px;background-position:-1401px 0px}.iti__flag.iti__ea{height:14px;background-position:-1423px 0px}.iti__flag.iti__ec{height:14px;background-position:-1445px 0px}.iti__flag.iti__ee{height:13px;background-position:-1467px 0px}.iti__flag.iti__eg{height:14px;background-position:-1489px 0px}.iti__flag.iti__eh{height:10px;background-position:-1511px 0px}.iti__flag.iti__er{height:10px;background-position:-1533px 0px}.iti__flag.iti__es{height:14px;background-position:-1555px 0px}.iti__flag.iti__et{height:10px;background-position:-1577px 0px}.iti__flag.iti__eu{height:14px;background-position:-1599px 0px}.iti__flag.iti__fi{height:12px;background-position:-1621px 0px}.iti__flag.iti__fj{height:10px;background-position:-1643px 0px}.iti__flag.iti__fk{height:10px;background-position:-1665px 0px}.iti__flag.iti__fm{height:11px;background-position:-1687px 0px}.iti__flag.iti__fo{height:15px;background-position:-1709px 0px}.iti__flag.iti__fr{height:14px;background-position:-1731px 0px}.iti__flag.iti__ga{height:15px;background-position:-1753px 0px}.iti__flag.iti__gb{height:10px;background-position:-1775px 0px}.iti__flag.iti__gd{height:12px;background-position:-1797px 0px}.iti__flag.iti__ge{height:14px;background-position:-1819px 0px}.iti__flag.iti__gf{height:14px;background-position:-1841px 0px}.iti__flag.iti__gg{height:14px;background-position:-1863px 0px}.iti__flag.iti__gh{height:14px;background-position:-1885px 0px}.iti__flag.iti__gi{height:10px;background-position:-1907px 0px}.iti__flag.iti__gl{height:14px;background-position:-1929px 0px}.iti__flag.iti__gm{height:14px;background-position:-1951px 0px}.iti__flag.iti__gn{height:14px;background-position:-1973px 0px}.iti__flag.iti__gp{height:14px;background-position:-1995px 0px}.iti__flag.iti__gq{height:14px;background-position:-2017px 0px}.iti__flag.iti__gr{height:14px;background-position:-2039px 0px}.iti__flag.iti__gs{height:10px;background-position:-2061px 0px}.iti__flag.iti__gt{height:13px;background-position:-2083px 0px}.iti__flag.iti__gu{height:11px;background-position:-2105px 0px}.iti__flag.iti__gw{height:10px;background-position:-2127px 0px}.iti__flag.iti__gy{height:12px;background-position:-2149px 0px}.iti__flag.iti__hk{height:14px;background-position:-2171px 0px}.iti__flag.iti__hm{height:10px;background-position:-2193px 0px}.iti__flag.iti__hn{height:10px;background-position:-2215px 0px}.iti__flag.iti__hr{height:10px;background-position:-2237px 0px}.iti__flag.iti__ht{height:12px;background-position:-2259px 0px}.iti__flag.iti__hu{height:10px;background-position:-2281px 0px}.iti__flag.iti__ic{height:14px;background-position:-2303px 0px}.iti__flag.iti__id{height:14px;background-position:-2325px 0px}.iti__flag.iti__ie{height:10px;background-position:-2347px 0px}.iti__flag.iti__il{height:15px;background-position:-2369px 0px}.iti__flag.iti__im{height:10px;background-position:-2391px 0px}.iti__flag.iti__in{height:14px;background-position:-2413px 0px}.iti__flag.iti__io{height:10px;background-position:-2435px 0px}.iti__flag.iti__iq{height:14px;background-position:-2457px 0px}.iti__flag.iti__ir{height:12px;background-position:-2479px 0px}.iti__flag.iti__is{height:15px;background-position:-2501px 0px}.iti__flag.iti__it{height:14px;background-position:-2523px 0px}.iti__flag.iti__je{height:12px;background-position:-2545px 0px}.iti__flag.iti__jm{height:10px;background-position:-2567px 0px}.iti__flag.iti__jo{height:10px;background-position:-2589px 0px}.iti__flag.iti__jp{height:14px;background-position:-2611px 0px}.iti__flag.iti__ke{height:14px;background-position:-2633px 0px}.iti__flag.iti__kg{height:12px;background-position:-2655px 0px}.iti__flag.iti__kh{height:13px;background-position:-2677px 0px}.iti__flag.iti__ki{height:10px;background-position:-2699px 0px}.iti__flag.iti__km{height:12px;background-position:-2721px 0px}.iti__flag.iti__kn{height:14px;background-position:-2743px 0px}.iti__flag.iti__kp{height:10px;background-position:-2765px 0px}.iti__flag.iti__kr{height:14px;background-position:-2787px 0px}.iti__flag.iti__kw{height:10px;background-position:-2809px 0px}.iti__flag.iti__ky{height:10px;background-position:-2831px 0px}.iti__flag.iti__kz{height:10px;background-position:-2853px 0px}.iti__flag.iti__la{height:14px;background-position:-2875px 0px}.iti__flag.iti__lb{height:14px;background-position:-2897px 0px}.iti__flag.iti__lc{height:10px;background-position:-2919px 0px}.iti__flag.iti__li{height:12px;background-position:-2941px 0px}.iti__flag.iti__lk{height:10px;background-position:-2963px 0px}.iti__flag.iti__lr{height:11px;background-position:-2985px 0px}.iti__flag.iti__ls{height:14px;background-position:-3007px 0px}.iti__flag.iti__lt{height:12px;background-position:-3029px 0px}.iti__flag.iti__lu{height:12px;background-position:-3051px 0px}.iti__flag.iti__lv{height:10px;background-position:-3073px 0px}.iti__flag.iti__ly{height:10px;background-position:-3095px 0px}.iti__flag.iti__ma{height:14px;background-position:-3117px 0px}.iti__flag.iti__mc{height:15px;background-position:-3139px 0px}.iti__flag.iti__md{height:10px;background-position:-3160px 0px}.iti__flag.iti__me{height:10px;background-position:-3182px 0px}.iti__flag.iti__mf{height:14px;background-position:-3204px 0px}.iti__flag.iti__mg{height:14px;background-position:-3226px 0px}.iti__flag.iti__mh{height:11px;background-position:-3248px 0px}.iti__flag.iti__mk{height:10px;background-position:-3270px 0px}.iti__flag.iti__ml{height:14px;background-position:-3292px 0px}.iti__flag.iti__mm{height:14px;background-position:-3314px 0px}.iti__flag.iti__mn{height:10px;background-position:-3336px 0px}.iti__flag.iti__mo{height:14px;background-position:-3358px 0px}.iti__flag.iti__mp{height:10px;background-position:-3380px 0px}.iti__flag.iti__mq{height:14px;background-position:-3402px 0px}.iti__flag.iti__mr{height:14px;background-position:-3424px 0px}.iti__flag.iti__ms{height:10px;background-position:-3446px 0px}.iti__flag.iti__mt{height:14px;background-position:-3468px 0px}.iti__flag.iti__mu{height:14px;background-position:-3490px 0px}.iti__flag.iti__mv{height:14px;background-position:-3512px 0px}.iti__flag.iti__mw{height:14px;background-position:-3534px 0px}.iti__flag.iti__mx{height:12px;background-position:-3556px 0px}.iti__flag.iti__my{height:10px;background-position:-3578px 0px}.iti__flag.iti__mz{height:14px;background-position:-3600px 0px}.iti__flag.iti__na{height:14px;background-position:-3622px 0px}.iti__flag.iti__nc{height:10px;background-position:-3644px 0px}.iti__flag.iti__ne{height:15px;background-position:-3666px 0px}.iti__flag.iti__nf{height:10px;background-position:-3686px 0px}.iti__flag.iti__ng{height:10px;background-position:-3708px 0px}.iti__flag.iti__ni{height:12px;background-position:-3730px 0px}.iti__flag.iti__nl{height:14px;background-position:-3752px 0px}.iti__flag.iti__no{height:15px;background-position:-3774px 0px}.iti__flag.iti__np{height:15px;background-position:-3796px 0px}.iti__flag.iti__nr{height:10px;background-position:-3811px 0px}.iti__flag.iti__nu{height:10px;background-position:-3833px 0px}.iti__flag.iti__nz{height:10px;background-position:-3855px 0px}.iti__flag.iti__om{height:10px;background-position:-3877px 0px}.iti__flag.iti__pa{height:14px;background-position:-3899px 0px}.iti__flag.iti__pe{height:14px;background-position:-3921px 0px}.iti__flag.iti__pf{height:14px;background-position:-3943px 0px}.iti__flag.iti__pg{height:15px;background-position:-3965px 0px}.iti__flag.iti__ph{height:10px;background-position:-3987px 0px}.iti__flag.iti__pk{height:14px;background-position:-4009px 0px}.iti__flag.iti__pl{height:13px;background-position:-4031px 0px}.iti__flag.iti__pm{height:14px;background-position:-4053px 0px}.iti__flag.iti__pn{height:10px;background-position:-4075px 0px}.iti__flag.iti__pr{height:14px;background-position:-4097px 0px}.iti__flag.iti__ps{height:10px;background-position:-4119px 0px}.iti__flag.iti__pt{height:14px;background-position:-4141px 0px}.iti__flag.iti__pw{height:13px;background-position:-4163px 0px}.iti__flag.iti__py{height:11px;background-position:-4185px 0px}.iti__flag.iti__qa{height:8px;background-position:-4207px 0px}.iti__flag.iti__re{height:14px;background-position:-4229px 0px}.iti__flag.iti__ro{height:14px;background-position:-4251px 0px}.iti__flag.iti__rs{height:14px;background-position:-4273px 0px}.iti__flag.iti__ru{height:14px;background-position:-4295px 0px}.iti__flag.iti__rw{height:14px;background-position:-4317px 0px}.iti__flag.iti__sa{height:14px;background-position:-4339px 0px}.iti__flag.iti__sb{height:10px;background-position:-4361px 0px}.iti__flag.iti__sc{height:10px;background-position:-4383px 0px}.iti__flag.iti__sd{height:10px;background-position:-4405px 0px}.iti__flag.iti__se{height:13px;background-position:-4427px 0px}.iti__flag.iti__sg{height:14px;background-position:-4449px 0px}.iti__flag.iti__sh{height:10px;background-position:-4471px 0px}.iti__flag.iti__si{height:10px;background-position:-4493px 0px}.iti__flag.iti__sj{height:15px;background-position:-4515px 0px}.iti__flag.iti__sk{height:14px;background-position:-4537px 0px}.iti__flag.iti__sl{height:14px;background-position:-4559px 0px}.iti__flag.iti__sm{height:15px;background-position:-4581px 0px}.iti__flag.iti__sn{height:14px;background-position:-4603px 0px}.iti__flag.iti__so{height:14px;background-position:-4625px 0px}.iti__flag.iti__sr{height:14px;background-position:-4647px 0px}.iti__flag.iti__ss{height:10px;background-position:-4669px 0px}.iti__flag.iti__st{height:10px;background-position:-4691px 0px}.iti__flag.iti__sv{height:12px;background-position:-4713px 0px}.iti__flag.iti__sx{height:14px;background-position:-4735px 0px}.iti__flag.iti__sy{height:14px;background-position:-4757px 0px}.iti__flag.iti__sz{height:14px;background-position:-4779px 0px}.iti__flag.iti__ta{height:10px;background-position:-4801px 0px}.iti__flag.iti__tc{height:10px;background-position:-4823px 0px}.iti__flag.iti__td{height:14px;background-position:-4845px 0px}.iti__flag.iti__tf{height:14px;background-position:-4867px 0px}.iti__flag.iti__tg{height:13px;background-position:-4889px 0px}.iti__flag.iti__th{height:14px;background-position:-4911px 0px}.iti__flag.iti__tj{height:10px;background-position:-4933px 0px}.iti__flag.iti__tk{height:10px;background-position:-4955px 0px}.iti__flag.iti__tl{height:10px;background-position:-4977px 0px}.iti__flag.iti__tm{height:14px;background-position:-4999px 0px}.iti__flag.iti__tn{height:14px;background-position:-5021px 0px}.iti__flag.iti__to{height:10px;background-position:-5043px 0px}.iti__flag.iti__tr{height:14px;background-position:-5065px 0px}.iti__flag.iti__tt{height:12px;background-position:-5087px 0px}.iti__flag.iti__tv{height:10px;background-position:-5109px 0px}.iti__flag.iti__tw{height:14px;background-position:-5131px 0px}.iti__flag.iti__tz{height:14px;background-position:-5153px 0px}.iti__flag.iti__ua{height:14px;background-position:-5175px 0px}.iti__flag.iti__ug{height:14px;background-position:-5197px 0px}.iti__flag.iti__um{height:11px;background-position:-5219px 0px}.iti__flag.iti__un{height:14px;background-position:-5241px 0px}.iti__flag.iti__us{height:11px;background-position:-5263px 0px}.iti__flag.iti__uy{height:14px;background-position:-5285px 0px}.iti__flag.iti__uz{height:10px;background-position:-5307px 0px}.iti__flag.iti__va{height:15px;background-position:-5329px 0px}.iti__flag.iti__vc{height:14px;background-position:-5346px 0px}.iti__flag.iti__ve{height:14px;background-position:-5368px 0px}.iti__flag.iti__vg{height:10px;background-position:-5390px 0px}.iti__flag.iti__vi{height:14px;background-position:-5412px 0px}.iti__flag.iti__vn{height:14px;background-position:-5434px 0px}.iti__flag.iti__vu{height:12px;background-position:-5456px 0px}.iti__flag.iti__wf{height:14px;background-position:-5478px 0px}.iti__flag.iti__ws{height:10px;background-position:-5500px 0px}.iti__flag.iti__xk{height:15px;background-position:-5522px 0px}.iti__flag.iti__ye{height:14px;background-position:-5544px 0px}.iti__flag.iti__yt{height:14px;background-position:-5566px 0px}.iti__flag.iti__za{height:14px;background-position:-5588px 0px}.iti__flag.iti__zm{height:14px;background-position:-5610px 0px}.iti__flag.iti__zw{height:10px;background-position:-5632px 0px}.iti__flag{height:15px;box-shadow:0 0 1px #888;background-image:url(../img/flags.png);background-repeat:no-repeat;background-color:#dbdbdb;background-position:20px 0}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag{background-image:url(../img/flags@2x.png)}}.iti__flag.iti__np{background-color:transparent}.sky-country-field-country-btn+::ng-deep .sky-form-control{border-left:none}.sky-country-field-container{width:100%}.sky-country-field-search-result-flag{display:inline-block;margin-right:5px}.sky-country-field-flag{display:none}.sky-country-field-disabled .sky-country-field-input{cursor:default;background-color:#cdcfd2}.sky-country-field-disabled .sky-country-field-flag{opacity:.65}.sky-country-field-input{cursor:text;display:flex;position:relative}.sky-country-field-input .sky-country-field-flag{align-items:center;margin-bottom:auto;margin-top:auto;position:absolute;left:13px;height:35px;bottom:0}.sky-country-field-input textarea{overflow:hidden;resize:none;white-space:nowrap}.sky-country-field-input-with-flag .sky-country-field-flag{display:flex}.sky-country-field-input-with-flag .sky-form-control{padding-left:40px}.sky-country-field-country-selected,.sky-country-field-country-default{border-bottom:1px solid #e2e3e4}:host(.ng-invalid.ng-touched) .sky-country-field-input textarea{box-shadow:0 0 8px #ef404499;border:1px solid var(--sky-highlight-color-danger);outline:none}::ng-deep .sky-theme-modern .sky-country-field-disabled .sky-country-field-flag{filter:grayscale(100%)}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input{background-color:transparent;border-radius:6px}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input textarea.sky-form-control{overflow:hidden;resize:none;white-space:nowrap}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input-with-flag .sky-country-field-flag{height:40px;left:15px;opacity:1}::ng-deep .sky-theme-modern .sky-input-box .sky-form-group .sky-country-field-input-with-flag .sky-form-control{padding-left:45px}.iti__flag{max-width:25px;max-height:13px;background-image:url(https://sky.blackbaudcdn.net/static/skyux-public-assets/1.0.0-beta.2/assets/images/intl-tel-input/flags.webp)!important}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.iti__flag .iti__flag{background-image:url(https://sky.blackbaudcdn.net/static/skyux-public-assets/1.0.0-beta.2/assets/images/intl-tel-input/flags@2x.webp)!important}}\n"] }]
399
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.SkyAppWindowRef }, { type: i0.Injector }, { type: i2.SkyInputBoxHostService, decorators: [{
367
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i1.SkyInputBoxHostService, decorators: [{
400
368
  type: Optional
401
- }] }, { type: i3.SkyThemeService, decorators: [{
369
+ }] }, { type: i2.SkyThemeService, decorators: [{
402
370
  type: Optional
403
371
  }] }]; }, propDecorators: { autocompleteAttribute: [{
404
372
  type: Input
@@ -430,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
430
398
  static: true,
431
399
  }]
432
400
  }] } });
433
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9jb3VudHJ5LWZpZWxkL2NvdW50cnktZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvY291bnRyeS1maWVsZC9jb3VudHJ5LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFFWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1Asa0JBQWtCLEdBR25CLE1BQU0sZ0JBQWdCLENBQUM7QUFLeEIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFLN0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7O0FBRWhGLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0FBRWxDLE1BQU0sMkJBQTJCLEdBQUc7SUFDbEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztJQUN2RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFTakIsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQzs7Ozs7T0FLRztJQUNILElBQ1csY0FBYyxDQUFDLEtBQXlCO1FBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixLQUFLLEdBQUcsb0JBQW9CLENBQUM7U0FDOUI7UUFFRCxJQUFJLEtBQUssS0FBSyx1QkFBQSxJQUFJLGlEQUFpQixFQUFFO1lBQ25DLHVCQUFBLElBQUksNkNBQW9CLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBQSxDQUFDO1lBRTVDLHVCQUFBLElBQUksZ0RBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM1QyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyx1QkFBQSxJQUFJLGlEQUFpQixDQUNwRCxNQUFBLENBQUM7WUFFRix1QkFBQSxJQUFJLDBHQUFxQyxNQUF6QyxJQUFJLEVBQXNDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyx1QkFBQSxJQUFJLGlEQUFpQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDVyxRQUFRLENBQUMsVUFBK0I7UUFDakQsdUJBQUEsSUFBSSwyRkFBc0IsTUFBMUIsSUFBSSxDQUF3QixDQUFDO1FBRTdCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZix1QkFBQSxJQUFJLHdGQUFtQixNQUF2QixJQUFJLENBQXFCLENBQUM7U0FDM0I7UUFFRCx1QkFBQSxJQUFJLHVDQUFjLFVBQVUsSUFBSSxLQUFLLE1BQUEsQ0FBQztRQUV0QyxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN6QzthQUFNO1lBQ0wsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hDO1FBRUQsdUJBQUEsSUFBSSxnREFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sdUJBQUEsSUFBSSwyQ0FBVyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLHVCQUF1QixDQUFDLEtBQTBCO1FBQzNELHVCQUFBLElBQUksc0RBQTZCLEtBQUssSUFBSSxLQUFLLE1BQUEsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyx1QkFBQSxJQUFJLDBEQUEwQixDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDVyxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUNwRCx1QkFBQSxJQUFJLCtDQUFzQixLQUFLLElBQUksS0FBSyxNQUFBLENBQUM7UUFFekMsdUJBQUEsSUFBSSxxRkFBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLHVCQUFBLElBQUksbURBQW1CLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csb0JBQW9CLENBQUMsS0FBMkI7UUFDekQsdUNBQXVDO1FBQ3ZDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDM0M7UUFFRCx1QkFBQSxJQUFJLG1EQUEwQixLQUFLLE1BQUEsQ0FBQztRQUNwQyx1QkFBQSxJQUFJLHFGQUFnQixNQUFwQixJQUFJLENBQWtCLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sdUJBQUEsSUFBSSx1REFBdUIsSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQXNCRCxJQUFXLGVBQWUsQ0FBQyxVQUE4QztRQUN2RSxJQUFJLENBQUMsdUJBQUEsSUFBSSx3RkFBbUIsTUFBdkIsSUFBSSxFQUFvQixJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQzlELE1BQU0sYUFBYSxHQUFHLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3BELElBQUksYUFBYSxFQUFFO2dCQUNqQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDcEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUM1QyxDQUFDO2dCQUVGLElBQUksVUFBVSxFQUFFO29CQUNkLFVBQVUsR0FBRyxVQUFVLENBQUM7aUJBQ3pCO2FBQ0Y7WUFFRCx1QkFBQSxJQUFJLDhDQUFxQixVQUFVLE1BQUEsQ0FBQztZQUVwQyx1QkFBQSxJQUFJLDBHQUFxQyxNQUF6QyxJQUFJLEVBQXNDLFVBQVUsQ0FBQyxDQUFDO1lBRXRELHVCQUFBLElBQUksZ0RBQXVCLElBQUksTUFBQSxDQUFDO1lBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRTdELElBQUksQ0FBQyx1QkFBQSxJQUFJLGlEQUFpQixFQUFFO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBRWpCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDN0M7WUFFRCxtQ0FBbUM7WUFDbkMsa0RBQWtEO1lBQ2xELElBQUksdUJBQUEsSUFBSSxpREFBaUIsSUFBSSx1QkFBQSxJQUFJLDJDQUFXLElBQUksdUJBQUEsSUFBSSwyQ0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFDdkUsdUJBQUEsSUFBSSwyQ0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUMxQztZQUVELHVCQUFBLElBQUksNkNBQW9CLEtBQUssTUFBQSxDQUFDO1lBRTlCOzs7OztlQUtHO1NBQ0o7YUFBTSxJQUNMLHVCQUFBLElBQUksaURBQWlCO1lBQ3JCLENBQUMsQ0FBQyxDQUFDLHVCQUFBLElBQUksMkNBQVcsWUFBWSxPQUFPLENBQUMsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLEVBQzlEO1lBQ0EsdUJBQUEsSUFBSSw2Q0FBb0IsS0FBSyxNQUFBLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sdUJBQUEsSUFBSSxrREFBa0IsQ0FBQztJQUNoQyxDQUFDO0lBMkRELFlBQ0UsY0FBaUMsRUFDakMsS0FBaUIsRUFDakIsU0FBMEIsRUFDMUIsUUFBa0IsRUFDQyxlQUF3QyxFQUMvQyxRQUEwQjtRQURuQixvQkFBZSxHQUFmLGVBQWUsQ0FBeUI7O1FBdkk3RDs7V0FFRztRQUVJLDBCQUFxQixHQUMxQixJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUV0QyxjQUFTLEdBQTZCLEVBQUUsQ0FBQztRQUl6QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixnQ0FBMkIsR0FBRyxDQUFDLENBQUM7UUE0RGhDLFlBQU8sR0FBa0MsTUFBTSxDQUNwRCx5QkFBeUIsRUFDekI7WUFDRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQ0YsQ0FBQztRQUVLLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBZ0JoQywyREFBbUM7UUFFbkMsK0RBQXdEO1FBRXhELGtEQUFtQjtRQUVuQix5Q0FBUSxJQUFJLE9BQU8sRUFBUSxFQUFDO1FBRTVCLHFEQUFvQjtRQUVwQix1REFBc0IsS0FBSyxFQUFDO1FBRTVCLG9EQUFtQixJQUFJLEVBQUM7UUFFeEIsOENBQStCLElBQUksRUFBQztRQUVwQyxrREFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQyxxREFBdUM7UUFFdkMsc0RBQTRCO1FBRTVCLDREQUFxQztRQUVyQyw4Q0FBYSxLQUFLLEVBQUM7UUFFbkIsNkRBQTRCLEtBQUssRUFBQztRQUVsQyxzREFBcUIsS0FBSyxFQUFDO1FBRTNCLDZEQUFzRDtRQUV0RCxrRUFBNkM7UUE4RzdDLGtEQUFrRDtRQUNsRCxnRUFBZ0U7UUFDekQsYUFBUSxHQUFHLENBQUMsS0FBeUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRXBFLGdFQUFnRTtRQUN6RCxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBekcxQix1QkFBQSxJQUFJLDRDQUFtQixjQUFjLE1BQUEsQ0FBQztRQUN0Qyx1QkFBQSxJQUFJLG1DQUFVLEtBQUssTUFBQSxDQUFDO1FBQ3BCLHVCQUFBLElBQUksdUNBQWMsU0FBUyxNQUFBLENBQUM7UUFDNUIsdUJBQUEsSUFBSSxzQ0FBYSxRQUFRLE1BQUEsQ0FBQztRQUMxQix1QkFBQSxJQUFJLHNDQUFhLFFBQVEsTUFBQSxDQUFDO1FBRTFCLElBQUksQ0FBQyxPQUFPLEdBQUcsMkJBQTJCLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFFdkQsdUJBQUEsSUFBSSxxRkFBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDO1FBRXZCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDYix1QkFBQSxJQUFJLHFGQUFnQixNQUFwQixJQUFJLENBQWtCLENBQUM7UUFFdkIsdUJBQUEsSUFBSSx1Q0FBYyx1QkFBQSxJQUFJLDBDQUFVLENBQUMsR0FBRyxDQUNsQyxTQUF1QyxFQUN2QyxJQUFJLENBQ0wsTUFBQSxDQUFDO1FBRUYsSUFBSSx1QkFBQSxJQUFJLDJDQUFXLEVBQUU7WUFDbkIsdUJBQUEsSUFBSSwyQ0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDdEM7YUFBTTtZQUNMOzs7ZUFHRztZQUNILHVCQUFBLElBQUksNkNBQW9CLEtBQUssTUFBQSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZO2FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSwrQ0FBZSxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxRQUFRLElBQUksQ0FBQyx1QkFBQSxJQUFJLG9EQUFvQixFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQzthQUNqQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsdUJBQUEsSUFBSSx3RkFBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVNLGVBQWU7UUFDcEIsMEJBQTBCO1FBQzFCLElBQUksdUJBQUEsSUFBSSwwQ0FBVSxFQUFFO1lBQ2xCLHVCQUFBLElBQUksMENBQVUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUN0RCx1QkFBQSxJQUFJLHFGQUFnQixNQUFwQixJQUFJLENBQWtCLENBQUM7Z0JBQ3ZCLHVCQUFBLElBQUksZ0RBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0Qyx1QkFBQSxJQUFJLDJGQUFzQixNQUExQixJQUFJLENBQXdCLENBQUM7UUFDN0IsdUJBQUEsSUFBSSwrQ0FBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLHVCQUFBLElBQUksK0NBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQkFBaUIsQ0FBQyxVQUEwQztRQUNqRSxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDakIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ25FLENBQ0YsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQVNNLGdCQUFnQixDQUNyQixFQUF1RDtRQUV2RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBYztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsdUNBQXVDO0lBQ2hDLGdCQUFnQixDQUFDLFFBQWlCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRLENBQUMsT0FBd0I7UUFDdEMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQ0UsQ0FBQyxJQUFJLENBQUMsb0JBQW9CO2dCQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDdEU7Z0JBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3JDO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBeUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsdUJBQUEsSUFBSSxnREFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7SUFHQyx1QkFBQSxJQUFJLDJGQUFzQixNQUExQixJQUFJLENBQXdCLENBQUM7SUFFN0IsdUJBQUEsSUFBSSxrQ0FBUyxJQUFJLE9BQU8sRUFBRSxNQUFBLENBQUM7SUFFM0IsTUFBTSxXQUFXLEdBQUcsdUJBQUEsSUFBSSwyQ0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFFMUQsU0FBUyxDQUFhLFdBQVcsRUFBRSxXQUFXLENBQUM7U0FDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLHNDQUFNLENBQUMsQ0FBQztTQUMzQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLHVCQUFBLElBQUksdUNBQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSx1QkFBQSxJQUFJLGdEQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUwsU0FBUyxDQUFnQixXQUFXLEVBQUUsU0FBUyxDQUFDO1NBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSxzQ0FBTSxDQUFDLENBQUM7U0FDM0IsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbkIsSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBQSxJQUFJLHVDQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsdUJBQUEsSUFBSSxnREFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMscUdBR0MsUUFBNEMsRUFDNUMsUUFBNEM7SUFFNUMsSUFBSSxRQUFRLElBQUksUUFBUSxFQUFFO1FBQ3hCLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDO0tBQ3hDO0lBRUQsdUZBQXVGO0lBQ3ZGLDJGQUEyRjtJQUMzRiwyQ0FBMkM7SUFDM0MsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNoQyxDQUFDLCtGQUdDLENBQXlCLEVBQ3pCLENBQXlCO0lBRXpCLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoRCxDQUFDO0lBR0MsdUJBQUEsSUFBSSxzQ0FBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLHVCQUFBLElBQUksc0NBQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN4QixDQUFDO0lBR0M7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSztJQUN6Qiw4REFBOEQ7SUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBRSxNQUFjLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FDckUsQ0FBQztJQUVGLHNFQUFzRTtJQUN0RSx1QkFBdUI7SUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtRQUMzRCxJQUVJLHVCQUFBLElBQUksdUNBQU8sQ0FBQyxhQUFhLENBQUMsYUFDM0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLGdDQUFnQyxDQUFDLEVBQ3hEO1lBQ0EsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0tBQ0Y7SUFFRCwwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtRQUMxQjs7O1dBR0c7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUN4QixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDekIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCx1QkFBQSxJQUFJLDBHQUFxQyxNQUF6QyxJQUFJLEVBQXNDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVoRSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNyRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUNwQyxDQUFDLE9BQStCLEVBQUUsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQ0YsQ0FBQztLQUNIO0FBQ0gsQ0FBQyx5SUFHQyxlQUFtRDtJQUVuRCxJQUFJLG9CQUE0QixDQUFDO0lBQ2pDLElBQUksbUJBQTJDLENBQUM7SUFFaEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0RCxJQUNFLENBQUMsQ0FBQyx1QkFBQSxJQUFJLG9EQUFvQjtZQUN4Qix1QkFBQSxJQUFJLHFGQUFnQixNQUFwQixJQUFJLEVBQWlCLENBQUMsRUFBRSx1QkFBQSxJQUFJLG9EQUFvQixDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLHVCQUFBLElBQUksb0RBQW9CO2dCQUN4QixDQUFDLHVCQUFBLElBQUkscUZBQWdCLE1BQXBCLElBQUksRUFBaUIsdUJBQUEsSUFBSSxvREFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNyRDtZQUNBLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDWDthQUFNO1lBQ0wsT0FBTyxDQUFDLENBQUM7U0FDVjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxlQUFlLEVBQUU7UUFDbkIsMkZBQTJGO1FBQzNGLG1GQUFtRjtRQUNuRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDdEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUN2RSxDQUFDO1FBRUYsSUFBSSxZQUFZLEVBQUU7WUFDaEIsbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1lBQ25DLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFbkUsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3REO1NBQ0Y7S0FDRjtJQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUM7QUFDdEMsQ0FBQztJQUdDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztRQUU5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUM1QixhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUNwQyxrQkFBa0IsRUFDaEIsSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRO2dCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtnQkFDNUIsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO3FIQS9oQlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IscVdBSHhCLENBQUMsMkJBQTJCLENBQUMsOEZBa0k3Qiw2QkFBNkIsa0lBc0VoQyxXQUFXLHVJQU1YLFdBQVcsMkNDeFFyQixvL0VBNkVBOzJGRGhCYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBR2xCLENBQUMsMkJBQTJCLENBQUMsbUJBQ3ZCLHVCQUF1QixDQUFDLE1BQU07OzBCQXlQNUMsUUFBUTs7MEJBQ1IsUUFBUTs0Q0FqUEoscUJBQXFCO3NCQUQzQixLQUFLO2dCQVVLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBMkJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBNEJLLHVCQUF1QjtzQkFEakMsS0FBSztnQkFlSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBZ0JLLG9CQUFvQjtzQkFEOUIsS0FBSztnQkFtQkMscUJBQXFCO3NCQUQzQixNQUFNO2dCQWFBLGtDQUFrQztzQkFEeEMsU0FBUzt1QkFBQyw2QkFBNkI7Z0JBeUVqQyxnQkFBZ0I7c0JBSnRCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUU7d0JBQzdCLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxxQkFBcUI7c0JBSjNCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUU7d0JBQ2xDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOZ0NvbnRyb2wsXG4gIE5nTW9kZWwsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCAnaW50bC10ZWwtaW5wdXQnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VsZWN0aW9uQ2hhbmdlIH0gZnJvbSAnLi4vYXV0b2NvbXBsZXRlL3R5cGVzL2F1dG9jb21wbGV0ZS1zZWxlY3Rpb24tY2hhbmdlJztcblxuaW1wb3J0IHsgU2t5Q291bnRyeUZpZWxkQ291bnRyeSB9IGZyb20gJy4vdHlwZXMvY291bnRyeSc7XG5pbXBvcnQgeyBTa3lDb3VudHJ5RmllbGRDb250ZXh0IH0gZnJvbSAnLi90eXBlcy9jb3VudHJ5LWZpZWxkLWNvbnRleHQnO1xuaW1wb3J0IHsgU0tZX0NPVU5UUllfRklFTERfQ09OVEVYVCB9IGZyb20gJy4vdHlwZXMvY291bnRyeS1maWVsZC1jb250ZXh0LXRva2VuJztcblxuY29uc3QgREVGQVVMVF9DT1VOVFJZX0NPREUgPSAndXMnO1xuXG5jb25zdCBTS1lfQ09VTlRSWV9GSUVMRF9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreUNvdW50cnlGaWVsZENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNvdW50cnktZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291bnRyeS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvdW50cnktZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU0tZX0NPVU5UUllfRklFTERfVkFMSURBVE9SXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvdW50cnlGaWVsZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBIVE1MIGBhdXRvY29tcGxldGVgIGF0dHJpYnV0ZSBvbiB0aGUgZm9ybSBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvY29tcGxldGVBdHRyaWJ1dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIFtJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uIEFscGhhIDJdKGh0dHBzOi8vd3d3Lm5hdGlvbnNvbmxpbmUub3JnL29uZXdvcmxkL2NvdW50cnlfY29kZV9saXN0Lmh0bSlcbiAgICogY291bnRyeSBjb2RlIGZvciB0aGUgZGVmYXVsdCBjb3VudHJ5LlxuICAgKiBXaGVuIHNlYXJjaCByZXN1bHRzIGluY2x1ZGUgdGhlIGRlZmF1bHQgY291bnRyeSwgaXQgYXBwZWFycyBhdCB0aGUgdG9wIG9mIHRoZSBsaXN0LlxuICAgKiBAZGVmYXVsdCBcInVzXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGVmYXVsdENvdW50cnkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHZhbHVlID0gREVGQVVMVF9DT1VOVFJZX0NPREU7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHRoaXMuI19kZWZhdWx0Q291bnRyeSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IHRoaXMuI19kZWZhdWx0Q291bnRyeVxuICAgICAgKTtcblxuICAgICAgdGhpcy4jc29ydENvdW50cmllc1dpdGhTZWxlY3RlZEFuZERlZmF1bHQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdENvdW50cnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2RlZmF1bHRDb3VudHJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgY291bnRyeSBmaWVsZCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKGlzRGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNyZW1vdmVFdmVudExpc3RlbmVycygpO1xuXG4gICAgaWYgKCFpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLiNhZGRFdmVudExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHRoaXMuI19kaXNhYmxlZCA9IGlzRGlzYWJsZWQgPz8gZmFsc2U7XG5cbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdW50cnlTZWFyY2hGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIGZsYWcgaW4gdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhpZGVTZWxlY3RlZENvdW50cnlGbGFnKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2hpZGVTZWxlY3RlZENvdW50cnlGbGFnID0gdmFsdWUgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhpZGVTZWxlY3RlZENvdW50cnlGbGFnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaGlkZVNlbGVjdGVkQ291bnRyeUZsYWc7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHBob25lIGluZm9ybWF0aW9uIGluIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGFuZCBjb3VudHJ5IGRyb3Bkb3duLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5jbHVkZVBob25lSW5mbyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pbmNsdWRlUGhvbmVJbmZvID0gdmFsdWUgPz8gZmFsc2U7XG5cbiAgICB0aGlzLiNzZXR1cENvdW50cmllcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbmNsdWRlUGhvbmVJbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaW5jbHVkZVBob25lSW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGVzIGZvciB0aGUgY291bnRyaWVzIHRoYXQgdXNlcnMgY2FuIHNlbGVjdC4gQnkgZGVmYXVsdCwgYWxsIGNvdW50cmllcyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdXBwb3J0ZWRDb3VudHJ5SVNPcyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICAvLyBFbnN1cmUgYWxsIHZhbHVlcyBhcmUgdGhlIHNhbWUgY2FzZS5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUubWFwKCh2KSA9PiB2LnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIHRoaXMuI19zdXBwb3J0ZWRDb3VudHJ5SVNPcyA9IHZhbHVlO1xuICAgIHRoaXMuI3NldHVwQ291bnRyaWVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN1cHBvcnRlZENvdW50cnlJU09zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3N1cHBvcnRlZENvdW50cnlJU09zIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIGNvdW50cnkgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U2t5Q291bnRyeUZpZWxkQ291bnRyeT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8U2t5Q291bnRyeUZpZWxkQ291bnRyeT4oKTtcblxuICBwdWJsaWMgY291bnRyaWVzOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5W10gPSBbXTtcblxuICBwdWJsaWMgY291bnRyeVNlYXJjaEZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIGlzSW5wdXRGb2N1c2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVycyA9IDI7XG5cbiAgQFZpZXdDaGlsZChTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSlcbiAgcHVibGljIGNvdW50cnlTZWFyY2hBdXRvY29tcGxldGVEaXJlY3RpdmU6XG4gICAgfCBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZVxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRDb3VudHJ5KG5ld0NvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXRoaXMuI2NvdW50cmllc0FyZUVxdWFsKHRoaXMuc2VsZWN0ZWRDb3VudHJ5LCBuZXdDb3VudHJ5KSkge1xuICAgICAgY29uc3QgbmV3Q291bnRyeUlzbyA9IG5ld0NvdW50cnkgJiYgbmV3Q291bnRyeS5pc28yO1xuICAgICAgaWYgKG5ld0NvdW50cnlJc28pIHtcbiAgICAgICAgY29uc3QgaXNvQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gbmV3Q291bnRyeUlzb1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChpc29Db3VudHJ5KSB7XG4gICAgICAgICAgbmV3Q291bnRyeSA9IGlzb0NvdW50cnk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeSA9IG5ld0NvdW50cnk7XG5cbiAgICAgIHRoaXMuI3NvcnRDb3VudHJpZXNXaXRoU2VsZWN0ZWRBbmREZWZhdWx0KG5ld0NvdW50cnkpO1xuXG4gICAgICB0aGlzLiNpbnRlcm5hbEZvcm1DaGFuZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZENvdW50cnkpO1xuXG4gICAgICBpZiAoIXRoaXMuI2lzSW5pdGlhbENoYW5nZSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld0NvdW50cnkpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlLmVtaXQobmV3Q291bnRyeSk7XG4gICAgICB9XG5cbiAgICAgIC8vIERvIG5vdCBtYXJrIHRoZSBmaWVsZCBhcyBcImRpcnR5XCJcbiAgICAgIC8vIGlmIHRoZSBmaWVsZCBoYXMgYmVlbiBpbml0aWFsaXplZCB3aXRoIGEgdmFsdWUuXG4gICAgICBpZiAodGhpcy4jaXNJbml0aWFsQ2hhbmdlICYmIHRoaXMuI25nQ29udHJvbCAmJiB0aGlzLiNuZ0NvbnRyb2wuY29udHJvbCkge1xuICAgICAgICB0aGlzLiNuZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgPSBmYWxzZTtcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgc2Vjb25kIHBvcnRpb24gb2YgdGhpcyBpZiBzdGF0ZW1lbnQgaXMgY29tcGxleC4gVGhlIGNvbnRyb2wgdHlwZSBjaGVjayBlbnN1cmVzIHRoYXRcbiAgICAgICAqIHdlIG9ubHkgd2F0Y2ggZm9yIHRoZSBpbml0aWFsIHRpbWUgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uIG9uIHJlYWN0aXZlIGZvcm1zLiBIb3dldmVyLFxuICAgICAgICogdGVtcGxhdGUgZm9ybXMgd2lsbCBzZW5kIHRocm91Z2ggYG51bGxgIGFuZCB0aGVuIGB1bmRlZmluZWRgIG9uIGVtcHR5IGluaXRpYWxpemF0aW9uXG4gICAgICAgKiBzbyB3ZSBoYXZlIHRvIGNoZWNrIGZvciB3aGVuIHRoZSBub24tbnVsbCBwYXNzIHRocm91Z2ggaGFwcGVucy5cbiAgICAgICAqL1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgJiZcbiAgICAgICghKHRoaXMuI25nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwpIHx8IG5ld0NvdW50cnkgIT09IG51bGwpXG4gICAgKSB7XG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkQ291bnRyeSgpOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkQ291bnRyeTtcbiAgfVxuXG4gIHB1YmxpYyBjb250ZXh0OiBTa3lDb3VudHJ5RmllbGRDb250ZXh0IHwgbnVsbCA9IGluamVjdChcbiAgICBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICAgIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH1cbiAgKTtcblxuICBwdWJsaWMgY3VycmVudFRoZW1lID0gJ2RlZmF1bHQnO1xuXG4gIHB1YmxpYyBpbnB1dElkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBpbnB1dFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJY29uVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgc2VhcmNoSWNvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gICNkZWZhdWx0Q291bnRyeURhdGE6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuXG4gICNpZGxlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICNpbnRlcm5hbEZvcm1DaGFuZ2UgPSBmYWxzZTtcblxuICAjaXNJbml0aWFsQ2hhbmdlID0gdHJ1ZTtcblxuICAjbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3RoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UgfCB1bmRlZmluZWQ7XG5cbiAgI3dpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmO1xuXG4gICNfZGVmYXVsdENvdW50cnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgI19oaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZyA9IGZhbHNlO1xuXG4gICNfaW5jbHVkZVBob25lSW5mbyA9IGZhbHNlO1xuXG4gICNfc2VsZWN0ZWRDb3VudHJ5OiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNfc3VwcG9ydGVkQ291bnRyeUlTT3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGlucHV0Qm94SG9zdFN2Yz86IFNreUlucHV0Qm94SG9zdFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcbiAgICB0aGlzLiNpbmplY3RvciA9IGluamVjdG9yO1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG5cbiAgICB0aGlzLmlucHV0SWQgPSBgc2t5LWNvdW50cnktZmllbGQtaW5wdXQtJHt1bmlxdWVJZCsrfWA7XG5cbiAgICB0aGlzLiNzZXR1cENvdW50cmllcygpO1xuXG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIH1cblxuICAvKipcbiAgICogQW5ndWxhciBsaWZlY3ljbGUgaG9vayBmb3Igd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZUlucHV0Qm94KCk7XG5cbiAgICB0aGlzLiNuZ0NvbnRyb2wgPSB0aGlzLiNpbmplY3Rvci5nZXQ8TmdDb250cm9sIHwgbnVsbD4oXG4gICAgICBOZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBUeXBlPE5nQ29udHJvbD4sXG4gICAgICBudWxsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLiNuZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMuI25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgaW5pdGlhbCBjaGFuZ2UgYm9vbGVhbiBpcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZvcm0gaXMgc2V0dGluZyB0aGUgdmFsdWUuIFdoZW4gbm8gZm9ybVxuICAgICAgICogaXMgcHJlc2VudCB3ZSBkb24ndCB3YW50IHRvIGlnbm9yZSB0aGUgZmlyc3QgY2hhbmdlLlxuICAgICAgICovXG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSBERUZBVUxUX0NPVU5UUllfQ09ERTtcbiAgICB9XG5cbiAgICB0aGlzLmNvdW50cnlTZWFyY2hGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiAhdGhpcy4jaW50ZXJuYWxGb3JtQ2hhbmdlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI2FkZEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiN0aGVtZVN2Yykge1xuICAgICAgdGhpcy4jdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2Uuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50VGhlbWUgPSBjaGFuZ2UuY3VycmVudFNldHRpbmdzLnRoZW1lLm5hbWU7XG4gICAgICAgIHRoaXMuI3VwZGF0ZUlucHV0Qm94KCk7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2sgZm9yIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cnVjdGVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3JlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIHRvdWNoZWQgdmFsdWUgd2hlbiB0aGUgYXV0b2NvbXBsZXRlIGlzIGJsdXJyZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb25BdXRvY29tcGxldGVCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0IGJhc2VkIG9uIHRoZSBjb3VudHkncyBpc28yIGNvZGUuXG4gICAqIEBwYXJhbSBuZXdDb3VudHJ5IFRoZSBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uJ3MgdHdvLWxldHRlciBjb2RlXG4gICAqIGZvciB0aGUgZGVmYXVsdCBjb3VudHJ5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBvbkNvdW50cnlTZWxlY3RlZChuZXdDb3VudHJ5OiBTa3lBdXRvY29tcGxldGVTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICBpZiAobmV3Q291bnRyeS5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShcbiAgICAgICAgdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgICAoY291bnRyeUluZm8pID0+IGNvdW50cnlJbmZvLmlzbzIgPT09IG5ld0NvdW50cnkuc2VsZWN0ZWRJdGVtLmlzbzJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW5ndWxhciBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdHMgdGhlc2UgbWV0aG9kcy5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25DaGFuZ2UgPSAodmFsdWU6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKFxuICAgIGZuOiAodmFsdWU6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpID0+IHZvaWRcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEFsbG93cyBBbmd1bGFyIHRvIGRpc2FibGUgdGhlIGlucHV0LlxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MgJiZcbiAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmluZGV4T2YoY29udHJvbC52YWx1ZS5pc28yKSA8IDApIHx8XG4gICAgICAgICF0aGlzLmNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IGNvbnRyb2wudmFsdWUuaXNvMilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4geyB1bnN1cHBvcnRlZENvdW50cnk6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNhZGRFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLiNyZW1vdmVFdmVudExpc3RlbmVycygpO1xuXG4gICAgdGhpcy4jaWRsZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdCBkb2N1bWVudE9iaiA9IHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3cuZG9jdW1lbnQ7XG5cbiAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnRPYmosICdtb3VzZWRvd24nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI2lkbGUpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXNlZCA9IHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudE9iaiwgJ2ZvY3VzaW4nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI2lkbGUpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXNlZCA9IHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gICNjb3VudHJpZXNBcmVFcXVhbChcbiAgICBjb3VudHJ5MTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCxcbiAgICBjb3VudHJ5MjogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoY291bnRyeTEgJiYgY291bnRyeTIpIHtcbiAgICAgIHJldHVybiBjb3VudHJ5MS5pc28yID09PSBjb3VudHJ5Mi5pc28yO1xuICAgIH1cblxuICAgIC8vIE5PVEU6IFdlIGFyZSBkb2luZyB0aGlzIGluICB0aGlzIHdheSBiZWNhdXNlIHRlbXBsYXRlIGZvcm1zIHdpbGwgc2VuZCB0aHJvdWdoIGBudWxsYFxuICAgIC8vIGFuZCB0aGVuIGB1bmRlZmluZWRgIG9uIGVtcHR5IGluaXRpYWxpemF0aW9uLiBUaGVzZSBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgYnV0IHdpbGxcbiAgICAvLyBub3QgcGFzcyBhIHN0YW5kYXJkIHRyaXBsZSBlcXVhbHMgY2hlY2suXG4gICAgcmV0dXJuICFjb3VudHJ5MSAmJiAhY291bnRyeTI7XG4gIH1cblxuICAjY291bnRyaWVzRXF1YWwoXG4gICAgYTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSxcbiAgICBiOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhLmlzbzIgPT09IGIuaXNvMiAmJiBhLm5hbWUgPT09IGIubmFtZTtcbiAgfVxuXG4gICNyZW1vdmVFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLiNpZGxlLm5leHQoKTtcbiAgICB0aGlzLiNpZGxlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjc2V0dXBDb3VudHJpZXMoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogVGhlIGpzb24gZnVuY3Rpb25zIGhlcmUgZW5zdXJlcyB0aGF0IHdlIGdldCBhIGNvcHkgb2YgdGhlIGFycmF5IGFuZCBub3QgdGhlIGdsb2JhbCBvcmlnaW5hbC5cbiAgICAgKiBUaGlzIGVuc3VyZXMgdGhhdCBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIGNvbXBvbmVudCBkb24ndCBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIGRhdGEuXG4gICAgICpcbiAgICAgKiBXZSBtdXN0IHR5cGUgdGhlIHdpbmRvdyBvYmplY3QgYXMgYW55IGhlcmUgYXMgdGhlIGludGwtdGVsLWlucHV0IGxpYnJhcnkgYWRkcyBpdHMgb2JqZWN0XG4gICAgICogdG8gdGhlIG1haW4gd2luZG93IG9iamVjdC5cbiAgICAgKi9cbiAgICB0aGlzLmNvdW50cmllcyA9IEpTT04ucGFyc2UoXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgSlNPTi5zdHJpbmdpZnkoKHdpbmRvdyBhcyBhbnkpLmludGxUZWxJbnB1dEdsb2JhbHMuZ2V0Q291bnRyeURhdGEoKSlcbiAgICApO1xuXG4gICAgLy8gSWdub3JpbmcgY292ZXJhZ2UgaGVyZSBhcyB0aGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCByZWxlYXNlLlxuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgaWYgKCF0aGlzLmluY2x1ZGVQaG9uZUluZm8gJiYgIXRoaXMuaGlkZVNlbGVjdGVkQ291bnRyeUZsYWcpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKFxuICAgICAgICAgIHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudFxuICAgICAgICApPy5jbGFzc0xpc3Q/LmNvbnRhaW5zKCdza3ktcGhvbmUtZmllbGQtY291bnRyeS1zZWFyY2gnKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaW5jbHVkZVBob25lSW5mbyA9IHRydWU7XG4gICAgICAgIHRoaXMuaGlkZVNlbGVjdGVkQ291bnRyeUZsYWcgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLmluY2x1ZGVQaG9uZUluZm8pIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIGxpYnJhcnkgd2UgZ2V0IHRoZSBjb3VudHJ5IGRhdGEgZnJvbSBpbmNsdWRlcyBleHRyYSBwaG9uZSBwcm9wZXJ0aWVzLlxuICAgICAgICogV2Ugd2FudCB0byByZW1vdmUgdGhlc2UgdW5sZXNzIHdlIGFyZSBpbiBhIHBob25lIGZpZWxkXG4gICAgICAgKi9cbiAgICAgIHRoaXMuY291bnRyaWVzLmZvckVhY2goKGNvdW50cnkpID0+IHtcbiAgICAgICAgZGVsZXRlIGNvdW50cnkuZGlhbENvZGU7XG4gICAgICAgIGRlbGV0ZSBjb3VudHJ5LmFyZWFDb2RlcztcbiAgICAgICAgZGVsZXRlIGNvdW50cnkucHJpb3JpdHk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLiNzb3J0Q291bnRyaWVzV2l0aFNlbGVjdGVkQW5kRGVmYXVsdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XG5cbiAgICBpZiAodGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcyAmJiB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5jb3VudHJpZXMuZmlsdGVyKFxuICAgICAgICAoY291bnRyeTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmluZGV4T2YoY291bnRyeS5pc28yKSA+PSAwO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNzb3J0Q291bnRyaWVzV2l0aFNlbGVjdGVkQW5kRGVmYXVsdChcbiAgICBzZWxlY3RlZENvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdGVkQ291bnRyeUluZGV4OiBudW1iZXI7XG4gICAgbGV0IHNlbGVjdGVkQ291bnRyeURhdGE6IFNreUNvdW50cnlGaWVsZENvdW50cnk7XG5cbiAgICBjb25zdCBzb3J0ZWROZXdDb3VudHJpZXMgPSB0aGlzLmNvdW50cmllcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgICgodGhpcy4jZGVmYXVsdENvdW50cnlEYXRhICYmXG4gICAgICAgICAgdGhpcy4jY291bnRyaWVzRXF1YWwoYSwgdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhKSkgfHxcbiAgICAgICAgICAoYS5uYW1lICYmIGIubmFtZSAmJiBhLm5hbWUgPCBiLm5hbWUpKSAmJlxuICAgICAgICAoIXRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSB8fFxuICAgICAgICAgICF0aGlzLiNjb3VudHJpZXNFcXVhbCh0aGlzLiNkZWZhdWx0Q291bnRyeURhdGEsIGIpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgLy8gTm90ZTogV2UgYXJlIGxvb2tpbmcgdXAgdGhpcyBkYXRhIGhlcmUgdG8gZW5zdXJlIHdlIGFyZSB1c2luZyB0aGUgb2ZmaWNpYWwgZGF0YSBmcm9tIHRoZVxuICAgICAgLy8gbGlicmFyeSBhbmQgbm90IHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIG9uIGluaXRpYWxpemF0aW9uIG9mIHRoZSBjb21wb25lbnRcbiAgICAgIGNvbnN0IGZvdW5kQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IHNlbGVjdGVkQ291bnRyeS5pc28yLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICAgICk7XG5cbiAgICAgIGlmIChmb3VuZENvdW50cnkpIHtcbiAgICAgICAgc2VsZWN0ZWRDb3VudHJ5RGF0YSA9IGZvdW5kQ291bnRyeTtcbiAgICAgICAgc2VsZWN0ZWRDb3VudHJ5SW5kZXggPSB0aGlzLmNvdW50cmllcy5pbmRleE9mKHNlbGVjdGVkQ291bnRyeURhdGEpO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZENvdW50cnlJbmRleCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5jb3VudHJpZXMuc3BsaWNlKHNlbGVjdGVkQ291bnRyeUluZGV4LCAxKTtcbiAgICAgICAgICBzb3J0ZWROZXdDb3VudHJpZXMuc3BsaWNlKDAsIDAsIHNlbGVjdGVkQ291bnRyeURhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudHJpZXMgPSBzb3J0ZWROZXdDb3VudHJpZXM7XG4gIH1cblxuICAjdXBkYXRlSW5wdXRCb3goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRCb3hIb3N0U3ZjICYmIHRoaXMuaW5wdXRUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5pbnB1dElkID0gdGhpcy5pbnB1dEJveEhvc3RTdmMuY29udHJvbElkO1xuXG4gICAgICB0aGlzLmlucHV0Qm94SG9zdFN2Yy5wb3B1bGF0ZSh7XG4gICAgICAgIGlucHV0VGVtcGxhdGU6IHRoaXMuaW5wdXRUZW1wbGF0ZVJlZixcbiAgICAgICAgaWNvbnNJbnNldFRlbXBsYXRlOlxuICAgICAgICAgIHRoaXMuY3VycmVudFRoZW1lID09PSAnbW9kZXJuJ1xuICAgICAgICAgICAgPyB0aGlzLnNlYXJjaEljb25UZW1wbGF0ZVJlZlxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRCb3hIb3N0U3ZjXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlUmVmPlxuICA8c3BhblxuICAgIGNsYXNzPVwic2t5LWNvdW50cnktZmllbGQtY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNvdW50cnktZmllbGQtZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICA+XG4gICAgPHNreS1hdXRvY29tcGxldGVcbiAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpbnB1dElkXCJcbiAgICAgIFtkYXRhXT1cImNvdW50cmllc1wiXG4gICAgICBbcHJvcGVydGllc1RvU2VhcmNoXT1cIlsnbmFtZScsICdpc28yJ11cIlxuICAgICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cImNvdW50cnlTZWFyY2hSZXN1bHRUZW1wbGF0ZVwiXG4gICAgICBbc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXT1cInNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVyc1wiXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ291bnRyeVNlbGVjdGVkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktY291bnRyeS1maWVsZC1pbnB1dFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWNvdW50cnktZmllbGQtaW5wdXQtd2l0aC1mbGFnJzpcbiAgICAgICAgICAgIHNlbGVjdGVkQ291bnRyeSAmJiBzZWxlY3RlZENvdW50cnkuaXNvMiAmJiAhaGlkZVNlbGVjdGVkQ291bnRyeUZsYWdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgc2VsZWN0ZWRDb3VudHJ5ICYmIHNlbGVjdGVkQ291bnRyeS5pc28yICYmICFoaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY291bnRyeS1maWVsZC1mbGFnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaXRpX19mbGFnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidpdGlfXycgKyBzZWxlY3RlZENvdW50cnkuaXNvMi50b0xvd2VyQ2FzZSgpXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cInNreS1mb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIG5hbWU9XCJzZWxlY3RlZENvdW50cnlcIlxuICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgICBza3lBdXRvY29tcGxldGVcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgJ3NreXV4X2NvdW50cnlfZmllbGRfc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgW2F1dG9jb21wbGV0ZUF0dHJpYnV0ZV09XCJhdXRvY29tcGxldGVBdHRyaWJ1dGVcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2xcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgIGNvbnRleHQ/LnNob3dQbGFjZWhvbGRlclRleHQgfHwgY3VycmVudFRoZW1lID09PSAnZGVmYXVsdCdcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X2NvdW50cnlfZmllbGRfc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgKGJsdXIpPVwib25BdXRvY29tcGxldGVCbHVyKClcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2t5LWF1dG9jb21wbGV0ZT5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiICNjb3VudHJ5U2VhcmNoUmVzdWx0VGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1jb3VudHJ5LWZpZWxkLXNlYXJjaC1yZXN1bHQtZmxhZ1wiXG4gICAgW25nQ2xhc3NdPVwiJ2l0aV9fZmxhZyBpdGlfXycgKyBpdGVtLmlzbzIudG9Mb3dlckNhc2UoKVwiXG4gID48L2Rpdj5cbiAge3sgaXRlbS5uYW1lIH19XG4gIDxzcGFuICpuZ0lmPVwiaW5jbHVkZVBob25lSW5mb1wiIGNsYXNzPVwic2t5LWRlZW1waGFzaXplZFwiPlxuICAgIHt7IGl0ZW0uZGlhbENvZGUgfX1cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gbW9kZXJuIHRoZW1lIGlucHV0IGJveGVzLiAtLT5cbjxuZy10ZW1wbGF0ZSAjc2VhcmNoSWNvblRlbXBsYXRlUmVmPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWljb24gc2t5LWlucHV0LWJveC1pY29uLWluc2V0XCI+XG4gICAgPHNreS1pY29uIGljb25UeXBlPVwic2t5dXhcIiBpY29uPVwic2VhcmNoXCI+PC9za3ktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3NyYy9saWIvbW9kdWxlcy9jb3VudHJ5LWZpZWxkL2NvdW50cnktZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvY291bnRyeS1maWVsZC9jb3VudHJ5LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFFWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1Asa0JBQWtCLEdBR25CLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUs3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQUVoRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUVsQyxNQUFNLDJCQUEyQixHQUFHO0lBQ2xDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDdkQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsSUFB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LEtBQUs7Z0JBZUssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQWdCSyxvQkFBb0I7c0JBRDlCLEtBQUs7Z0JBbUJDLHFCQUFxQjtzQkFEM0IsTUFBTTtnQkFXQSxrQ0FBa0M7c0JBRHhDLFNBQVM7dUJBQUMsNkJBQTZCO2dCQXlFakMsZ0JBQWdCO3NCQUp0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT00scUJBQXFCO3NCQUozQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFO3dCQUNsQyxJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTmdDb250cm9sLFxuICBOZ01vZGVsLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgJ2ludGwtdGVsLWlucHV0JztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLWlucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWxlY3Rpb25DaGFuZ2UgfSBmcm9tICcuLi9hdXRvY29tcGxldGUvdHlwZXMvYXV0b2NvbXBsZXRlLXNlbGVjdGlvbi1jaGFuZ2UnO1xuXG5pbXBvcnQgeyBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IH0gZnJvbSAnLi90eXBlcy9jb3VudHJ5JztcbmltcG9ydCB7IFNreUNvdW50cnlGaWVsZENvbnRleHQgfSBmcm9tICcuL3R5cGVzL2NvdW50cnktZmllbGQtY29udGV4dCc7XG5pbXBvcnQgeyBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhUIH0gZnJvbSAnLi90eXBlcy9jb3VudHJ5LWZpZWxkLWNvbnRleHQtdG9rZW4nO1xuXG5jb25zdCBERUZBVUxUX0NPVU5UUllfQ09ERSA9ICd1cyc7XG5cbmNvbnN0IFNLWV9DT1VOVFJZX0ZJRUxEX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5Q291bnRyeUZpZWxkQ29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY291bnRyeS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3VudHJ5LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY291bnRyeS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTS1lfQ09VTlRSWV9GSUVMRF9WQUxJREFUT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q291bnRyeUZpZWxkQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgT25Jbml0LCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBmb3IgdGhlIEhUTUwgYGF1dG9jb21wbGV0ZWAgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGlucHV0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9jb21wbGV0ZUF0dHJpYnV0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGUgZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuXG4gICAqIFdoZW4gc2VhcmNoIHJlc3VsdHMgaW5jbHVkZSB0aGUgZGVmYXVsdCBjb3VudHJ5LCBpdCBhcHBlYXJzIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3QuXG4gICAqIEBkZWZhdWx0IFwidXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0Q291bnRyeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdmFsdWUgPSBERUZBVUxUX0NPVU5UUllfQ09ERTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19kZWZhdWx0Q291bnRyeSkge1xuICAgICAgdGhpcy4jX2RlZmF1bHRDb3VudHJ5ID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gdGhpcy4jX2RlZmF1bHRDb3VudHJ5XG4gICAgICApO1xuXG4gICAgICB0aGlzLiNzb3J0Q291bnRyaWVzV2l0aFNlbGVjdGVkQW5kRGVmYXVsdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0Q291bnRyeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfZGVmYXVsdENvdW50cnk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBjb3VudHJ5IGZpZWxkIG9uIHRlbXBsYXRlLWRyaXZlbiBmb3Jtcy4gRG9uJ3QgdXNlIHRoaXMgaW5wdXQgb24gcmVhY3RpdmUgZm9ybXMgYmVjYXVzZSB0aGV5IG1heSBvdmVyd3JpdGUgdGhlIGlucHV0IG9yIGxlYXZlIHRoZSBjb250cm9sIG91dCBvZiBzeW5jLlxuICAgKiBUbyBzZXQgdGhlIGRpc2FibGVkIHN0YXRlIG9uIHJlYWN0aXZlIGZvcm1zLCB1c2UgdGhlIGBGb3JtQ29udHJvbGAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoaXNEaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IGlzRGlzYWJsZWQgPz8gZmFsc2U7XG5cbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdW50cnlTZWFyY2hGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIGZsYWcgaW4gdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhpZGVTZWxlY3RlZENvdW50cnlGbGFnKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2hpZGVTZWxlY3RlZENvdW50cnlGbGFnID0gdmFsdWUgPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhpZGVTZWxlY3RlZENvdW50cnlGbGFnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaGlkZVNlbGVjdGVkQ291bnRyeUZsYWc7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHBob25lIGluZm9ybWF0aW9uIGluIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGFuZCBjb3VudHJ5IGRyb3Bkb3duLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5jbHVkZVBob25lSW5mbyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19pbmNsdWRlUGhvbmVJbmZvID0gdmFsdWUgPz8gZmFsc2U7XG5cbiAgICB0aGlzLiNzZXR1cENvdW50cmllcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbmNsdWRlUGhvbmVJbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaW5jbHVkZVBob25lSW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGVzIGZvciB0aGUgY291bnRyaWVzIHRoYXQgdXNlcnMgY2FuIHNlbGVjdC4gQnkgZGVmYXVsdCwgYWxsIGNvdW50cmllcyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdXBwb3J0ZWRDb3VudHJ5SVNPcyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICAvLyBFbnN1cmUgYWxsIHZhbHVlcyBhcmUgdGhlIHNhbWUgY2FzZS5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUubWFwKCh2KSA9PiB2LnRvTG93ZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIHRoaXMuI19zdXBwb3J0ZWRDb3VudHJ5SVNPcyA9IHZhbHVlO1xuICAgIHRoaXMuI3NldHVwQ291bnRyaWVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN1cHBvcnRlZENvdW50cnlJU09zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3N1cHBvcnRlZENvdW50cnlJU09zIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIGNvdW50cnkgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U2t5Q291bnRyeUZpZWxkQ291bnRyeT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8U2t5Q291bnRyeUZpZWxkQ291bnRyeT4oKTtcblxuICBwdWJsaWMgY291bnRyaWVzOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5W10gPSBbXTtcblxuICBwdWJsaWMgY291bnRyeVNlYXJjaEZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIHNlYXJjaFRleHRNaW5pbXVtQ2hhcmFjdGVycyA9IDI7XG5cbiAgQFZpZXdDaGlsZChTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSlcbiAgcHVibGljIGNvdW50cnlTZWFyY2hBdXRvY29tcGxldGVEaXJlY3RpdmU6XG4gICAgfCBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZVxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRDb3VudHJ5KG5ld0NvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXRoaXMuI2NvdW50cmllc0FyZUVxdWFsKHRoaXMuc2VsZWN0ZWRDb3VudHJ5LCBuZXdDb3VudHJ5KSkge1xuICAgICAgY29uc3QgbmV3Q291bnRyeUlzbyA9IG5ld0NvdW50cnkgJiYgbmV3Q291bnRyeS5pc28yO1xuICAgICAgaWYgKG5ld0NvdW50cnlJc28pIHtcbiAgICAgICAgY29uc3QgaXNvQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gbmV3Q291bnRyeUlzb1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChpc29Db3VudHJ5KSB7XG4gICAgICAgICAgbmV3Q291bnRyeSA9IGlzb0NvdW50cnk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeSA9IG5ld0NvdW50cnk7XG5cbiAgICAgIHRoaXMuI3NvcnRDb3VudHJpZXNXaXRoU2VsZWN0ZWRBbmREZWZhdWx0KG5ld0NvdW50cnkpO1xuXG4gICAgICB0aGlzLiNpbnRlcm5hbEZvcm1DaGFuZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3RlZENvdW50cnkpO1xuXG4gICAgICBpZiAoIXRoaXMuI2lzSW5pdGlhbENoYW5nZSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKG5ld0NvdW50cnkpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlLmVtaXQobmV3Q291bnRyeSk7XG4gICAgICB9XG5cbiAgICAgIC8vIERvIG5vdCBtYXJrIHRoZSBmaWVsZCBhcyBcImRpcnR5XCJcbiAgICAgIC8vIGlmIHRoZSBmaWVsZCBoYXMgYmVlbiBpbml0aWFsaXplZCB3aXRoIGEgdmFsdWUuXG4gICAgICBpZiAodGhpcy4jaXNJbml0aWFsQ2hhbmdlICYmIHRoaXMuI25nQ29udHJvbCAmJiB0aGlzLiNuZ0NvbnRyb2wuY29udHJvbCkge1xuICAgICAgICB0aGlzLiNuZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgPSBmYWxzZTtcblxuICAgICAgLyoqXG4gICAgICAgKiBUaGUgc2Vjb25kIHBvcnRpb24gb2YgdGhpcyBpZiBzdGF0ZW1lbnQgaXMgY29tcGxleC4gVGhlIGNvbnRyb2wgdHlwZSBjaGVjayBlbnN1cmVzIHRoYXRcbiAgICAgICAqIHdlIG9ubHkgd2F0Y2ggZm9yIHRoZSBpbml0aWFsIHRpbWUgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uIG9uIHJlYWN0aXZlIGZvcm1zLiBIb3dldmVyLFxuICAgICAgICogdGVtcGxhdGUgZm9ybXMgd2lsbCBzZW5kIHRocm91Z2ggYG51bGxgIGFuZCB0aGVuIGB1bmRlZmluZWRgIG9uIGVtcHR5IGluaXRpYWxpemF0aW9uXG4gICAgICAgKiBzbyB3ZSBoYXZlIHRvIGNoZWNrIGZvciB3aGVuIHRoZSBub24tbnVsbCBwYXNzIHRocm91Z2ggaGFwcGVucy5cbiAgICAgICAqL1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgJiZcbiAgICAgICghKHRoaXMuI25nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwpIHx8IG5ld0NvdW50cnkgIT09IG51bGwpXG4gICAgKSB7XG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkQ291bnRyeSgpOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkQ291bnRyeTtcbiAgfVxuXG4gIHB1YmxpYyBjb250ZXh0OiBTa3lDb3VudHJ5RmllbGRDb250ZXh0IHwgbnVsbCA9IGluamVjdChcbiAgICBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICAgIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH1cbiAgKTtcblxuICBwdWJsaWMgY3VycmVudFRoZW1lID0gJ2RlZmF1bHQnO1xuXG4gIHB1YmxpYyBpbnB1dElkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBpbnB1dFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJY29uVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgc2VhcmNoSWNvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuXG4gICNkZWZhdWx0Q291bnRyeURhdGE6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuXG4gICNpbmplY3RvcjogSW5qZWN0b3I7XG5cbiAgI2ludGVybmFsRm9ybUNoYW5nZSA9IGZhbHNlO1xuXG4gICNpc0luaXRpYWxDaGFuZ2UgPSB0cnVlO1xuXG4gICNuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICAjX2RlZmF1bHRDb3VudHJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICNfaGlkZVNlbGVjdGVkQ291bnRyeUZsYWcgPSBmYWxzZTtcblxuICAjX2luY2x1ZGVQaG9uZUluZm8gPSBmYWxzZTtcblxuICAjX3NlbGVjdGVkQ291bnRyeTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZDtcblxuICAjX3N1cHBvcnRlZENvdW50cnlJU09zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBpbnB1dEJveEhvc3RTdmM/OiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZWxSZWYgPSBlbFJlZjtcbiAgICB0aGlzLiNpbmplY3RvciA9IGluamVjdG9yO1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG5cbiAgICB0aGlzLmlucHV0SWQgPSBgc2t5LWNvdW50cnktZmllbGQtaW5wdXQtJHt1bmlxdWVJZCsrfWA7XG5cbiAgICB0aGlzLiNzZXR1cENvdW50cmllcygpO1xuXG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIH1cblxuICAvKipcbiAgICogQW5ndWxhciBsaWZlY3ljbGUgaG9vayBmb3Igd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZUlucHV0Qm94KCk7XG5cbiAgICB0aGlzLiNuZ0NvbnRyb2wgPSB0aGlzLiNpbmplY3Rvci5nZXQ8TmdDb250cm9sIHwgbnVsbD4oXG4gICAgICBOZ0NvbnRyb2wgYXMgdW5rbm93biBhcyBUeXBlPE5nQ29udHJvbD4sXG4gICAgICBudWxsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLiNuZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMuI25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgaW5pdGlhbCBjaGFuZ2UgYm9vbGVhbiBpcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZvcm0gaXMgc2V0dGluZyB0aGUgdmFsdWUuIFdoZW4gbm8gZm9ybVxuICAgICAgICogaXMgcHJlc2VudCB3ZSBkb24ndCB3YW50IHRvIGlnbm9yZSB0aGUgZmlyc3QgY2hhbmdlLlxuICAgICAgICovXG4gICAgICB0aGlzLiNpc0luaXRpYWxDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSBERUZBVUxUX0NPVU5UUllfQ09ERTtcbiAgICB9XG5cbiAgICB0aGlzLmNvdW50cnlTZWFyY2hGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAmJiAhdGhpcy4jaW50ZXJuYWxGb3JtQ2hhbmdlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI3RoZW1lU3ZjKSB7XG4gICAgICB0aGlzLiN0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRUaGVtZSA9IGNoYW5nZS5jdXJyZW50U2V0dGluZ3MudGhlbWUubmFtZTtcbiAgICAgICAgdGhpcy4jdXBkYXRlSW5wdXRCb3goKTtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5ndWxhciBsaWZlY3ljbGUgaG9vayBmb3Igd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3RydWN0ZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIHRvdWNoZWQgdmFsdWUgd2hlbiB0aGUgYXV0b2NvbXBsZXRlIGlzIGJsdXJyZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb25BdXRvY29tcGxldGVCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0IGJhc2VkIG9uIHRoZSBjb3VudHkncyBpc28yIGNvZGUuXG4gICAqIEBwYXJhbSBuZXdDb3VudHJ5IFRoZSBJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uJ3MgdHdvLWxldHRlciBjb2RlXG4gICAqIGZvciB0aGUgZGVmYXVsdCBjb3VudHJ5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBvbkNvdW50cnlTZWxlY3RlZChuZXdDb3VudHJ5OiBTa3lBdXRvY29tcGxldGVTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICBpZiAobmV3Q291bnRyeS5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShcbiAgICAgICAgdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgICAoY291bnRyeUluZm8pID0+IGNvdW50cnlJbmZvLmlzbzIgPT09IG5ld0NvdW50cnkuc2VsZWN0ZWRJdGVtLmlzbzJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW5ndWxhciBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdHMgdGhlc2UgbWV0aG9kcy5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25DaGFuZ2UgPSAodmFsdWU6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKFxuICAgIGZuOiAodmFsdWU6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpID0+IHZvaWRcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEFsbG93cyBBbmd1bGFyIHRvIGRpc2FibGUgdGhlIGlucHV0LlxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MgJiZcbiAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICB0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zLmluZGV4T2YoY29udHJvbC52YWx1ZS5pc28yKSA8IDApIHx8XG4gICAgICAgICF0aGlzLmNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IGNvbnRyb2wudmFsdWUuaXNvMilcbiAgICAgICkge1xuICAgICAgICByZXR1cm4geyB1bnN1cHBvcnRlZENvdW50cnk6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNjb3VudHJpZXNBcmVFcXVhbChcbiAgICBjb3VudHJ5MTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCxcbiAgICBjb3VudHJ5MjogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoY291bnRyeTEgJiYgY291bnRyeTIpIHtcbiAgICAgIHJldHVybiBjb3VudHJ5MS5pc28yID09PSBjb3VudHJ5Mi5pc28yO1xuICAgIH1cblxuICAgIC8vIE5PVEU6IFdlIGFyZSBkb2luZyB0aGlzIGluICB0aGlzIHdheSBiZWNhdXNlIHRlbXBsYXRlIGZvcm1zIHdpbGwgc2VuZCB0aHJvdWdoIGBudWxsYFxuICAgIC8vIGFuZCB0aGVuIGB1bmRlZmluZWRgIG9uIGVtcHR5IGluaXRpYWxpemF0aW9uLiBUaGVzZSBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgYnV0IHdpbGxcbiAgICAvLyBub3QgcGFzcyBhIHN0YW5kYXJkIHRyaXBsZSBlcXVhbHMgY2hlY2suXG4gICAgcmV0dXJuICFjb3VudHJ5MSAmJiAhY291bnRyeTI7XG4gIH1cblxuICAjY291bnRyaWVzRXF1YWwoXG4gICAgYTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSxcbiAgICBiOiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5XG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhLmlzbzIgPT09IGIuaXNvMiAmJiBhLm5hbWUgPT09IGIubmFtZTtcbiAgfVxuXG4gICNzZXR1cENvdW50cmllcygpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBUaGUganNvbiBmdW5jdGlvbnMgaGVyZSBlbnN1cmVzIHRoYXQgd2UgZ2V0IGEgY29weSBvZiB0aGUgYXJyYXkgYW5kIG5vdCB0aGUgZ2xvYmFsIG9yaWdpbmFsLlxuICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGUgY29tcG9uZW50IGRvbid0IG92ZXJ3cml0ZSB0aGUgb3JpZ2luYWwgZGF0YS5cbiAgICAgKlxuICAgICAqIFdlIG11c3QgdHlwZSB0aGUgd2luZG93IG9iamVjdCBhcyBhbnkgaGVyZSBhcyB0aGUgaW50bC10ZWwtaW5wdXQgbGlicmFyeSBhZGRzIGl0cyBvYmplY3RcbiAgICAgKiB0byB0aGUgbWFpbiB3aW5kb3cgb2JqZWN0LlxuICAgICAqL1xuICAgIHRoaXMuY291bnRyaWVzID0gSlNPTi5wYXJzZShcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBKU09OLnN0cmluZ2lmeSgod2luZG93IGFzIGFueSkuaW50bFRlbElucHV0R2xvYmFscy5nZXRDb3VudHJ5RGF0YSgpKVxuICAgICk7XG5cbiAgICAvLyBJZ25vcmluZyBjb3ZlcmFnZSBoZXJlIGFzIHRoaXMgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IHJlbGVhc2UuXG4gICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICBpZiAoIXRoaXMuaW5jbHVkZVBob25lSW5mbyAmJiAhdGhpcy5oaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZykge1xuICAgICAgaWYgKFxuICAgICAgICAoXG4gICAgICAgICAgdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICk/LmNsYXNzTGlzdD8uY29udGFpbnMoJ3NreS1waG9uZS1maWVsZC1jb3VudHJ5LXNlYXJjaCcpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlUGhvbmVJbmZvID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuaW5jbHVkZVBob25lSW5mbykge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbGlicmFyeSB3ZSBnZXQgdGhlIGNvdW50cnkgZGF0YSBmcm9tIGluY2x1ZGVzIGV4dHJhIHBob25lIHByb3BlcnRpZXMuXG4gICAgICAgKiBXZSB3YW50IHRvIHJlbW92ZSB0aGVzZSB1bmxlc3Mgd2UgYXJlIGluIGEgcGhvbmUgZmllbGRcbiAgICAgICAqL1xuICAgICAgdGhpcy5jb3VudHJpZXMuZm9yRWFjaCgoY291bnRyeSkgPT4ge1xuICAgICAgICBkZWxldGUgY291bnRyeS5kaWFsQ29kZTtcbiAgICAgICAgZGVsZXRlIGNvdW50cnkuYXJlYUNvZGVzO1xuICAgICAgICBkZWxldGUgY291bnRyeS5wcmlvcml0eTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuI3NvcnRDb3VudHJpZXNXaXRoU2VsZWN0ZWRBbmREZWZhdWx0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcblxuICAgIGlmICh0aGlzLnN1cHBvcnRlZENvdW50cnlJU09zICYmIHRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSB0aGlzLmNvdW50cmllcy5maWx0ZXIoXG4gICAgICAgIChjb3VudHJ5OiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MuaW5kZXhPZihjb3VudHJ5LmlzbzIpID49IDA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3NvcnRDb3VudHJpZXNXaXRoU2VsZWN0ZWRBbmREZWZhdWx0KFxuICAgIHNlbGVjdGVkQ291bnRyeTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZFxuICApOiB2b2lkIHtcbiAgICBsZXQgc2VsZWN0ZWRDb3VudHJ5SW5kZXg6IG51bWJlcjtcbiAgICBsZXQgc2VsZWN0ZWRDb3VudHJ5RGF0YTogU2t5Q291bnRyeUZpZWxkQ291bnRyeTtcblxuICAgIGNvbnN0IHNvcnRlZE5ld0NvdW50cmllcyA9IHRoaXMuY291bnRyaWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgKCh0aGlzLiNkZWZhdWx0Q291bnRyeURhdGEgJiZcbiAgICAgICAgICB0aGlzLiNjb3VudHJpZXNFcXVhbChhLCB0aGlzLiNkZWZhdWx0Q291bnRyeURhdGEpKSB8fFxuICAgICAgICAgIChhLm5hbWUgJiYgYi5uYW1lICYmIGEubmFtZSA8IGIubmFtZSkpICYmXG4gICAgICAgICghdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhIHx8XG4gICAgICAgICAgIXRoaXMuI2NvdW50cmllc0VxdWFsKHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSwgYikpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoc2VsZWN0ZWRDb3VudHJ5KSB7XG4gICAgICAvLyBOb3RlOiBXZSBhcmUgbG9va2luZyB1cCB0aGlzIGRhdGEgaGVyZSB0byBlbnN1cmUgd2UgYXJlIHVzaW5nIHRoZSBvZmZpY2lhbCBkYXRhIGZyb20gdGhlXG4gICAgICAvLyBsaWJyYXJ5IGFuZCBub3QgdGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhlIHVzZXIgb24gaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudFxuICAgICAgY29uc3QgZm91bmRDb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gc2VsZWN0ZWRDb3VudHJ5LmlzbzIudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgKTtcblxuICAgICAgaWYgKGZvdW5kQ291bnRyeSkge1xuICAgICAgICBzZWxlY3RlZENvdW50cnlEYXRhID0gZm91bmRDb3VudHJ5O1xuICAgICAgICBzZWxlY3RlZENvdW50cnlJbmRleCA9IHRoaXMuY291bnRyaWVzLmluZGV4T2Yoc2VsZWN0ZWRDb3VudHJ5RGF0YSk7XG5cbiAgICAgICAgaWYgKHNlbGVjdGVkQ291bnRyeUluZGV4ID49IDApIHtcbiAgICAgICAgICB0aGlzLmNvdW50cmllcy5zcGxpY2Uoc2VsZWN0ZWRDb3VudHJ5SW5kZXgsIDEpO1xuICAgICAgICAgIHNvcnRlZE5ld0NvdW50cmllcy5zcGxpY2UoMCwgMCwgc2VsZWN0ZWRDb3VudHJ5RGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNvdW50cmllcyA9IHNvcnRlZE5ld0NvdW50cmllcztcbiAgfVxuXG4gICN1cGRhdGVJbnB1dEJveCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dEJveEhvc3RTdmMgJiYgdGhpcy5pbnB1dFRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLmlucHV0SWQgPSB0aGlzLmlucHV0Qm94SG9zdFN2Yy5jb250cm9sSWQ7XG5cbiAgICAgIHRoaXMuaW5wdXRCb3hIb3N0U3ZjLnBvcHVsYXRlKHtcbiAgICAgICAgaW5wdXRUZW1wbGF0ZTogdGhpcy5pbnB1dFRlbXBsYXRlUmVmLFxuICAgICAgICBpY29uc0luc2V0VGVtcGxhdGU6XG4gICAgICAgICAgdGhpcy5jdXJyZW50VGhlbWUgPT09ICdtb2Rlcm4nXG4gICAgICAgICAgICA/IHRoaXMuc2VhcmNoSWNvblRlbXBsYXRlUmVmXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dEJveEhvc3RTdmNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2lucHV0VGVtcGxhdGVSZWY+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJza3ktY291bnRyeS1maWVsZC1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY291bnRyeS1maWVsZC1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgfVwiXG4gID5cbiAgICA8c2t5LWF1dG9jb21wbGV0ZVxuICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImlucHV0SWRcIlxuICAgICAgW2RhdGFdPVwiY291bnRyaWVzXCJcbiAgICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwiWyduYW1lJywgJ2lzbzInXVwiXG4gICAgICBbc2VhcmNoUmVzdWx0VGVtcGxhdGVdPVwiY291bnRyeVNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwic2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25Db3VudHJ5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1jb3VudHJ5LWZpZWxkLWlucHV0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktY291bnRyeS1maWVsZC1pbnB1dC13aXRoLWZsYWcnOlxuICAgICAgICAgICAgc2VsZWN0ZWRDb3VudHJ5ICYmIHNlbGVjdGVkQ291bnRyeS5pc28yICYmICFoaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBzZWxlY3RlZENvdW50cnkgJiYgc2VsZWN0ZWRDb3VudHJ5LmlzbzIgJiYgIWhpZGVTZWxlY3RlZENvdW50cnlGbGFnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1jb3VudHJ5LWZpZWxkLWZsYWdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJpdGlfX2ZsYWdcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2l0aV9fJyArIHNlbGVjdGVkQ291bnRyeS5pc28yLnRvTG93ZXJDYXNlKClcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgbmFtZT1cInNlbGVjdGVkQ291bnRyeVwiXG4gICAgICAgICAgcm93cz1cIjFcIlxuICAgICAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAnc2t5dXhfY291bnRyeV9maWVsZF9zZWFyY2hfcGxhY2Vob2xkZXInIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgICBbYXV0b2NvbXBsZXRlQXR0cmlidXRlXT1cImF1dG9jb21wbGV0ZUF0dHJpYnV0ZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvdW50cnlTZWFyY2hGb3JtQ29udHJvbFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgY29udGV4dD8uc2hvd1BsYWNlaG9sZGVyVGV4dCB8fCBjdXJyZW50VGhlbWUgPT09ICdkZWZhdWx0J1xuICAgICAgICAgICAgICA/ICgnc2t5dXhfY291bnRyeV9maWVsZF9zZWFyY2hfcGxhY2Vob2xkZXInIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoYmx1cik9XCJvbkF1dG9jb21wbGV0ZUJsdXIoKVwiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG4gICAgPC9za3ktYXV0b2NvbXBsZXRlPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgI2NvdW50cnlTZWFyY2hSZXN1bHRUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWNvdW50cnktZmllbGQtc2VhcmNoLXJlc3VsdC1mbGFnXCJcbiAgICBbbmdDbGFzc109XCInaXRpX19mbGFnIGl0aV9fJyArIGl0ZW0uaXNvMi50b0xvd2VyQ2FzZSgpXCJcbiAgPjwvZGl2PlxuICB7eyBpdGVtLm5hbWUgfX1cbiAgPHNwYW4gKm5nSWY9XCJpbmNsdWRlUGhvbmVJbmZvXCIgY2xhc3M9XCJza3ktZGVlbXBoYXNpemVkXCI+XG4gICAge3sgaXRlbS5kaWFsQ29kZSB9fVxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIFRoaXMgdGVtcGxhdGUgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBtb2Rlcm4gdGhlbWUgaW5wdXQgYm94ZXMuIC0tPlxuPG5nLXRlbXBsYXRlICNzZWFyY2hJY29uVGVtcGxhdGVSZWY+XG4gIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtaWNvbiBza3ktaW5wdXQtYm94LWljb24taW5zZXRcIj5cbiAgICA8c2t5LWljb24gaWNvblR5cGU9XCJza3l1eFwiIGljb249XCJzZWFyY2hcIj48L3NreS1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=