@snabcentr/client-ui 4.14.20 → 4.14.21
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.
- package/contacts/sc-contacts.module.d.ts +5 -4
- package/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.d.ts +5 -1
- package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +6 -0
- package/contragents/sc-contragents.module.d.ts +4 -3
- package/directives/sc-null-on-empty-value-transformer.directive.d.ts +8 -0
- package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +2 -1
- package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +7 -6
- package/esm2022/contacts/sc-contacts.module.mjs +5 -2
- package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +8 -3
- package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +16 -5
- package/esm2022/contragents/sc-contragents.module.mjs +4 -1
- package/esm2022/directives/sc-null-on-empty-value-transformer.directive.mjs +30 -0
- package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +2 -1
- package/esm2022/masks/index.mjs +2 -1
- package/esm2022/masks/sc-ogrn-mask.mjs +13 -0
- package/esm2022/providers/null-on-empty-value-transformer/index.mjs +2 -0
- package/esm2022/providers/null-on-empty-value-transformer/sc-null-on-empty-value-transformer.mjs +31 -0
- package/fesm2022/snabcentr-client-ui.mjs +94 -7
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/masks/index.d.ts +1 -0
- package/masks/sc-ogrn-mask.d.ts +9 -0
- package/package.json +2 -2
- package/providers/null-on-empty-value-transformer/index.d.ts +1 -0
- package/providers/null-on-empty-value-transformer/sc-null-on-empty-value-transformer.d.ts +21 -0
- package/release_notes.tmp +1 -1
|
@@ -6,7 +6,7 @@ import { ScISuggestionType, ScLocationsService, ScOpfList, ScReferencesService }
|
|
|
6
6
|
import { tuiControlValue, tuiIsPresent } from '@taiga-ui/cdk';
|
|
7
7
|
import { distinctUntilChanged, filter, map, tap } from 'rxjs';
|
|
8
8
|
import { ScAddressQualityService } from '../../directives/address-quality/sc-address-quality.service';
|
|
9
|
-
import { scEntrepreneurInnMask, scEntrepreneurOkpoMask, scKppMask, scLegalInnMask, scLegalOkpoMask } from '../../masks';
|
|
9
|
+
import { scEntrepreneurInnMask, scEntrepreneurOgrnMask, scEntrepreneurOkpoMask, scKppMask, scLegalInnMask, scLegalOgrnMask, scLegalOkpoMask } from '../../masks';
|
|
10
10
|
import { scBicValidator, scCorrespondentAccountValidator } from '../../validators';
|
|
11
11
|
import { phoneValidator } from '../../validators/sc-phone-validator';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
@@ -19,7 +19,8 @@ import * as i6 from "@taiga-ui/core/components/data-list";
|
|
|
19
19
|
import * as i7 from "@taiga-ui/kit";
|
|
20
20
|
import * as i8 from "@maskito/angular";
|
|
21
21
|
import * as i9 from "../../directives/address-quality/sc-address-quality.directive";
|
|
22
|
-
import * as i10 from "../../
|
|
22
|
+
import * as i10 from "../../directives/sc-null-on-empty-value-transformer.directive";
|
|
23
|
+
import * as i11 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
|
|
23
24
|
/**
|
|
24
25
|
* Форма создания нового контрагента.
|
|
25
26
|
*/
|
|
@@ -46,6 +47,7 @@ export class ScNewContragentFormComponent {
|
|
|
46
47
|
*/
|
|
47
48
|
this.entrepreneurGroup = new FormGroup({
|
|
48
49
|
inn: new FormControl(null, Validators.required),
|
|
50
|
+
ogrn: new FormControl(null),
|
|
49
51
|
okpo: new FormControl(null, Validators.required),
|
|
50
52
|
directorName: new FormControl(null, Validators.required),
|
|
51
53
|
directorPosition: new FormControl(null, Validators.required),
|
|
@@ -102,9 +104,11 @@ export class ScNewContragentFormComponent {
|
|
|
102
104
|
this.selectOpf$ = tuiControlValue(this.form.controls.opf).pipe(distinctUntilChanged(), tap((opf) => {
|
|
103
105
|
const opfOrder = ScOpfList[opf];
|
|
104
106
|
const innLength = opfOrder > ScOpfList.entrepreneur ? 10 : 12;
|
|
107
|
+
const ogrnLength = opfOrder > ScOpfList.entrepreneur ? 13 : 15;
|
|
105
108
|
const okpoLength = opfOrder > ScOpfList.entrepreneur ? 8 : 10;
|
|
106
109
|
// Правила задаются до включения контролов: enable и setControl проверяют сразу.
|
|
107
110
|
this.entrepreneurGroup.controls.inn.setValidators([Validators.required, Validators.minLength(innLength), Validators.maxLength(innLength)]);
|
|
111
|
+
this.entrepreneurGroup.controls.ogrn.setValidators([Validators.minLength(ogrnLength), Validators.maxLength(ogrnLength)]);
|
|
108
112
|
this.entrepreneurGroup.controls.okpo.setValidators([Validators.required, Validators.minLength(okpoLength), Validators.maxLength(okpoLength)]);
|
|
109
113
|
[this.entrepreneurGroup.controls.legalAddress, this.entrepreneurGroup.controls.postalAddress, this.entrepreneurGroup.controls.actualAddress].forEach((addressControl) => {
|
|
110
114
|
this.addressQualityService.setQualityCheckEnabled(addressControl, opfOrder !== ScOpfList.non_resident_legal);
|
|
@@ -128,6 +132,7 @@ export class ScNewContragentFormComponent {
|
|
|
128
132
|
addControls(this.nonResidentLegalGroup);
|
|
129
133
|
this.legalGroup.controls.kpp.disable();
|
|
130
134
|
this.entrepreneurGroup.controls.inn.disable();
|
|
135
|
+
this.entrepreneurGroup.controls.ogrn.disable();
|
|
131
136
|
this.entrepreneurGroup.controls.okpo.disable();
|
|
132
137
|
}
|
|
133
138
|
}));
|
|
@@ -157,6 +162,12 @@ export class ScNewContragentFormComponent {
|
|
|
157
162
|
* @param opf Организационно-правовая форма.
|
|
158
163
|
*/
|
|
159
164
|
this.innMask = (opf) => (ScOpfList[opf] > ScOpfList.entrepreneur ? scLegalInnMask : scEntrepreneurInnMask);
|
|
165
|
+
/**
|
|
166
|
+
* Маска поля ввода ОГРН.
|
|
167
|
+
*
|
|
168
|
+
* @param opf Организационно-правовая форма.
|
|
169
|
+
*/
|
|
170
|
+
this.ogrnMask = (opf) => (ScOpfList[opf] > ScOpfList.entrepreneur ? scLegalOgrnMask : scEntrepreneurOgrnMask);
|
|
160
171
|
/**
|
|
161
172
|
* Маска поля ввода ОКПО.
|
|
162
173
|
*
|
|
@@ -219,12 +230,12 @@ export class ScNewContragentFormComponent {
|
|
|
219
230
|
return this.locationsService.getCountries$().pipe(map((countries) => countries.find((country) => country.id === countryId)?.name ?? ''));
|
|
220
231
|
}
|
|
221
232
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNewContragentFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScNewContragentFormComponent, selector: "sc-new-contragent-form", inputs: { opfControl: "opfControl" }, ngImport: i0, template: "<div\n [formGroup]=\"form\"\n *ngIf=\"selectOpf$ | async as selectOpf\"\n class=\"flex flex-col gap-3 pb-1\"\n>\n <p class=\"text-lg font-bold\">\u041E\u0431\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</p>\n <label tuiLabel>\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-select\n formControlName=\"opf\"\n [valueContent]=\"opfContent\"\n [readOnly]=\"!!opfControl\"\n >\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let item of getOpf$() | async; let index = index\"\n tuiOption\n [value]=\"item.slug\"\n >\n {{ item.name }}\n </button>\n </tui-data-list>\n </tui-select>\n <ng-template\n #opfContent\n let-data\n >\n <div>{{ (getOpfBySlug$(data) | async)?.name }}</div>\n </ng-template>\n <tui-error\n formControlName=\"opf\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n @let nameLabel = opfListEnum[selectOpf] === opfListEnum.individual ? '\u0424.\u0418.\u041E.' : '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n <label tuiLabel>\n {{ nameLabel }}\n <tui-input formControlName=\"name\">\n @if (opfListEnum[selectOpf] === opfListEnum.individual) {\n {{ nameLabel }}\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n } @else {\n \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n }\n }\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] > opfListEnum.individual) {\n <label tuiLabel>\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <tui-input formControlName=\"inn\">\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <input\n tuiTextfieldLegacy\n [maskito]=\"innMask(selectOpf)\"\n autocomplete=\"inn\"\n />\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n </tui-input>\n <tui-error\n formControlName=\"inn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <label tuiLabel>\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <tui-input formControlName=\"okpo\">\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <input\n tuiTextfieldLegacy\n [maskito]=\"okpoMask(selectOpf)\"\n autocomplete=\"okpo\"\n />\n </tui-input>\n <tui-error\n formControlName=\"okpo\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n <label tuiLabel>\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorName\">\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n </tui-input>\n <tui-error\n formControlName=\"directorName\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorPosition\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorPosition\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorActsOn\"> \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorActsOn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #legalAddressQuality=\"scAddressQuality\"\n formControlName=\"legalAddress\"\n >\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"legalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (legalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #postalAddressQuality=\"scAddressQuality\"\n formControlName=\"postalAddress\"\n >\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"postalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (postalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #actualAddressQuality=\"scAddressQuality\"\n formControlName=\"actualAddress\"\n >\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"actualAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (actualAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n <label tuiLabel>\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <tui-input formControlName=\"kpp\">\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <input\n tuiTextfieldLegacy\n [maskito]=\"kppMask\"\n autocomplete=\"kpp\"\n />\n </tui-input>\n <tui-error\n formControlName=\"kpp\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n }\n\n @if (opfListEnum[selectOpf] === opfListEnum.non_resident_legal) {\n @let countries = countries$ | async;\n @let countriesId = countriesId$ | async;\n\n <label\n *ngIf=\"countries\"\n tuiLabel\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-combo-box\n formControlName=\"registrationCountryId\"\n [stringify]=\"stringify(countries ?? [])\"\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify(countries ?? []) | tuiStringifyContent\"\n [items]=\"countriesId | tuiFilterByInput\"\n />\n </tui-combo-box>\n <ng-template\n #CountryContent\n let-data\n >\n <div>{{ (getCountryNameById$(data) | async) ?? '' }}</div>\n </ng-template>\n <tui-error\n formControlName=\"registrationCountryId\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <ng-template #selectLoading> <tui-loader /> </ng-template>\n <label tuiLabel>\n \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input formControlName=\"registrationNumber\"> \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n <tui-error\n formControlName=\"registrationNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input formControlName=\"taxNumber\"> \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n <tui-error\n formControlName=\"taxNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n</div>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i3.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i4.TuiSelectDirective, selector: "tui-select" }, { kind: "component", type: i5.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i3.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i6.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "component", type: i7.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "directive", type: i3.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i4.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i4.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i8.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i9.ScAddressQualityDirective, selector: "[scAddressQuality]", exportAs: ["scAddressQuality"] }, { kind: "component", type: i10.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type", "showAddressQuality"], outputs: ["selectedClick"] }, { kind: "component", type: i4.TuiComboBoxComponent, selector: "tui-combo-box", inputs: ["stringify", "strictMatcher", "identityMatcher", "valueContent", "strict", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i4.TuiComboBoxDirective, selector: "tui-combo-box" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "pipe", type: i7.TuiStringifyContentPipe, name: "tuiStringifyContent" }, { kind: "pipe", type: i7.TuiFilterByInputPipe, name: "tuiFilterByInput" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
233
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScNewContragentFormComponent, selector: "sc-new-contragent-form", inputs: { opfControl: "opfControl" }, ngImport: i0, template: "<div\n [formGroup]=\"form\"\n *ngIf=\"selectOpf$ | async as selectOpf\"\n class=\"flex flex-col gap-3 pb-1\"\n>\n <p class=\"text-lg font-bold\">\u041E\u0431\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</p>\n <label tuiLabel>\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-select\n formControlName=\"opf\"\n [valueContent]=\"opfContent\"\n [readOnly]=\"!!opfControl\"\n >\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let item of getOpf$() | async; let index = index\"\n tuiOption\n [value]=\"item.slug\"\n >\n {{ item.name }}\n </button>\n </tui-data-list>\n </tui-select>\n <ng-template\n #opfContent\n let-data\n >\n <div>{{ (getOpfBySlug$(data) | async)?.name }}</div>\n </ng-template>\n <tui-error\n formControlName=\"opf\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n @let nameLabel = opfListEnum[selectOpf] === opfListEnum.individual ? '\u0424.\u0418.\u041E.' : '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n <label tuiLabel>\n {{ nameLabel }}\n <tui-input formControlName=\"name\">\n @if (opfListEnum[selectOpf] === opfListEnum.individual) {\n {{ nameLabel }}\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n } @else {\n \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n }\n }\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] > opfListEnum.individual) {\n <label tuiLabel>\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <tui-input formControlName=\"inn\">\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <input\n tuiTextfieldLegacy\n [maskito]=\"innMask(selectOpf)\"\n autocomplete=\"inn\"\n />\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n </tui-input>\n <tui-error\n formControlName=\"inn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n @let ogrnLabel = opfListEnum[selectOpf] === opfListEnum.entrepreneur ? '\u041E\u0413\u0420\u041D\u0418\u041F' : '\u041E\u0413\u0420\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n <label tuiLabel>\n {{ ogrnLabel }}\n <tui-input\n formControlName=\"ogrn\"\n nullOnEmpty\n >\n {{ ogrnLabel }}\n <input\n tuiTextfieldLegacy\n [maskito]=\"ogrnMask(selectOpf)\"\n autocomplete=\"ogrn\"\n />\n </tui-input>\n <tui-error\n formControlName=\"ogrn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <tui-input formControlName=\"okpo\">\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <input\n tuiTextfieldLegacy\n [maskito]=\"okpoMask(selectOpf)\"\n autocomplete=\"okpo\"\n />\n </tui-input>\n <tui-error\n formControlName=\"okpo\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n <label tuiLabel>\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorName\">\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n </tui-input>\n <tui-error\n formControlName=\"directorName\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorPosition\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorPosition\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorActsOn\"> \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorActsOn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #legalAddressQuality=\"scAddressQuality\"\n formControlName=\"legalAddress\"\n >\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"legalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (legalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #postalAddressQuality=\"scAddressQuality\"\n formControlName=\"postalAddress\"\n >\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"postalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (postalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #actualAddressQuality=\"scAddressQuality\"\n formControlName=\"actualAddress\"\n >\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"actualAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (actualAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n <label tuiLabel>\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <tui-input formControlName=\"kpp\">\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <input\n tuiTextfieldLegacy\n [maskito]=\"kppMask\"\n autocomplete=\"kpp\"\n />\n </tui-input>\n <tui-error\n formControlName=\"kpp\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n }\n\n @if (opfListEnum[selectOpf] === opfListEnum.non_resident_legal) {\n @let countries = countries$ | async;\n @let countriesId = countriesId$ | async;\n\n <label\n *ngIf=\"countries\"\n tuiLabel\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-combo-box\n formControlName=\"registrationCountryId\"\n [stringify]=\"stringify(countries ?? [])\"\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify(countries ?? []) | tuiStringifyContent\"\n [items]=\"countriesId | tuiFilterByInput\"\n />\n </tui-combo-box>\n <ng-template\n #CountryContent\n let-data\n >\n <div>{{ (getCountryNameById$(data) | async) ?? '' }}</div>\n </ng-template>\n <tui-error\n formControlName=\"registrationCountryId\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <ng-template #selectLoading> <tui-loader /> </ng-template>\n <label tuiLabel>\n \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input formControlName=\"registrationNumber\"> \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n <tui-error\n formControlName=\"registrationNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input\n formControlName=\"taxNumber\"\n nullOnEmpty\n >\n \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n </tui-input>\n <tui-error\n formControlName=\"taxNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n</div>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i3.TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i4.TuiSelectDirective, selector: "tui-select" }, { kind: "component", type: i5.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "component", type: i3.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i6.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i3.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "component", type: i7.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "directive", type: i3.TuiLabel, selector: "label[tuiLabel]" }, { kind: "component", type: i4.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i4.TuiInputDirective, selector: "tui-input" }, { kind: "directive", type: i8.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i9.ScAddressQualityDirective, selector: "[scAddressQuality]", exportAs: ["scAddressQuality"] }, { kind: "directive", type: i10.NullOnEmptyTransformerDirective, selector: "tui-input[nullOnEmpty]" }, { kind: "component", type: i11.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type", "showAddressQuality"], outputs: ["selectedClick"] }, { kind: "component", type: i4.TuiComboBoxComponent, selector: "tui-combo-box", inputs: ["stringify", "strictMatcher", "identityMatcher", "valueContent", "strict", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i4.TuiComboBoxDirective, selector: "tui-combo-box" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "pipe", type: i7.TuiStringifyContentPipe, name: "tuiStringifyContent" }, { kind: "pipe", type: i7.TuiFilterByInputPipe, name: "tuiFilterByInput" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
223
234
|
}
|
|
224
235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNewContragentFormComponent, decorators: [{
|
|
225
236
|
type: Component,
|
|
226
|
-
args: [{ selector: 'sc-new-contragent-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [formGroup]=\"form\"\n *ngIf=\"selectOpf$ | async as selectOpf\"\n class=\"flex flex-col gap-3 pb-1\"\n>\n <p class=\"text-lg font-bold\">\u041E\u0431\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</p>\n <label tuiLabel>\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-select\n formControlName=\"opf\"\n [valueContent]=\"opfContent\"\n [readOnly]=\"!!opfControl\"\n >\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let item of getOpf$() | async; let index = index\"\n tuiOption\n [value]=\"item.slug\"\n >\n {{ item.name }}\n </button>\n </tui-data-list>\n </tui-select>\n <ng-template\n #opfContent\n let-data\n >\n <div>{{ (getOpfBySlug$(data) | async)?.name }}</div>\n </ng-template>\n <tui-error\n formControlName=\"opf\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n @let nameLabel = opfListEnum[selectOpf] === opfListEnum.individual ? '\u0424.\u0418.\u041E.' : '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n <label tuiLabel>\n {{ nameLabel }}\n <tui-input formControlName=\"name\">\n @if (opfListEnum[selectOpf] === opfListEnum.individual) {\n {{ nameLabel }}\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n } @else {\n \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n }\n }\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] > opfListEnum.individual) {\n <label tuiLabel>\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <tui-input formControlName=\"inn\">\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <input\n tuiTextfieldLegacy\n [maskito]=\"innMask(selectOpf)\"\n autocomplete=\"inn\"\n />\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n </tui-input>\n <tui-error\n formControlName=\"inn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <label tuiLabel>\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <tui-input formControlName=\"okpo\">\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <input\n tuiTextfieldLegacy\n [maskito]=\"okpoMask(selectOpf)\"\n autocomplete=\"okpo\"\n />\n </tui-input>\n <tui-error\n formControlName=\"okpo\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n <label tuiLabel>\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorName\">\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n </tui-input>\n <tui-error\n formControlName=\"directorName\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorPosition\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorPosition\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorActsOn\"> \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorActsOn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #legalAddressQuality=\"scAddressQuality\"\n formControlName=\"legalAddress\"\n >\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"legalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (legalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #postalAddressQuality=\"scAddressQuality\"\n formControlName=\"postalAddress\"\n >\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"postalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (postalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #actualAddressQuality=\"scAddressQuality\"\n formControlName=\"actualAddress\"\n >\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"actualAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (actualAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n <label tuiLabel>\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <tui-input formControlName=\"kpp\">\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <input\n tuiTextfieldLegacy\n [maskito]=\"kppMask\"\n autocomplete=\"kpp\"\n />\n </tui-input>\n <tui-error\n formControlName=\"kpp\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n }\n\n @if (opfListEnum[selectOpf] === opfListEnum.non_resident_legal) {\n @let countries = countries$ | async;\n @let countriesId = countriesId$ | async;\n\n <label\n *ngIf=\"countries\"\n tuiLabel\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-combo-box\n formControlName=\"registrationCountryId\"\n [stringify]=\"stringify(countries ?? [])\"\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify(countries ?? []) | tuiStringifyContent\"\n [items]=\"countriesId | tuiFilterByInput\"\n />\n </tui-combo-box>\n <ng-template\n #CountryContent\n let-data\n >\n <div>{{ (getCountryNameById$(data) | async) ?? '' }}</div>\n </ng-template>\n <tui-error\n formControlName=\"registrationCountryId\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <ng-template #selectLoading> <tui-loader /> </ng-template>\n <label tuiLabel>\n \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input formControlName=\"registrationNumber\"> \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n <tui-error\n formControlName=\"registrationNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input formControlName=\"taxNumber\"> \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n <tui-error\n formControlName=\"taxNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n</div>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"] }]
|
|
237
|
+
args: [{ selector: 'sc-new-contragent-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [formGroup]=\"form\"\n *ngIf=\"selectOpf$ | async as selectOpf\"\n class=\"flex flex-col gap-3 pb-1\"\n>\n <p class=\"text-lg font-bold\">\u041E\u0431\u0449\u0438\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</p>\n <label tuiLabel>\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-select\n formControlName=\"opf\"\n [valueContent]=\"opfContent\"\n [readOnly]=\"!!opfControl\"\n >\n \u0422\u0438\u043F \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430 (\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u043E\u043D\u043D\u043E-\u043F\u0440\u0430\u0432\u043E\u0432\u0430\u044F \u0444\u043E\u0440\u043C\u0430)\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let item of getOpf$() | async; let index = index\"\n tuiOption\n [value]=\"item.slug\"\n >\n {{ item.name }}\n </button>\n </tui-data-list>\n </tui-select>\n <ng-template\n #opfContent\n let-data\n >\n <div>{{ (getOpfBySlug$(data) | async)?.name }}</div>\n </ng-template>\n <tui-error\n formControlName=\"opf\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n @let nameLabel = opfListEnum[selectOpf] === opfListEnum.individual ? '\u0424.\u0418.\u041E.' : '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n <label tuiLabel>\n {{ nameLabel }}\n <tui-input formControlName=\"name\">\n @if (opfListEnum[selectOpf] === opfListEnum.individual) {\n {{ nameLabel }}\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n } @else {\n \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n }\n }\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] > opfListEnum.individual) {\n <label tuiLabel>\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <tui-input formControlName=\"inn\">\n \u0418\u041D\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F\n <input\n tuiTextfieldLegacy\n [maskito]=\"innMask(selectOpf)\"\n autocomplete=\"inn\"\n />\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n />\n </tui-input>\n <tui-error\n formControlName=\"inn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n @let ogrnLabel = opfListEnum[selectOpf] === opfListEnum.entrepreneur ? '\u041E\u0413\u0420\u041D\u0418\u041F' : '\u041E\u0413\u0420\u041D \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438';\n <label tuiLabel>\n {{ ogrnLabel }}\n <tui-input\n formControlName=\"ogrn\"\n nullOnEmpty\n >\n {{ ogrnLabel }}\n <input\n tuiTextfieldLegacy\n [maskito]=\"ogrnMask(selectOpf)\"\n autocomplete=\"ogrn\"\n />\n </tui-input>\n <tui-error\n formControlName=\"ogrn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <tui-input formControlName=\"okpo\">\n \u041A\u043E\u0434 \u041E\u041A\u041F\u041E\n <input\n tuiTextfieldLegacy\n [maskito]=\"okpoMask(selectOpf)\"\n autocomplete=\"okpo\"\n />\n </tui-input>\n <tui-error\n formControlName=\"okpo\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n <label tuiLabel>\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorName\">\n \u0424.\u0418.\u041E. \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n />\n </tui-input>\n <tui-error\n formControlName=\"directorName\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorPosition\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorPosition\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F\n <tui-input formControlName=\"directorActsOn\"> \u041E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u043D\u043E\u043C\u043E\u0447\u0438\u0439 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F </tui-input>\n <tui-error\n formControlName=\"directorActsOn\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #legalAddressQuality=\"scAddressQuality\"\n formControlName=\"legalAddress\"\n >\n \u042E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"legalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (legalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #postalAddressQuality=\"scAddressQuality\"\n formControlName=\"postalAddress\"\n >\n \u041F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"postalAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (postalAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n <label tuiLabel>\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n <tui-input\n scAddressQuality\n #actualAddressQuality=\"scAddressQuality\"\n formControlName=\"actualAddress\"\n >\n \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0430\u0434\u0440\u0435\u0441\n @if (opfListEnum[selectOpf] !== opfListEnum.non_resident_legal) {\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n />\n }\n </tui-input>\n <tui-error\n formControlName=\"actualAddress\"\n [error]=\"[] | tuiFieldError | async\"\n />\n @if (actualAddressQuality.getWarningMessage(); as addressQualityWarning) {\n <p class=\"text-xs text-tui-status-warning\">{{ addressQualityWarning }}</p>\n }\n </label>\n @if (opfListEnum[selectOpf] === opfListEnum.legal) {\n <label tuiLabel>\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <tui-input formControlName=\"kpp\">\n \u041A\u041F\u041F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\n <input\n tuiTextfieldLegacy\n [maskito]=\"kppMask\"\n autocomplete=\"kpp\"\n />\n </tui-input>\n <tui-error\n formControlName=\"kpp\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n }\n\n @if (opfListEnum[selectOpf] === opfListEnum.non_resident_legal) {\n @let countries = countries$ | async;\n @let countriesId = countriesId$ | async;\n\n <label\n *ngIf=\"countries\"\n tuiLabel\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-combo-box\n formControlName=\"registrationCountryId\"\n [stringify]=\"stringify(countries ?? [])\"\n >\n \u0421\u0442\u0440\u0430\u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <input\n tuiTextfieldLegacy\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocomplete=\"new-password\"\n />\n <tui-data-list-wrapper\n *tuiDataList\n [itemContent]=\"stringify(countries ?? []) | tuiStringifyContent\"\n [items]=\"countriesId | tuiFilterByInput\"\n />\n </tui-combo-box>\n <ng-template\n #CountryContent\n let-data\n >\n <div>{{ (getCountryNameById$(data) | async) ?? '' }}</div>\n </ng-template>\n <tui-error\n formControlName=\"registrationCountryId\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <ng-template #selectLoading> <tui-loader /> </ng-template>\n <label tuiLabel>\n \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input formControlName=\"registrationNumber\"> \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430 </tui-input>\n <tui-error\n formControlName=\"registrationNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n <label tuiLabel>\n \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n <tui-input\n formControlName=\"taxNumber\"\n nullOnEmpty\n >\n \u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430\n </tui-input>\n <tui-error\n formControlName=\"taxNumber\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n }\n</div>\n", styles: ["tui-carousel{--tui-carousel-padding: .5rem}\n"] }]
|
|
227
238
|
}], propDecorators: { opfControl: [{
|
|
228
239
|
type: Input
|
|
229
240
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LWNvbnRyYWdlbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29udHJhZ2VudHMvbmV3LWNvbnRyYWdlbnQtZm9ybS9zYy1uZXctY29udHJhZ2VudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9uZXctY29udHJhZ2VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEdBQThHO0FBRTlHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQWtDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9JLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN0RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMs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a0I7SUFDWCxXQUFXO1FBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ08sT0FBTztRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGFBQWEsQ0FBQyxJQUE0QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxtQkFBbUIsQ0FBQyxTQUFpQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdJLENBQUM7K0dBalBRLDRCQUE0QjttR0FBNUIsNEJBQTRCLG9HQ3hCekMsc3FhQWlSQTs7NEZEelBhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBMkJ4QyxVQUFVO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcyxAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2Qsc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb24gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2NJQ291bnRyeSwgU2NJUmVmZXJlbmNlc1R5cGVzLCBTY0lTdWdnZXN0aW9uVHlwZSwgU2NMb2NhdGlvbnNTZXJ2aWNlLCBTY09wZkxpc3QsIFNjUmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUNvbnRyb2xWYWx1ZSwgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0JhbmtBY2NvdW50Rm9ybUdyb3VwLCBTY0NvbnRhY3RGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2NBZGRyZXNzUXVhbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2FkZHJlc3MtcXVhbGl0eS9zYy1hZGRyZXNzLXF1YWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBzY0VudHJlcHJlbmV1cklubk1hc2ssIHNjRW50cmVwcmVuZXVyT2twb01hc2ssIHNjS3BwTWFzaywgc2NMZWdhbElubk1hc2ssIHNjTGVnYWxPa3BvTWFzayB9IGZyb20gJy4uLy4uL21hc2tzJztcbmltcG9ydCB7IHNjQmljVmFsaWRhdG9yLCBzY0NvcnJlc3BvbmRlbnRBY2NvdW50VmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBwaG9uZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMvc2MtcGhvbmUtdmFsaWRhdG9yJztcblxuLyoqXG4gKiDQpNC+0YDQvNCwINGB0L7Qt9C00LDQvdC40Y8g0L3QvtCy0L7Qs9C+INC60L7QvdGC0YDQsNCz0LXQvdGC0LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtbmV3LWNvbnRyYWdlbnQtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLW5ldy1jb250cmFnZW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjLW5ldy1jb250cmFnZW50LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NOZXdDb250cmFnZW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YHQv9GA0LDQstC+0YfQvdC40LrQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmZXJlbmNlc1NlcnZpY2U6IFNjUmVmZXJlbmNlc1NlcnZpY2UgPSBpbmplY3QoU2NSZWZlcmVuY2VzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60L7QsiDRgdGC0YDQsNC9LCDRgNC10LPQuNC+0L3QvtCyLCDQs9C+0YDQvtC00L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uc1NlcnZpY2U6IFNjTG9jYXRpb25zU2VydmljZSA9IGluamVjdChTY0xvY2F0aW9uc1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBLdGA0LXQtdGB0YLRgCDQutCw0YfQtdGB0YLQstCwINCw0LTRgNC10YHQvtCyLCDQstGL0LHRgNCw0L3QvdGL0YUg0LjQtyDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhZGRyZXNzUXVhbGl0eVNlcnZpY2UgPSBpbmplY3QoU2NBZGRyZXNzUXVhbGl0eVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JTQuNGA0LXQutGC0LjQstCwIGMgYEZvcm1Hcm91cGAg0LjQtyBET00uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSB8IG51bGwgPSBpbmplY3QoRm9ybUdyb3VwRGlyZWN0aXZlLCB7IHNraXBTZWxmOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICog0J/QvtC70LUg0LLRi9Cx0L7RgNCwINC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0L7QuSDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wZkNvbnRyb2w/OiBGb3JtQ29udHJvbDxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0IHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0L/QvtC70LXQuSDQtNCw0L3QvdGL0YUg0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQtSAtINC40L3QtNC40LLQuNC00YPQsNC70YzQvdC+0Lwg0L/RgNC10LTQv9GA0LjQvdC40LzQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50cmVwcmVuZXVyR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgaW5uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIG9rcG86IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgZGlyZWN0b3JOYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGRpcmVjdG9yUG9zaXRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgZGlyZWN0b3JBY3RzT246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgbGVnYWxBZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuYWRkcmVzc1F1YWxpdHlTZXJ2aWNlLnZhbGlkYXRvcl0pLFxuICAgICAgICBwb3N0YWxBZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuYWRkcmVzc1F1YWxpdHlTZXJ2aWNlLnZhbGlkYXRvcl0pLFxuICAgICAgICBhY3R1YWxBZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuYWRkcmVzc1F1YWxpdHlTZXJ2aWNlLnZhbGlkYXRvcl0pLFxuICAgICAgICBiYW5rQWNjb3VudHM6IG5ldyBGb3JtQXJyYXk8U2NCYW5rQWNjb3VudEZvcm1Hcm91cD4oXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICAgICAgICAgIGJhbmtOYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgICAgIGJpYzogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KSwgc2NCaWNWYWxpZGF0b3JdKSxcbiAgICAgICAgICAgICAgICAgICAgYWNjb3VudE51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyMCldKSxcbiAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGVudEFjY291bnQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMjApLCBzY0NvcnJlc3BvbmRlbnRBY2NvdW50VmFsaWRhdG9yXSksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5SWQ6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQk9GA0YPQv9C/0LAg0L/QvtC70LXQuSDQtNCw0L3QvdGL0YUg0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQtSAtINGO0YDQuNC00LjRh9C10YHQutC+0Lwg0LvQuNGG0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBsZWdhbEdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGtwcDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KV0pLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LTQsNC90L3Ri9GFINC+INC60L7QvdGC0YDQsNCz0LXQvdGC0LUgLSDRjtGA0LjQtNC40YfQtdGB0LrQvtC8INC70LjRhtC1INC90LXRgNC10LfQuNC00LXQvdGC0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBub25SZXNpZGVudExlZ2FsR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgcmVnaXN0cmF0aW9uQ291bnRyeUlkOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHJlZ2lzdHJhdGlvbk51bWJlcjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB0YXhOdW1iZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0L3QvtCy0L7Qs9C+INC60L7QvdGC0YDQsNCz0LXQvdGC0LAg0YTQuNC30LjRh9C10YHQutC+0LPQviDQu9C40YbQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIG9wZjogbmV3IEZvcm1Db250cm9sPGtleW9mIHR5cGVvZiBTY09wZkxpc3Q+KCdpbmRpdmlkdWFsJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGNvbnRhY3RzOiBuZXcgRm9ybUFycmF5PFNjQ29udGFjdEZvcm1Hcm91cD4oXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICAgICAgcGhvbmU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgcGhvbmVWYWxpZGF0b3IoKV0pLFxuICAgICAgICAgICAgICAgICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMuZW1haWwpLFxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgKSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgtC40L/QvtCyINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3VnZ2VzdGlvblR5cGU6IHR5cGVvZiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INCy0YvQsdC+0YDQsCDQntCf0KQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdE9wZiQ6IE9ic2VydmFibGU8a2V5b2YgdHlwZW9mIFNjT3BmTGlzdD4gPSB0dWlDb250cm9sVmFsdWU8a2V5b2YgdHlwZW9mIFNjT3BmTGlzdD4odGhpcy5mb3JtLmNvbnRyb2xzLm9wZikucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFwKChvcGYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wZk9yZGVyID0gU2NPcGZMaXN0W29wZl07XG4gICAgICAgICAgICBjb25zdCBpbm5MZW5ndGggPSBvcGZPcmRlciA+IFNjT3BmTGlzdC5lbnRyZXByZW5ldXIgPyAxMCA6IDEyO1xuICAgICAgICAgICAgY29uc3Qgb2twb0xlbmd0aCA9IG9wZk9yZGVyID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1ciA/IDggOiAxMDtcblxuICAgICAgICAgICAgLy8g0J/RgNCw0LLQuNC70LAg0LfQsNC00LDRjtGC0YHRjyDQtNC+INCy0LrQu9GO0YfQtdC90LjRjyDQutC+0L3RgtGA0L7Qu9C+0LI6IGVuYWJsZSDQuCBzZXRDb250cm9sINC/0YDQvtCy0LXRgNGP0Y7RgiDRgdGA0LDQt9GDLlxuICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5pbm4uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoaW5uTGVuZ3RoKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoaW5uTGVuZ3RoKV0pO1xuICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5va3BvLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKG9rcG9MZW5ndGgpLCBWYWxpZGF0b3JzLm1heExlbmd0aChva3BvTGVuZ3RoKV0pO1xuICAgICAgICAgICAgW3RoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMubGVnYWxBZGRyZXNzLCB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLnBvc3RhbEFkZHJlc3MsIHRoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMuYWN0dWFsQWRkcmVzc10uZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoYWRkcmVzc0NvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzUXVhbGl0eVNlcnZpY2Uuc2V0UXVhbGl0eUNoZWNrRW5hYmxlZChhZGRyZXNzQ29udHJvbCwgb3BmT3JkZXIgIT09IFNjT3BmTGlzdC5ub25fcmVzaWRlbnRfbGVnYWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHsgLi4udGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scywgLi4udGhpcy5sZWdhbEdyb3VwLmNvbnRyb2xzLCAuLi50aGlzLm5vblJlc2lkZW50TGVnYWxHcm91cC5jb250cm9scyB9KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSk/LmRpc2FibGUoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhZGRDb250cm9scyA9IChmb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHsgLi4uZm9ybUdyb3VwLmNvbnRyb2xzIH0pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KGtleSk/LmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5mb3JtIGFzIEZvcm1Hcm91cCkuc2V0Q29udHJvbDx0eXBlb2Yga2V5PihrZXksIGZvcm1Hcm91cC5nZXQoa2V5KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAob3BmT3JkZXIgPiBTY09wZkxpc3QuaW5kaXZpZHVhbCkge1xuICAgICAgICAgICAgICAgIGFkZENvbnRyb2xzKHRoaXMuZW50cmVwcmVuZXVyR3JvdXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3BmT3JkZXIgPiBTY09wZkxpc3QuZW50cmVwcmVuZXVyKSB7XG4gICAgICAgICAgICAgICAgYWRkQ29udHJvbHModGhpcy5sZWdhbEdyb3VwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wZk9yZGVyID4gU2NPcGZMaXN0LmxlZ2FsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ29udHJvbHModGhpcy5ub25SZXNpZGVudExlZ2FsR3JvdXApO1xuICAgICAgICAgICAgICAgIHRoaXMubGVnYWxHcm91cC5jb250cm9scy5rcHAuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMuaW5uLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLm9rcG8uZGlzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0JrQn9CfLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBrcHBNYXNrID0gc2NLcHBNYXNrO1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0YvRhSDRhNC+0YDQvC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BmTGlzdEVudW06IHR5cGVvZiBTY09wZkxpc3QgPSBTY09wZkxpc3Q7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0LTQu9GPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LPQviDRg9C/0YDQsNCy0LvQtdC90LjRjyDRg9C90LjRh9GC0L7QttC10L3QuNC10Lwg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY291bnRyaWVzJDogT2JzZXJ2YWJsZTxTY0lDb3VudHJ5W10+ID0gdGhpcy5sb2NhdGlvbnNTZXJ2aWNlLmdldENvdW50cmllcyQoKTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC60LAg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQvtCyINGB0YLRgNCw0L0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50cmllc0lkJDogT2JzZXJ2YWJsZTxudW1iZXJbXT4gPSB0aGlzLmNvdW50cmllcyQucGlwZShtYXAoKGNvdW50cmllcykgPT4gY291bnRyaWVzLm1hcCgoY291bnRyeSkgPT4gY291bnRyeS5pZCkpKTtcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQmNCd0J0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3BmINCe0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0LDRjyDRhNC+0YDQvNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpbm5NYXNrID0gKG9wZjoga2V5b2YgdHlwZW9mIFNjT3BmTGlzdCkgPT4gKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1ciA/IHNjTGVnYWxJbm5NYXNrIDogc2NFbnRyZXByZW5ldXJJbm5NYXNrKTtcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQntCa0J/Qni5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcGYg0J7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQsNGPINGE0L7RgNC80LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9rcG9NYXNrID0gKG9wZjoga2V5b2YgdHlwZW9mIFNjT3BmTGlzdCkgPT4gKFNjT3BmTGlzdFtvcGZdID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1ciA/IHNjTGVnYWxPa3BvTWFzayA6IHNjRW50cmVwcmVuZXVyT2twb01hc2spO1xuXG4gICAgLyoqXG4gICAgICog0KTRg9C90LrRhtC40Y8g0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjRjyDQvtCx0YrQtdC60YLQsCDRgdC+0YDRgtC40YDQvtCy0LrQuCDQsiDQt9C90LDRh9C10L3QuNC1LCDQvtGC0L7QsdGA0LDQttCw0LXQvNC+0LUg0LIg0L/QvtC70LUg0LLQstC+0LTQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtcyDQodC/0LjRgdC+0Log0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RyaW5naWZ5ID0gKGl0ZW1zOiByZWFkb25seSBTY0lDb3VudHJ5W10pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXNNYXAgPSBuZXcgTWFwKFxuICAgICAgICAgICAgaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtpdGVtLmlkLCBpdGVtLm5hbWVdIGFzIFtudW1iZXIsIHN0cmluZ107XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoaWQ6IG51bWJlcikgPT4gaXRlbXNNYXAuZ2V0KGlkKSA/PyAnJztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICog0KDQvtC00LjRgtC10LvRjNGB0LrQsNGPIGBGb3JtR3JvdXBgLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGFyZW50Rm9ybSgpOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXBEaXJlY3RpdmU/LmZvcm07XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudEZvcm0/LnNldENvbnRyb2woJ2NvbnRyYWdlbnQnLCB0aGlzLmZvcm0pO1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRGb3JtICYmIHRoaXMub3BmQ29udHJvbCkge1xuICAgICAgICAgICAgdHVpQ29udHJvbFZhbHVlPGtleW9mIHR5cGVvZiBTY09wZkxpc3QgfCBudWxsPih0aGlzLm9wZkNvbnRyb2wpXG4gICAgICAgICAgICAgICAgLnBpcGUoZmlsdGVyKHR1aUlzUHJlc2VudCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9wZikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMub3BmLnBhdGNoVmFsdWUob3BmKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtPy5yZW1vdmVDb250cm9sKCdjb250cmFnZW50Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0L7QuiDQvtGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstGL0YUg0YTQvtGA0LwuLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRPcGYkKCk6IE9ic2VydmFibGU8QXJyYXk8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3BmTGlzdCwga2V5b2YgdHlwZW9mIFNjT3BmTGlzdD4+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZXNTZXJ2aWNlLm9wZiQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC+0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0L7QuSDRhNC+0YDQvNGLLCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0YHQuNC80LLQvtC70YzQvdC+0LzRgyDQvtCx0L7Qt9C90LDRh9C10L3QuNGOIChzbHVnKSDQvdCwINCy0YXQvtC00LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2x1ZyDQodC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0T3BmQnlTbHVnJChzbHVnOiBrZXlvZiB0eXBlb2YgU2NPcGZMaXN0KTogT2JzZXJ2YWJsZTxTY0lSZWZlcmVuY2VzVHlwZXM8U2NPcGZMaXN0LCBrZXlvZiB0eXBlb2YgU2NPcGZMaXN0PiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VzU2VydmljZS5nZXRPcGZCeVNsdWckKHNsdWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdGC0YDQsNC90Ysg0L/QviDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvdW50cnlJZCDigJQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YHRgtGA0LDQvdGLLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRDb3VudHJ5TmFtZUJ5SWQkKGNvdW50cnlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb25zU2VydmljZS5nZXRDb3VudHJpZXMkKCkucGlwZShtYXAoKGNvdW50cmllcykgPT4gY291bnRyaWVzLmZpbmQoKGNvdW50cnkpID0+IGNvdW50cnkuaWQgPT09IGNvdW50cnlJZCk/Lm5hbWUgPz8gJycpKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAqbmdJZj1cInNlbGVjdE9wZiQgfCBhc3luYyBhcyBzZWxlY3RPcGZcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMyBwYi0xXCJcbj5cbiAgICA8cCBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCI+0J7QsdGJ0LjQtSDQtNCw0L3QvdGL0LUg0LrQvtC90YLRgNCw0LPQtdC90YLQsDwvcD5cbiAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgINCi0LjQvyDQutC+0L3RgtGA0LDQs9C10L3RgtCwICjQvtGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstCw0Y8g0YTQvtGA0LzQsClcbiAgICAgICAgPHR1aS1zZWxlY3RcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wZlwiXG4gICAgICAgICAgICBbdmFsdWVDb250ZW50XT1cIm9wZkNvbnRlbnRcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cIiEhb3BmQ29udHJvbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCi0LjQvyDQutC+0L3RgtGA0LDQs9C10L3RgtCwICjQvtGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstCw0Y8g0YTQvtGA0LzQsClcbiAgICAgICAgICAgIDx0dWktZGF0YS1saXN0ICp0dWlEYXRhTGlzdD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE9wZiQoKSB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5zbHVnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgICAgICA8L3R1aS1zZWxlY3Q+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI29wZkNvbnRlbnRcbiAgICAgICAgICAgIGxldC1kYXRhXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXY+e3sgKGdldE9wZkJ5U2x1ZyQoZGF0YSkgfCBhc3luYyk/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3BmXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cblxuICAgIEBsZXQgbmFtZUxhYmVsID0gb3BmTGlzdEVudW1bc2VsZWN0T3BmXSA9PT0gb3BmTGlzdEVudW0uaW5kaXZpZHVhbCA/ICfQpC7QmC7Qni4nIDogJ9Cd0LDQt9Cy0LDQvdC40LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuCc7XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICB7eyBuYW1lTGFiZWwgfX1cbiAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gPT09IG9wZkxpc3RFbnVtLmluZGl2aWR1YWwpIHtcbiAgICAgICAgICAgICAgICB7eyBuYW1lTGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZmlvXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAg0J3QsNC30LLQsNC90LjQtSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4XG4gICAgICAgICAgICAgICAgQGlmIChvcGZMaXN0RW51bVtzZWxlY3RPcGZdICE9PSBvcGZMaXN0RW51bS5ub25fcmVzaWRlbnRfbGVnYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUub3JnYW5pemF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgPC9sYWJlbD5cbiAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gPiBvcGZMaXN0RW51bS5pbmRpdmlkdWFsKSB7XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCY0J3QnSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4INC40LvQuCDQmNCfXG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImlublwiPlxuICAgICAgICAgICAgICAgINCY0J3QnSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4INC40LvQuCDQmNCfXG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICBbbWFza2l0b109XCJpbm5NYXNrKHNlbGVjdE9wZilcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJpbm5cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLm9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlublwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSAhPT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICAgICAg0JrQvtC0INCe0JrQn9CeXG4gICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJva3BvXCI+XG4gICAgICAgICAgICAgICAgICAgINCa0L7QtCDQntCa0J/QnlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwib2twb01hc2soc2VsZWN0T3BmKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJva3BvXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9rcG9cIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICB9XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCkLtCYLtCeLiDRgNGD0LrQvtCy0L7QtNC40YLQtdC70Y9cbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWN0b3JOYW1lXCI+XG4gICAgICAgICAgICAgICAg0KQu0Jgu0J4uINGA0YPQutC+0LLQvtC00LjRgtC10LvRj1xuICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5maW9cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3Rvck5hbWVcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQlNC+0LvQttC90L7RgdGC0Ywg0YDRg9C60L7QstC+0LTQuNGC0LXQu9GPXG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImRpcmVjdG9yUG9zaXRpb25cIj4g0JTQvtC70LbQvdC+0YHRgtGMINGA0YPQutC+0LLQvtC00LjRgtC10LvRjyA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3RvclBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0J7RgdC90L7QstCw0L3QuNGPINC/0L7Qu9C90L7QvNC+0YfQuNC5INGA0YPQutC+0LLQvtC00LjRgtC10LvRj1xuICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3RvckFjdHNPblwiPiDQntGB0L3QvtCy0LDQvdC40Y8g0L/QvtC70L3QvtC80L7Rh9C40Lkg0YDRg9C60L7QstC+0LTQuNGC0LXQu9GPIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpcmVjdG9yQWN0c09uXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0K7RgNC40LTQuNGH0LXRgdC60LjQuSDQsNC00YDQtdGBXG4gICAgICAgICAgICA8dHVpLWlucHV0XG4gICAgICAgICAgICAgICAgc2NBZGRyZXNzUXVhbGl0eVxuICAgICAgICAgICAgICAgICNsZWdhbEFkZHJlc3NRdWFsaXR5PVwic2NBZGRyZXNzUXVhbGl0eVwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxBZGRyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQrtGA0LjQtNC40YfQtdGB0LrQuNC5INCw0LTRgNC10YFcbiAgICAgICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmIChsZWdhbEFkZHJlc3NRdWFsaXR5LmdldFdhcm5pbmdNZXNzYWdlKCk7IGFzIGFkZHJlc3NRdWFsaXR5V2FybmluZykge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC14cyB0ZXh0LXR1aS1zdGF0dXMtd2FybmluZ1wiPnt7IGFkZHJlc3NRdWFsaXR5V2FybmluZyB9fTwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0J/QvtGH0YLQvtCy0YvQuSDQsNC00YDQtdGBXG4gICAgICAgICAgICA8dHVpLWlucHV0XG4gICAgICAgICAgICAgICAgc2NBZGRyZXNzUXVhbGl0eVxuICAgICAgICAgICAgICAgICNwb3N0YWxBZGRyZXNzUXVhbGl0eT1cInNjQWRkcmVzc1F1YWxpdHlcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc3RhbEFkZHJlc3NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCf0L7Rh9GC0L7QstGL0Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSAhPT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc3RhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmIChwb3N0YWxBZGRyZXNzUXVhbGl0eS5nZXRXYXJuaW5nTWVzc2FnZSgpOyBhcyBhZGRyZXNzUXVhbGl0eVdhcm5pbmcpIHtcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC10dWktc3RhdHVzLXdhcm5pbmdcIj57eyBhZGRyZXNzUXVhbGl0eVdhcm5pbmcgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCk0LDQutGC0LjRh9C10YHQutC40Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgPHR1aS1pbnB1dFxuICAgICAgICAgICAgICAgIHNjQWRkcmVzc1F1YWxpdHlcbiAgICAgICAgICAgICAgICAjYWN0dWFsQWRkcmVzc1F1YWxpdHk9XCJzY0FkZHJlc3NRdWFsaXR5XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3R1YWxBZGRyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQpNCw0LrRgtC40YfQtdGB0LrQuNC5INCw0LTRgNC10YFcbiAgICAgICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3R1YWxBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIEBpZiAoYWN0dWFsQWRkcmVzc1F1YWxpdHkuZ2V0V2FybmluZ01lc3NhZ2UoKTsgYXMgYWRkcmVzc1F1YWxpdHlXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdHVpLXN0YXR1cy13YXJuaW5nXCI+e3sgYWRkcmVzc1F1YWxpdHlXYXJuaW5nIH19PC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gPT09IG9wZkxpc3RFbnVtLmxlZ2FsKSB7XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICAgICAg0JrQn9CfINC+0YDQs9Cw0L3QuNC30LDRhtC40LhcbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImtwcFwiPlxuICAgICAgICAgICAgICAgICAgICDQmtCf0J8g0L7RgNCz0LDQvdC40LfQsNGG0LjQuFxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwia3BwTWFza1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJrcHBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia3BwXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSA9PT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgIEBsZXQgY291bnRyaWVzID0gY291bnRyaWVzJCB8IGFzeW5jO1xuICAgICAgICBAbGV0IGNvdW50cmllc0lkID0gY291bnRyaWVzSWQkIHwgYXN5bmM7XG5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAqbmdJZj1cImNvdW50cmllc1wiXG4gICAgICAgICAgICB0dWlMYWJlbFxuICAgICAgICA+XG4gICAgICAgICAgICDQodGC0YDQsNC90LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktY29tYm8tYm94XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uQ291bnRyeUlkXCJcbiAgICAgICAgICAgICAgICBbc3RyaW5naWZ5XT1cInN0cmluZ2lmeShjb3VudHJpZXMgPz8gW10pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQodGC0YDQsNC90LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1Db250ZW50XT1cInN0cmluZ2lmeShjb3VudHJpZXMgPz8gW10pIHwgdHVpU3RyaW5naWZ5Q29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJjb3VudHJpZXNJZCB8IHR1aUZpbHRlckJ5SW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1jb21iby1ib3g+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAjQ291bnRyeUNvbnRlbnRcbiAgICAgICAgICAgICAgICBsZXQtZGF0YVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXY+e3sgKGdldENvdW50cnlOYW1lQnlJZCQoZGF0YSkgfCBhc3luYykgPz8gJycgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uQ291bnRyeUlkXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RMb2FkaW5nPiA8dHVpLWxvYWRlciAvPiA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQoNC10LPQuNGB0YLRgNCw0YbQuNC+0L3QvdGL0Lkg0L3QvtC80LXRgCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uTnVtYmVyXCI+INCg0LXQs9C40YHRgtGA0LDRhtC40L7QvdC90YvQuSDQvdC+0LzQtdGAINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQu9C40YbQsCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWdpc3RyYXRpb25OdW1iZXJcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQndCw0LvQvtCz0L7QstGL0Lkg0L3QvtC80LXRgCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGF4TnVtYmVyXCI+INCd0LDQu9C+0LPQvtCy0YvQuSDQvdC+0LzQtdGAINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQu9C40YbQsCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhOdW1iZXJcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LWNvbnRyYWdlbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY29udHJhZ2VudHMvbmV3LWNvbnRyYWdlbnQtZm9ybS9zYy1uZXctY29udHJhZ2VudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jb250cmFnZW50cy9uZXctY29udHJhZ2VudC1mb3JtL3NjLW5ldy1jb250cmFnZW50LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEdBQThHO0FBRTlHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQWtDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9JLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN0RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFD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LENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdJLENBQUM7K0dBNVBRLDRCQUE0QjttR0FBNUIsNEJBQTRCLG9HQ3hCekMsc2xjQXlTQTs7NEZEalJhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07OEJBMkJ4QyxVQUFVO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcyxAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2Qsc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb24gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2NJQ291bnRyeSwgU2NJUmVmZXJlbmNlc1R5cGVzLCBTY0lTdWdnZXN0aW9uVHlwZSwgU2NMb2NhdGlvbnNTZXJ2aWNlLCBTY09wZkxpc3QsIFNjUmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUNvbnRyb2xWYWx1ZSwgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY0JhbmtBY2NvdW50Rm9ybUdyb3VwLCBTY0NvbnRhY3RGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2NBZGRyZXNzUXVhbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2FkZHJlc3MtcXVhbGl0eS9zYy1hZGRyZXNzLXF1YWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBzY0VudHJlcHJlbmV1cklubk1hc2ssIHNjRW50cmVwcmVuZXVyT2dybk1hc2ssIHNjRW50cmVwcmVuZXVyT2twb01hc2ssIHNjS3BwTWFzaywgc2NMZWdhbElubk1hc2ssIHNjTGVnYWxPZ3JuTWFzaywgc2NMZWdhbE9rcG9NYXNrIH0gZnJvbSAnLi4vLi4vbWFza3MnO1xuaW1wb3J0IHsgc2NCaWNWYWxpZGF0b3IsIHNjQ29ycmVzcG9uZGVudEFjY291bnRWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IHBob25lVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycy9zYy1waG9uZS12YWxpZGF0b3InO1xuXG4vKipcbiAqINCk0L7RgNC80LAg0YHQvtC30LTQsNC90LjRjyDQvdC+0LLQvtCz0L4g0LrQvtC90YLRgNCw0LPQtdC90YLQsC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1uZXctY29udHJhZ2VudC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtbmV3LWNvbnRyYWdlbnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2MtbmV3LWNvbnRyYWdlbnQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY05ld0NvbnRyYWdlbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRgdC/0YDQsNCy0L7Rh9C90LjQutC+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWZlcmVuY2VzU2VydmljZTogU2NSZWZlcmVuY2VzU2VydmljZSA9IGluamVjdChTY1JlZmVyZW5jZXNTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINGB0L/QuNGB0LrQvtCyINGB0YLRgNCw0L0sINGA0LXQs9C40L7QvdC+0LIsINCz0L7RgNC+0LTQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25zU2VydmljZTogU2NMb2NhdGlvbnNTZXJ2aWNlID0gaW5qZWN0KFNjTG9jYXRpb25zU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEt0YDQtdC10YHRgtGAINC60LDRh9C10YHRgtCy0LAg0LDQtNGA0LXRgdC+0LIsINCy0YvQsdGA0LDQvdC90YvRhSDQuNC3INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFkZHJlc3NRdWFsaXR5U2VydmljZSA9IGluamVjdChTY0FkZHJlc3NRdWFsaXR5U2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQlNC40YDQtdC60YLQuNCy0LAgYyBgRm9ybUdyb3VwYCDQuNC3IERPTS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgbnVsbCA9IGluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUsIHsgc2tpcFNlbGY6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LvQtSDQstGL0LHQvtGA0LAg0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQvtC5INGE0L7RgNC80YsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3BmQ29udHJvbD86IEZvcm1Db250cm9sPGtleW9mIHR5cGVvZiBTY09wZkxpc3QgfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqINCT0YDRg9C/0L/QsCDQv9C+0LvQtdC5INC00LDQvdC90YvRhSDQviDQutC+0L3RgtGA0LDQs9C10L3RgtC1IC0g0LjQvdC00LjQstC40LTRg9Cw0LvRjNC90L7QvCDQv9GA0LXQtNC/0YDQuNC90LjQvNCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnRyZXByZW5ldXJHcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBpbm46IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgb2dybjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxuICAgICAgICBva3BvOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGRpcmVjdG9yTmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBkaXJlY3RvclBvc2l0aW9uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGRpcmVjdG9yQWN0c09uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGxlZ2FsQWRkcmVzczogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmFkZHJlc3NRdWFsaXR5U2VydmljZS52YWxpZGF0b3JdKSxcbiAgICAgICAgcG9zdGFsQWRkcmVzczogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmFkZHJlc3NRdWFsaXR5U2VydmljZS52YWxpZGF0b3JdKSxcbiAgICAgICAgYWN0dWFsQWRkcmVzczogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmFkZHJlc3NRdWFsaXR5U2VydmljZS52YWxpZGF0b3JdKSxcbiAgICAgICAgYmFua0FjY291bnRzOiBuZXcgRm9ybUFycmF5PFNjQmFua0FjY291bnRGb3JtR3JvdXA+KFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICBiYW5rTmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgICBiaWM6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoOSksIHNjQmljVmFsaWRhdG9yXSksXG4gICAgICAgICAgICAgICAgICAgIGFjY291bnROdW1iZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMjApXSksXG4gICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRlbnRBY2NvdW50OiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIwKSwgc2NDb3JyZXNwb25kZW50QWNjb3VudFZhbGlkYXRvcl0pLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeUlkOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDEpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICApLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINC/0L7Qu9C10Lkg0LTQsNC90L3Ri9GFINC+INC60L7QvdGC0YDQsNCz0LXQvdGC0LUgLSDRjtGA0LjQtNC40YfQtdGB0LrQvtC8INC70LjRhtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGVnYWxHcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBrcHA6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoOSldKSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCT0YDRg9C/0L/QsCDQv9C+0LvQtdC5INC00LDQvdC90YvRhSDQviDQutC+0L3RgtGA0LDQs9C10L3RgtC1IC0g0Y7RgNC40LTQuNGH0LXRgdC60L7QvCDQu9C40YbQtSDQvdC10YDQtdC30LjQtNC10L3RgtC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm9uUmVzaWRlbnRMZWdhbEdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIHJlZ2lzdHJhdGlvbkNvdW50cnlJZDogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICByZWdpc3RyYXRpb25OdW1iZXI6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgdGF4TnVtYmVyOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQpNC+0YDQvNCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC90L7QstC+0LPQviDQutC+0L3RgtGA0LDQs9C10L3RgtCwINGE0LjQt9C40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBvcGY6IG5ldyBGb3JtQ29udHJvbDxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0PignaW5kaXZpZHVhbCcsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBjb250YWN0czogbmV3IEZvcm1BcnJheTxTY0NvbnRhY3RGb3JtR3JvdXA+KFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHBob25lVmFsaWRhdG9yKCldKSxcbiAgICAgICAgICAgICAgICAgICAgZW1haWw6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLmVtYWlsKSxcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMSksIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICksXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0YLQuNC/0L7QsiDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Z2dlc3Rpb25UeXBlOiB0eXBlb2YgU2NJU3VnZ2VzdGlvblR5cGUgPSBTY0lTdWdnZXN0aW9uVHlwZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQstGL0LHQvtGA0LAg0J7Qn9CkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RPcGYkOiBPYnNlcnZhYmxlPGtleW9mIHR5cGVvZiBTY09wZkxpc3Q+ID0gdHVpQ29udHJvbFZhbHVlPGtleW9mIHR5cGVvZiBTY09wZkxpc3Q+KHRoaXMuZm9ybS5jb250cm9scy5vcGYpLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRhcCgob3BmKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcGZPcmRlciA9IFNjT3BmTGlzdFtvcGZdO1xuICAgICAgICAgICAgY29uc3QgaW5uTGVuZ3RoID0gb3BmT3JkZXIgPiBTY09wZkxpc3QuZW50cmVwcmVuZXVyID8gMTAgOiAxMjtcbiAgICAgICAgICAgIGNvbnN0IG9ncm5MZW5ndGggPSBvcGZPcmRlciA+IFNjT3BmTGlzdC5lbnRyZXByZW5ldXIgPyAxMyA6IDE1O1xuICAgICAgICAgICAgY29uc3Qgb2twb0xlbmd0aCA9IG9wZk9yZGVyID4gU2NPcGZMaXN0LmVudHJlcHJlbmV1ciA/IDggOiAxMDtcblxuICAgICAgICAgICAgLy8g0J/RgNCw0LLQuNC70LAg0LfQsNC00LDRjtGC0YHRjyDQtNC+INCy0LrQu9GO0YfQtdC90LjRjyDQutC+0L3RgtGA0L7Qu9C+0LI6IGVuYWJsZSDQuCBzZXRDb250cm9sINC/0YDQvtCy0LXRgNGP0Y7RgiDRgdGA0LDQt9GDLlxuICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5pbm4uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoaW5uTGVuZ3RoKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoaW5uTGVuZ3RoKV0pO1xuICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5vZ3JuLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluTGVuZ3RoKG9ncm5MZW5ndGgpLCBWYWxpZGF0b3JzLm1heExlbmd0aChvZ3JuTGVuZ3RoKV0pO1xuICAgICAgICAgICAgdGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scy5va3BvLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKG9rcG9MZW5ndGgpLCBWYWxpZGF0b3JzLm1heExlbmd0aChva3BvTGVuZ3RoKV0pO1xuICAgICAgICAgICAgW3RoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMubGVnYWxBZGRyZXNzLCB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLnBvc3RhbEFkZHJlc3MsIHRoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMuYWN0dWFsQWRkcmVzc10uZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoYWRkcmVzc0NvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzUXVhbGl0eVNlcnZpY2Uuc2V0UXVhbGl0eUNoZWNrRW5hYmxlZChhZGRyZXNzQ29udHJvbCwgb3BmT3JkZXIgIT09IFNjT3BmTGlzdC5ub25fcmVzaWRlbnRfbGVnYWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHsgLi4udGhpcy5lbnRyZXByZW5ldXJHcm91cC5jb250cm9scywgLi4udGhpcy5sZWdhbEdyb3VwLmNvbnRyb2xzLCAuLi50aGlzLm5vblJlc2lkZW50TGVnYWxHcm91cC5jb250cm9scyB9KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSk/LmRpc2FibGUoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhZGRDb250cm9scyA9IChmb3JtR3JvdXA6IEZvcm1Hcm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHsgLi4uZm9ybUdyb3VwLmNvbnRyb2xzIH0pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KGtleSk/LmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5mb3JtIGFzIEZvcm1Hcm91cCkuc2V0Q29udHJvbDx0eXBlb2Yga2V5PihrZXksIGZvcm1Hcm91cC5nZXQoa2V5KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAob3BmT3JkZXIgPiBTY09wZkxpc3QuaW5kaXZpZHVhbCkge1xuICAgICAgICAgICAgICAgIGFkZENvbnRyb2xzKHRoaXMuZW50cmVwcmVuZXVyR3JvdXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3BmT3JkZXIgPiBTY09wZkxpc3QuZW50cmVwcmVuZXVyKSB7XG4gICAgICAgICAgICAgICAgYWRkQ29udHJvbHModGhpcy5sZWdhbEdyb3VwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wZk9yZGVyID4gU2NPcGZMaXN0LmxlZ2FsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ29udHJvbHModGhpcy5ub25SZXNpZGVudExlZ2FsR3JvdXApO1xuICAgICAgICAgICAgICAgIHRoaXMubGVnYWxHcm91cC5jb250cm9scy5rcHAuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMuaW5uLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVudHJlcHJlbmV1ckdyb3VwLmNvbnRyb2xzLm9ncm4uZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmVwcmVuZXVyR3JvdXAuY29udHJvbHMub2twby5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCc0LDRgdC60LAg0L/QvtC70Y8g0LLQstC+0LTQsCDQmtCf0J8uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGtwcE1hc2sgPSBzY0twcE1hc2s7XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLRi9GFINGE0L7RgNC8LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGZMaXN0RW51bTogdHlwZW9mIFNjT3BmTGlzdCA9IFNjT3BmTGlzdDtcblxuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQtNC70Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60L7Qs9C+INGD0L/RgNCw0LLQu9C10L3QuNGPINGD0L3QuNGH0YLQvtC20LXQvdC40LXQvCDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDRgdGC0YDQsNC9LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb3VudHJpZXMkOiBPYnNlcnZhYmxlPFNjSUNvdW50cnlbXT4gPSB0aGlzLmxvY2F0aW9uc1NlcnZpY2UuZ2V0Q291bnRyaWVzJCgpO1xuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGB0L/QuNGB0LrQsCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNC+0LIg0YHRgtGA0LDQvS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY291bnRyaWVzSWQkOiBPYnNlcnZhYmxlPG51bWJlcltdPiA9IHRoaXMuY291bnRyaWVzJC5waXBlKG1hcCgoY291bnRyaWVzKSA9PiBjb3VudHJpZXMubWFwKChjb3VudHJ5KSA9PiBjb3VudHJ5LmlkKSkpO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNGB0LrQsCDQv9C+0LvRjyDQstCy0L7QtNCwINCY0J3QnS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcGYg0J7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQsNGPINGE0L7RgNC80LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlubk1hc2sgPSAob3BmOiBrZXlvZiB0eXBlb2YgU2NPcGZMaXN0KSA9PiAoU2NPcGZMaXN0W29wZl0gPiBTY09wZkxpc3QuZW50cmVwcmVuZXVyID8gc2NMZWdhbElubk1hc2sgOiBzY0VudHJlcHJlbmV1cklubk1hc2spO1xuXG4gICAgLyoqXG4gICAgICog0JzQsNGB0LrQsCDQv9C+0LvRjyDQstCy0L7QtNCwINCe0JPQoNCdLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wZiDQntGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstCw0Y8g0YTQvtGA0LzQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb2dybk1hc2sgPSAob3BmOiBrZXlvZiB0eXBlb2YgU2NPcGZMaXN0KSA9PiAoU2NPcGZMaXN0W29wZl0gPiBTY09wZkxpc3QuZW50cmVwcmVuZXVyID8gc2NMZWdhbE9ncm5NYXNrIDogc2NFbnRyZXByZW5ldXJPZ3JuTWFzayk7XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0YHQutCwINC/0L7Qu9GPINCy0LLQvtC00LAg0J7QmtCf0J4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3BmINCe0YDQs9Cw0L3QuNC30LDRhtC40L7QvdC90L4t0L/RgNCw0LLQvtCy0LDRjyDRhNC+0YDQvNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBva3BvTWFzayA9IChvcGY6IGtleW9mIHR5cGVvZiBTY09wZkxpc3QpID0+IChTY09wZkxpc3Rbb3BmXSA+IFNjT3BmTGlzdC5lbnRyZXByZW5ldXIgPyBzY0xlZ2FsT2twb01hc2sgOiBzY0VudHJlcHJlbmV1ck9rcG9NYXNrKTtcblxuICAgIC8qKlxuICAgICAqINCk0YPQvdC60YbQuNGPINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0L7QsdGK0LXQutGC0LAg0YHQvtGA0YLQuNGA0L7QstC60Lgg0LIg0LfQvdCw0YfQtdC90LjQtSwg0L7RgtC+0LHRgNCw0LbQsNC10LzQvtC1INCyINC/0L7Qu9C1INCy0LLQvtC00LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbXMg0KHQv9C40YHQvtC6INGB0YLRgNCw0L0uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0cmluZ2lmeSA9IChpdGVtczogcmVhZG9ubHkgU2NJQ291bnRyeVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zTWFwID0gbmV3IE1hcChcbiAgICAgICAgICAgIGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbaXRlbS5pZCwgaXRlbS5uYW1lXSBhcyBbbnVtYmVyLCBzdHJpbmddO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKGlkOiBudW1iZXIpID0+IGl0ZW1zTWFwLmdldChpZCkgPz8gJyc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqINCg0L7QtNC40YLQtdC70YzRgdC60LDRjyBgRm9ybUdyb3VwYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhcmVudEZvcm0oKTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlPy5mb3JtO1xuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtPy5zZXRDb250cm9sKCdjb250cmFnZW50JywgdGhpcy5mb3JtKTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50Rm9ybSAmJiB0aGlzLm9wZkNvbnRyb2wpIHtcbiAgICAgICAgICAgIHR1aUNvbnRyb2xWYWx1ZTxrZXlvZiB0eXBlb2YgU2NPcGZMaXN0IHwgbnVsbD4odGhpcy5vcGZDb250cm9sKVxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChvcGYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLm9wZi5wYXRjaFZhbHVlKG9wZik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyZW50Rm9ybT8ucmVtb3ZlQ29udHJvbCgnY29udHJhZ2VudCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgdC/0LjRgdC+0Log0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLRi9GFINGE0L7RgNC8Li5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0T3BmJCgpOiBPYnNlcnZhYmxlPEFycmF5PFNjSVJlZmVyZW5jZXNUeXBlczxTY09wZkxpc3QsIGtleW9mIHR5cGVvZiBTY09wZkxpc3Q+Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VzU2VydmljZS5vcGYkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC+0L3QvdC+LdC/0YDQsNCy0L7QstC+0Lkg0YTQvtGA0LzRiywg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC5INGB0LjQvNCy0L7Qu9GM0L3QvtC80YMg0L7QsdC+0LfQvdCw0YfQtdC90LjRjiAoc2x1Zykg0L3QsCDQstGF0L7QtNC1LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNsdWcg0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1ZykuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE9wZkJ5U2x1ZyQoc2x1Zzoga2V5b2YgdHlwZW9mIFNjT3BmTGlzdCk6IE9ic2VydmFibGU8U2NJUmVmZXJlbmNlc1R5cGVzPFNjT3BmTGlzdCwga2V5b2YgdHlwZW9mIFNjT3BmTGlzdD4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlc1NlcnZpY2UuZ2V0T3BmQnlTbHVnJChzbHVnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHRgtGA0LDQvdGLINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb3VudHJ5SWQg4oCUINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGB0YLRgNCw0L3Riy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Q291bnRyeU5hbWVCeUlkJChjb3VudHJ5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uc1NlcnZpY2UuZ2V0Q291bnRyaWVzJCgpLnBpcGUobWFwKChjb3VudHJpZXMpID0+IGNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiBjb3VudHJ5LmlkID09PSBjb3VudHJ5SWQpPy5uYW1lID8/ICcnKSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKm5nSWY9XCJzZWxlY3RPcGYkIHwgYXN5bmMgYXMgc2VsZWN0T3BmXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgcGItMVwiXG4+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPtCe0LHRidC40LUg0LTQsNC90L3Ri9C1INC60L7QvdGC0YDQsNCz0LXQvdGC0LA8L3A+XG4gICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICDQotC40L8g0LrQvtC90YLRgNCw0LPQtdC90YLQsCAo0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQsNGPINGE0L7RgNC80LApXG4gICAgICAgIDx0dWktc2VsZWN0XG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvcGZcIlxuICAgICAgICAgICAgW3ZhbHVlQ29udGVudF09XCJvcGZDb250ZW50XCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCIhIW9wZkNvbnRyb2xcIlxuICAgICAgICA+XG4gICAgICAgICAgICDQotC40L8g0LrQvtC90YLRgNCw0LPQtdC90YLQsCAo0L7RgNCz0LDQvdC40LfQsNGG0LjQvtC90L3Qvi3Qv9GA0LDQstC+0LLQsNGPINGE0L7RgNC80LApXG4gICAgICAgICAgICA8dHVpLWRhdGEtbGlzdCAqdHVpRGF0YUxpc3Q+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRPcGYkKCkgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uc2x1Z1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICAgICAgPC90dWktc2VsZWN0PlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICNvcGZDb250ZW50XG4gICAgICAgICAgICBsZXQtZGF0YVxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2Pnt7IChnZXRPcGZCeVNsdWckKGRhdGEpIHwgYXN5bmMpPy5uYW1lIH19PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wZlwiXG4gICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAvPlxuICAgIDwvbGFiZWw+XG5cbiAgICBAbGV0IG5hbWVMYWJlbCA9IG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gPT09IG9wZkxpc3RFbnVtLmluZGl2aWR1YWwgPyAn0KQu0Jgu0J4uJyA6ICfQndCw0LfQstCw0L3QuNC1INC+0YDQs9Cw0L3QuNC30LDRhtC40LgnO1xuICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAge3sgbmFtZUxhYmVsIH19XG4gICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgQGlmIChvcGZMaXN0RW51bVtzZWxlY3RPcGZdID09PSBvcGZMaXN0RW51bS5pbmRpdmlkdWFsKSB7XG4gICAgICAgICAgICAgICAge3sgbmFtZUxhYmVsIH19XG4gICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmZpb1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgINCd0LDQt9Cy0LDQvdC40LUg0L7RgNCz0LDQvdC40LfQsNGG0LjQuFxuICAgICAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSAhPT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLm9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAvPlxuICAgIDwvbGFiZWw+XG4gICAgQGlmIChvcGZMaXN0RW51bVtzZWxlY3RPcGZdID4gb3BmTGlzdEVudW0uaW5kaXZpZHVhbCkge1xuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQmNCd0J0g0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQuNC70Lgg0JjQn1xuICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpbm5cIj5cbiAgICAgICAgICAgICAgICDQmNCd0J0g0L7RgNCz0LDQvdC40LfQsNGG0LjQuCDQuNC70Lgg0JjQn1xuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwiaW5uTWFzayhzZWxlY3RPcGYpXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiaW5uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbm5cIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgQGxldCBvZ3JuTGFiZWwgPSBvcGZMaXN0RW51bVtzZWxlY3RPcGZdID09PSBvcGZMaXN0RW51bS5lbnRyZXByZW5ldXIgPyAn0J7Qk9Cg0J3QmNCfJyA6ICfQntCT0KDQnSDQvtGA0LPQsNC90LjQt9Cw0YbQuNC4JztcbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgICAgICB7eyBvZ3JuTGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9ncm5cIlxuICAgICAgICAgICAgICAgICAgICBudWxsT25FbXB0eVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgb2dybkxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFza2l0b109XCJvZ3JuTWFzayhzZWxlY3RPcGYpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9ncm5cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib2dyblwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICAgICAg0JrQvtC0INCe0JrQn9CeXG4gICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJva3BvXCI+XG4gICAgICAgICAgICAgICAgICAgINCa0L7QtCDQntCa0J/QnlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwib2twb01hc2soc2VsZWN0T3BmKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJva3BvXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9rcG9cIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICB9XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCkLtCYLtCeLiDRgNGD0LrQvtCy0L7QtNC40YLQtdC70Y9cbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGlyZWN0b3JOYW1lXCI+XG4gICAgICAgICAgICAgICAg0KQu0Jgu0J4uINGA0YPQutC+0LLQvtC00LjRgtC10LvRj1xuICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5maW9cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3Rvck5hbWVcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQlNC+0LvQttC90L7RgdGC0Ywg0YDRg9C60L7QstC+0LTQuNGC0LXQu9GPXG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImRpcmVjdG9yUG9zaXRpb25cIj4g0JTQvtC70LbQvdC+0YHRgtGMINGA0YPQutC+0LLQvtC00LjRgtC10LvRjyA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3RvclBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0J7RgdC90L7QstCw0L3QuNGPINC/0L7Qu9C90L7QvNC+0YfQuNC5INGA0YPQutC+0LLQvtC00LjRgtC10LvRj1xuICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkaXJlY3RvckFjdHNPblwiPiDQntGB0L3QvtCy0LDQvdC40Y8g0L/QvtC70L3QvtC80L7Rh9C40Lkg0YDRg9C60L7QstC+0LTQuNGC0LXQu9GPIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpcmVjdG9yQWN0c09uXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0K7RgNC40LTQuNGH0LXRgdC60LjQuSDQsNC00YDQtdGBXG4gICAgICAgICAgICA8dHVpLWlucHV0XG4gICAgICAgICAgICAgICAgc2NBZGRyZXNzUXVhbGl0eVxuICAgICAgICAgICAgICAgICNsZWdhbEFkZHJlc3NRdWFsaXR5PVwic2NBZGRyZXNzUXVhbGl0eVwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnYWxBZGRyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQrtGA0LjQtNC40YfQtdGB0LrQuNC5INCw0LTRgNC10YFcbiAgICAgICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmIChsZWdhbEFkZHJlc3NRdWFsaXR5LmdldFdhcm5pbmdNZXNzYWdlKCk7IGFzIGFkZHJlc3NRdWFsaXR5V2FybmluZykge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC14cyB0ZXh0LXR1aS1zdGF0dXMtd2FybmluZ1wiPnt7IGFkZHJlc3NRdWFsaXR5V2FybmluZyB9fTwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPlxuICAgICAgICAgICAg0J/QvtGH0YLQvtCy0YvQuSDQsNC00YDQtdGBXG4gICAgICAgICAgICA8dHVpLWlucHV0XG4gICAgICAgICAgICAgICAgc2NBZGRyZXNzUXVhbGl0eVxuICAgICAgICAgICAgICAgICNwb3N0YWxBZGRyZXNzUXVhbGl0eT1cInNjQWRkcmVzc1F1YWxpdHlcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc3RhbEFkZHJlc3NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCf0L7Rh9GC0L7QstGL0Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSAhPT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzYy1zdWdnZXN0aW9uLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc3RhbEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmIChwb3N0YWxBZGRyZXNzUXVhbGl0eS5nZXRXYXJuaW5nTWVzc2FnZSgpOyBhcyBhZGRyZXNzUXVhbGl0eVdhcm5pbmcpIHtcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQteHMgdGV4dC10dWktc3RhdHVzLXdhcm5pbmdcIj57eyBhZGRyZXNzUXVhbGl0eVdhcm5pbmcgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD5cbiAgICAgICAgICAgINCk0LDQutGC0LjRh9C10YHQutC40Lkg0LDQtNGA0LXRgVxuICAgICAgICAgICAgPHR1aS1pbnB1dFxuICAgICAgICAgICAgICAgIHNjQWRkcmVzc1F1YWxpdHlcbiAgICAgICAgICAgICAgICAjYWN0dWFsQWRkcmVzc1F1YWxpdHk9XCJzY0FkZHJlc3NRdWFsaXR5XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3R1YWxBZGRyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQpNCw0LrRgtC40YfQtdGB0LrQuNC5INCw0LTRgNC10YFcbiAgICAgICAgICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gIT09IG9wZkxpc3RFbnVtLm5vbl9yZXNpZGVudF9sZWdhbCkge1xuICAgICAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgKnR1aURhdGFMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3R1YWxBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIEBpZiAoYWN0dWFsQWRkcmVzc1F1YWxpdHkuZ2V0V2FybmluZ01lc3NhZ2UoKTsgYXMgYWRkcmVzc1F1YWxpdHlXYXJuaW5nKSB7XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdHVpLXN0YXR1cy13YXJuaW5nXCI+e3sgYWRkcmVzc1F1YWxpdHlXYXJuaW5nIH19PC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICBAaWYgKG9wZkxpc3RFbnVtW3NlbGVjdE9wZl0gPT09IG9wZkxpc3RFbnVtLmxlZ2FsKSB7XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICAgICAg0JrQn9CfINC+0YDQs9Cw0L3QuNC30LDRhtC40LhcbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImtwcFwiPlxuICAgICAgICAgICAgICAgICAgICDQmtCf0J8g0L7RgNCz0LDQvdC40LfQsNGG0LjQuFxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZExlZ2FjeVxuICAgICAgICAgICAgICAgICAgICAgICAgW21hc2tpdG9dPVwia3BwTWFza1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJrcHBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia3BwXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAob3BmTGlzdEVudW1bc2VsZWN0T3BmXSA9PT0gb3BmTGlzdEVudW0ubm9uX3Jlc2lkZW50X2xlZ2FsKSB7XG4gICAgICAgIEBsZXQgY291bnRyaWVzID0gY291bnRyaWVzJCB8IGFzeW5jO1xuICAgICAgICBAbGV0IGNvdW50cmllc0lkID0gY291bnRyaWVzSWQkIHwgYXN5bmM7XG5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAqbmdJZj1cImNvdW50cmllc1wiXG4gICAgICAgICAgICB0dWlMYWJlbFxuICAgICAgICA+XG4gICAgICAgICAgICDQodGC0YDQsNC90LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktY29tYm8tYm94XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uQ291bnRyeUlkXCJcbiAgICAgICAgICAgICAgICBbc3RyaW5naWZ5XT1cInN0cmluZ2lmeShjb3VudHJpZXMgPz8gW10pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQodGC0YDQsNC90LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAgICAgICAgIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvcnJlY3Q9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHR1aS1kYXRhLWxpc3Qtd3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1Db250ZW50XT1cInN0cmluZ2lmeShjb3VudHJpZXMgPz8gW10pIHwgdHVpU3RyaW5naWZ5Q29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJjb3VudHJpZXNJZCB8IHR1aUZpbHRlckJ5SW5wdXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1jb21iby1ib3g+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAjQ291bnRyeUNvbnRlbnRcbiAgICAgICAgICAgICAgICBsZXQtZGF0YVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXY+e3sgKGdldENvdW50cnlOYW1lQnlJZCQoZGF0YSkgfCBhc3luYykgPz8gJycgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uQ291bnRyeUlkXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RMb2FkaW5nPiA8dHVpLWxvYWRlciAvPiA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQoNC10LPQuNGB0YLRgNCw0YbQuNC+0L3QvdGL0Lkg0L3QvtC80LXRgCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicmVnaXN0cmF0aW9uTnVtYmVyXCI+INCg0LXQs9C40YHRgtGA0LDRhtC40L7QvdC90YvQuSDQvdC+0LzQtdGAINGO0YDQuNC00LjRh9C10YHQutC+0LPQviDQu9C40YbQsCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWdpc3RyYXRpb25OdW1iZXJcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgdHVpTGFiZWw+XG4gICAgICAgICAgICDQndCw0LvQvtCz0L7QstGL0Lkg0L3QvtC80LXRgCDRjtGA0LjQtNC40YfQtdGB0LrQvtCz0L4g0LvQuNGG0LBcbiAgICAgICAgICAgIDx0dWktaW5wdXRcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhOdW1iZXJcIlxuICAgICAgICAgICAgICAgIG51bGxPbkVtcHR5XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg0J3QsNC70L7Qs9C+0LLRi9C5INC90L7QvNC10YAg0Y7RgNC40LTQuNGH0LXRgdC60L7Qs9C+INC70LjRhtCwXG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YXhOdW1iZXJcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
@@ -8,6 +8,7 @@ import { TuiComboBoxModule, TuiInputModule, TuiInputPhoneModule, TuiSelectModule
|
|
|
8
8
|
import { ScAccordionModule } from '../accordion';
|
|
9
9
|
import { ScContactsModule } from '../contacts/sc-contacts.module';
|
|
10
10
|
import { ScAddressQualityDirective } from '../directives/address-quality/sc-address-quality.directive';
|
|
11
|
+
import { NullOnEmptyTransformerDirective } from '../directives/sc-null-on-empty-value-transformer.directive';
|
|
11
12
|
import { ScFormFieldsModule } from '../form-fields/form-fields.module';
|
|
12
13
|
import { ScAddContragentBankAccountsDialogComponent } from './add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component';
|
|
13
14
|
import { ScAddContragentDialogComponent } from './add-contragent-dialog/sc-add-contragent-dialog.component';
|
|
@@ -45,6 +46,7 @@ export class ScContragentsModule {
|
|
|
45
46
|
TuiInputPhoneModule,
|
|
46
47
|
MaskitoDirective,
|
|
47
48
|
ScAddressQualityDirective,
|
|
49
|
+
NullOnEmptyTransformerDirective,
|
|
48
50
|
ScFormFieldsModule,
|
|
49
51
|
TuiElasticContainer, i4.TuiItem, i2.TuiCarouselComponent, i2.TuiCarouselDirective, i2.TuiCarouselAutoscroll, i2.TuiCarouselButtons, i2.TuiCarouselScroll, TuiButtonLoading,
|
|
50
52
|
TuiComboBoxModule,
|
|
@@ -97,6 +99,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
97
99
|
TuiInputPhoneModule,
|
|
98
100
|
MaskitoDirective,
|
|
99
101
|
ScAddressQualityDirective,
|
|
102
|
+
NullOnEmptyTransformerDirective,
|
|
100
103
|
ScFormFieldsModule,
|
|
101
104
|
TuiElasticContainer,
|
|
102
105
|
...TuiCarousel,
|
|
@@ -115,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
115
118
|
],
|
|
116
119
|
}]
|
|
117
120
|
}] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29udHJhZ2VudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NvbnRyYWdlbnRzL3NjLWNvbnRyYWdlbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEcsT0FBTyxFQUNILGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLFVBQVUsRUFDVix1QkFBdUIsR0FDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sc0ZBQXNGLENBQUM7QUFDbEosT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDNUcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDakosT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDN0csT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDNUksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7OztBQUV0Rzs7R0FFRztBQStDSCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixpQkE1Q3hCLCtCQUErQjtZQUMvQixtQ0FBbUM7WUFDbkMsd0NBQXdDO1lBQ3hDLDBDQUEwQztZQUMxQyw4QkFBOEI7WUFDOUIsNEJBQTRCLGFBRzVCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixTQUFTO1lBQ1QsU0FBUztZQUNULGVBQWU7WUFDZixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLFFBQVE7WUFDUixlQUFlLHdOQUdmLFFBQVE7WUFDUixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsK0JBQStCO1lBQy9CLGtCQUFrQjtZQUNsQixtQkFBbUIsdUlBRW5CLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLG9CQUFvQixpREFJcEIsK0JBQStCO1lBQy9CLHdDQUF3QztZQUN4QywwQ0FBMEM7WUFDMUMsOEJBQThCO1lBQzlCLDRCQUE0QjtnSEFHdkIsbUJBQW1CLFlBcEN4QixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixpQkFBaUI7WUFFakIsU0FBUztZQUVULGdCQUFnQjtZQUVoQixRQUFRO1lBQ1IsZUFBZSw4R0FJZixjQUFjO1lBQ2QsbUJBQW1CO1lBSW5CLGtCQUFrQjtZQUNsQixtQkFBbUIsMkJBRW5CLGdCQUFnQjtZQUNoQixpQkFBaUIsRUFHZCxVQUFVOzs0RkFVUixtQkFBbUI7a0JBOUMvQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDViwrQkFBK0I7d0JBQy9CLG1DQUFtQzt3QkFDbkMsd0NBQXdDO3dCQUN4QywwQ0FBMEM7d0JBQzFDLDhCQUE4Qjt3QkFDOUIsNEJBQTRCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsUUFBUTt3QkFDUixlQUFlO3dCQUNmLEdBQUcsV0FBVzt3QkFDZCxHQUFHLGtCQUFrQjt3QkFDckIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLCtCQUErQjt3QkFDL0Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLEdBQUcsV0FBVzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLEdBQUcsVUFBVTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLCtCQUErQjt3QkFDL0Isd0NBQXdDO3dCQUN4QywwQ0FBMEM7d0JBQzFDLDhCQUE4Qjt3QkFDOUIsNEJBQTRCO3FCQUMvQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXNraXRvRGlyZWN0aXZlIH0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQgeyBUdWlCdXR0b24sIFR1aURhdGFMaXN0LCBUdWlFcnJvciwgVHVpTGFiZWwsIFR1aUxvYWRlciwgVHVpTm90aWZpY2F0aW9uIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUdWlCdXR0b25Mb2FkaW5nLFxuICAgIFR1aUNhcm91c2VsLFxuICAgIFR1aURhdGFMaXN0V3JhcHBlcixcbiAgICBUdWlFbGFzdGljQ29udGFpbmVyLFxuICAgIFR1aUZpZWxkRXJyb3JQaXBlLFxuICAgIFR1aUZpbHRlckJ5SW5wdXRQaXBlLFxuICAgIFR1aVN0ZXBwZXIsXG4gICAgVHVpU3RyaW5naWZ5Q29udGVudFBpcGUsXG59IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpQ29tYm9Cb3hNb2R1bGUsIFR1aUlucHV0TW9kdWxlLCBUdWlJbnB1dFBob25lTW9kdWxlLCBUdWlTZWxlY3RNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcblxuaW1wb3J0IHsgU2NBY2NvcmRpb25Nb2R1bGUgfSBmcm9tICcuLi9hY2NvcmRpb24nO1xuaW1wb3J0IHsgU2NDb250YWN0c01vZHVsZSB9IGZyb20gJy4uL2NvbnRhY3RzL3NjLWNvbnRhY3RzLm1vZHVsZSc7XG5pbXBvcnQgeyBTY0FkZHJlc3NRdWFsaXR5RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9hZGRyZXNzLXF1YWxpdHkvc2MtYWRkcmVzcy1xdWFsaXR5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOdWxsT25FbXB0eVRyYW5zZm9ybWVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zYy1udWxsLW9uLWVtcHR5LXZhbHVlLXRyYW5zZm9ybWVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTY0Zvcm1GaWVsZHNNb2R1bGUgfSBmcm9tICcuLi9mb3JtLWZpZWxkcy9mb3JtLWZpZWxkcy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NBZGRDb250cmFnZW50QmFua0FjY291bnRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtY29udHJhZ2VudC1iYW5rLWFjY291bnQtZGlhbG9nL3NjLWFkZC1jb250cmFnZW50LWJhbmstYWNjb3VudC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFNjQWRkQ29udHJhZ2VudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWNvbnRyYWdlbnQtZGlhbG9nL3NjLWFkZC1jb250cmFnZW50LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NDb250cmFnZW50c0FjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyYWdlbnRzLWFjY29yZGlvbi9jb250cmFnZW50cy1hY2NvcmRpb24taXRlbS9zYy1jb250cmFnZW50cy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NDb250cmFnZW50c0FjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJhZ2VudHMtYWNjb3JkaW9uL3NjLWNvbnRyYWdlbnRzLWFjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NOZXdDb250cmFnZW50QmFua0FjY291bnRzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0vc2MtbmV3LWNvbnRyYWdlbnQtYmFuay1hY2NvdW50LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNjTmV3Q29udHJhZ2VudEZvcm1Db21wb25lbnQgfSBmcm9tICcuL25ldy1jb250cmFnZW50LWZvcm0vc2MtbmV3LWNvbnRyYWdlbnQtZm9ybS5jb21wb25lbnQnO1xuXG4vKipcbiAqINCc0L7QtNGD0LvRjCDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjQtSDQutC+0L3RgtC10L3RgtCwINGA0LDQt9C00LXQu9Cw0LzQuCwg0YEg0LLQvtC30LzQvtC20L3QvtGB0YLRjNGOINGB0LrRgNGL0LLQsNGC0Ywg0Lgg0L7RgtC+0LHRgNCw0LbQsNGC0Ywg0YHQvtC00LXRgNC20LjQvNC+0LUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNjQ29udHJhZ2VudHNBY2NvcmRpb25Db21wb25lbnQsXG4gICAgICAgIFNjQ29udHJhZ2VudHNBY2NvcmRpb25JdGVtQ29tcG9uZW50LFxuICAgICAgICBTY05ld0NvbnRyYWdlbnRCYW5rQWNjb3VudHNGb3JtQ29tcG9uZW50LFxuICAgICAgICBTY0FkZENvbnRyYWdlbnRCYW5rQWNjb3VudHNEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIFNjQWRkQ29udHJhZ2VudERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgU2NOZXdDb250cmFnZW50Rm9ybUNvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgU2NBY2NvcmRpb25Nb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpTG9hZGVyLFxuICAgICAgICBUdWlOb3RpZmljYXRpb24sXG4gICAgICAgIFNjQ29udGFjdHNNb2R1bGUsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlLFxuICAgICAgICBUdWlFcnJvcixcbiAgICAgICAgVHVpU2VsZWN0TW9kdWxlLFxuICAgICAgICAuLi5UdWlEYXRhTGlzdCxcbiAgICAgICAgLi4uVHVpRGF0YUxpc3RXcmFwcGVyLFxuICAgICAgICBUdWlMYWJlbCxcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG4gICAgICAgIE1hc2tpdG9EaXJlY3RpdmUsXG4gICAgICAgIFNjQWRkcmVzc1F1YWxpdHlEaXJlY3RpdmUsXG4gICAgICAgIE51bGxPbkVtcHR5VHJhbnNmb3JtZXJEaXJlY3RpdmUsXG4gICAgICAgIFNjRm9ybUZpZWxkc01vZHVsZSxcbiAgICAgICAgVHVpRWxhc3RpY0NvbnRhaW5lcixcbiAgICAgICAgLi4uVHVpQ2Fyb3VzZWwsXG4gICAgICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgICAgIFR1aUNvbWJvQm94TW9kdWxlLFxuICAgICAgICBUdWlTdHJpbmdpZnlDb250ZW50UGlwZSxcbiAgICAgICAgVHVpRmlsdGVyQnlJbnB1dFBpcGUsXG4gICAgICAgIC4uLlR1aVN0ZXBwZXIsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFNjQ29udHJhZ2VudHNBY2NvcmRpb25Db21wb25lbnQsXG4gICAgICAgIFNjTmV3Q29udHJhZ2VudEJhbmtBY2NvdW50c0Zvcm1Db21wb25lbnQsXG4gICAgICAgIFNjQWRkQ29udHJhZ2VudEJhbmtBY2NvdW50c0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgU2NBZGRDb250cmFnZW50RGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBTY05ld0NvbnRyYWdlbnRGb3JtQ29tcG9uZW50LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjQ29udHJhZ2VudHNNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { TuiValueTransformer } from '@taiga-ui/cdk';
|
|
3
|
+
import { NullOnEmptyValueTransformer } from '../providers/null-on-empty-value-transformer';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Директива для замены пустой строки в значении текстового поля на null: очищенное необязательное поле не уходит в запрос.
|
|
7
|
+
*/
|
|
8
|
+
export class NullOnEmptyTransformerDirective {
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NullOnEmptyTransformerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: NullOnEmptyTransformerDirective, isStandalone: true, selector: "tui-input[nullOnEmpty]", providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: TuiValueTransformer,
|
|
13
|
+
useClass: NullOnEmptyValueTransformer,
|
|
14
|
+
},
|
|
15
|
+
], ngImport: i0 }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NullOnEmptyTransformerDirective, decorators: [{
|
|
18
|
+
type: Directive,
|
|
19
|
+
args: [{
|
|
20
|
+
standalone: true,
|
|
21
|
+
selector: 'tui-input[nullOnEmpty]',
|
|
22
|
+
providers: [
|
|
23
|
+
{
|
|
24
|
+
provide: TuiValueTransformer,
|
|
25
|
+
useClass: NullOnEmptyValueTransformer,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbnVsbC1vbi1lbXB0eS12YWx1ZS10cmFuc2Zvcm1lci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9zYy1udWxsLW9uLWVtcHR5LXZhbHVlLXRyYW5zZm9ybWVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFFM0Y7O0dBRUc7QUFXSCxNQUFNLE9BQU8sK0JBQStCOytHQUEvQiwrQkFBK0I7bUdBQS9CLCtCQUErQixxRUFQN0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsMkJBQTJCO2FBQ3hDO1NBQ0o7OzRGQUVRLCtCQUErQjtrQkFWM0MsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSwyQkFBMkI7eUJBQ3hDO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUdWlWYWx1ZVRyYW5zZm9ybWVyIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmltcG9ydCB7IE51bGxPbkVtcHR5VmFsdWVUcmFuc2Zvcm1lciB9IGZyb20gJy4uL3Byb3ZpZGVycy9udWxsLW9uLWVtcHR5LXZhbHVlLXRyYW5zZm9ybWVyJztcblxuLyoqXG4gKiDQlNC40YDQtdC60YLQuNCy0LAg0LTQu9GPINC30LDQvNC10L3RiyDQv9GD0YHRgtC+0Lkg0YHRgtGA0L7QutC4INCyINC30L3QsNGH0LXQvdC40Lgg0YLQtdC60YHRgtC+0LLQvtCz0L4g0L/QvtC70Y8g0L3QsCBudWxsOiDQvtGH0LjRidC10L3QvdC+0LUg0L3QtdC+0LHRj9C30LDRgtC10LvRjNC90L7QtSDQv9C+0LvQtSDQvdC1INGD0YXQvtC00LjRgiDQsiDQt9Cw0L/RgNC+0YEuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXRbbnVsbE9uRW1wdHldJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVHVpVmFsdWVUcmFuc2Zvcm1lcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBOdWxsT25FbXB0eVZhbHVlVHJhbnNmb3JtZXIsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVsbE9uRW1wdHlUcmFuc2Zvcm1lckRpcmVjdGl2ZSB7fVxuIl19
|