@alfresco/aca-content 4.4.0-7018528653 → 4.4.0-7019241307
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/assets/app.extensions.json +22 -4
- package/esm2020/folder-rules/rule-details/actions/rule-action.ui-component.mjs +23 -13
- package/esm2020/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +10 -8
- package/esm2020/folder-rules/rule-details/rule-details.ui-component.mjs +15 -10
- package/esm2020/lib/aca-content.module.mjs +4 -2
- package/esm2020/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +21 -5
- package/fesm2015/alfresco-aca-content-folder-rules.mjs +47 -33
- package/fesm2015/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2015/alfresco-aca-content.mjs +22 -4
- package/fesm2015/alfresco-aca-content.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content-folder-rules.mjs +47 -33
- package/fesm2020/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2020/alfresco-aca-content.mjs +22 -4
- package/fesm2020/alfresco-aca-content.mjs.map +1 -1
- package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +6 -1
- package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +6 -4
- package/folder-rules/rule-details/rule-details.ui-component.d.ts +3 -0
- package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +8 -2
- package/package.json +1 -1
|
@@ -1495,6 +1495,9 @@
|
|
|
1495
1495
|
"allowOnlyPredefinedValues": true,
|
|
1496
1496
|
"field": "TAG"
|
|
1497
1497
|
}
|
|
1498
|
+
},
|
|
1499
|
+
"rules": {
|
|
1500
|
+
"visible": "app.areTagsEnabled"
|
|
1498
1501
|
}
|
|
1499
1502
|
},
|
|
1500
1503
|
{
|
|
@@ -1509,6 +1512,9 @@
|
|
|
1509
1512
|
"allowOnlyPredefinedValues": true,
|
|
1510
1513
|
"field": "cm:categories"
|
|
1511
1514
|
}
|
|
1515
|
+
},
|
|
1516
|
+
"rules": {
|
|
1517
|
+
"visible": "app.areCategoriesEnabled"
|
|
1512
1518
|
}
|
|
1513
1519
|
}
|
|
1514
1520
|
]
|
|
@@ -2160,7 +2166,10 @@
|
|
|
2160
2166
|
"type": "text",
|
|
2161
2167
|
"sortable": false,
|
|
2162
2168
|
"desktopOnly": true,
|
|
2163
|
-
"order": 60
|
|
2169
|
+
"order": 60,
|
|
2170
|
+
"rules": {
|
|
2171
|
+
"visible": "app.areTagsEnabled"
|
|
2172
|
+
}
|
|
2164
2173
|
}
|
|
2165
2174
|
],
|
|
2166
2175
|
"libraries": [
|
|
@@ -2357,7 +2366,10 @@
|
|
|
2357
2366
|
"type": "text",
|
|
2358
2367
|
"sortable": false,
|
|
2359
2368
|
"desktopOnly": true,
|
|
2360
|
-
"order": 80
|
|
2369
|
+
"order": 80,
|
|
2370
|
+
"rules": {
|
|
2371
|
+
"visible": "app.areTagsEnabled"
|
|
2372
|
+
}
|
|
2361
2373
|
}
|
|
2362
2374
|
],
|
|
2363
2375
|
"recent": [
|
|
@@ -2422,7 +2434,10 @@
|
|
|
2422
2434
|
"type": "text",
|
|
2423
2435
|
"sortable": false,
|
|
2424
2436
|
"desktopOnly": true,
|
|
2425
|
-
"order": 60
|
|
2437
|
+
"order": 60,
|
|
2438
|
+
"rules": {
|
|
2439
|
+
"visible": "app.areTagsEnabled"
|
|
2440
|
+
}
|
|
2426
2441
|
}
|
|
2427
2442
|
],
|
|
2428
2443
|
"favorites": [
|
|
@@ -2497,7 +2512,10 @@
|
|
|
2497
2512
|
"type": "text",
|
|
2498
2513
|
"sortable": false,
|
|
2499
2514
|
"desktopOnly": true,
|
|
2500
|
-
"order": 70
|
|
2515
|
+
"order": 70,
|
|
2516
|
+
"rules": {
|
|
2517
|
+
"visible": "app.areTagsEnabled"
|
|
2518
|
+
}
|
|
2501
2519
|
}
|
|
2502
2520
|
],
|
|
2503
2521
|
"trashcan": [
|
|
@@ -25,8 +25,8 @@ import { Component, forwardRef, Input, ViewEncapsulation } from '@angular/core';
|
|
|
25
25
|
import { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
26
26
|
import { CardViewBoolItemModel, CardViewModule, CardViewSelectItemModel, CardViewTextItemModel, CardViewUpdateService } from '@alfresco/adf-core';
|
|
27
27
|
import { of, Subject } from 'rxjs';
|
|
28
|
-
import { takeUntil } from 'rxjs/operators';
|
|
29
|
-
import { ContentNodeSelectorComponent, NodeAction } from '@alfresco/adf-content-services';
|
|
28
|
+
import { map, takeUntil } from 'rxjs/operators';
|
|
29
|
+
import { CategoryService, ContentNodeSelectorComponent, NodeAction, TagService } from '@alfresco/adf-content-services';
|
|
30
30
|
import { MatDialog } from '@angular/material/dialog';
|
|
31
31
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
32
32
|
import { CommonModule } from '@angular/common';
|
|
@@ -36,19 +36,24 @@ import * as i0 from "@angular/core";
|
|
|
36
36
|
import * as i1 from "@alfresco/adf-core";
|
|
37
37
|
import * as i2 from "@angular/material/dialog";
|
|
38
38
|
import * as i3 from "@ngx-translate/core";
|
|
39
|
-
import * as i4 from "@
|
|
40
|
-
import * as i5 from "@angular/
|
|
41
|
-
import * as i6 from "@angular/
|
|
42
|
-
import * as i7 from "@angular/material/
|
|
43
|
-
import * as i8 from "@angular/material/
|
|
39
|
+
import * as i4 from "@alfresco/adf-content-services";
|
|
40
|
+
import * as i5 from "@angular/common";
|
|
41
|
+
import * as i6 from "@angular/forms";
|
|
42
|
+
import * as i7 from "@angular/material/form-field";
|
|
43
|
+
import * as i8 from "@angular/material/select";
|
|
44
|
+
import * as i9 from "@angular/material/core";
|
|
44
45
|
export class RuleActionUiComponent {
|
|
45
|
-
constructor(cardViewUpdateService, dialog, translate) {
|
|
46
|
+
constructor(cardViewUpdateService, dialog, translate, tagService, categoryService) {
|
|
46
47
|
this.cardViewUpdateService = cardViewUpdateService;
|
|
47
48
|
this.dialog = dialog;
|
|
48
49
|
this.translate = translate;
|
|
50
|
+
this.tagService = tagService;
|
|
51
|
+
this.categoryService = categoryService;
|
|
49
52
|
this.nodeId = '';
|
|
50
53
|
this.readOnly = false;
|
|
51
54
|
this._parameterConstraints = [];
|
|
55
|
+
this.tagsRelatedPropertiesAndAspects = ['cm:tagscope', 'cm:tagScopeCache', 'cm:taggable'];
|
|
56
|
+
this.categoriesRelatedPropertiesAndAspects = ['cm:categories', 'cm:generalclassifiable'];
|
|
52
57
|
this.isFullWidth = false;
|
|
53
58
|
this.form = new FormGroup({
|
|
54
59
|
actionDefinitionId: new FormControl('', Validators.required)
|
|
@@ -125,6 +130,8 @@ export class RuleActionUiComponent {
|
|
|
125
130
|
this.onDestroy$.complete();
|
|
126
131
|
}
|
|
127
132
|
setCardViewProperties() {
|
|
133
|
+
const disabledTags = !this.tagService.areTagsEnabled();
|
|
134
|
+
const disabledCategories = !this.categoryService.areCategoriesEnabled();
|
|
128
135
|
this.cardViewItems = (this.selectedActionDefinition?.parameterDefinitions ?? []).map((paramDef) => {
|
|
129
136
|
this.isFullWidth = false;
|
|
130
137
|
const constraintsForDropdownBox = this._parameterConstraints.find((obj) => obj.name === paramDef.name);
|
|
@@ -167,7 +174,10 @@ export class RuleActionUiComponent {
|
|
|
167
174
|
return new CardViewSelectItemModel({
|
|
168
175
|
...cardViewPropertiesModel,
|
|
169
176
|
value: this.parameters[paramDef.name] ?? '',
|
|
170
|
-
options$: of(constraintsForDropdownBox.constraints)
|
|
177
|
+
options$: of(constraintsForDropdownBox.constraints).pipe(map((options) => {
|
|
178
|
+
return options.filter((option) => !((disabledTags && this.tagsRelatedPropertiesAndAspects.includes(option.key)) ||
|
|
179
|
+
(disabledCategories && this.categoriesRelatedPropertiesAndAspects.includes(option.key))));
|
|
180
|
+
}))
|
|
171
181
|
});
|
|
172
182
|
}
|
|
173
183
|
return new CardViewTextItemModel({
|
|
@@ -243,7 +253,7 @@ export class RuleActionUiComponent {
|
|
|
243
253
|
}));
|
|
244
254
|
}
|
|
245
255
|
}
|
|
246
|
-
RuleActionUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleActionUiComponent, deps: [{ token: i1.CardViewUpdateService }, { token: i2.MatDialog }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
256
|
+
RuleActionUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleActionUiComponent, deps: [{ token: i1.CardViewUpdateService }, { token: i2.MatDialog }, { token: i3.TranslateService }, { token: i4.TagService }, { token: i4.CategoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
247
257
|
RuleActionUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleActionUiComponent, isStandalone: true, selector: "aca-rule-action", inputs: { nodeId: "nodeId", actionDefinitions: "actionDefinitions", readOnly: "readOnly", parameterConstraints: "parameterConstraints" }, host: { classAttribute: "aca-rule-action" }, providers: [
|
|
248
258
|
{
|
|
249
259
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -251,7 +261,7 @@ RuleActionUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
251
261
|
useExisting: forwardRef(() => RuleActionUiComponent)
|
|
252
262
|
},
|
|
253
263
|
CardViewUpdateService
|
|
254
|
-
], usesOnChanges: true, ngImport: i0, template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field>\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n [ngClass]=\"{ 'aca-rule-action-full-width': isFullWidth }\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:300px}.aca-rule-action-full-width{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type:
|
|
264
|
+
], usesOnChanges: true, ngImport: i0, template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field>\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n [ngClass]=\"{ 'aca-rule-action-full-width': isFullWidth }\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:300px}.aca-rule-action-full-width{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: CardViewModule }, { kind: "component", type: i1.CardViewComponent, selector: "adf-card-view", inputs: ["properties", "editable", "displayEmpty", "displayNoneOption", "displayClearAction", "copyToClipboardAction", "useChipsForMultiValueProperty", "multiValueSeparator", "displayLabelForChips"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
255
265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleActionUiComponent, decorators: [{
|
|
256
266
|
type: Component,
|
|
257
267
|
args: [{ standalone: true, imports: [CommonModule, TranslateModule, ReactiveFormsModule, MatFormFieldModule, MatSelectModule, CardViewModule], selector: 'aca-rule-action', encapsulation: ViewEncapsulation.None, host: { class: 'aca-rule-action' }, providers: [
|
|
@@ -262,7 +272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
262
272
|
},
|
|
263
273
|
CardViewUpdateService
|
|
264
274
|
], template: "<form class=\"aca-rule-action__form\" [formGroup]=\"form\">\n\n <mat-form-field>\n <mat-select\n formControlName=\"actionDefinitionId\"\n data-automation-id=\"rule-action-select\"\n [placeholder]=\"'ACA_FOLDER_RULES.RULE_DETAILS.ACTION_SELECT_PLACEHOLDER' | translate\">\n <mat-option\n *ngFor=\"let actionDefinition of actionDefinitions\"\n [value]=\"actionDefinition.id\">\n {{ actionDefinition.title }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <adf-card-view\n data-automation-id=\"rule-action-card-view\"\n [properties]=\"cardViewItems\"\n [ngClass]=\"{ 'aca-rule-action-full-width': isFullWidth }\"\n [editable]=\"!readOnly\">\n </adf-card-view>\n\n</form>\n", styles: [".aca-rule-action__form{display:flex;flex-direction:row;gap:20px}.aca-rule-action__form adf-card-view .adf-property-list .adf-property adf-card-view-item-dispatcher adf-card-view-textitem{display:inline-block;width:300px}.aca-rule-action-full-width{width:100%}\n"] }]
|
|
265
|
-
}], ctorParameters: function () { return [{ type: i1.CardViewUpdateService }, { type: i2.MatDialog }, { type: i3.TranslateService }]; }, propDecorators: { nodeId: [{
|
|
275
|
+
}], ctorParameters: function () { return [{ type: i1.CardViewUpdateService }, { type: i2.MatDialog }, { type: i3.TranslateService }, { type: i4.TagService }, { type: i4.CategoryService }]; }, propDecorators: { nodeId: [{
|
|
266
276
|
type: Input
|
|
267
277
|
}], actionDefinitions: [{
|
|
268
278
|
type: Input
|
|
@@ -271,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
271
281
|
}], parameterConstraints: [{
|
|
272
282
|
type: Input
|
|
273
283
|
}] } });
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb24udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvYWN0aW9ucy9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9hY3Rpb25zL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUNMLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDRCQUE0QixFQUFvQyxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FB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b0I7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCwgUnVsZUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3J1bGUtYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7XG4gIENhcmRWaWV3Qm9vbEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdJdGVtLFxuICBDYXJkVmlld01vZHVsZSxcbiAgQ2FyZFZpZXdTZWxlY3RJdGVtTW9kZWwsXG4gIENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbixcbiAgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsLFxuICBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsXG4gIFVwZGF0ZU5vdGlmaWNhdGlvblxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgQWN0aW9uUGFyYW1ldGVyRGVmaW5pdGlvbiwgTm9kZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQsIENvbnN0cmFpbnRWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludC5tb2RlbCc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50LCBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSwgTm9kZUFjdGlvbiB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgQ2FyZFZpZXdNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2FjYS1ydWxlLWFjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1hY3Rpb24nIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSdWxlQWN0aW9uVWlDb21wb25lbnQpXG4gICAgfSxcbiAgICBDYXJkVmlld1VwZGF0ZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlQWN0aW9uVWlDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5vZGVJZCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGlvbkRlZmluaXRpb25zOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWRbXTtcblxuICBASW5wdXQoKVxuICByZWFkT25seSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3BhcmFtZXRlckNvbnN0cmFpbnRzID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBwYXJhbWV0ZXJDb25zdHJhaW50cygpOiBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cztcbiAgfVxuICBzZXQgcGFyYW1ldGVyQ29uc3RyYWludHModmFsdWUpIHtcbiAgICB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cyA9IHZhbHVlLm1hcCgob2JqKSA9PiAoeyAuLi5vYmosIGNvbnN0cmFpbnRzOiB0aGlzLnBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMob2JqLmNvbnN0cmFpbnRzKSB9KSk7XG4gIH1cblxuICBpc0Z1bGxXaWR0aCA9IGZhbHNlO1xuXG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgfSk7XG5cbiAgY2FyZFZpZXdJdGVtczogQ2FyZFZpZXdJdGVtW10gPSBbXTtcbiAgcGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBnZXQgc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnYWN0aW9uRGVmaW5pdGlvbklkJykudmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uKCk6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMuZmluZCgoYWN0aW9uRGVmaW5pdGlvbjogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkKSA9PiBhY3Rpb25EZWZpbml0aW9uLmlkID09PSB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkKTtcbiAgfVxuXG4gIGdldCBjYXJkVmlld1N0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRnVsbFdpZHRoID8geyB3aWR0aDogJzEwMCUnIH0gOiB7fTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAoYWN0aW9uOiBSdWxlQWN0aW9uKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FyZFZpZXdVcGRhdGVTZXJ2aWNlOiBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHdyaXRlVmFsdWUoYWN0aW9uOiBSdWxlQWN0aW9uKSB7XG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcbiAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogYWN0aW9uLmFjdGlvbkRlZmluaXRpb25JZFxuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHtcbiAgICAgIC4uLnRoaXMucGFyYW1ldGVycyxcbiAgICAgIC4uLmFjdGlvbi5wYXJhbXNcbiAgICB9O1xuICAgIHRoaXMuc2V0Q2FyZFZpZXdQcm9wZXJ0aWVzKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoYWN0aW9uOiBSdWxlQWN0aW9uKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hY3Rpb25EZWZpbml0aW9ucyA9IHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMuc29ydCgoZmlyc3RBY3Rpb25EZWZpbml0aW9uLCBzZWNvbmRBY3Rpb25EZWZpbml0aW9uKSA9PlxuICAgICAgZmlyc3RBY3Rpb25EZWZpbml0aW9uLnRpdGxlLmxvY2FsZUNvbXBhcmUoc2Vjb25kQWN0aW9uRGVmaW5pdGlvbi50aXRsZSlcbiAgICApO1xuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXREZWZhdWx0UGFyYW1ldGVycygpO1xuICAgICAgdGhpcy5zZXRDYXJkVmlld1Byb3BlcnRpZXMoKTtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UuaXRlbVVwZGF0ZWQkLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgodXBkYXRlTm90aWZpY2F0aW9uOiBVcGRhdGVOb3RpZmljYXRpb24pID0+IHtcbiAgICAgIHRoaXMucGFyYW1ldGVycyA9IHtcbiAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAuLi51cGRhdGVOb3RpZmljYXRpb24uY2hhbmdlZFxuICAgICAgfTtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgIHBhcmFtczogdGhpcy5wYXJhbWV0ZXJzXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHJlYWRPbmx5ID0gY2hhbmdlc1sncmVhZE9ubHknXT8uY3VycmVudFZhbHVlO1xuICAgIGlmIChyZWFkT25seSAhPT0gdW5kZWZpbmVkICYmIHJlYWRPbmx5ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gcmVhZE9ubHk7XG4gICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUocmVhZE9ubHkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzZXRDYXJkVmlld1Byb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5jYXJkVmlld0l0ZW1zID0gKHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uPy5wYXJhbWV0ZXJEZWZpbml0aW9ucyA/PyBbXSkubWFwKChwYXJhbURlZikgPT4ge1xuICAgICAgdGhpcy5pc0Z1bGxXaWR0aCA9IGZhbHNlO1xuICAgICAgY29uc3QgY29uc3RyYWludHNGb3JEcm9wZG93bkJveCA9IHRoaXMuX3BhcmFtZXRlckNvbnN0cmFpbnRzLmZpbmQoKG9iaikgPT4gb2JqLm5hbWUgPT09IHBhcmFtRGVmLm5hbWUpO1xuICAgICAgY29uc3QgY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwgPSB7XG4gICAgICAgIGxhYmVsOiBwYXJhbURlZi5kaXNwbGF5TGFiZWwgKyAocGFyYW1EZWYubWFuZGF0b3J5ID8gJyAqJyA6ICcnKSxcbiAgICAgICAga2V5OiBwYXJhbURlZi5uYW1lLFxuICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgLi4uKHBhcmFtRGVmLm1hbmRhdG9yeVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICB2YWxpZGF0b3JzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkVSUk9SLlJFUVVJUkVEJyxcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6ICh2YWx1ZTogdW5rbm93bikgPT4gISF2YWx1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pXG4gICAgICB9O1xuICAgICAgc3dpdGNoIChwYXJhbURlZi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Q6Ym9vbGVhbic6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld0Jvb2xJdGVtTW9kZWwoe1xuICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID8/IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgJ2Q6bm9kZXJlZic6XG4gICAgICAgICAgaWYgKCFjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94ICYmICF0aGlzLnJlYWRPbmx5ICYmIHBhcmFtRGVmLm5hbWUgIT09ICdjYXRlZ29yeS12YWx1ZScpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKHtcbiAgICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICAgIGljb246ICdmb2xkZXInLFxuICAgICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBjbGlja0NhbGxCYWNrOiB0aGlzLm9wZW5TZWxlY3RvckRpYWxvZy5iaW5kKHRoaXMsIHBhcmFtRGVmLm5hbWUpLFxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIC8vICBmYWxscyB0aHJvdWdoXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKGNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3ggJiYgIXRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGdWxsV2lkdGggPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgICB2YWx1ZTogKHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXSBhcyBzdHJpbmcpID8/ICcnLFxuICAgICAgICAgICAgICBvcHRpb25zJDogb2YoY29uc3RyYWludHNGb3JEcm9wZG93bkJveC5jb25zdHJhaW50cylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPz8gJydcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNlbGVjdG9yRGlhbG9nKHBhcmFtRGVmTmFtZSkge1xuICAgIGNvbnN0IGRhdGE6IENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhID0ge1xuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLkNIT09TRV9GT0xERVInKSxcbiAgICAgIGFjdGlvbk5hbWU6IE5vZGVBY3Rpb24uQ0hPT1NFLFxuICAgICAgY3VycmVudEZvbGRlcklkOiB0aGlzLm5vZGVJZCxcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Tm9kZVtdPigpXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZycsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3Quc3Vic2NyaWJlKFxuICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh7XG4gICAgICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICBbcGFyYW1EZWZOYW1lXTogc2VsZWN0aW9uc1swXS5pZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHNldERlZmF1bHRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHt9O1xuICAgICh0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbj8ucGFyYW1ldGVyRGVmaW5pdGlvbnMgPz8gW10pLmZvckVhY2goKHBhcmFtRGVmOiBBY3Rpb25QYXJhbWV0ZXJEZWZpbml0aW9uKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPSBwYXJhbURlZi50eXBlID09PSAnZDpib29sZWFuJyA/IGZhbHNlIDogJyc7XG4gICAgfSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUNvbnN0cmFpbnRzVG9TZWxlY3RPcHRpb25zKGNvbnN0cmFpbnRzOiBDb25zdHJhaW50VmFsdWVbXSk6IENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbjx1bmtub3duPltdIHtcbiAgICByZXR1cm4gY29uc3RyYWludHNcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmICghYS5sYWJlbCAmJiBiLmxhYmVsKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFiLmxhYmVsICYmIGEubGFiZWwpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGEubGFiZWw/LmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkgPz8gLTE7XG4gICAgICB9KVxuICAgICAgLm1hcCgoY29uc3RyYWludCkgPT4gKHtcbiAgICAgICAga2V5OiBjb25zdHJhaW50LnZhbHVlLFxuICAgICAgICBsYWJlbDogY29uc3RyYWludC5sYWJlbCA/IGAke2NvbnN0cmFpbnQubGFiZWx9IFske2NvbnN0cmFpbnQudmFsdWV9XWAgOiBjb25zdHJhaW50LnZhbHVlXG4gICAgICB9KSk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiYWNhLXJ1bGUtYWN0aW9uX19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtc2VsZWN0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3Rpb25EZWZpbml0aW9uSWRcIlxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1hY3Rpb24tc2VsZWN0XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQUNUSU9OX1NFTEVDVF9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb25EZWZpbml0aW9uIG9mIGFjdGlvbkRlZmluaXRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImFjdGlvbkRlZmluaXRpb24uaWRcIj5cbiAgICAgICAge3sgYWN0aW9uRGVmaW5pdGlvbi50aXRsZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8YWRmLWNhcmQtdmlld1xuICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtYWN0aW9uLWNhcmQtdmlld1wiXG4gICAgW3Byb3BlcnRpZXNdPVwiY2FyZFZpZXdJdGVtc1wiXG4gICAgW25nQ2xhc3NdPVwieyAnYWNhLXJ1bGUtYWN0aW9uLWZ1bGwtd2lkdGgnOiBpc0Z1bGxXaWR0aCB9XCJcbiAgICBbZWRpdGFibGVdPVwiIXJlYWRPbmx5XCI+XG4gIDwvYWRmLWNhcmQtdmlldz5cblxuPC9mb3JtPlxuIl19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1hY3Rpb24udWktY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNhLWNvbnRlbnQvZm9sZGVyLXJ1bGVzL3NyYy9ydWxlLWRldGFpbHMvYWN0aW9ucy9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY2EtY29udGVudC9mb2xkZXItcnVsZXMvc3JjL3J1bGUtZGV0YWlscy9hY3Rpb25zL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUErQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEksT0FBTyxFQUNMLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsdUJBQXVCLEVBRXZCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFFdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFDTCxlQUFlLEVBQ2YsNEJBQTRCLEVBRTVCLFVBQVUsRUFDVixVQUFVLEVBQ1gsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8s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SUFDUixDQUFDOztrSEE3UFUscUJBQXFCO3NHQUFyQixxQkFBcUIscVBBVHJCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztTQUNyRDtRQUNELHFCQUFxQjtLQUN0QiwrQ0NyRUgsNHVCQXVCQSw4VERpQ1ksWUFBWSx5UEFBRSxlQUFlLDJGQUFFLG1CQUFtQiw0ckJBQUUsa0JBQWtCLHNOQUFFLGVBQWUseVFBQUUsY0FBYzsyRkFldEcscUJBQXFCO2tCQWpCakMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxjQUFjLENBQUMsWUFDeEcsaUJBQWlCLGlCQUdaLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsYUFDdkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7eUJBQ3JEO3dCQUNELHFCQUFxQjtxQkFDdEI7ME5BSUQsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBS0Ysb0JBQW9CO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWQsIFJ1bGVBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9ydWxlLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQge1xuICBDYXJkVmlld0Jvb2xJdGVtTW9kZWwsXG4gIENhcmRWaWV3SXRlbSxcbiAgQ2FyZFZpZXdNb2R1bGUsXG4gIENhcmRWaWV3U2VsZWN0SXRlbU1vZGVsLFxuICBDYXJkVmlld1NlbGVjdEl0ZW1PcHRpb24sXG4gIENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCxcbiAgQ2FyZFZpZXdVcGRhdGVTZXJ2aWNlLFxuICBVcGRhdGVOb3RpZmljYXRpb25cbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckRlZmluaXRpb24sIE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBhcmFtZXRlckNvbnN0cmFpbnQsIENvbnN0cmFpbnRWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi1wYXJhbWV0ZXItY29uc3RyYWludC5tb2RlbCc7XG5pbXBvcnQge1xuICBDYXRlZ29yeVNlcnZpY2UsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQsXG4gIENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhLFxuICBOb2RlQWN0aW9uLFxuICBUYWdTZXJ2aWNlXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29udGVudC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgQ2FyZFZpZXdNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2FjYS1ydWxlLWFjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWxlLWFjdGlvbi51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtYWN0aW9uLnVpLWNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdhY2EtcnVsZS1hY3Rpb24nIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSdWxlQWN0aW9uVWlDb21wb25lbnQpXG4gICAgfSxcbiAgICBDYXJkVmlld1VwZGF0ZVNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlQWN0aW9uVWlDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIG5vZGVJZCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGlvbkRlZmluaXRpb25zOiBBY3Rpb25EZWZpbml0aW9uVHJhbnNmb3JtZWRbXTtcblxuICBASW5wdXQoKVxuICByZWFkT25seSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3BhcmFtZXRlckNvbnN0cmFpbnRzID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBwYXJhbWV0ZXJDb25zdHJhaW50cygpOiBBY3Rpb25QYXJhbWV0ZXJDb25zdHJhaW50W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cztcbiAgfVxuICBzZXQgcGFyYW1ldGVyQ29uc3RyYWludHModmFsdWUpIHtcbiAgICB0aGlzLl9wYXJhbWV0ZXJDb25zdHJhaW50cyA9IHZhbHVlLm1hcCgob2JqKSA9PiAoeyAuLi5vYmosIGNvbnN0cmFpbnRzOiB0aGlzLnBhcnNlQ29uc3RyYWludHNUb1NlbGVjdE9wdGlvbnMob2JqLmNvbnN0cmFpbnRzKSB9KSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHRhZ3NSZWxhdGVkUHJvcGVydGllc0FuZEFzcGVjdHMgPSBbJ2NtOnRhZ3Njb3BlJywgJ2NtOnRhZ1Njb3BlQ2FjaGUnLCAnY206dGFnZ2FibGUnXTtcbiAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yaWVzUmVsYXRlZFByb3BlcnRpZXNBbmRBc3BlY3RzID0gWydjbTpjYXRlZ29yaWVzJywgJ2NtOmdlbmVyYWxjbGFzc2lmaWFibGUnXTtcblxuICBpc0Z1bGxXaWR0aCA9IGZhbHNlO1xuXG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgfSk7XG5cbiAgY2FyZFZpZXdJdGVtczogQ2FyZFZpZXdJdGVtW10gPSBbXTtcbiAgcGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBnZXQgc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnYWN0aW9uRGVmaW5pdGlvbklkJykudmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uKCk6IEFjdGlvbkRlZmluaXRpb25UcmFuc2Zvcm1lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uRGVmaW5pdGlvbnMuZmluZCgoYWN0aW9uRGVmaW5pdGlvbjogQWN0aW9uRGVmaW5pdGlvblRyYW5zZm9ybWVkKSA9PiBhY3Rpb25EZWZpbml0aW9uLmlkID09PSB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkKTtcbiAgfVxuXG4gIGdldCBjYXJkVmlld1N0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRnVsbFdpZHRoID8geyB3aWR0aDogJzEwMCUnIH0gOiB7fTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAoYWN0aW9uOiBSdWxlQWN0aW9uKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FyZFZpZXdVcGRhdGVTZXJ2aWNlOiBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxuICApIHt9XG5cbiAgd3JpdGVWYWx1ZShhY3Rpb246IFJ1bGVBY3Rpb24pIHtcbiAgICB0aGlzLmZvcm0uc2V0VmFsdWUoe1xuICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiBhY3Rpb24uYWN0aW9uRGVmaW5pdGlvbklkXG4gICAgfSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0ge1xuICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgLi4uYWN0aW9uLnBhcmFtc1xuICAgIH07XG4gICAgdGhpcy5zZXRDYXJkVmlld1Byb3BlcnRpZXMoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChhY3Rpb246IFJ1bGVBY3Rpb24pID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFjdGlvbkRlZmluaXRpb25zID0gdGhpcy5hY3Rpb25EZWZpbml0aW9ucy5zb3J0KChmaXJzdEFjdGlvbkRlZmluaXRpb24sIHNlY29uZEFjdGlvbkRlZmluaXRpb24pID0+XG4gICAgICBmaXJzdEFjdGlvbkRlZmluaXRpb24udGl0bGUubG9jYWxlQ29tcGFyZShzZWNvbmRBY3Rpb25EZWZpbml0aW9uLnRpdGxlKVxuICAgICk7XG5cbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldERlZmF1bHRQYXJhbWV0ZXJzKCk7XG4gICAgICB0aGlzLnNldENhcmRWaWV3UHJvcGVydGllcygpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh7XG4gICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNhcmRWaWV3VXBkYXRlU2VydmljZS5pdGVtVXBkYXRlZCQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh1cGRhdGVOb3RpZmljYXRpb246IFVwZGF0ZU5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzID0ge1xuICAgICAgICAuLi50aGlzLnBhcmFtZXRlcnMsXG4gICAgICAgIC4uLnVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkXG4gICAgICB9O1xuICAgICAgdGhpcy5vbkNoYW5nZSh7XG4gICAgICAgIGFjdGlvbkRlZmluaXRpb25JZDogdGhpcy5zZWxlY3RlZEFjdGlvbkRlZmluaXRpb25JZCxcbiAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcmVhZE9ubHkgPSBjaGFuZ2VzWydyZWFkT25seSddPy5jdXJyZW50VmFsdWU7XG4gICAgaWYgKHJlYWRPbmx5ICE9PSB1bmRlZmluZWQgJiYgcmVhZE9ubHkgIT09IG51bGwpIHtcbiAgICAgIHRoaXMucmVhZE9ubHkgPSByZWFkT25seTtcbiAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShyZWFkT25seSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHNldENhcmRWaWV3UHJvcGVydGllcygpIHtcbiAgICBjb25zdCBkaXNhYmxlZFRhZ3MgPSAhdGhpcy50YWdTZXJ2aWNlLmFyZVRhZ3NFbmFibGVkKCk7XG4gICAgY29uc3QgZGlzYWJsZWRDYXRlZ29yaWVzID0gIXRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmFyZUNhdGVnb3JpZXNFbmFibGVkKCk7XG4gICAgdGhpcy5jYXJkVmlld0l0ZW1zID0gKHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uPy5wYXJhbWV0ZXJEZWZpbml0aW9ucyA/PyBbXSkubWFwKChwYXJhbURlZikgPT4ge1xuICAgICAgdGhpcy5pc0Z1bGxXaWR0aCA9IGZhbHNlO1xuICAgICAgY29uc3QgY29uc3RyYWludHNGb3JEcm9wZG93bkJveCA9IHRoaXMuX3BhcmFtZXRlckNvbnN0cmFpbnRzLmZpbmQoKG9iaikgPT4gb2JqLm5hbWUgPT09IHBhcmFtRGVmLm5hbWUpO1xuICAgICAgY29uc3QgY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwgPSB7XG4gICAgICAgIGxhYmVsOiBwYXJhbURlZi5kaXNwbGF5TGFiZWwgKyAocGFyYW1EZWYubWFuZGF0b3J5ID8gJyAqJyA6ICcnKSxcbiAgICAgICAga2V5OiBwYXJhbURlZi5uYW1lLFxuICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgICAgLi4uKHBhcmFtRGVmLm1hbmRhdG9yeVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICB2YWxpZGF0b3JzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLkVSUk9SLlJFUVVJUkVEJyxcbiAgICAgICAgICAgICAgICAgIGlzVmFsaWQ6ICh2YWx1ZTogdW5rbm93bikgPT4gISF2YWx1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pXG4gICAgICB9O1xuICAgICAgc3dpdGNoIChwYXJhbURlZi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Q6Ym9vbGVhbic6XG4gICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld0Jvb2xJdGVtTW9kZWwoe1xuICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdID8/IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgJ2Q6bm9kZXJlZic6XG4gICAgICAgICAgaWYgKCFjb25zdHJhaW50c0ZvckRyb3Bkb3duQm94ICYmICF0aGlzLnJlYWRPbmx5ICYmIHBhcmFtRGVmLm5hbWUgIT09ICdjYXRlZ29yeS12YWx1ZScpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKHtcbiAgICAgICAgICAgICAgLi4uY2FyZFZpZXdQcm9wZXJ0aWVzTW9kZWwsXG4gICAgICAgICAgICAgIGljb246ICdmb2xkZXInLFxuICAgICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBjbGlja0NhbGxCYWNrOiB0aGlzLm9wZW5TZWxlY3RvckRpYWxvZy5iaW5kKHRoaXMsIHBhcmFtRGVmLm5hbWUpLFxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJhbWV0ZXJzW3BhcmFtRGVmLm5hbWVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIC8vICBmYWxscyB0aHJvdWdoXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKGNvbnN0cmFpbnRzRm9yRHJvcGRvd25Cb3ggJiYgIXRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGdWxsV2lkdGggPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAgIC4uLmNhcmRWaWV3UHJvcGVydGllc01vZGVsLFxuICAgICAgICAgICAgICB2YWx1ZTogKHRoaXMucGFyYW1ldGVyc1twYXJhbURlZi5uYW1lXSBhcyBzdHJpbmcpID8/ICcnLFxuICAgICAgICAgICAgICBvcHRpb25zJDogb2YoY29uc3RyYWludHNGb3JEcm9wZG93bkJveC5jb25zdHJhaW50cykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRpc2FibGVkVGFncyAmJiB0aGlzLnRhZ3NSZWxhdGVkUHJvcGVydGllc0FuZEFzcGVjdHMuaW5jbHVkZXMob3B0aW9uLmtleSkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoZGlzYWJsZWRDYXRlZ29yaWVzICYmIHRoaXMuY2F0ZWdvcmllc1JlbGF0ZWRQcm9wZXJ0aWVzQW5kQXNwZWN0cy5pbmNsdWRlcyhvcHRpb24ua2V5KSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbCh7XG4gICAgICAgICAgICAuLi5jYXJkVmlld1Byb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPz8gJydcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblNlbGVjdG9yRGlhbG9nKHBhcmFtRGVmTmFtZSkge1xuICAgIGNvbnN0IGRhdGE6IENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhID0ge1xuICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLkNIT09TRV9GT0xERVInKSxcbiAgICAgIGFjdGlvbk5hbWU6IE5vZGVBY3Rpb24uQ0hPT1NFLFxuICAgICAgY3VycmVudEZvbGRlcklkOiB0aGlzLm5vZGVJZCxcbiAgICAgIHNlbGVjdDogbmV3IFN1YmplY3Q8Tm9kZVtdPigpXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nLm9wZW4oQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgZGF0YSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZycsXG4gICAgICB3aWR0aDogJzYzMHB4J1xuICAgIH0pO1xuXG4gICAgZGF0YS5zZWxlY3Quc3Vic2NyaWJlKFxuICAgICAgKHNlbGVjdGlvbnM6IE5vZGVbXSkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uc1swXS5pZCkge1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh7XG4gICAgICAgICAgICBhY3Rpb25EZWZpbml0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRBY3Rpb25EZWZpbml0aW9uSWQsXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICBbcGFyYW1EZWZOYW1lXTogc2VsZWN0aW9uc1swXS5pZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgYWN0aW9uRGVmaW5pdGlvbklkOiB0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbklkLFxuICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtZXRlcnNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHNldERlZmF1bHRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHt9O1xuICAgICh0aGlzLnNlbGVjdGVkQWN0aW9uRGVmaW5pdGlvbj8ucGFyYW1ldGVyRGVmaW5pdGlvbnMgPz8gW10pLmZvckVhY2goKHBhcmFtRGVmOiBBY3Rpb25QYXJhbWV0ZXJEZWZpbml0aW9uKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnNbcGFyYW1EZWYubmFtZV0gPSBwYXJhbURlZi50eXBlID09PSAnZDpib29sZWFuJyA/IGZhbHNlIDogJyc7XG4gICAgfSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUNvbnN0cmFpbnRzVG9TZWxlY3RPcHRpb25zKGNvbnN0cmFpbnRzOiBDb25zdHJhaW50VmFsdWVbXSk6IENhcmRWaWV3U2VsZWN0SXRlbU9wdGlvbjx1bmtub3duPltdIHtcbiAgICByZXR1cm4gY29uc3RyYWludHNcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmICghYS5sYWJlbCAmJiBiLmxhYmVsKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFiLmxhYmVsICYmIGEubGFiZWwpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGEubGFiZWw/LmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkgPz8gLTE7XG4gICAgICB9KVxuICAgICAgLm1hcCgoY29uc3RyYWludCkgPT4gKHtcbiAgICAgICAga2V5OiBjb25zdHJhaW50LnZhbHVlLFxuICAgICAgICBsYWJlbDogY29uc3RyYWludC5sYWJlbCA/IGAke2NvbnN0cmFpbnQubGFiZWx9IFske2NvbnN0cmFpbnQudmFsdWV9XWAgOiBjb25zdHJhaW50LnZhbHVlXG4gICAgICB9KSk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiYWNhLXJ1bGUtYWN0aW9uX19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtc2VsZWN0XG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3Rpb25EZWZpbml0aW9uSWRcIlxuICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwicnVsZS1hY3Rpb24tc2VsZWN0XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCInQUNBX0ZPTERFUl9SVUxFUy5SVUxFX0RFVEFJTFMuQUNUSU9OX1NFTEVDVF9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb25EZWZpbml0aW9uIG9mIGFjdGlvbkRlZmluaXRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImFjdGlvbkRlZmluaXRpb24uaWRcIj5cbiAgICAgICAge3sgYWN0aW9uRGVmaW5pdGlvbi50aXRsZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8YWRmLWNhcmQtdmlld1xuICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInJ1bGUtYWN0aW9uLWNhcmQtdmlld1wiXG4gICAgW3Byb3BlcnRpZXNdPVwiY2FyZFZpZXdJdGVtc1wiXG4gICAgW25nQ2xhc3NdPVwieyAnYWNhLXJ1bGUtYWN0aW9uLWZ1bGwtd2lkdGgnOiBpc0Z1bGxXaWR0aCB9XCJcbiAgICBbZWRpdGFibGVdPVwiIXJlYWRPbmx5XCI+XG4gIDwvYWRmLWNhcmQtdmlldz5cblxuPC9mb3JtPlxuIl19
|
|
@@ -31,7 +31,7 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
|
31
31
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
32
32
|
import { MatSelectModule } from '@angular/material/select';
|
|
33
33
|
import { MatInputModule } from '@angular/material/input';
|
|
34
|
-
import { CategoryService } from '@alfresco/adf-content-services';
|
|
34
|
+
import { CategoryService, TagService } from '@alfresco/adf-content-services';
|
|
35
35
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
36
36
|
import { debounceTime, distinctUntilChanged, first, takeUntil } from 'rxjs/operators';
|
|
37
37
|
import { Subject } from 'rxjs';
|
|
@@ -51,10 +51,9 @@ import * as i10 from "@angular/material/autocomplete";
|
|
|
51
51
|
import * as i11 from "@angular/material/progress-spinner";
|
|
52
52
|
const AUTOCOMPLETE_OPTIONS_DEBOUNCE_TIME = 500;
|
|
53
53
|
export class RuleSimpleConditionUiComponent {
|
|
54
|
-
constructor(config, categoryService) {
|
|
55
|
-
this.config = config;
|
|
54
|
+
constructor(config, categoryService, tagService) {
|
|
56
55
|
this.categoryService = categoryService;
|
|
57
|
-
this.
|
|
56
|
+
this.tagService = tagService;
|
|
58
57
|
this.form = new FormGroup({
|
|
59
58
|
field: new FormControl('cm:name'),
|
|
60
59
|
comparator: new FormControl('equals'),
|
|
@@ -64,10 +63,13 @@ export class RuleSimpleConditionUiComponent {
|
|
|
64
63
|
this.autoCompleteOptions = [];
|
|
65
64
|
this.onDestroy$ = new Subject();
|
|
66
65
|
this._readOnly = false;
|
|
66
|
+
this.disabledTags = !this.tagService.areTagsEnabled();
|
|
67
|
+
this.disabledCategories = !this.categoryService.areCategoriesEnabled();
|
|
68
|
+
this.fields = ruleConditionFields.filter((condition) => !((this.disabledTags && condition.name === 'tag') || (this.disabledCategories && condition.name === 'category')));
|
|
67
69
|
this.onChange = () => undefined;
|
|
68
70
|
this.onTouch = () => undefined;
|
|
69
71
|
this.autoCompleteDisplayFunction = (optionValue) => optionValue && this.autoCompleteOptions ? this.autoCompleteOptions.find((option) => option.value === optionValue)?.displayLabel : optionValue;
|
|
70
|
-
this.mimeTypes =
|
|
72
|
+
this.mimeTypes = config.get('mimeTypes');
|
|
71
73
|
}
|
|
72
74
|
get readOnly() {
|
|
73
75
|
return this._readOnly;
|
|
@@ -202,7 +204,7 @@ export class RuleSimpleConditionUiComponent {
|
|
|
202
204
|
};
|
|
203
205
|
}
|
|
204
206
|
}
|
|
205
|
-
RuleSimpleConditionUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleSimpleConditionUiComponent, deps: [{ token: i1.AppConfigService }, { token: i2.CategoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
207
|
+
RuleSimpleConditionUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: RuleSimpleConditionUiComponent, deps: [{ token: i1.AppConfigService }, { token: i2.CategoryService }, { token: i2.TagService }], target: i0.ɵɵFactoryTarget.Component });
|
|
206
208
|
RuleSimpleConditionUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: RuleSimpleConditionUiComponent, isStandalone: true, selector: "aca-rule-simple-condition", inputs: { readOnly: "readOnly" }, host: { classAttribute: "aca-rule-simple-condition" }, providers: [
|
|
207
209
|
{
|
|
208
210
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -230,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
230
232
|
useExisting: forwardRef(() => RuleSimpleConditionUiComponent)
|
|
231
233
|
}
|
|
232
234
|
], template: "<form class=\"aca-rule-simple-condition__form\" [formGroup]=\"form\">\n <mat-form-field class=\"aca-rule-simple-condition__form__field-input\">\n <mat-select formControlName=\"field\" data-automation-id=\"field-select\"\n (selectionChange)=\"onChangeField()\">\n <mat-option *ngIf=\"!isSelectedFieldKnown\" [value]=\"selectedField.name\" data-automation-id=\"unknown-field-option\">\n {{ selectedField.label }}\n </mat-option>\n <mat-option *ngFor=\"let field of fields\" [value]=\"field.name\">\n {{ field.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"aca-rule-simple-condition__form__comparator-input\" [class]=\"{ 'aca-hidden': isComparatorHidden }\" data-automation-id=\"comparator-form-field\">\n <mat-select formControlName=\"comparator\" data-automation-id=\"comparator-select\">\n <mat-option\n *ngFor=\"let comparator of selectedFieldComparators\"\n [value]=\"comparator.name\">\n {{ comparator.labels[this.selectedField?.type || 'equals'] | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"aca-rule-simple-condition__form__parameter-input\" [ngSwitch]=\"selectedField.type\">\n <mat-select formControlName=\"parameter\" data-automation-id=\"simple-condition-value-select\" *ngSwitchCase=\"'mimeType'\">\n <mat-option *ngFor=\"let mimeType of mimeTypes\"\n [value]=\"mimeType.value\">\n {{ mimeType.label }}\n </mat-option>\n </mat-select>\n <ng-template [ngSwitchCase]=\"'auto-complete'\">\n <input\n matInput\n [matAutocomplete]=\"auto\"\n formControlName=\"parameter\"\n (focusout)=\"autoSelectValidOption()\"\n data-automation-id=\"auto-complete-input-field\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n data-automation-id=\"folder-rule-auto-complete\"\n [autoActiveFirstOption]=\"true\"\n [autoSelectActiveOption]=\"true\"\n [displayWith]=\"autoCompleteDisplayFunction\">\n <mat-option disabled *ngIf=\"showLoadingSpinner; else optionList\">\n <span class=\"aca-rule-simple-condition__auto-complete-loading-spinner\">\n <mat-progress-spinner\n color=\"primary\"\n mode=\"indeterminate\"\n data-automation-id=\"auto-complete-loading-spinner\"\n [diameter]=\"25\"\n ></mat-progress-spinner>\n </span>\n </mat-option>\n <ng-template #optionList>\n <ng-container *ngIf=\"autoCompleteOptions?.length > 0; else noOptionsTemplate\">\n <mat-option\n *ngFor=\"let option of autoCompleteOptions\"\n [value]=\"option.value\">\n {{ option.displayLabel }}\n </mat-option>\n </ng-container>\n <ng-template #noOptionsTemplate>\n <mat-option disabled>\n {{ 'ACA_FOLDER_RULES.AUTOCOMPLETE.NO_OPTIONS_FOUND' | translate }}\n </mat-option>\n </ng-template>\n </ng-template>\n </mat-autocomplete>\n </ng-template>\n <ng-template ngSwitchDefault>\n <input matInput placeholder=\"{{ 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.VALUE' | translate }}\" type=\"text\" formControlName=\"parameter\" data-automation-id=\"value-input\">\n </ng-template>\n </mat-form-field>\n</form>\n", styles: [".aca-rule-simple-condition__form{display:flex;flex-direction:row;gap:8px}.aca-rule-simple-condition__form mat-form-field{flex:2;font-size:inherit}.aca-rule-simple-condition__form__comparator-input.aca-hidden{display:none}.aca-rule-simple-condition__auto-complete-loading-spinner{display:flex;flex-direction:row;justify-content:center;align-items:center}\n"] }]
|
|
233
|
-
}], ctorParameters: function () { return [{ type: i1.AppConfigService }, { type: i2.CategoryService }]; }, propDecorators: { readOnly: [{
|
|
235
|
+
}], ctorParameters: function () { return [{ type: i1.AppConfigService }, { type: i2.CategoryService }, { type: i2.TagService }]; }, propDecorators: { readOnly: [{
|
|
234
236
|
type: Input
|
|
235
237
|
}] } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQXlDLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2SSxPQUFPLEVBQUUscUNBQXFDLEVBQXNCLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekgsT0FBTyxFQUEyQix3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFF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LGVBQWUseVFBQ2YsY0FBYywwV0FDZCxxQkFBcUIsc1VBRXJCLGVBQWUsOEJBQ2Ysd0JBQXdCOzJGQWVmLDhCQUE4QjtrQkEzQjFDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsU0FBUzt3QkFDVCxlQUFlO3dCQUNmLHdCQUF3QjtxQkFDekIsWUFDUywyQkFBMkIsaUJBR3RCLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsYUFDakM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLENBQUM7eUJBQzlEO3FCQUNGO3FJQXFCRyxRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjMgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uLlxuICogSWYgdGhlIHNvZnR3YXJlIHdhcyBwdXJjaGFzZWQgdW5kZXIgYSBwYWlkIEFsZnJlc2NvIGxpY2Vuc2UsIHRoZSB0ZXJtcyBvZlxuICogdGhlIHBhaWQgbGljZW5zZSBhZ3JlZW1lbnQgd2lsbCBwcmV2YWlsLiBPdGhlcndpc2UsIHRoZSBzb2Z0d2FyZSBpc1xuICogcHJvdmlkZWQgdW5kZXIgdGhlIGZvbGxvd2luZyBvcGVuIHNvdXJjZSBsaWNlbnNlIHRlcm1zOlxuICpcbiAqIFRoZSBBbGZyZXNjbyBFeGFtcGxlIENvbnRlbnQgQXBwbGljYXRpb24gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGZyb20gSHlsYW5kIFNvZnR3YXJlLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJ1bGVTaW1wbGVDb25kaXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9ydWxlLXNpbXBsZS1jb25kaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgY29tcGFyYXRvckhpZGRlbkZvckNvbmRpdGlvbkZpZWxkVHlwZSwgUnVsZUNvbmRpdGlvbkZpZWxkLCBydWxlQ29uZGl0aW9uRmllbGRzIH0gZnJvbSAnLi9ydWxlLWNvbmRpdGlvbi1maWVsZHMnO1xuaW1wb3J0IHsgUnVsZUNvbmRpdGlvbkNvbXBhcmF0b3IsIHJ1bGVDb25kaXRpb25Db21wYXJhdG9ycyB9IGZyb20gJy4vcnVsZS1jb25kaXRpb24tY29tcGFyYXRvcnMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBNaW1lVHlwZSB9IGZyb20gJy4vcnVsZS1taW1lLXR5cGVzJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvbnRlbnQtc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBDYXRlZ29yeUVudHJ5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5cbmludGVyZmFjZSBBdXRvQ29tcGxldGVPcHRpb24ge1xuICBkaXNwbGF5TGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuY29uc3QgQVVUT0NPTVBMRVRFX09QVElPTlNfREVCT1VOQ0VfVElNRSA9IDUwMDtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVcbiAgXSxcbiAgc2VsZWN0b3I6ICdhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGUtc2ltcGxlLWNvbmRpdGlvbi51aS1jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J1bGUtc2ltcGxlLWNvbmRpdGlvbi51aS1jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbicgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ1bGVTaW1wbGVDb25kaXRpb25VaUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUnVsZVNpbXBsZUNvbmRpdGlvblVpQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZmllbGRzID0gcnVsZUNvbmRpdGlvbkZpZWxkcztcblxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgZmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnY206bmFtZScpLFxuICAgIGNvbXBhcmF0b3I6IG5ldyBGb3JtQ29udHJvbCgnZXF1YWxzJyksXG4gICAgcGFyYW1ldGVyOiBuZXcgRm9ybUNvbnRyb2woKVxuICB9KTtcblxuICBtaW1lVHlwZXM6IE1pbWVUeXBlW10gPSBbXTtcblxuICBhdXRvQ29tcGxldGVPcHRpb25zOiBBdXRvQ29tcGxldGVPcHRpb25bXSA9IFtdO1xuXG4gIHNob3dMb2FkaW5nU3Bpbm5lcjogYm9vbGVhbjtcblxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGF1dG9Db21wbGV0ZU9wdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfcmVhZE9ubHkgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkT25seTtcbiAgfVxuICBzZXQgcmVhZE9ubHkoaXNSZWFkT25seTogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShpc1JlYWRPbmx5KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLCBwcml2YXRlIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlKSB7XG4gICAgdGhpcy5taW1lVHlwZXMgPSB0aGlzLmNvbmZpZy5nZXQ8QXJyYXk8TWltZVR5cGU+PignbWltZVR5cGVzJyk7XG4gIH1cbiAgZ2V0IGlzU2VsZWN0ZWRGaWVsZEtub3duKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGROYW1lID0gdGhpcy5mb3JtLmdldCgnZmllbGQnKS52YWx1ZTtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMuZmluZEluZGV4KChmaWVsZDogUnVsZUNvbmRpdGlvbkZpZWxkKSA9PiBzZWxlY3RlZEZpZWxkTmFtZSA9PT0gZmllbGQubmFtZSkgPiAtMTtcbiAgfVxuICBnZXQgc2VsZWN0ZWRGaWVsZCgpOiBSdWxlQ29uZGl0aW9uRmllbGQge1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGROYW1lID0gdGhpcy5mb3JtLmdldCgnZmllbGQnKS52YWx1ZTtcbiAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZEZpZWxkS25vd24pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHNlbGVjdGVkRmllbGROYW1lLFxuICAgICAgICBsYWJlbDogc2VsZWN0ZWRGaWVsZE5hbWUsXG4gICAgICAgIHR5cGU6ICdzcGVjaWFsJ1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBzZWxlY3RlZEZpZWxkTmFtZSk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRGaWVsZENvbXBhcmF0b3JzKCk6IFJ1bGVDb25kaXRpb25Db21wYXJhdG9yW10ge1xuICAgIHJldHVybiBydWxlQ29uZGl0aW9uQ29tcGFyYXRvcnMuZmlsdGVyKChjb21wYXJhdG9yKSA9PiBPYmplY3Qua2V5cyhjb21wYXJhdG9yLmxhYmVscykuaW5jbHVkZXModGhpcy5zZWxlY3RlZEZpZWxkLnR5cGUpKTtcbiAgfVxuICBnZXQgaXNDb21wYXJhdG9ySGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb21wYXJhdG9ySGlkZGVuRm9yQ29uZGl0aW9uRmllbGRUeXBlLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRGaWVsZD8udHlwZSk7XG4gIH1cblxuICBnZXQgY29tcGFyYXRvckNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnY29tcGFyYXRvcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgcGFyYW1ldGVyQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3BhcmFtZXRlcicpO1xuICB9XG5cbiAgb25DaGFuZ2U6IChjb25kaXRpb246IFJ1bGVTaW1wbGVDb25kaXRpb24pID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG4gIG9uVG91Y2g6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUnVsZVNpbXBsZUNvbmRpdGlvbikge1xuICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlPy5maWVsZCA9PT0gJ2NhdGVnb3J5Jykge1xuICAgICAgdGhpcy5zaG93TG9hZGluZ1NwaW5uZXIgPSB0cnVlO1xuICAgICAgdGhpcy5jYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLmdldENhdGVnb3J5KHZhbHVlLnBhcmFtZXRlciwgeyBpbmNsdWRlOiBbJ3BhdGgnXSB9KVxuICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKChjYXRlZ29yeTogQ2F0ZWdvcnlFbnRyeSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd0xvYWRpbmdTcGlubmVyID0gZmFsc2U7XG4gICAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5idWlsZEF1dG9jb21wbGV0ZU9wdGlvbkZyb21DYXRlZ29yeShjYXRlZ29yeS5lbnRyeS5pZCwgY2F0ZWdvcnkuZW50cnkucGF0aCwgY2F0ZWdvcnkuZW50cnkubmFtZSk7XG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgICB0aGlzLnBhcmFtZXRlckNvbnRyb2wuc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5fcmVhZE9ubHkgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZUZpZWxkKCkge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZEZpZWxkQ29tcGFyYXRvcnMuZmluZCgoY29tcGFyYXRvcikgPT4gY29tcGFyYXRvci5uYW1lID09PSB0aGlzLmNvbXBhcmF0b3JDb250cm9sLnZhbHVlKSkge1xuICAgICAgdGhpcy5jb21wYXJhdG9yQ29udHJvbC5zZXRWYWx1ZSgnZXF1YWxzJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5wYXJhbWV0ZXJDb250cm9sLnZhbHVlICYmIHRoaXMuc2VsZWN0ZWRGaWVsZD8udHlwZSA9PT0gJ21pbWVUeXBlJykge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJDb250cm9sLnNldFZhbHVlKHRoaXMubWltZVR5cGVzWzBdPy52YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhcmFtZXRlckNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMucGFyYW1ldGVyQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh2YWx1ZTogUnVsZVNpbXBsZUNvbmRpdGlvbikgPT4ge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybVxuICAgICAgLmdldCgnZmllbGQnKVxuICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdjYXRlZ29yeScpIHtcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1cbiAgICAgICAgICAgIC5nZXQoJ3BhcmFtZXRlcicpXG4gICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgZGVib3VuY2VUaW1lKEFVVE9DT01QTEVURV9PUFRJT05TX0RFQk9VTkNFX1RJTUUpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNhdGVnb3J5TmFtZSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmdldENhdGVnb3JpZXMoY2F0ZWdvcnlOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucGFyYW1ldGVyQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2F0ZWdvcmllcyhjYXRlZ29yeU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuc2hvd0xvYWRpbmdTcGlubmVyID0gdHJ1ZTtcbiAgICB0aGlzLmNhdGVnb3J5U2VydmljZVxuICAgICAgLnNlYXJjaENhdGVnb3JpZXMoY2F0ZWdvcnlOYW1lKVxuICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV4aXN0aW5nQ2F0ZWdvcmllc1Jlc3VsdCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dMb2FkaW5nU3Bpbm5lciA9IGZhbHNlO1xuICAgICAgICBjb25zdCBvcHRpb25zOiBBdXRvQ29tcGxldGVPcHRpb25bXSA9IGV4aXN0aW5nQ2F0ZWdvcmllc1Jlc3VsdD8ubGlzdD8uZW50cmllcz8ubWFwKChyb3dFbnRyeSkgPT5cbiAgICAgICAgICB0aGlzLmJ1aWxkQXV0b2NvbXBsZXRlT3B0aW9uRnJvbUNhdGVnb3J5KHJvd0VudHJ5LmVudHJ5LmlkLCByb3dFbnRyeS5lbnRyeS5wYXRoLm5hbWUsIHJvd0VudHJ5LmVudHJ5Lm5hbWUpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbnMgPSB0aGlzLnNvcnRBdXRvQ29tcGxldGVPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydEF1dG9Db21wbGV0ZU9wdGlvbnMoYXV0b0NvbXBsZXRlT3B0aW9uczogQXV0b0NvbXBsZXRlT3B0aW9uW10pOiBBdXRvQ29tcGxldGVPcHRpb25bXSB7XG4gICAgcmV0dXJuIGF1dG9Db21wbGV0ZU9wdGlvbnMuc29ydCgob3B0aW9uMSwgb3B0aW9uMikgPT4gb3B0aW9uMS5kaXNwbGF5TGFiZWwubG9jYWxlQ29tcGFyZShvcHRpb24yLmRpc3BsYXlMYWJlbCkpO1xuICB9XG5cbiAgYXV0b0NvbXBsZXRlRGlzcGxheUZ1bmN0aW9uID0gKG9wdGlvblZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgICBvcHRpb25WYWx1ZSAmJiB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbnMgPyB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IG9wdGlvblZhbHVlKT8uZGlzcGxheUxhYmVsIDogb3B0aW9uVmFsdWU7XG5cbiAgYXV0b1NlbGVjdFZhbGlkT3B0aW9uKCkge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMucGFyYW1ldGVyQ29udHJvbC52YWx1ZTtcbiAgICBjb25zdCBpc1ZhbGlkVmFsdWVTZWxlY3RlZCA9ICEhdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gY3VycmVudFZhbHVlKTtcbiAgICBpZiAoIWlzVmFsaWRWYWx1ZVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnBhcmFtZXRlckNvbnRyb2wuc2V0VmFsdWUodGhpcy5hdXRvQ29tcGxldGVPcHRpb25zPy5bMF0udmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGJ1aWxkQXV0b2NvbXBsZXRlT3B0aW9uRnJvbUNhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZywgY2F0ZWdvcnlQYXRoOiBzdHJpbmcsIGNhdGVnb3J5TmFtZTogc3RyaW5nKTogQXV0b0NvbXBsZXRlT3B0aW9uIHtcbiAgICBjb25zdCBwYXRoID0gY2F0ZWdvcnlQYXRoLnNwbGl0KCcvJykuc3BsaWNlKDMpLmpvaW4oJy8nKTtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IGNhdGVnb3J5SWQsXG4gICAgICBkaXNwbGF5TGFiZWw6IHBhdGggPyBgJHtwYXRofS8ke2NhdGVnb3J5TmFtZX1gIDogY2F0ZWdvcnlOYW1lXG4gICAgfTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFjYS1ydWxlLXNpbXBsZS1jb25kaXRpb25fX2Zvcm1fX2ZpZWxkLWlucHV0XCI+XG4gICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJmaWVsZC1zZWxlY3RcIlxuICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNoYW5nZUZpZWxkKClcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIWlzU2VsZWN0ZWRGaWVsZEtub3duXCIgW3ZhbHVlXT1cInNlbGVjdGVkRmllbGQubmFtZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInVua25vd24tZmllbGQtb3B0aW9uXCI+XG4gICAgICAgIHt7IHNlbGVjdGVkRmllbGQubGFiZWwgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIiBbdmFsdWVdPVwiZmllbGQubmFtZVwiPlxuICAgICAgICB7eyBmaWVsZC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19mb3JtX19jb21wYXJhdG9yLWlucHV0XCIgW2NsYXNzXT1cInsgJ2FjYS1oaWRkZW4nOiBpc0NvbXBhcmF0b3JIaWRkZW4gfVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbXBhcmF0b3ItZm9ybS1maWVsZFwiPlxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbXBhcmF0b3JcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21wYXJhdG9yLXNlbGVjdFwiPlxuICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbXBhcmF0b3Igb2Ygc2VsZWN0ZWRGaWVsZENvbXBhcmF0b3JzXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXBhcmF0b3IubmFtZVwiPlxuICAgICAgICB7eyBjb21wYXJhdG9yLmxhYmVsc1t0aGlzLnNlbGVjdGVkRmllbGQ/LnR5cGUgfHwgJ2VxdWFscyddIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFjYS1ydWxlLXNpbXBsZS1jb25kaXRpb25fX2Zvcm1fX3BhcmFtZXRlci1pbnB1dFwiIFtuZ1N3aXRjaF09XCJzZWxlY3RlZEZpZWxkLnR5cGVcIj5cbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJwYXJhbWV0ZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJzaW1wbGUtY29uZGl0aW9uLXZhbHVlLXNlbGVjdFwiICpuZ1N3aXRjaENhc2U9XCInbWltZVR5cGUnXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbWltZVR5cGUgb2YgbWltZVR5cGVzXCJcbiAgICAgICAgW3ZhbHVlXT1cIm1pbWVUeXBlLnZhbHVlXCI+XG4gICAgICAgIHt7IG1pbWVUeXBlLmxhYmVsIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidhdXRvLWNvbXBsZXRlJ1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFyYW1ldGVyXCJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwiYXV0b1NlbGVjdFZhbGlkT3B0aW9uKClcIlxuICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImF1dG8tY29tcGxldGUtaW5wdXQtZmllbGRcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJmb2xkZXItcnVsZS1hdXRvLWNvbXBsZXRlXCJcbiAgICAgICAgICBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgIFthdXRvU2VsZWN0QWN0aXZlT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJhdXRvQ29tcGxldGVEaXNwbGF5RnVuY3Rpb25cIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIGRpc2FibGVkICpuZ0lmPVwic2hvd0xvYWRpbmdTcGlubmVyOyBlbHNlIG9wdGlvbkxpc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19hdXRvLWNvbXBsZXRlLWxvYWRpbmctc3Bpbm5lclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIG1vZGU9XCJpbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImF1dG8tY29tcGxldGUtbG9hZGluZy1zcGlubmVyXCJcbiAgICAgICAgICAgICAgICAgIFtkaWFtZXRlcl09XCIyNVwiXG4gICAgICAgICAgICAgICAgPjwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI29wdGlvbkxpc3Q+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0b0NvbXBsZXRlT3B0aW9ucz8ubGVuZ3RoID4gMDsgZWxzZSBub09wdGlvbnNUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXV0b0NvbXBsZXRlT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5kaXNwbGF5TGFiZWwgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vT3B0aW9uc1RlbXBsYXRlPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBkaXNhYmxlZD5cbiAgICAgICAgICAgICAgICB7eyAnQUNBX0ZPTERFUl9SVUxFUy5BVVRPQ09NUExFVEUuTk9fT1BUSU9OU19GT1VORCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3sgJ0FDQV9GT0xERVJfUlVMRVMuUlVMRV9ERVRBSUxTLlBMQUNFSE9MREVSLlZBTFVFJyB8IHRyYW5zbGF0ZSB9fVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFyYW1ldGVyXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwidmFsdWUtaW5wdXRcIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9mb3JtPlxuIl19
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FjYS1jb250ZW50L2ZvbGRlci1ydWxlcy9zcmMvcnVsZS1kZXRhaWxzL2NvbmRpdGlvbnMvcnVsZS1zaW1wbGUtY29uZGl0aW9uLnVpLWNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQXlDLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2SSxPQUFPLEVBQUUscUNBQXFDLEVBQXNCLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekgsT0FBTyxFQUEyQix3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFF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QUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVk7U0FDOUQsQ0FBQztJQUNKLENBQUM7OzJIQW5MVSw4QkFBOEI7K0dBQTlCLDhCQUE4QixpS0FSOUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO1NBQzlEO0tBQ0YsMEJDNUVILGsrR0EyRUEsNFpEckJJLFlBQVksMmdCQUNaLGVBQWUsMkZBQ2YsbUJBQW1CLDQ4QkFDbkIsa0JBQWtCLHNOQUNsQixlQUFlLHlRQUNmLGNBQWMsMFdBQ2QscUJBQXFCLHNVQUVyQixlQUFlLDhCQUNmLHdCQUF3QjsyRkFlZiw4QkFBOEI7a0JBM0IxQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix3QkFBd0I7cUJBQ3pCLFlBQ1MsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLGFBQ2pDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDO3lCQUM5RDtxQkFDRjs4SkFtQkcsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDIzIEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbi5cbiAqIElmIHRoZSBzb2Z0d2FyZSB3YXMgcHVyY2hhc2VkIHVuZGVyIGEgcGFpZCBBbGZyZXNjbyBsaWNlbnNlLCB0aGUgdGVybXMgb2ZcbiAqIHRoZSBwYWlkIGxpY2Vuc2UgYWdyZWVtZW50IHdpbGwgcHJldmFpbC4gT3RoZXJ3aXNlLCB0aGUgc29mdHdhcmUgaXNcbiAqIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgb3BlbiBzb3VyY2UgbGljZW5zZSB0ZXJtczpcbiAqXG4gKiBUaGUgQWxmcmVzY28gRXhhbXBsZSBDb250ZW50IEFwcGxpY2F0aW9uIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhlIEFsZnJlc2NvIEV4YW1wbGUgQ29udGVudCBBcHBsaWNhdGlvbiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBmcm9tIEh5bGFuZCBTb2Z0d2FyZS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSdWxlU2ltcGxlQ29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwvcnVsZS1zaW1wbGUtY29uZGl0aW9uLm1vZGVsJztcbmltcG9ydCB7IGNvbXBhcmF0b3JIaWRkZW5Gb3JDb25kaXRpb25GaWVsZFR5cGUsIFJ1bGVDb25kaXRpb25GaWVsZCwgcnVsZUNvbmRpdGlvbkZpZWxkcyB9IGZyb20gJy4vcnVsZS1jb25kaXRpb24tZmllbGRzJztcbmltcG9ydCB7IFJ1bGVDb25kaXRpb25Db21wYXJhdG9yLCBydWxlQ29uZGl0aW9uQ29tcGFyYXRvcnMgfSBmcm9tICcuL3J1bGUtY29uZGl0aW9uLWNvbXBhcmF0b3JzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgTWltZVR5cGUgfSBmcm9tICcuL3J1bGUtbWltZS10eXBlcyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlLCBUYWdTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb250ZW50LXNlcnZpY2VzJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgQ2F0ZWdvcnlFbnRyeSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuXG5pbnRlcmZhY2UgQXV0b0NvbXBsZXRlT3B0aW9uIHtcbiAgZGlzcGxheUxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFVVE9DT01QTEVURV9PUFRJT05TX0RFQk9VTkNFX1RJTUUgPSA1MDA7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXG4gIF0sXG4gIHNlbGVjdG9yOiAnYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydWxlLXNpbXBsZS1jb25kaXRpb24udWktY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ydWxlLXNpbXBsZS1jb25kaXRpb24udWktY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2FjYS1ydWxlLXNpbXBsZS1jb25kaXRpb24nIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSdWxlU2ltcGxlQ29uZGl0aW9uVWlDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVTaW1wbGVDb25kaXRpb25VaUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBmaWVsZDogbmV3IEZvcm1Db250cm9sKCdjbTpuYW1lJyksXG4gICAgY29tcGFyYXRvcjogbmV3IEZvcm1Db250cm9sKCdlcXVhbHMnKSxcbiAgICBwYXJhbWV0ZXI6IG5ldyBGb3JtQ29udHJvbCgpXG4gIH0pO1xuXG4gIG1pbWVUeXBlczogTWltZVR5cGVbXSA9IFtdO1xuXG4gIGF1dG9Db21wbGV0ZU9wdGlvbnM6IEF1dG9Db21wbGV0ZU9wdGlvbltdID0gW107XG5cbiAgc2hvd0xvYWRpbmdTcGlubmVyOiBib29sZWFuO1xuXG4gIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgYXV0b0NvbXBsZXRlT3B0aW9uc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9yZWFkT25seSA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRPbmx5O1xuICB9XG4gIHNldCByZWFkT25seShpc1JlYWRPbmx5OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKGlzUmVhZE9ubHkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZFRhZ3MgPSAhdGhpcy50YWdTZXJ2aWNlLmFyZVRhZ3NFbmFibGVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGlzYWJsZWRDYXRlZ29yaWVzID0gIXRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmFyZUNhdGVnb3JpZXNFbmFibGVkKCk7XG5cbiAgcmVhZG9ubHkgZmllbGRzID0gcnVsZUNvbmRpdGlvbkZpZWxkcy5maWx0ZXIoXG4gICAgKGNvbmRpdGlvbikgPT4gISgodGhpcy5kaXNhYmxlZFRhZ3MgJiYgY29uZGl0aW9uLm5hbWUgPT09ICd0YWcnKSB8fCAodGhpcy5kaXNhYmxlZENhdGVnb3JpZXMgJiYgY29uZGl0aW9uLm5hbWUgPT09ICdjYXRlZ29yeScpKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQXBwQ29uZmlnU2VydmljZSwgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSwgcHJpdmF0ZSB0YWdTZXJ2aWNlOiBUYWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5taW1lVHlwZXMgPSBjb25maWcuZ2V0PEFycmF5PE1pbWVUeXBlPj4oJ21pbWVUeXBlcycpO1xuICB9XG4gIGdldCBpc1NlbGVjdGVkRmllbGRLbm93bigpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpZWxkTmFtZSA9IHRoaXMuZm9ybS5nZXQoJ2ZpZWxkJykudmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmRJbmRleCgoZmllbGQ6IFJ1bGVDb25kaXRpb25GaWVsZCkgPT4gc2VsZWN0ZWRGaWVsZE5hbWUgPT09IGZpZWxkLm5hbWUpID4gLTE7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkRmllbGQoKTogUnVsZUNvbmRpdGlvbkZpZWxkIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpZWxkTmFtZSA9IHRoaXMuZm9ybS5nZXQoJ2ZpZWxkJykudmFsdWU7XG4gICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWRGaWVsZEtub3duKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBzZWxlY3RlZEZpZWxkTmFtZSxcbiAgICAgICAgbGFiZWw6IHNlbGVjdGVkRmllbGROYW1lLFxuICAgICAgICB0eXBlOiAnc3BlY2lhbCdcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gc2VsZWN0ZWRGaWVsZE5hbWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkRmllbGRDb21wYXJhdG9ycygpOiBSdWxlQ29uZGl0aW9uQ29tcGFyYXRvcltdIHtcbiAgICByZXR1cm4gcnVsZUNvbmRpdGlvbkNvbXBhcmF0b3JzLmZpbHRlcigoY29tcGFyYXRvcikgPT4gT2JqZWN0LmtleXMoY29tcGFyYXRvci5sYWJlbHMpLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRGaWVsZC50eXBlKSk7XG4gIH1cbiAgZ2V0IGlzQ29tcGFyYXRvckhpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29tcGFyYXRvckhpZGRlbkZvckNvbmRpdGlvbkZpZWxkVHlwZS5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkRmllbGQ/LnR5cGUpO1xuICB9XG5cbiAgZ2V0IGNvbXBhcmF0b3JDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2NvbXBhcmF0b3InKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHBhcmFtZXRlckNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdwYXJhbWV0ZXInKTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAoY29uZGl0aW9uOiBSdWxlU2ltcGxlQ29uZGl0aW9uKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFJ1bGVTaW1wbGVDb25kaXRpb24pIHtcbiAgICB0aGlzLmZvcm0uc2V0VmFsdWUodmFsdWUpO1xuICAgIGlmICh2YWx1ZT8uZmllbGQgPT09ICdjYXRlZ29yeScpIHtcbiAgICAgIHRoaXMuc2hvd0xvYWRpbmdTcGlubmVyID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlXG4gICAgICAgIC5nZXRDYXRlZ29yeSh2YWx1ZS5wYXJhbWV0ZXIsIHsgaW5jbHVkZTogWydwYXRoJ10gfSlcbiAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2F0ZWdvcnk6IENhdGVnb3J5RW50cnkpID0+IHtcbiAgICAgICAgICB0aGlzLnNob3dMb2FkaW5nU3Bpbm5lciA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuYnVpbGRBdXRvY29tcGxldGVPcHRpb25Gcm9tQ2F0ZWdvcnkoY2F0ZWdvcnkuZW50cnkuaWQsIGNhdGVnb3J5LmVudHJ5LnBhdGgsIGNhdGVnb3J5LmVudHJ5Lm5hbWUpO1xuICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9ucy5wdXNoKG9wdGlvbik7XG4gICAgICAgICAgdGhpcy5wYXJhbWV0ZXJDb250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3JlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlYWRPbmx5ID0gZmFsc2U7XG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2VGaWVsZCgpIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGaWVsZENvbXBhcmF0b3JzLmZpbmQoKGNvbXBhcmF0b3IpID0+IGNvbXBhcmF0b3IubmFtZSA9PT0gdGhpcy5jb21wYXJhdG9yQ29udHJvbC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuY29tcGFyYXRvckNvbnRyb2wuc2V0VmFsdWUoJ2VxdWFscycpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucGFyYW1ldGVyQ29udHJvbC52YWx1ZSAmJiB0aGlzLnNlbGVjdGVkRmllbGQ/LnR5cGUgPT09ICdtaW1lVHlwZScpIHtcbiAgICAgIHRoaXMucGFyYW1ldGVyQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm1pbWVUeXBlc1swXT8udmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wYXJhbWV0ZXJDb250cm9sLnZhbHVlKSB7XG4gICAgICB0aGlzLnBhcmFtZXRlckNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgodmFsdWU6IFJ1bGVTaW1wbGVDb25kaXRpb24pID0+IHtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1cbiAgICAgIC5nZXQoJ2ZpZWxkJylcbiAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZpZWxkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkID09PSAnY2F0ZWdvcnknKSB7XG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtXG4gICAgICAgICAgICAuZ2V0KCdwYXJhbWV0ZXInKVxuICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIGRlYm91bmNlVGltZShBVVRPQ09NUExFVEVfT1BUSU9OU19ERUJPVU5DRV9USU1FKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjYXRlZ29yeU5hbWUpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzKGNhdGVnb3J5TmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnBhcmFtZXRlckNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhdGVnb3JpZXMoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNob3dMb2FkaW5nU3Bpbm5lciA9IHRydWU7XG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2VcbiAgICAgIC5zZWFyY2hDYXRlZ29yaWVzKGNhdGVnb3J5TmFtZSlcbiAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKChleGlzdGluZ0NhdGVnb3JpZXNSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5zaG93TG9hZGluZ1NwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogQXV0b0NvbXBsZXRlT3B0aW9uW10gPSBleGlzdGluZ0NhdGVnb3JpZXNSZXN1bHQ/Lmxpc3Q/LmVudHJpZXM/Lm1hcCgocm93RW50cnkpID0+XG4gICAgICAgICAgdGhpcy5idWlsZEF1dG9jb21wbGV0ZU9wdGlvbkZyb21DYXRlZ29yeShyb3dFbnRyeS5lbnRyeS5pZCwgcm93RW50cnkuZW50cnkucGF0aC5uYW1lLCByb3dFbnRyeS5lbnRyeS5uYW1lKVxuICAgICAgICApO1xuICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zID0gdGhpcy5zb3J0QXV0b0NvbXBsZXRlT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNvcnRBdXRvQ29tcGxldGVPcHRpb25zKGF1dG9Db21wbGV0ZU9wdGlvbnM6IEF1dG9Db21wbGV0ZU9wdGlvbltdKTogQXV0b0NvbXBsZXRlT3B0aW9uW10ge1xuICAgIHJldHVybiBhdXRvQ29tcGxldGVPcHRpb25zLnNvcnQoKG9wdGlvbjEsIG9wdGlvbjIpID0+IG9wdGlvbjEuZGlzcGxheUxhYmVsLmxvY2FsZUNvbXBhcmUob3B0aW9uMi5kaXNwbGF5TGFiZWwpKTtcbiAgfVxuXG4gIGF1dG9Db21wbGV0ZURpc3BsYXlGdW5jdGlvbiA9IChvcHRpb25WYWx1ZTogc3RyaW5nKTogc3RyaW5nID0+XG4gICAgb3B0aW9uVmFsdWUgJiYgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zID8gdGhpcy5hdXRvQ29tcGxldGVPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBvcHRpb25WYWx1ZSk/LmRpc3BsYXlMYWJlbCA6IG9wdGlvblZhbHVlO1xuXG4gIGF1dG9TZWxlY3RWYWxpZE9wdGlvbigpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnBhcmFtZXRlckNvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgaXNWYWxpZFZhbHVlU2VsZWN0ZWQgPSAhIXRoaXMuYXV0b0NvbXBsZXRlT3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IGN1cnJlbnRWYWx1ZSk7XG4gICAgaWYgKCFpc1ZhbGlkVmFsdWVTZWxlY3RlZCkge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJDb250cm9sLnNldFZhbHVlKHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9ucz8uWzBdLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBidWlsZEF1dG9jb21wbGV0ZU9wdGlvbkZyb21DYXRlZ29yeShjYXRlZ29yeUlkOiBzdHJpbmcsIGNhdGVnb3J5UGF0aDogc3RyaW5nLCBjYXRlZ29yeU5hbWU6IHN0cmluZyk6IEF1dG9Db21wbGV0ZU9wdGlvbiB7XG4gICAgY29uc3QgcGF0aCA9IGNhdGVnb3J5UGF0aC5zcGxpdCgnLycpLnNwbGljZSgzKS5qb2luKCcvJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBjYXRlZ29yeUlkLFxuICAgICAgZGlzcGxheUxhYmVsOiBwYXRoID8gYCR7cGF0aH0vJHtjYXRlZ29yeU5hbWV9YCA6IGNhdGVnb3J5TmFtZVxuICAgIH07XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbl9fZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19mb3JtX19maWVsZC1pbnB1dFwiPlxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImZpZWxkXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZmllbGQtc2VsZWN0XCJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGFuZ2VGaWVsZCgpXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIiFpc1NlbGVjdGVkRmllbGRLbm93blwiIFt2YWx1ZV09XCJzZWxlY3RlZEZpZWxkLm5hbWVcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJ1bmtub3duLWZpZWxkLW9wdGlvblwiPlxuICAgICAgICB7eyBzZWxlY3RlZEZpZWxkLmxhYmVsIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzXCIgW3ZhbHVlXT1cImZpZWxkLm5hbWVcIj5cbiAgICAgICAge3sgZmllbGQubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbl9fZm9ybV9fY29tcGFyYXRvci1pbnB1dFwiIFtjbGFzc109XCJ7ICdhY2EtaGlkZGVuJzogaXNDb21wYXJhdG9ySGlkZGVuIH1cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb21wYXJhdG9yLWZvcm0tZmllbGRcIj5cbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb21wYXJhdG9yXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiY29tcGFyYXRvci1zZWxlY3RcIj5cbiAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb21wYXJhdG9yIG9mIHNlbGVjdGVkRmllbGRDb21wYXJhdG9yc1wiXG4gICAgICAgIFt2YWx1ZV09XCJjb21wYXJhdG9yLm5hbWVcIj5cbiAgICAgICAge3sgY29tcGFyYXRvci5sYWJlbHNbdGhpcy5zZWxlY3RlZEZpZWxkPy50eXBlIHx8ICdlcXVhbHMnXSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhY2EtcnVsZS1zaW1wbGUtY29uZGl0aW9uX19mb3JtX19wYXJhbWV0ZXItaW5wdXRcIiBbbmdTd2l0Y2hdPVwic2VsZWN0ZWRGaWVsZC50eXBlXCI+XG4gICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwicGFyYW1ldGVyXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwic2ltcGxlLWNvbmRpdGlvbi12YWx1ZS1zZWxlY3RcIiAqbmdTd2l0Y2hDYXNlPVwiJ21pbWVUeXBlJ1wiPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG1pbWVUeXBlIG9mIG1pbWVUeXBlc1wiXG4gICAgICAgIFt2YWx1ZV09XCJtaW1lVHlwZS52YWx1ZVwiPlxuICAgICAgICB7eyBtaW1lVHlwZS5sYWJlbCB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCInYXV0by1jb21wbGV0ZSdcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhcmFtZXRlclwiXG4gICAgICAgICAgKGZvY3Vzb3V0KT1cImF1dG9TZWxlY3RWYWxpZE9wdGlvbigpXCJcbiAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhdXRvLWNvbXBsZXRlLWlucHV0LWZpZWxkXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZm9sZGVyLXJ1bGUtYXV0by1jb21wbGV0ZVwiXG4gICAgICAgICAgW2F1dG9BY3RpdmVGaXJzdE9wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbYXV0b1NlbGVjdEFjdGl2ZU9wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiYXV0b0NvbXBsZXRlRGlzcGxheUZ1bmN0aW9uXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBkaXNhYmxlZCAqbmdJZj1cInNob3dMb2FkaW5nU3Bpbm5lcjsgZWxzZSBvcHRpb25MaXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNhLXJ1bGUtc2ltcGxlLWNvbmRpdGlvbl9fYXV0by1jb21wbGV0ZS1sb2FkaW5nLXNwaW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhdXRvLWNvbXBsZXRlLWxvYWRpbmctc3Bpbm5lclwiXG4gICAgICAgICAgICAgICAgICBbZGlhbWV0ZXJdPVwiMjVcIlxuICAgICAgICAgICAgICAgID48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNvcHRpb25MaXN0PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF1dG9Db21wbGV0ZU9wdGlvbnM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9PcHRpb25zVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGF1dG9Db21wbGV0ZU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7eyBvcHRpb24uZGlzcGxheUxhYmVsIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub09wdGlvbnNUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQ+XG4gICAgICAgICAgICAgICAge3sgJ0FDQV9GT0xERVJfUlVMRVMuQVVUT0NPTVBMRVRFLk5PX09QVElPTlNfRk9VTkQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIG5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7ICdBQ0FfRk9MREVSX1JVTEVTLlJVTEVfREVUQUlMUy5QTEFDRUhPTERFUi5WQUxVRScgfCB0cmFuc2xhdGUgfX1cIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInBhcmFtZXRlclwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInZhbHVlLWlucHV0XCI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZm9ybT5cbiJdfQ==
|