@acorex/platform 18.1.0 → 18.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/layout/builder/lib/builder/builder.module.mjs +4 -3
- package/esm2022/layout/builder/lib/builder/index.mjs +2 -1
- package/esm2022/layout/builder/lib/builder/widget-renderer.component.directive.mjs +280 -0
- package/esm2022/layout/designer/lib/designer/components/board/board.component.mjs +3 -3
- package/esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.mjs +3 -3
- package/esm2022/layout/designer/lib/designer/designer.component.mjs +9 -5
- package/esm2022/layout/designer/lib/designer/shared/designer.service.mjs +21 -21
- package/esm2022/layout/designer/lib/designer/shared/designer.typs.mjs +6 -2
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/actions/button/button-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +9 -9
- package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-view.component.mjs +6 -6
- package/esm2022/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.mjs +5 -3
- package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-column.component.mjs +36 -6
- package/esm2022/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.mjs +2 -1
- package/esm2022/widgets/lib/widgets/layout/block/block-widget-view.component.mjs +4 -4
- package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +28 -16
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-designer.component.mjs +37 -31
- package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +27 -6
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.mjs +32 -26
- package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +82 -8
- package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +27 -6
- package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +6 -4
- package/fesm2022/acorex-platform-layout-builder.mjs +276 -4
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +36 -28
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-CGhOE3jO.mjs → acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-CGhOE3jO.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +2 -2
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-COvuxaTt.mjs → acorex-platform-widgets-button-widget-designer.component-Oxpdaz9P.mjs} +3 -3
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-COvuxaTt.mjs.map → acorex-platform-widgets-button-widget-designer.component-Oxpdaz9P.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +277 -107
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/builder.module.d.ts +5 -4
- package/layout/builder/lib/builder/index.d.ts +1 -0
- package/layout/builder/lib/builder/widget-renderer.component.directive.d.ts +42 -0
- package/layout/designer/lib/designer/designer.component.d.ts +1 -0
- package/layout/designer/lib/designer/shared/designer.service.d.ts +2 -1
- package/layout/designer/lib/designer/shared/designer.typs.d.ts +15 -0
- package/package.json +7 -7
- package/widgets/lib/widgets/actions/button/button-widget-designer.component.d.ts +1 -1
- package/widgets/lib/widgets/actions/button/button-widget-view.component.d.ts +1 -1
- package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +5 -0
- package/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.d.ts +2 -1
- package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +3 -0
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +11 -2
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +3 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { AXLoadingDialogService } from '@acorex/components/loading-dialog';
|
|
1
2
|
import { AXPopupService } from '@acorex/components/popup';
|
|
3
|
+
import { AXFileService } from '@acorex/core/file';
|
|
2
4
|
import { AXPWidgetRegistryService, AXPWidgetsCatalog, } from '@acorex/platform/layout/builder';
|
|
3
5
|
import { computed, inject, Injectable, signal } from '@angular/core';
|
|
4
6
|
import { cloneDeep, get, merge, set, sortBy } from 'lodash-es';
|
|
5
7
|
import { Subject } from 'rxjs';
|
|
6
8
|
import { AddWidgetCommand, CommandManager, RemoveWidgetCommand, UpdateWidgetCommand } from './command';
|
|
7
|
-
import {
|
|
8
|
-
import { AXLoadingDialogService } from '@acorex/components/loading-dialog';
|
|
9
|
+
import { AXPDesignerModes } from './designer.typs';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export class AXPDesignerService {
|
|
11
12
|
constructor() {
|
|
@@ -29,7 +30,7 @@ export class AXPDesignerService {
|
|
|
29
30
|
this.selectedNode = signal(null);
|
|
30
31
|
this._focusedNode = null;
|
|
31
32
|
this.focusedNode = () => this._focusedNode;
|
|
32
|
-
this.mode = signal(
|
|
33
|
+
this.mode = signal(AXPDesignerModes.Design);
|
|
33
34
|
this.size = signal('xl');
|
|
34
35
|
this.onSelected = new Subject();
|
|
35
36
|
this.onRefresh = new Subject();
|
|
@@ -225,7 +226,8 @@ export class AXPDesignerService {
|
|
|
225
226
|
return cloned;
|
|
226
227
|
}
|
|
227
228
|
removeWidget(node) {
|
|
228
|
-
if (node.type === 'document-layout' ||
|
|
229
|
+
if (node.type === 'document-layout' ||
|
|
230
|
+
(node.type === 'page-layout' && (this.document().children?.length ?? 1) == 1)) {
|
|
229
231
|
console.error('Cannot remove the page node.');
|
|
230
232
|
return; // Prevent removing the root page node or document
|
|
231
233
|
}
|
|
@@ -345,7 +347,7 @@ export class AXPDesignerService {
|
|
|
345
347
|
const setNameId = (node) => {
|
|
346
348
|
set(node, 'name', this.generateUniqueName(node.type));
|
|
347
349
|
set(node, '__meta__.id', this.generateUniqueId());
|
|
348
|
-
node.children?.forEach(n => {
|
|
350
|
+
node.children?.forEach((n) => {
|
|
349
351
|
setNameId(n);
|
|
350
352
|
});
|
|
351
353
|
};
|
|
@@ -390,7 +392,7 @@ export class AXPDesignerService {
|
|
|
390
392
|
const totalNode = this.countTotalNodes(rootNode);
|
|
391
393
|
const processedNodes = { count: 0 };
|
|
392
394
|
const button = {
|
|
393
|
-
text:
|
|
395
|
+
text: 'Cancel',
|
|
394
396
|
autofocus: true,
|
|
395
397
|
color: 'primary',
|
|
396
398
|
onClick: (e) => {
|
|
@@ -399,26 +401,24 @@ export class AXPDesignerService {
|
|
|
399
401
|
};
|
|
400
402
|
const dialog = this.loadingService.show({
|
|
401
403
|
mode: 'determinate',
|
|
402
|
-
title:
|
|
404
|
+
title: 'Import Json File',
|
|
403
405
|
progressColor: 'primary',
|
|
404
|
-
text:
|
|
406
|
+
text: 'Processing json file',
|
|
405
407
|
status: `0 of ${totalNode}`,
|
|
406
|
-
buttons: [
|
|
407
|
-
button
|
|
408
|
-
]
|
|
408
|
+
buttons: [button],
|
|
409
409
|
});
|
|
410
410
|
try {
|
|
411
411
|
const root = await this.addMetaToNodes(rootNode, processedNodes, (count) => {
|
|
412
|
-
dialog.setProgressValue(Math.ceil(count / totalNode * 100));
|
|
412
|
+
dialog.setProgressValue(Math.ceil((count / totalNode) * 100));
|
|
413
413
|
dialog.setProgressStatus(`${count} of ${totalNode}`);
|
|
414
414
|
});
|
|
415
415
|
const page = root.children?.[0];
|
|
416
416
|
this.document.set(root);
|
|
417
417
|
this.currentPage.set(page);
|
|
418
|
-
dialog.setProgressColor(
|
|
419
|
-
dialog.setProgressText(
|
|
420
|
-
button.text =
|
|
421
|
-
button.color =
|
|
418
|
+
dialog.setProgressColor('success');
|
|
419
|
+
dialog.setProgressText('Json file processed successfully');
|
|
420
|
+
button.text = 'Okay';
|
|
421
|
+
button.color = 'success';
|
|
422
422
|
dialog.setProgressValue(100);
|
|
423
423
|
setTimeout(() => {
|
|
424
424
|
this.reRenderPage();
|
|
@@ -426,10 +426,10 @@ export class AXPDesignerService {
|
|
|
426
426
|
}, 1000);
|
|
427
427
|
}
|
|
428
428
|
catch (error) {
|
|
429
|
-
dialog.setProgressColor(
|
|
430
|
-
dialog.setProgressText(error instanceof Error ? error.message :
|
|
431
|
-
button.text =
|
|
432
|
-
button.color =
|
|
429
|
+
dialog.setProgressColor('danger');
|
|
430
|
+
dialog.setProgressText(error instanceof Error ? error.message : 'Cannot process json file');
|
|
431
|
+
button.text = 'Close';
|
|
432
|
+
button.color = 'danger';
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
435
|
}
|
|
@@ -485,4 +485,4 @@ export class AXPDesignerService {
|
|
|
485
485
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDesignerService, decorators: [{
|
|
486
486
|
type: Injectable
|
|
487
487
|
}] });
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFJTCx3QkFBd0IsRUFFeEIsaUJBQWlCLEdBQ2xCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBNkIsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFvRHRHLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2hELDJCQUFzQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRWxELGFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMs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TUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUM3RyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxNQUFNO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxNQUFNLENBQ2IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFDbkUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ2Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBbGlCVSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvbXBvbmVudCxcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsXG4gIEFYUFdpZGdldFJlbmRlck1vZGUsXG4gIEFYUFdpZGdldHNDYXRhbG9nLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIG1lcmdlLCBzZXQsIHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZGRXaWRnZXRDb21tYW5kLCBDb21tYW5kTWFuYWdlciwgUmVtb3ZlV2lkZ2V0Q29tbWFuZCwgVXBkYXRlV2lkZ2V0Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZCc7XG5pbXBvcnQgeyBBWEZpbGVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgQVhMb2FkaW5nRGlhbG9nQnV0dG9uSXRlbSwgQVhMb2FkaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nLWRpYWxvZyc7XG5cbmV4cG9ydCB0eXBlIEFYUERlc2lnbmVyUHJldmlld1NpemUgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnIHwgJ3h4bCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJGb2N1c0NvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyVXBkYXRlQ29tbWFuZCB7XG4gIHZhbHVlczogYW55O1xuICB3aWRnZXQ/OiBBWFBXaWRnZXROb2RlIHwgbnVsbDtcbiAgbW9kZTogJ2luaXQnIHwgJ3VwZGF0ZSc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyVXBkYXRlRXZlbnQge1xuICB2YWx1ZXM6IGFueTtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyU2VsZWN0Q29tbWFuZCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclJlZ2lzdGVyQ29tbWFuZCB7XG4gIGlkOiBudW1iZXI7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbiAgY29uZmlnOiBBWFBXaWRnZXRDb25maWc7XG4gIGluc3RhbmNlOiBBWFBXaWRnZXRDb21wb25lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJTZWxlY3RFdmVudCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclJlZnJlc2hDb21tYW5kIHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclJlZnJlc2hFdmVudCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lckFkZE5vZGVDb21tYW5kIHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lckFkZE5vZGVFdmVudCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lckZvY3VzRXZlbnQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIGZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYTG9hZGluZ0RpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIHdpZGdldFJlZ2lzdGVyeVNlcnZpY2UgPSBpbmplY3QoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnQgPSBzaWduYWwodGhpcy5jcmVhdGVEb2MoKSk7XG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50UGFnZUluZGV4ID0gc2lnbmFsKDApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50UGFnZSA9IHNpZ25hbCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/LlswXSEpO1xuXG4gIHByaXZhdGUgY29tbWFuZE1hbmFnZXIgPSBpbmplY3QoQ29tbWFuZE1hbmFnZXIpO1xuXG4gIHByaXZhdGUgY2xpcGJvYXJkID0gc2lnbmFsPEFYUFdpZGdldE5vZGUgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGNhbkN1dENvcHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkTm9kZSgpICE9IG51bGwgJiYgdGhpcy5zZWxlY3RlZE5vZGUoKT8ubmFtZSAhPSAncGFnZScpO1xuICBwdWJsaWMgY2FuUGFzdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNsaXBib2FyZCgpICE9IG51bGwpO1xuXG4gIHB1YmxpYyByZWFkb25seSBoaXN0b3J5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21tYW5kTWFuYWdlci5oaXN0b3J5KCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuVW5kbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuVW5kbygpKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhblJlZG8gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNhblJlZG8oKSk7XG5cbiAgcHVibGljIGJyZWFkY3J1bWJzID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Tm9kZVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWROb2RlKCkgPyB0aGlzLmZpbmRCcmVhZGNydW1icyh0aGlzLmN1cnJlbnRQYWdlKCksIHRoaXMuc2VsZWN0ZWROb2RlKCkhKSA/PyBbXSA6IFtdO1xuICB9KTtcblxuICBwdWJsaWMgc2VsZWN0ZWROb2RlID0gc2lnbmFsPEFYUFdpZGdldE5vZGUgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIF9mb2N1c2VkTm9kZTogQVhQV2lkZ2V0Tm9kZSB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgZm9jdXNlZE5vZGUgPSAoKSA9PiB0aGlzLl9mb2N1c2VkTm9kZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbW9kZSA9IHNpZ25hbDxBWFBXaWRnZXRSZW5kZXJNb2RlPignZGVzaWduZXInKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpemUgPSBzaWduYWw8QVhQRGVzaWduZXJQcmV2aWV3U2l6ZT4oJ3hsJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lclNlbGVjdEV2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25SZWZyZXNoID0gbmV3IFN1YmplY3Q8QVhQRGVzaWduZXJSZWZyZXNoRXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvblVwZGF0ZSA9IG5ldyBTdWJqZWN0PEFYUERlc2lnbmVyVXBkYXRlRXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvbkZvY3VzZWQgPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lckZvY3VzRXZlbnQ+KCk7XG5cbiAgcHVibGljIHJlZ2lzdGVyKGNvbW1hbmQ6IEFYUERlc2lnbmVyUmVnaXN0ZXJDb21tYW5kKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IGNvbW1hbmQud2lkZ2V0IH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdChjb21tYW5kOiBBWFBEZXNpZ25lclNlbGVjdENvbW1hbmQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQoY29tbWFuZC53aWRnZXQpO1xuICAgIHRoaXMub25TZWxlY3RlZC5uZXh0KGNvbW1hbmQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShjb21tYW5kOiBBWFBEZXNpZ25lclVwZGF0ZUNvbW1hbmQpOiB2b2lkIHtcbiAgICBjb25zdCBub2RlID0gY29tbWFuZC53aWRnZXQgPz8gdGhpcy5zZWxlY3RlZE5vZGUoKTtcblxuICAgIGlmIChjb21tYW5kLm1vZGUgPT0gJ3VwZGF0ZScgJiYgbm9kZSkge1xuICAgICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChuZXcgVXBkYXRlV2lkZ2V0Q29tbWFuZChub2RlISwgY29tbWFuZC52YWx1ZXMsIG5vZGUhKSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLnVwZGF0ZSgoYykgPT4gbWVyZ2Uobm9kZSwgY29tbWFuZC52YWx1ZXMpKTtcbiAgICB0aGlzLm9uVXBkYXRlLm5leHQoeyB3aWRnZXQ6IG5vZGUhLCB2YWx1ZXM6IGNvbW1hbmQudmFsdWVzIH0pO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKGNvbW1hbmQ6IEFYUERlc2lnbmVyRm9jdXNDb21tYW5kKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzZWROb2RlICE9IGNvbW1hbmQud2lkZ2V0KSB7XG4gICAgICB0aGlzLl9mb2N1c2VkTm9kZSA9IGNvbW1hbmQud2lkZ2V0O1xuICAgICAgdGhpcy5vbkZvY3VzZWQubmV4dCh7IHdpZGdldDogdGhpcy5fZm9jdXNlZE5vZGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goY29tbWFuZDogQVhQRGVzaWduZXJSZWZyZXNoQ29tbWFuZCkge1xuICAgIHRoaXMub25SZWZyZXNoLm5leHQoeyB3aWRnZXQ6IGNvbW1hbmQud2lkZ2V0IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQnJlYWRjcnVtYnMobm9kZTogQVhQV2lkZ2V0Tm9kZSwgdGFyZ2V0Tm9kZTogQVhQV2lkZ2V0Tm9kZSwgYnJlYWRjcnVtYjogQVhQV2lkZ2V0Tm9kZVtdID0gW10pOiBBWFBXaWRnZXROb2RlW10gfCB1bmRlZmluZWQge1xuICAgIC8vIEFkZCB0aGUgY3VycmVudCBub2RlIHRvIHRoZSBicmVhZGNydW1iIHBhdGhcbiAgICBjb25zdCBjdXJyZW50QnJlYWRjcnVtYiA9IFsuLi5icmVhZGNydW1iLCBub2RlXTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgdGhlIHRhcmdldCBub2RlXG4gICAgaWYgKG5vZGUgPT09IHRhcmdldE5vZGUpIHtcbiAgICAgIHJldHVybiBjdXJyZW50QnJlYWRjcnVtYjtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgbm9kZSBoYXMgY2hpbGRyZW4sIHJlY3Vyc2l2ZWx5IHNlYXJjaCB0aGVtXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRCcmVhZGNydW1icyhjaGlsZCwgdGFyZ2V0Tm9kZSwgY3VycmVudEJyZWFkY3J1bWIpO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgaWYgbm8gbWF0Y2ggaXMgZm91bmRcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgc2hvd1BpY2tlcihjdXJyZW50Tm9kZTogQVhQV2lkZ2V0Tm9kZSk6IFByb21pc2U8QVhQV2lkZ2V0Tm9kZVtdPiB7XG4gICAgY29uc3QgY29tID0gYXdhaXQgaW1wb3J0KCcuLi9jb21wb25lbnRzL3dpZGdldC1waWNrZXIvd2lkZ2V0LXBpY2tlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUERlc2lnbmVyV2lkZ2V0UGlja2VyQ29tcG9uZW50KTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6ICdXaWRnZXQgR2FsbGVyeScsXG4gICAgICBzaXplOiAnbWQnLFxuICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHdpZGdldHM6IHNvcnRCeShcbiAgICAgICAgICB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UuYWxsKCkuZmlsdGVyKChjKSA9PiBjLnZpc2libGUgIT0gZmFsc2UpLFxuICAgICAgICAgIChjKSA9PiBjLnRpdGxlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IHdpZGdldHM6IEFYUFdpZGdldE5vZGVbXSA9IFtdO1xuICAgIGlmICgocmVzdWx0LmRhdGE/LndpZGdldHMgPz8gW10pLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXN1bHQuZGF0YT8ud2lkZ2V0cyBhcyBBWFBXaWRnZXRDb25maWdbXTtcbiAgICAgIHNlbGVjdGVkLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgd2lkZ2V0cy5wdXNoKHRoaXMuYWRkV2lkZ2V0KGN1cnJlbnROb2RlLCB7IHR5cGU6IGMubmFtZSB9KSEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB3aWRnZXRzO1xuICB9XG5cbiAgcHVibGljIG5ldygpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNsZWFyKCk7XG4gICAgdGhpcy5kb2N1bWVudC5zZXQodGhpcy5jcmVhdGVEb2MoKSk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQodGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5bMF0hKTtcbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2MoKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgY29uc3QgZG9jOiBBWFBXaWRnZXROb2RlID0ge1xuICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZG9jdW1lbnQsXG4gICAgICBjaGlsZHJlbjogW3RoaXMuY3JlYXRlUGFnZSgpXSxcbiAgICAgIG5hbWU6ICdkb2N1bWVudCcsXG4gICAgfTtcbiAgICBzZXQoZG9jLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgcmV0dXJuIGRvYztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUGFnZSgpOiBBWFBXaWRnZXROb2RlIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZSgncGFnZS1sYXlvdXQnKTtcblxuICAgIGNvbnN0IHBhZ2U6IEFYUFdpZGdldE5vZGUgPSB7XG4gICAgICB0eXBlOiAncGFnZS1sYXlvdXQnLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgbmFtZTogJ3BhZ2UtbGF5b3V0MScsXG4gICAgfTtcblxuICAgIHNldChwYWdlLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgc2V0KHBhZ2UsICdfX21ldGFfXy5jb25maWcnLCBjb25maWcpO1xuICAgIHJldHVybiBwYWdlO1xuICB9XG5cblxuXG4gIHB1YmxpYyBhZGROZXdQYWdlKCkge1xuICAgIHRoaXMuYWRkV2lkZ2V0KHRoaXMuZG9jdW1lbnQoKSwgdGhpcy5jcmVhdGVQYWdlKCkpO1xuICAgIHRoaXMuZ29Ub1BhZ2UodGhpcy5jdXJyZW50UGFnZUluZGV4KCkgKyAxKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVQYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5baW5kZXhdITtcbiAgICB0aGlzLnJlbW92ZVdpZGdldChwYWdlKTtcbiAgICB0aGlzLmdvVG9QYWdlKGluZGV4IC0gMSk7XG4gIH1cblxuICBwdWJsaWMgY2xvbmVQYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5baW5kZXhdITtcbiAgICB0aGlzLmNsb25lKHBhZ2UpO1xuICAgIHRoaXMuZ29Ub1BhZ2UoKHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8ubGVuZ3RoID8/IDEpIC0gMSk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub1BhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleC5zZXQoaW5kZXgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQodGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5bdGhpcy5jdXJyZW50UGFnZUluZGV4KCldISk7XG4gICAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZVJlbmRlclBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoeyAuLi50aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kV2lkZ2V0QnlJZChyb290OiBBWFBXaWRnZXROb2RlLCBpZDogc3RyaW5nKTogQVhQV2lkZ2V0Tm9kZSB8IG51bGwge1xuICAgIGlmIChnZXQocm9vdCwgJ19fbWV0YV9fLmlkJykgPT09IGlkKSB7XG4gICAgICByZXR1cm4gcm9vdDsgLy8gUmV0dXJuIHRoZSByb290IGlmIGl0IG1hdGNoZXMgdGhlIElEXG4gICAgfVxuICAgIGlmICghcm9vdC5jaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJvb3QuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5maW5kV2lkZ2V0QnlJZChjaGlsZCwgaWQpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybiBmb3VuZDsgLy8gUmV0dXJuIHRoZSBmb3VuZCBjaGlsZFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsOyAvLyBOb2RlIG5vdCBmb3VuZFxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUGFyZW50KGlkOiBzdHJpbmcsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSA9IHRoaXMuY3VycmVudFBhZ2UoKSk6IEFYUFdpZGdldE5vZGUgfCBudWxsIHtcbiAgICBpZiAoIXBhcmVudC5jaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAocGFyZW50LmNoaWxkcmVuLnNvbWUoKGNoaWxkKSA9PiBnZXQoY2hpbGQsICdfX21ldGFfXy5pZCcpID09PSBpZCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7IC8vIFJldHVybiB0aGlzIG5vZGUgYXMgaXQncyB0aGUgcGFyZW50IG9mIHRoZSBub2RlIHdpdGggdGhlIGdpdmVuIElEXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kUGFyZW50ID0gdGhpcy5maW5kUGFyZW50KGlkLCBjaGlsZCk7XG4gICAgICBpZiAoZm91bmRQYXJlbnQpIHJldHVybiBmb3VuZFBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDsgLy8gTm8gcGFyZW50IGZvdW5kXG4gIH1cblxuICBwcml2YXRlIGZpbmROZWFyZXN0Q29udGFpbmVyKG5vZGU6IEFYUFdpZGdldE5vZGUsIHNlYXJjaFVwd2FyZDogYm9vbGVhbiA9IHRydWUpOiBBWFBXaWRnZXROb2RlIHwgbnVsbCB7XG4gICAgaWYgKHNlYXJjaFVwd2FyZCkge1xuICAgICAgbGV0IGN1cnJlbnQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gbm9kZTtcbiAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKGN1cnJlbnQudHlwZSk7XG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gdGhpcy5maW5kUGFyZW50KGdldChjdXJyZW50LCAnX19tZXRhX18uaWQnKSEpOyAvLyBVc2UgZmluZFBhcmVudCB0byBuYXZpZ2F0ZSB1cHdhcmRzXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBzZWFyY2ggdG8gZmluZCB0aGUgZmlyc3QgY29udGFpbmVyIGFtb25nIGNoaWxkcmVuXG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShjaGlsZC50eXBlKTtcbiAgICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy50eXBlID09ICdjb250YWluZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZvdW5kQ29udGFpbmVyID0gdGhpcy5maW5kTmVhcmVzdENvbnRhaW5lcihjaGlsZCwgZmFsc2UpOyAvLyBDb250aW51ZSBzZWFyY2hpbmcgZG93bndhcmRzXG4gICAgICAgICAgaWYgKGZvdW5kQ29udGFpbmVyKSByZXR1cm4gZm91bmRDb250YWluZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIG5vIGNvbnRhaW5lciBmb3VuZFxuICB9XG5cbiAgYWRkV2lkZ2V0KGN1cnJlbnROb2RlOiBBWFBXaWRnZXROb2RlLCBub2RlOiBBWFBXaWRnZXROb2RlKTogQVhQV2lkZ2V0Tm9kZSB8IG51bGwge1xuICAgIGlmICghY3VycmVudE5vZGUpIHJldHVybiBudWxsO1xuICAgIC8vXG4gICAgY29uc3QgY2xvbmVkID0gY2xvbmVEZWVwKG5vZGUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKG5vZGUudHlwZSk7XG5cbiAgICAvL1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZXhlY3V0ZUNvbW1hbmQobmV3IEFkZFdpZGdldENvbW1hbmQoY2xvbmVkLCBjdXJyZW50Tm9kZSwgY3VycmVudE5vZGUpKTtcbiAgICAvL1xuICAgIGNsb25lZC5uYW1lID0gdGhpcy5nZW5lcmF0ZVVuaXF1ZU5hbWUobm9kZS50eXBlKTtcbiAgICBzZXQoY2xvbmVkLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgc2V0KGNsb25lZCwgJ19fbWV0YV9fLmNvbmZpZycsIGNvbmZpZyk7XG4gICAgLy9cbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICAgIC8vXG4gICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiBjdXJyZW50Tm9kZSB9KTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogY2xvbmVkIH0pO1xuICAgIHJldHVybiBjbG9uZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlV2lkZ2V0KG5vZGU6IEFYUFdpZGdldE5vZGUpOiB2b2lkIHtcbiAgICBpZiAobm9kZS50eXBlID09PSAnZG9jdW1lbnQtbGF5b3V0JyB8fCAobm9kZS50eXBlID09PSAncGFnZS1sYXlvdXQnICYmICh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Lmxlbmd0aCA/PyAxKSA9PSAxKSkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHJlbW92ZSB0aGUgcGFnZSBub2RlLicpO1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IHJlbW92aW5nIHRoZSByb290IHBhZ2Ugbm9kZSBvciBkb2N1bWVudFxuICAgIH1cblxuICAgIGNvbnN0IG5vZGVJZFRvUmVtb3ZlID0gZ2V0KG5vZGUsICdfX21ldGFfXy5pZCcpO1xuICAgIGlmICghbm9kZUlkVG9SZW1vdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm9kZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgX19tZXRhX18uaWQgdG8gaWRlbnRpZnkgaXQgZm9yIHJlbW92YWwuJyk7XG4gICAgfVxuXG4gICAgLy8gRmluZCB0aGUgcGFyZW50IG9mIHRoZSBub2RlIHRvIHJlbW92ZSBpdFxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChub2RlSWRUb1JlbW92ZSwgdGhpcy5kb2N1bWVudCgpKTtcbiAgICBpZiAoIXBhcmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgbm9kZSBub3QgZm91bmQuIFRoZSBub2RlIG1pZ2h0IGJlIHRoZSByb290IG5vZGUgb3IgZG9lcyBub3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkTm9kZSgpOyAvLyBDYXB0dXJlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbm9kZSBiZWZvcmUgcmVtb3ZhbFxuICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUmVtb3ZlV2lkZ2V0Q29tbWFuZChub2RlLCBwYXJlbnQsIHByZXZpb3VzU2VsZWN0aW9uISk7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChjb21tYW5kKTtcblxuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogcGFyZW50IH0pOyAvLyBSZWZyZXNoIHRoZSBVSSB0byByZWZsZWN0IGNoYW5nZXNcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogcGFyZW50IH0pOyAvLyBTZWxlY3QgdGhlIHBhcmVudCBub2RlIGFmdGVyIHJlbW92YWxcbiAgfVxuXG4gIG5hdmlnYXRlVG8oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZ29Ub0NvbW1hbmQoaW5kZXgpO1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuY29tbWFuZE1hbmFnZXIuc2VsZWN0ZWROb2RlKCk7XG4gICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiB0aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IGN1cnJlbnRTZWxlY3Rpb24hIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZG8oKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5yZWRvKCk7XG4gICAgdGhpcy5yZVJlbmRlclBhZ2UoKTtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5jb21tYW5kTWFuYWdlci5zZWxlY3RlZE5vZGUoKTtcbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogY3VycmVudFNlbGVjdGlvbiEgfSk7XG4gIH1cblxuICBwdWJsaWMgdW5kbygpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLnVuZG8oKTtcbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmNvbW1hbmRNYW5hZ2VyLnNlbGVjdGVkTm9kZSgpO1xuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjdXJyZW50U2VsZWN0aW9uISB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckhpc3RvcnkoKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVNZXRhUHJvcChvYmo6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnX19tZXRhX18nO1xuICAgIC8vIENoZWNrIGlmIHRoZSBvYmplY3QgaXMgYW4gYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCgoaXRlbSkgPT4gdGhpcy5yZW1vdmVNZXRhUHJvcChpdGVtKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICAgIC8vIENyZWF0ZSBhIG5ldyBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdFxuICAgICAgbGV0IG5ld09iajogYW55ID0ge307XG4gICAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBrZXkgaWYgaXQncyBub3QgdGhlIG5vZGVOYW1lIHdlIHdhbnQgdG8gcmVtb3ZlXG4gICAgICAgIGlmIChrZXkgIT09IG5vZGVOYW1lKSB7XG4gICAgICAgICAgbmV3T2JqW2tleV0gPSB0aGlzLnJlbW92ZU1ldGFQcm9wKG9ialtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3Qgb3IgYXJyYXksIHJldHVybiBpdCBhcyBpc1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZE1ldGFUb05vZGVzKG5vZGU6IEFYUFdpZGdldE5vZGUsIHByb2Nlc3NlZE5vZGVzOiB7IGNvdW50OiBudW1iZXIgfSwgcHJvZ3Jlc3NDYWxsYmFjazogKHByb2Nlc3NlZDogbnVtYmVyKSA9PiB2b2lkKTogUHJvbWlzZTxBWFBXaWRnZXROb2RlPiB7XG4gICAgLy8gQXBwbHkgeW91ciBtZXRhIGxvZ2ljIGhlcmVcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShub2RlLnR5cGUpO1xuICAgIC8vXG4gICAgc2V0KG5vZGUsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICBzZXQobm9kZSwgJ19fbWV0YV9fLmNvbmZpZycsIGNvbmZpZyk7XG4gICAgLy9cbiAgICAvLyBJbmNyZW1lbnQgdGhlIHByb2Nlc3NlZCBub2RlIGNvdW50IGFuZCB1cGRhdGUgdGhlIHByb2dyZXNzIGRpYWxvZ1xuICAgIHByb2Nlc3NlZE5vZGVzLmNvdW50Kys7XG4gICAgcHJvZ3Jlc3NDYWxsYmFjayhwcm9jZXNzZWROb2Rlcy5jb3VudCk7XG4gICAgLy8gUmVjdXJzaXZlbHkgcHJvY2VzcyBjaGlsZCBub2RlcyB1c2luZyBQcm9taXNlLmFsbFxuICAgIGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgbm9kZS5jaGlsZHJlbiA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBub2RlLmNoaWxkcmVuLm1hcChhc3luYyBjaGlsZCA9PiBhd2FpdCB0aGlzLmFkZE1ldGFUb05vZGVzKGNoaWxkLCBwcm9jZXNzZWROb2RlcywgcHJvZ3Jlc3NDYWxsYmFjaykpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5KHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGwgPSB0aGlzLnNlbGVjdGVkTm9kZSgpKTogdm9pZCB7XG4gICAgaWYgKCF3aWRnZXQpIHJldHVybjtcbiAgICB0aGlzLmNsaXBib2FyZC5zZXQoY2xvbmVEZWVwKHdpZGdldCkpOyAvLyBVc2UgbG9kYXNoJ3MgY2xvbmVEZWVwIHRvIGVuc3VyZSBhIGRlZXAgY29weVxuICB9XG5cbiAgcHVibGljIGN1dCh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgdGhpcy5jb3B5KHdpZGdldCk7IC8vIENvcHkgdGhlIHdpZGdldCB0byB0aGUgY2xpcGJvYXJkXG4gICAgdGhpcy5yZW1vdmVXaWRnZXQod2lkZ2V0KTsgLy8gUmV1c2UgdGhlIHJlbW92ZVdpZGdldCBtZXRob2Qgd2hpY2ggc2hvdWxkIGhhbmRsZSB1bmRvIGludGVybmFsbHlcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgdGhpcy5jb3B5KHdpZGdldCk7IC8vIENvcHkgdGhlIHdpZGdldCB0byB0aGUgY2xpcGJvYXJkXG4gICAgaWYgKHdpZGdldC50eXBlID09ICdwYWdlLWxheW91dCcpIHtcbiAgICAgIHRoaXMucGFzdGUodGhpcy5kb2N1bWVudCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXN0ZSh3aWRnZXQhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGFzdGUocGFyZW50Tm9kZTogQVhQV2lkZ2V0Tm9kZSA9IHRoaXMuc2VsZWN0ZWROb2RlKCkgPz8gdGhpcy5jdXJyZW50UGFnZSgpKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNsaXBib2FyZCgpIHx8ICF0aGlzLnNlbGVjdGVkTm9kZSgpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDbGlwYm9hcmQgaXMgZW1wdHkgb3Igbm8gbm9kZSBpcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3Tm9kZSA9IGNsb25lRGVlcCh0aGlzLmNsaXBib2FyZCgpKSE7XG4gICAgY29uc3QgbmVhcmVzdENvbnRhaW5lciA9IHRoaXMuZmluZE5lYXJlc3RDb250YWluZXIocGFyZW50Tm9kZSwgdHJ1ZSk7XG4gICAgaWYgKCFuZWFyZXN0Q29udGFpbmVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzdWl0YWJsZSBjb250YWluZXIgZm91bmQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCFuZWFyZXN0Q29udGFpbmVyLmNoaWxkcmVuKSB7XG4gICAgICBuZWFyZXN0Q29udGFpbmVyLmNoaWxkcmVuID0gW107XG4gICAgfVxuICAgIC8vXG4gICAgY29uc3Qgc2V0TmFtZUlkID0gKG5vZGU6IEFYUFdpZGdldE5vZGUpID0+IHtcbiAgICAgIHNldChub2RlLCAnbmFtZScsIHRoaXMuZ2VuZXJhdGVVbmlxdWVOYW1lKG5vZGUudHlwZSkpO1xuICAgICAgc2V0KG5vZGUsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2gobiA9PiB7XG4gICAgICAgIHNldE5hbWVJZChuKTtcbiAgICAgIH0pXG4gICAgfVxuICAgIHNldE5hbWVJZChuZXdOb2RlKTtcbiAgICAvL1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZXhlY3V0ZUNvbW1hbmQobmV3IEFkZFdpZGdldENvbW1hbmQobmV3Tm9kZSwgbmVhcmVzdENvbnRhaW5lciwgbmVhcmVzdENvbnRhaW5lcikpO1xuICAgIC8vXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IG5lYXJlc3RDb250YWluZXIgfSk7IC8vIFJlZnJlc2ggdGhlIFVJXG4gICAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogbmV3Tm9kZSB9KTsgLy8gU2VsZWN0IHRoZSBuZXdseSBwYXN0ZWQgbm9kZVxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0KCk6IHN0cmluZyB7XG4gICAgY29uc3QganNvbiA9IHRoaXMucmVtb3ZlTWV0YVByb3AodGhpcy5kb2N1bWVudCgpKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gIH1cblxuICBkb3dubG9hZEpzb24oKSB7XG4gICAgLy8gQ29udmVydCB0aGUgb2JqZWN0IHRvIGEgSlNPTiBzdHJpbmdcbiAgICBjb25zdCBqc29uU3RyID0gdGhpcy5leHBvcnQoKTtcblxuICAgIC8vIENyZWF0ZSBhIGJsb2Igb2JqZWN0IGZyb20gdGhlIEpTT04gc3RyaW5nXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uU3RyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG5cbiAgICAvLyBDcmVhdGUgYSBVUkwgZm9yIHRoZSBibG9iIG9iamVjdFxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAvLyBDcmVhdGUgYSB0ZW1wb3JhcnkgPGE+IGVsZW1lbnQgdG8gdHJpZ2dlciB0aGUgZG93bmxvYWRcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLmRvd25sb2FkID0gJ2V4cG9ydC5qc29uJztcblxuICAgIC8vIEFwcGVuZCB0aGUgPGE+IGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50IGJvZHkgKG5lY2Vzc2FyeSBmb3Igc29tZSBicm93c2VycylcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuXG4gICAgLy8gVHJpZ2dlciB0aGUgZG93bmxvYWQgYnkgY2xpY2tpbmcgdGhlIDxhPiBlbGVtZW50XG4gICAgYS5jbGljaygpO1xuICAgIC8vIENsZWFuIHVwIGJ5IHJldm9raW5nIHRoZSBvYmplY3QgVVJMIGFuZCByZW1vdmluZyB0aGUgPGE+IGVsZW1lbnRcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgfVxuXG5cbiAgYXN5bmMgaW1wb3J0SlNvbigpIHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHRoaXMuZmlsZVNlcnZpY2UuY2hvb3NlKHsgbXVsdGlwbGU6IGZhbHNlLCBhY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1swXTtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmaWxlLnRleHQoKTtcbiAgICAgIGNvbnN0IHJvb3ROb2RlID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBBWFBXaWRnZXROb2RlO1xuICAgICAgY29uc3QgdG90YWxOb2RlID0gdGhpcy5jb3VudFRvdGFsTm9kZXMocm9vdE5vZGUpXG4gICAgICBjb25zdCBwcm9jZXNzZWROb2RlcyA9IHsgY291bnQ6IDAgfTtcblxuICAgICAgY29uc3QgYnV0dG9uOiBBWExvYWRpbmdEaWFsb2dCdXR0b25JdGVtID0ge1xuICAgICAgICB0ZXh0OiBcIkNhbmNlbFwiLFxuICAgICAgICBhdXRvZm9jdXM6IHRydWUsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coe1xuICAgICAgICBtb2RlOiAnZGV0ZXJtaW5hdGUnLFxuICAgICAgICB0aXRsZTogXCJJbXBvcnQgSnNvbiBGaWxlXCIsXG4gICAgICAgIHByb2dyZXNzQ29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgdGV4dDogXCJQcm9jZXNzaW5nIGpzb24gZmlsZVwiLFxuICAgICAgICBzdGF0dXM6IGAwIG9mICR7dG90YWxOb2RlfWAsXG4gICAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAgICBidXR0b25cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBhd2FpdCB0aGlzLmFkZE1ldGFUb05vZGVzKHJvb3ROb2RlLCBwcm9jZXNzZWROb2RlcywgKGNvdW50KSA9PiB7XG4gICAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVmFsdWUoTWF0aC5jZWlsKGNvdW50IC8gdG90YWxOb2RlICogMTAwKSk7XG4gICAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzU3RhdHVzKGAke2NvdW50fSBvZiAke3RvdGFsTm9kZX1gKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSByb290LmNoaWxkcmVuPy5bMF0hO1xuICAgICAgICB0aGlzLmRvY3VtZW50LnNldChyb290KTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG4gICAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc0NvbG9yKFwic3VjY2Vzc1wiKTtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVGV4dChcIkpzb24gZmlsZSBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5XCIpO1xuICAgICAgICBidXR0b24udGV4dCA9IFwiT2theVwiO1xuICAgICAgICBidXR0b24uY29sb3IgPSBcInN1Y2Nlc3NcIjtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVmFsdWUoMTAwKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZVJlbmRlclBhZ2UoKTtcbiAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NDb2xvcihcImRhbmdlclwiKTtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVGV4dChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFwiQ2Fubm90IHByb2Nlc3MganNvbiBmaWxlXCIpO1xuICAgICAgICBidXR0b24udGV4dCA9IFwiQ2xvc2VcIjtcbiAgICAgICAgYnV0dG9uLmNvbG9yID0gXCJkYW5nZXJcIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvdW50VG90YWxOb2Rlcyhub2RlOiBBWFBXaWRnZXROb2RlKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSAxOyAvLyBDb3VudCB0aGUgY3VycmVudCBub2RlXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBjb3VudCArPSBub2RlLmNoaWxkcmVuLnJlZHVjZSgoc3VtLCBjaGlsZCkgPT4gc3VtICsgdGhpcy5jb3VudFRvdGFsTm9kZXMoY2hpbGQpLCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cblxuICBwcml2YXRlIGdlbmVyYXRlVW5pcXVlTmFtZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIE5vcm1hbGl6ZSB0aGUgdHlwZSB0byBmb2xsb3cgY2FtZWxDYXNlIGNvbnZlbnRpb25cbiAgICBjb25zdCBiYXNlTmFtZSA9IHR5cGUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpO1xuICAgIGxldCBpbmRleCA9IDE7XG4gICAgbGV0IHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG5cbiAgICAvLyBHYXRoZXIgYWxsIGV4aXN0aW5nIG5hbWVzIHRvIGNoZWNrIGFnYWluc3RcbiAgICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5jb2xsZWN0QWxsTmFtZXModGhpcy5kb2N1bWVudCgpLCBleGlzdGluZ05hbWVzKTtcblxuICAgIC8vIEluY3JlbWVudCB0aGUgaW5kZXggdW50aWwgYSB1bmlxdWUgbmFtZSBpcyBmb3VuZFxuICAgIHdoaWxlIChleGlzdGluZ05hbWVzLmhhcyh1bmlxdWVOYW1lKSkge1xuICAgICAgaW5kZXgrKztcbiAgICAgIHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaXF1ZU5hbWU7XG4gIH1cblxuICBnZW5lcmF0ZVVuaXF1ZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygxMCwgMTgpO1xuICB9XG5cblxuICBwcml2YXRlIGNvbGxlY3RBbGxOYW1lcyhub2RlOiBBWFBXaWRnZXROb2RlLCBuYW1lczogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgICBpZiAobm9kZS5uYW1lKSB7XG4gICAgICBuYW1lcy5hZGQobm9kZS5uYW1lKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLmNvbGxlY3RBbGxOYW1lcyhjaGlsZCwgbmFtZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIGFzeW5jIG9wZW5QcmV2aWV3KCkge1xuICAgIGNvbnN0IGNvbSA9IGF3YWl0IGltcG9ydCgnLi4vLi4vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQTGF5b3V0RGVzaWduZXJQcmV2aWV3Q29tcG9uZW50KTtcbiAgICBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgaGVhZGVyOiBmYWxzZSxcbiAgICAgIHNpemU6ICdmdWxsJyxcbiAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICB3aWRnZXRzOiBzb3J0QnkoXG4gICAgICAgICAgdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLmFsbCgpLmZpbHRlcigoYykgPT4gYy52aXNpYmxlICE9IGZhbHNlKSxcbiAgICAgICAgICAoYykgPT4gYy50aXRsZVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
488
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUlMLHdCQUF3QixFQUN4QixpQkFBaUIsR0FDbEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2RyxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBb0RwRSxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNoRCwyQkFBc0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUVsRCxhQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztRQUU3RCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV4QyxjQUFTLEdBQUcsTUFBTSxDQUF1QixJQUFJLENBQUMsQ0FBQztRQUNoRCxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNoRyxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUUzQyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVqRSxnQkFBVyxHQUFHLFFBQVEsQ0FBa0IsR0FBRyxFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxDQUFDLENBQUMsQ0FBQztRQUVJLGlCQUFZLEdBQUcsTUFBTSxDQUF1QixJQUFJLENBQUMsQ0FBQztRQUVqRCxpQkFBWSxHQUF5QixJQUFJLENBQUM7UUFDM0MsZ0JBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRTdCLFNBQUksR0FBRyxNQUFNLENBQWtCLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELFNBQUksR0FBRyxNQUFNLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBRTVDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUNuRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFDbkQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBQ2pELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztLQW1nQmxFO0lBamdCUSxRQUFRLENBQUMsT0FBbUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQWlDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQWlDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRW5ELElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxJQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBZ0M7UUFDM0MsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFTSxPQUFPLENBQUMsT0FBa0M7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLGVBQWUsQ0FDckIsSUFBbUIsRUFDbkIsVUFBeUIsRUFDekIsYUFBOEIsRUFBRTtRQUVoQyw4Q0FBOEM7UUFDOUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWhELCtDQUErQztRQUMvQyxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN4QixPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMxRSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCx3Q0FBd0M7UUFDeEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBMEI7UUFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQyxJQUFJLENBQ2xGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQzFDLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMvQyxLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLElBQUk7WUFDakIsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxNQUFNLENBQ2IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFDbkUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ2Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFvQixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBNEIsQ0FBQztZQUMzRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU0sR0FBRztRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxTQUFTO1FBQ2YsTUFBTSxHQUFHLEdBQWtCO1lBQ3pCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1lBQ2hDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO1FBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUNqRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEUsTUFBTSxJQUFJLEdBQWtCO1lBQzFCLElBQUksRUFBRSxhQUFhO1lBQ25CLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQztRQUVGLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFFLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFtQixFQUFFLEVBQVU7UUFDbkQsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLENBQUMsdUNBQXVDO1FBQ3RELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVoQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU8sS0FBSyxDQUFDLENBQUMseUJBQXlCO1lBQ3pDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxpQkFBaUI7SUFDaEMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxFQUFVLEVBQUUsU0FBd0IsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVsQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxvRUFBb0U7UUFDckYsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksV0FBVztnQkFBRSxPQUFPLFdBQVcsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxrQkFBa0I7SUFDakMsQ0FBQztJQUVPLG9CQUFvQixDQUFDLElBQW1CLEVBQUUsZUFBd0IsSUFBSTtRQUM1RSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksT0FBTyxHQUF5QixJQUFJLENBQUM7WUFDekMsT0FBTyxPQUFPLEVBQUUsQ0FBQztnQkFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakUsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDekMsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUUsQ0FBQyxDQUFDLENBQUMscUNBQXFDO1lBQ2hHLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLDhEQUE4RDtZQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO3dCQUN6QyxPQUFPLEtBQUssQ0FBQztvQkFDZixDQUFDO29CQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7b0JBQy9GLElBQUksY0FBYzt3QkFBRSxPQUFPLGNBQWMsQ0FBQztnQkFDNUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsQ0FBQyxvQ0FBb0M7SUFDbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxXQUEwQixFQUFFLElBQW1CO1FBQ3ZELElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUIsRUFBRTtRQUNGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5RCxFQUFFO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDM0YsRUFBRTtRQUNGLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxHQUFHLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELEdBQUcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsRUFBRTtRQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixFQUFFO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNoQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQW1CO1FBQ3JDLElBQ0UsSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUI7WUFDL0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM3RSxDQUFDO1lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxrREFBa0Q7UUFDNUQsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0VBQW9FLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsMkVBQTJFLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxxREFBcUQ7UUFDcEcsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGlCQUFrQixDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVDQUF1QztJQUMxRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxnQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsZ0JBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxjQUFjLENBQUMsR0FBUTtRQUM3QixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDNUIsa0NBQWtDO1FBQ2xDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkQsMENBQTBDO1lBQzFDLElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUNyQixLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNwQiw4REFBOEQ7Z0JBQzlELElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNyQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsMERBQTBEO1FBQzFELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQzFCLElBQW1CLEVBQ25CLGNBQWlDLEVBQ2pDLGdCQUE2QztRQUU3Qyw2QkFBNkI7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsRUFBRTtRQUNGLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxFQUFFO1FBQ0Ysb0VBQW9FO1FBQ3BFLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsb0RBQW9EO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUN2RyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLElBQUksQ0FBQyxTQUErQixJQUFJLENBQUMsWUFBWSxFQUFFO1FBQzVELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLCtDQUErQztJQUN4RixDQUFDO0lBRU0sR0FBRyxDQUFDLFNBQStCLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDM0QsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7UUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9FQUFvRTtJQUNqRyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQStCLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDN0QsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7UUFDdEQsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU8sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQTRCLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDNUQsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFFLENBQUM7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUNELEVBQUU7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDL0IsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsRUFBRTtRQUNGLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBbUIsRUFBRSxFQUFFO1lBQ3hDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RCxHQUFHLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNCLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25CLEVBQUU7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDdEcsRUFBRTtRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtZQUM3RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO1FBQ1Ysc0NBQXNDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUU5Qiw0Q0FBNEM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFFL0QsbUNBQW1DO1FBQ25DLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMseURBQXlEO1FBQ3pELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztRQUUzQiw0RUFBNEU7UUFDNUUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0IsbURBQW1EO1FBQ25ELENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNWLG1FQUFtRTtRQUNuRSxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBa0IsQ0FBQztZQUN0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sY0FBYyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBRXBDLE1BQU0sTUFBTSxHQUE4QjtnQkFDeEMsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNiLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakIsQ0FBQzthQUNGLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdEMsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSxrQkFBa0I7Z0JBQ3pCLGFBQWEsRUFBRSxTQUFTO2dCQUN4QixJQUFJLEVBQUUsc0JBQXNCO2dCQUM1QixNQUFNLEVBQUUsUUFBUSxTQUFTLEVBQUU7Z0JBQzNCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNsQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDekUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDOUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsS0FBSyxPQUFPLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxlQUFlLENBQUMsa0NBQWtDLENBQUMsQ0FBQztnQkFDM0QsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO2dCQUN6QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwQixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNYLENBQUM7WUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO2dCQUNwQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDNUYsTUFBTSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFtQjtRQUN6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7UUFDeEMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3JDLG9EQUFvRDtRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxVQUFVLEdBQUcsR0FBRyxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFckQsbURBQW1EO1FBQ25ELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JDLEtBQUssRUFBRSxDQUFDO1lBQ1IsVUFBVSxHQUFHLEdBQUcsUUFBUSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFtQixFQUFFLEtBQWtCO1FBQzdELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVztRQUN0QixNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDN0csTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsTUFBTSxDQUNiLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEVBQ25FLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNmO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXRpQlUsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWExvYWRpbmdEaWFsb2dCdXR0b25JdGVtLCBBWExvYWRpbmdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYRmlsZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQge1xuICBBWFBXaWRnZXRDb21wb25lbnQsXG4gIEFYUFdpZGdldENvbmZpZyxcbiAgQVhQV2lkZ2V0Tm9kZSxcbiAgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLFxuICBBWFBXaWRnZXRzQ2F0YWxvZyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBtZXJnZSwgc2V0LCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRkV2lkZ2V0Q29tbWFuZCwgQ29tbWFuZE1hbmFnZXIsIFJlbW92ZVdpZGdldENvbW1hbmQsIFVwZGF0ZVdpZGdldENvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJNb2RlLCBBWFBEZXNpZ25lck1vZGVzIH0gZnJvbSAnLi9kZXNpZ25lci50eXBzJztcblxuZXhwb3J0IHR5cGUgQVhQRGVzaWduZXJQcmV2aWV3U2l6ZSA9ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lckZvY3VzQ29tbWFuZCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJVcGRhdGVDb21tYW5kIHtcbiAgdmFsdWVzOiBhbnk7XG4gIHdpZGdldD86IEFYUFdpZGdldE5vZGUgfCBudWxsO1xuICBtb2RlOiAnaW5pdCcgfCAndXBkYXRlJztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJVcGRhdGVFdmVudCB7XG4gIHZhbHVlczogYW55O1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJTZWxlY3RDb21tYW5kIHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVnaXN0ZXJDb21tYW5kIHtcbiAgaWQ6IG51bWJlcjtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xuICBjb25maWc6IEFYUFdpZGdldENvbmZpZztcbiAgaW5zdGFuY2U6IEFYUFdpZGdldENvbXBvbmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclNlbGVjdEV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVmcmVzaENvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVmcmVzaEV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQWRkTm9kZUNvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQWRkTm9kZUV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyRm9jdXNFdmVudCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGw7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lclNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgZmlsZVNlcnZpY2UgPSBpbmplY3QoQVhGaWxlU2VydmljZSk7XG4gIHByaXZhdGUgbG9hZGluZ1NlcnZpY2UgPSBpbmplY3QoQVhMb2FkaW5nRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0ZXJ5U2VydmljZSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudCA9IHNpZ25hbCh0aGlzLmNyZWF0ZURvYygpKTtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRQYWdlSW5kZXggPSBzaWduYWwoMCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gc2lnbmFsKHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8uWzBdISk7XG5cbiAgcHJpdmF0ZSBjb21tYW5kTWFuYWdlciA9IGluamVjdChDb21tYW5kTWFuYWdlcik7XG5cbiAgcHJpdmF0ZSBjbGlwYm9hcmQgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgY2FuQ3V0Q29weSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWROb2RlKCkgIT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkTm9kZSgpPy5uYW1lICE9ICdwYWdlJyk7XG4gIHB1YmxpYyBjYW5QYXN0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY2xpcGJvYXJkKCkgIT0gbnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGhpc3RvcnkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmhpc3RvcnkoKSk7XG4gIHB1YmxpYyByZWFkb25seSBjYW5VbmRvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21tYW5kTWFuYWdlci5jYW5VbmRvKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuUmVkbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuUmVkbygpKTtcblxuICBwdWJsaWMgYnJlYWRjcnVtYnMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE5vZGUoKSA/IHRoaXMuZmluZEJyZWFkY3J1bWJzKHRoaXMuY3VycmVudFBhZ2UoKSwgdGhpcy5zZWxlY3RlZE5vZGUoKSEpID8/IFtdIDogW107XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWxlY3RlZE5vZGUgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgX2ZvY3VzZWROb2RlOiBBWFBXaWRnZXROb2RlIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBmb2N1c2VkTm9kZSA9ICgpID0+IHRoaXMuX2ZvY3VzZWROb2RlO1xuXG4gIHB1YmxpYyByZWFkb25seSBtb2RlID0gc2lnbmFsPEFYUERlc2lnbmVyTW9kZT4oQVhQRGVzaWduZXJNb2Rlcy5EZXNpZ24pO1xuICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9IHNpZ25hbDxBWFBEZXNpZ25lclByZXZpZXdTaXplPigneGwnKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25TZWxlY3RlZCA9IG5ldyBTdWJqZWN0PEFYUERlc2lnbmVyU2VsZWN0RXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvblJlZnJlc2ggPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lclJlZnJlc2hFdmVudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG9uVXBkYXRlID0gbmV3IFN1YmplY3Q8QVhQRGVzaWduZXJVcGRhdGVFdmVudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG9uRm9jdXNlZCA9IG5ldyBTdWJqZWN0PEFYUERlc2lnbmVyRm9jdXNFdmVudD4oKTtcblxuICBwdWJsaWMgcmVnaXN0ZXIoY29tbWFuZDogQVhQRGVzaWduZXJSZWdpc3RlckNvbW1hbmQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogY29tbWFuZC53aWRnZXQgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KGNvbW1hbmQ6IEFYUERlc2lnbmVyU2VsZWN0Q29tbWFuZCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlLnNldChjb21tYW5kLndpZGdldCk7XG4gICAgdGhpcy5vblNlbGVjdGVkLm5leHQoY29tbWFuZCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKGNvbW1hbmQ6IEFYUERlc2lnbmVyVXBkYXRlQ29tbWFuZCk6IHZvaWQge1xuICAgIGNvbnN0IG5vZGUgPSBjb21tYW5kLndpZGdldCA/PyB0aGlzLnNlbGVjdGVkTm9kZSgpO1xuXG4gICAgaWYgKGNvbW1hbmQubW9kZSA9PSAndXBkYXRlJyAmJiBub2RlKSB7XG4gICAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLmV4ZWN1dGVDb21tYW5kKG5ldyBVcGRhdGVXaWRnZXRDb21tYW5kKG5vZGUhLCBjb21tYW5kLnZhbHVlcywgbm9kZSEpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZE5vZGUudXBkYXRlKChjKSA9PiBtZXJnZShub2RlLCBjb21tYW5kLnZhbHVlcykpO1xuICAgIHRoaXMub25VcGRhdGUubmV4dCh7IHdpZGdldDogbm9kZSEsIHZhbHVlczogY29tbWFuZC52YWx1ZXMgfSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoY29tbWFuZDogQVhQRGVzaWduZXJGb2N1c0NvbW1hbmQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZm9jdXNlZE5vZGUgIT0gY29tbWFuZC53aWRnZXQpIHtcbiAgICAgIHRoaXMuX2ZvY3VzZWROb2RlID0gY29tbWFuZC53aWRnZXQ7XG4gICAgICB0aGlzLm9uRm9jdXNlZC5uZXh0KHsgd2lkZ2V0OiB0aGlzLl9mb2N1c2VkTm9kZSB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChjb21tYW5kOiBBWFBEZXNpZ25lclJlZnJlc2hDb21tYW5kKSB7XG4gICAgdGhpcy5vblJlZnJlc2gubmV4dCh7IHdpZGdldDogY29tbWFuZC53aWRnZXQgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRCcmVhZGNydW1icyhcbiAgICBub2RlOiBBWFBXaWRnZXROb2RlLFxuICAgIHRhcmdldE5vZGU6IEFYUFdpZGdldE5vZGUsXG4gICAgYnJlYWRjcnVtYjogQVhQV2lkZ2V0Tm9kZVtdID0gW11cbiAgKTogQVhQV2lkZ2V0Tm9kZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBBZGQgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUgYnJlYWRjcnVtYiBwYXRoXG4gICAgY29uc3QgY3VycmVudEJyZWFkY3J1bWIgPSBbLi4uYnJlYWRjcnVtYiwgbm9kZV07XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBub2RlIGlzIHRoZSB0YXJnZXQgbm9kZVxuICAgIGlmIChub2RlID09PSB0YXJnZXROb2RlKSB7XG4gICAgICByZXR1cm4gY3VycmVudEJyZWFkY3J1bWI7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIG5vZGUgaGFzIGNoaWxkcmVuLCByZWN1cnNpdmVseSBzZWFyY2ggdGhlbVxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kQnJlYWRjcnVtYnMoY2hpbGQsIHRhcmdldE5vZGUsIGN1cnJlbnRCcmVhZGNydW1iKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vIG1hdGNoIGlzIGZvdW5kXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFzeW5jIHNob3dQaWNrZXIoY3VycmVudE5vZGU6IEFYUFdpZGdldE5vZGUpOiBQcm9taXNlPEFYUFdpZGdldE5vZGVbXT4ge1xuICAgIGNvbnN0IGNvbSA9IGF3YWl0IGltcG9ydCgnLi4vY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50JykudGhlbihcbiAgICAgIChjKSA9PiBjLkFYUERlc2lnbmVyV2lkZ2V0UGlja2VyQ29tcG9uZW50XG4gICAgKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6ICdXaWRnZXQgR2FsbGVyeScsXG4gICAgICBzaXplOiAnbWQnLFxuICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHdpZGdldHM6IHNvcnRCeShcbiAgICAgICAgICB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UuYWxsKCkuZmlsdGVyKChjKSA9PiBjLnZpc2libGUgIT0gZmFsc2UpLFxuICAgICAgICAgIChjKSA9PiBjLnRpdGxlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IHdpZGdldHM6IEFYUFdpZGdldE5vZGVbXSA9IFtdO1xuICAgIGlmICgocmVzdWx0LmRhdGE/LndpZGdldHMgPz8gW10pLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXN1bHQuZGF0YT8ud2lkZ2V0cyBhcyBBWFBXaWRnZXRDb25maWdbXTtcbiAgICAgIHNlbGVjdGVkLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgd2lkZ2V0cy5wdXNoKHRoaXMuYWRkV2lkZ2V0KGN1cnJlbnROb2RlLCB7IHR5cGU6IGMubmFtZSB9KSEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB3aWRnZXRzO1xuICB9XG5cbiAgcHVibGljIG5ldygpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNsZWFyKCk7XG4gICAgdGhpcy5kb2N1bWVudC5zZXQodGhpcy5jcmVhdGVEb2MoKSk7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQodGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5bMF0hKTtcbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2MoKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgY29uc3QgZG9jOiBBWFBXaWRnZXROb2RlID0ge1xuICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZG9jdW1lbnQsXG4gICAgICBjaGlsZHJlbjogW3RoaXMuY3JlYXRlUGFnZSgpXSxcbiAgICAgIG5hbWU6ICdkb2N1bWVudCcsXG4gICAgfTtcbiAgICBzZXQoZG9jLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgcmV0dXJuIGRvYztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUGFnZSgpOiBBWFBXaWRnZXROb2RlIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZSgncGFnZS1sYXlvdXQnKTtcblxuICAgIGNvbnN0IHBhZ2U6IEFYUFdpZGdldE5vZGUgPSB7XG4gICAgICB0eXBlOiAncGFnZS1sYXlvdXQnLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgbmFtZTogJ3BhZ2UtbGF5b3V0MScsXG4gICAgfTtcblxuICAgIHNldChwYWdlLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgc2V0KHBhZ2UsICdfX21ldGFfXy5jb25maWcnLCBjb25maWcpO1xuICAgIHJldHVybiBwYWdlO1xuICB9XG5cbiAgcHVibGljIGFkZE5ld1BhZ2UoKSB7XG4gICAgdGhpcy5hZGRXaWRnZXQodGhpcy5kb2N1bWVudCgpLCB0aGlzLmNyZWF0ZVBhZ2UoKSk7XG4gICAgdGhpcy5nb1RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlSW5kZXgoKSArIDEpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVBhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/LltpbmRleF0hO1xuICAgIHRoaXMucmVtb3ZlV2lkZ2V0KHBhZ2UpO1xuICAgIHRoaXMuZ29Ub1BhZ2UoaW5kZXggLSAxKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZVBhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/LltpbmRleF0hO1xuICAgIHRoaXMuY2xvbmUocGFnZSk7XG4gICAgdGhpcy5nb1RvUGFnZSgodGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5sZW5ndGggPz8gMSkgLSAxKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZUluZGV4LnNldChpbmRleCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Llt0aGlzLmN1cnJlbnRQYWdlSW5kZXgoKV0hKTtcbiAgICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiB0aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlUmVuZGVyUGFnZSgpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh7IC4uLnRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbmRXaWRnZXRCeUlkKHJvb3Q6IEFYUFdpZGdldE5vZGUsIGlkOiBzdHJpbmcpOiBBWFBXaWRnZXROb2RlIHwgbnVsbCB7XG4gICAgaWYgKGdldChyb290LCAnX19tZXRhX18uaWQnKSA9PT0gaWQpIHtcbiAgICAgIHJldHVybiByb290OyAvLyBSZXR1cm4gdGhlIHJvb3QgaWYgaXQgbWF0Y2hlcyB0aGUgSURcbiAgICB9XG4gICAgaWYgKCFyb290LmNoaWxkcmVuKSByZXR1cm4gbnVsbDtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygcm9vdC5jaGlsZHJlbikge1xuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLmZpbmRXaWRnZXRCeUlkKGNoaWxkLCBpZCk7XG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kOyAvLyBSZXR1cm4gdGhlIGZvdW5kIGNoaWxkXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7IC8vIE5vZGUgbm90IGZvdW5kXG4gIH1cblxuICBwcml2YXRlIGZpbmRQYXJlbnQoaWQ6IHN0cmluZywgcGFyZW50OiBBWFBXaWRnZXROb2RlID0gdGhpcy5jdXJyZW50UGFnZSgpKTogQVhQV2lkZ2V0Tm9kZSB8IG51bGwge1xuICAgIGlmICghcGFyZW50LmNoaWxkcmVuKSByZXR1cm4gbnVsbDtcblxuICAgIGlmIChwYXJlbnQuY2hpbGRyZW4uc29tZSgoY2hpbGQpID0+IGdldChjaGlsZCwgJ19fbWV0YV9fLmlkJykgPT09IGlkKSkge1xuICAgICAgcmV0dXJuIHBhcmVudDsgLy8gUmV0dXJuIHRoaXMgbm9kZSBhcyBpdCdzIHRoZSBwYXJlbnQgb2YgdGhlIG5vZGUgd2l0aCB0aGUgZ2l2ZW4gSURcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHBhcmVudC5jaGlsZHJlbikge1xuICAgICAgY29uc3QgZm91bmRQYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQoaWQsIGNoaWxkKTtcbiAgICAgIGlmIChmb3VuZFBhcmVudCkgcmV0dXJuIGZvdW5kUGFyZW50O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsOyAvLyBObyBwYXJlbnQgZm91bmRcbiAgfVxuXG4gIHByaXZhdGUgZmluZE5lYXJlc3RDb250YWluZXIobm9kZTogQVhQV2lkZ2V0Tm9kZSwgc2VhcmNoVXB3YXJkOiBib29sZWFuID0gdHJ1ZSk6IEFYUFdpZGdldE5vZGUgfCBudWxsIHtcbiAgICBpZiAoc2VhcmNoVXB3YXJkKSB7XG4gICAgICBsZXQgY3VycmVudDogQVhQV2lkZ2V0Tm9kZSB8IG51bGwgPSBub2RlO1xuICAgICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLnJlc29sdmUoY3VycmVudC50eXBlKTtcbiAgICAgICAgaWYgKGNvbmZpZyAmJiBjb25maWcudHlwZSA9PSAnY29udGFpbmVyJykge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSB0aGlzLmZpbmRQYXJlbnQoZ2V0KGN1cnJlbnQsICdfX21ldGFfXy5pZCcpISk7IC8vIFVzZSBmaW5kUGFyZW50IHRvIG5hdmlnYXRlIHVwd2FyZHNcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVjdXJzaXZlIHNlYXJjaCB0byBmaW5kIHRoZSBmaXJzdCBjb250YWluZXIgYW1vbmcgY2hpbGRyZW5cbiAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZm91bmRDb250YWluZXIgPSB0aGlzLmZpbmROZWFyZXN0Q29udGFpbmVyKGNoaWxkLCBmYWxzZSk7IC8vIENvbnRpbnVlIHNlYXJjaGluZyBkb3dud2FyZHNcbiAgICAgICAgICBpZiAoZm91bmRDb250YWluZXIpIHJldHVybiBmb3VuZENvbnRhaW5lcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgbm8gY29udGFpbmVyIGZvdW5kXG4gIH1cblxuICBhZGRXaWRnZXQoY3VycmVudE5vZGU6IEFYUFdpZGdldE5vZGUsIG5vZGU6IEFYUFdpZGdldE5vZGUpOiBBWFBXaWRnZXROb2RlIHwgbnVsbCB7XG4gICAgaWYgKCFjdXJyZW50Tm9kZSkgcmV0dXJuIG51bGw7XG4gICAgLy9cbiAgICBjb25zdCBjbG9uZWQgPSBjbG9uZURlZXAobm9kZSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLnJlc29sdmUobm9kZS50eXBlKTtcblxuICAgIC8vXG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChuZXcgQWRkV2lkZ2V0Q29tbWFuZChjbG9uZWQsIGN1cnJlbnROb2RlLCBjdXJyZW50Tm9kZSkpO1xuICAgIC8vXG4gICAgY2xvbmVkLm5hbWUgPSB0aGlzLmdlbmVyYXRlVW5pcXVlTmFtZShub2RlLnR5cGUpO1xuICAgIHNldChjbG9uZWQsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICBzZXQoY2xvbmVkLCAnX19tZXRhX18uY29uZmlnJywgY29uZmlnKTtcbiAgICAvL1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgLy9cbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IGN1cnJlbnROb2RlIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjbG9uZWQgfSk7XG4gICAgcmV0dXJuIGNsb25lZDtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVXaWRnZXQobm9kZTogQVhQV2lkZ2V0Tm9kZSk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIG5vZGUudHlwZSA9PT0gJ2RvY3VtZW50LWxheW91dCcgfHxcbiAgICAgIChub2RlLnR5cGUgPT09ICdwYWdlLWxheW91dCcgJiYgKHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8ubGVuZ3RoID8/IDEpID09IDEpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgcmVtb3ZlIHRoZSBwYWdlIG5vZGUuJyk7XG4gICAgICByZXR1cm47IC8vIFByZXZlbnQgcmVtb3ZpbmcgdGhlIHJvb3QgcGFnZSBub2RlIG9yIGRvY3VtZW50XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZUlkVG9SZW1vdmUgPSBnZXQobm9kZSwgJ19fbWV0YV9fLmlkJyk7XG4gICAgaWYgKCFub2RlSWRUb1JlbW92ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb2RlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBfX21ldGFfXy5pZCB0byBpZGVudGlmeSBpdCBmb3IgcmVtb3ZhbC4nKTtcbiAgICB9XG5cbiAgICAvLyBGaW5kIHRoZSBwYXJlbnQgb2YgdGhlIG5vZGUgdG8gcmVtb3ZlIGl0XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50KG5vZGVJZFRvUmVtb3ZlLCB0aGlzLmRvY3VtZW50KCkpO1xuICAgIGlmICghcGFyZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmVudCBub2RlIG5vdCBmb3VuZC4gVGhlIG5vZGUgbWlnaHQgYmUgdGhlIHJvb3Qgbm9kZSBvciBkb2VzIG5vdCBleGlzdC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c1NlbGVjdGlvbiA9IHRoaXMuc2VsZWN0ZWROb2RlKCk7IC8vIENhcHR1cmUgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBub2RlIGJlZm9yZSByZW1vdmFsXG4gICAgY29uc3QgY29tbWFuZCA9IG5ldyBSZW1vdmVXaWRnZXRDb21tYW5kKG5vZGUsIHBhcmVudCwgcHJldmlvdXNTZWxlY3Rpb24hKTtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpO1xuXG4gICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiBwYXJlbnQgfSk7IC8vIFJlZnJlc2ggdGhlIFVJIHRvIHJlZmxlY3QgY2hhbmdlc1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBwYXJlbnQgfSk7IC8vIFNlbGVjdCB0aGUgcGFyZW50IG5vZGUgYWZ0ZXIgcmVtb3ZhbFxuICB9XG5cbiAgbmF2aWdhdGVUbyhpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5nb1RvQ29tbWFuZChpbmRleCk7XG4gICAgdGhpcy5yZVJlbmRlclBhZ2UoKTtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5jb21tYW5kTWFuYWdlci5zZWxlY3RlZE5vZGUoKTtcbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogY3VycmVudFNlbGVjdGlvbiEgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVkbygpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLnJlZG8oKTtcbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmNvbW1hbmRNYW5hZ2VyLnNlbGVjdGVkTm9kZSgpO1xuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjdXJyZW50U2VsZWN0aW9uISB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1bmRvKCkge1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIudW5kbygpO1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuY29tbWFuZE1hbmFnZXIuc2VsZWN0ZWROb2RlKCk7XG4gICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiB0aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IGN1cnJlbnRTZWxlY3Rpb24hIH0pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySGlzdG9yeSgpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU1ldGFQcm9wKG9iajogYW55KTogYW55IHtcbiAgICBjb25zdCBub2RlTmFtZSA9ICdfX21ldGFfXyc7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBhbiBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiBvYmoubWFwKChpdGVtKSA9PiB0aGlzLnJlbW92ZU1ldGFQcm9wKGl0ZW0pKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgICAgLy8gQ3JlYXRlIGEgbmV3IG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0XG4gICAgICBsZXQgbmV3T2JqOiBhbnkgPSB7fTtcbiAgICAgIGZvciAobGV0IGtleSBpbiBvYmopIHtcbiAgICAgICAgLy8gT25seSBhZGQgdGhlIGtleSBpZiBpdCdzIG5vdCB0aGUgbm9kZU5hbWUgd2Ugd2FudCB0byByZW1vdmVcbiAgICAgICAgaWYgKGtleSAhPT0gbm9kZU5hbWUpIHtcbiAgICAgICAgICBuZXdPYmpba2V5XSA9IHRoaXMucmVtb3ZlTWV0YVByb3Aob2JqW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3T2JqO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCBvciBhcnJheSwgcmV0dXJuIGl0IGFzIGlzXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkTWV0YVRvTm9kZXMoXG4gICAgbm9kZTogQVhQV2lkZ2V0Tm9kZSxcbiAgICBwcm9jZXNzZWROb2RlczogeyBjb3VudDogbnVtYmVyIH0sXG4gICAgcHJvZ3Jlc3NDYWxsYmFjazogKHByb2Nlc3NlZDogbnVtYmVyKSA9PiB2b2lkXG4gICk6IFByb21pc2U8QVhQV2lkZ2V0Tm9kZT4ge1xuICAgIC8vIEFwcGx5IHlvdXIgbWV0YSBsb2dpYyBoZXJlXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLnJlc29sdmUobm9kZS50eXBlKTtcbiAgICAvL1xuICAgIHNldChub2RlLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgc2V0KG5vZGUsICdfX21ldGFfXy5jb25maWcnLCBjb25maWcpO1xuICAgIC8vXG4gICAgLy8gSW5jcmVtZW50IHRoZSBwcm9jZXNzZWQgbm9kZSBjb3VudCBhbmQgdXBkYXRlIHRoZSBwcm9ncmVzcyBkaWFsb2dcbiAgICBwcm9jZXNzZWROb2Rlcy5jb3VudCsrO1xuICAgIHByb2dyZXNzQ2FsbGJhY2socHJvY2Vzc2VkTm9kZXMuY291bnQpO1xuICAgIC8vIFJlY3Vyc2l2ZWx5IHByb2Nlc3MgY2hpbGQgbm9kZXMgdXNpbmcgUHJvbWlzZS5hbGxcbiAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgbm9kZS5jaGlsZHJlbi5tYXAoYXN5bmMgKGNoaWxkKSA9PiBhd2FpdCB0aGlzLmFkZE1ldGFUb05vZGVzKGNoaWxkLCBwcm9jZXNzZWROb2RlcywgcHJvZ3Jlc3NDYWxsYmFjaykpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5KHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGwgPSB0aGlzLnNlbGVjdGVkTm9kZSgpKTogdm9pZCB7XG4gICAgaWYgKCF3aWRnZXQpIHJldHVybjtcbiAgICB0aGlzLmNsaXBib2FyZC5zZXQoY2xvbmVEZWVwKHdpZGdldCkpOyAvLyBVc2UgbG9kYXNoJ3MgY2xvbmVEZWVwIHRvIGVuc3VyZSBhIGRlZXAgY29weVxuICB9XG5cbiAgcHVibGljIGN1dCh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgdGhpcy5jb3B5KHdpZGdldCk7IC8vIENvcHkgdGhlIHdpZGdldCB0byB0aGUgY2xpcGJvYXJkXG4gICAgdGhpcy5yZW1vdmVXaWRnZXQod2lkZ2V0KTsgLy8gUmV1c2UgdGhlIHJlbW92ZVdpZGdldCBtZXRob2Qgd2hpY2ggc2hvdWxkIGhhbmRsZSB1bmRvIGludGVybmFsbHlcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgdGhpcy5jb3B5KHdpZGdldCk7IC8vIENvcHkgdGhlIHdpZGdldCB0byB0aGUgY2xpcGJvYXJkXG4gICAgaWYgKHdpZGdldC50eXBlID09ICdwYWdlLWxheW91dCcpIHtcbiAgICAgIHRoaXMucGFzdGUodGhpcy5kb2N1bWVudCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXN0ZSh3aWRnZXQhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGFzdGUocGFyZW50Tm9kZTogQVhQV2lkZ2V0Tm9kZSA9IHRoaXMuc2VsZWN0ZWROb2RlKCkgPz8gdGhpcy5jdXJyZW50UGFnZSgpKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNsaXBib2FyZCgpIHx8ICF0aGlzLnNlbGVjdGVkTm9kZSgpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDbGlwYm9hcmQgaXMgZW1wdHkgb3Igbm8gbm9kZSBpcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3Tm9kZSA9IGNsb25lRGVlcCh0aGlzLmNsaXBib2FyZCgpKSE7XG4gICAgY29uc3QgbmVhcmVzdENvbnRhaW5lciA9IHRoaXMuZmluZE5lYXJlc3RDb250YWluZXIocGFyZW50Tm9kZSwgdHJ1ZSk7XG4gICAgaWYgKCFuZWFyZXN0Q29udGFpbmVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzdWl0YWJsZSBjb250YWluZXIgZm91bmQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCFuZWFyZXN0Q29udGFpbmVyLmNoaWxkcmVuKSB7XG4gICAgICBuZWFyZXN0Q29udGFpbmVyLmNoaWxkcmVuID0gW107XG4gICAgfVxuICAgIC8vXG4gICAgY29uc3Qgc2V0TmFtZUlkID0gKG5vZGU6IEFYUFdpZGdldE5vZGUpID0+IHtcbiAgICAgIHNldChub2RlLCAnbmFtZScsIHRoaXMuZ2VuZXJhdGVVbmlxdWVOYW1lKG5vZGUudHlwZSkpO1xuICAgICAgc2V0KG5vZGUsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2goKG4pID0+IHtcbiAgICAgICAgc2V0TmFtZUlkKG4pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICBzZXROYW1lSWQobmV3Tm9kZSk7XG4gICAgLy9cbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLmV4ZWN1dGVDb21tYW5kKG5ldyBBZGRXaWRnZXRDb21tYW5kKG5ld05vZGUsIG5lYXJlc3RDb250YWluZXIsIG5lYXJlc3RDb250YWluZXIpKTtcbiAgICAvL1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiBuZWFyZXN0Q29udGFpbmVyIH0pOyAvLyBSZWZyZXNoIHRoZSBVSVxuICAgICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IG5ld05vZGUgfSk7IC8vIFNlbGVjdCB0aGUgbmV3bHkgcGFzdGVkIG5vZGVcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb24gPSB0aGlzLnJlbW92ZU1ldGFQcm9wKHRoaXMuZG9jdW1lbnQoKSk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGpzb24pO1xuICB9XG5cbiAgZG93bmxvYWRKc29uKCkge1xuICAgIC8vIENvbnZlcnQgdGhlIG9iamVjdCB0byBhIEpTT04gc3RyaW5nXG4gICAgY29uc3QganNvblN0ciA9IHRoaXMuZXhwb3J0KCk7XG5cbiAgICAvLyBDcmVhdGUgYSBibG9iIG9iamVjdCBmcm9tIHRoZSBKU09OIHN0cmluZ1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbanNvblN0cl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGEgVVJMIGZvciB0aGUgYmxvYiBvYmplY3RcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG4gICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IDxhPiBlbGVtZW50IHRvIHRyaWdnZXIgdGhlIGRvd25sb2FkXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS5kb3dubG9hZCA9ICdleHBvcnQuanNvbic7XG5cbiAgICAvLyBBcHBlbmQgdGhlIDxhPiBlbGVtZW50IHRvIHRoZSBkb2N1bWVudCBib2R5IChuZWNlc3NhcnkgZm9yIHNvbWUgYnJvd3NlcnMpXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcblxuICAgIC8vIFRyaWdnZXIgdGhlIGRvd25sb2FkIGJ5IGNsaWNraW5nIHRoZSA8YT4gZWxlbWVudFxuICAgIGEuY2xpY2soKTtcbiAgICAvLyBDbGVhbiB1cCBieSByZXZva2luZyB0aGUgb2JqZWN0IFVSTCBhbmQgcmVtb3ZpbmcgdGhlIDxhPiBlbGVtZW50XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gIH1cblxuICBhc3luYyBpbXBvcnRKU29uKCkge1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy5maWxlU2VydmljZS5jaG9vc2UoeyBtdWx0aXBsZTogZmFsc2UsIGFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBmaWxlc1swXTtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmaWxlLnRleHQoKTtcbiAgICAgIGNvbnN0IHJvb3ROb2RlID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBBWFBXaWRnZXROb2RlO1xuICAgICAgY29uc3QgdG90YWxOb2RlID0gdGhpcy5jb3VudFRvdGFsTm9kZXMocm9vdE5vZGUpO1xuICAgICAgY29uc3QgcHJvY2Vzc2VkTm9kZXMgPSB7IGNvdW50OiAwIH07XG5cbiAgICAgIGNvbnN0IGJ1dHRvbjogQVhMb2FkaW5nRGlhbG9nQnV0dG9uSXRlbSA9IHtcbiAgICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICAgIGF1dG9mb2N1czogdHJ1ZSxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coe1xuICAgICAgICBtb2RlOiAnZGV0ZXJtaW5hdGUnLFxuICAgICAgICB0aXRsZTogJ0ltcG9ydCBKc29uIEZpbGUnLFxuICAgICAgICBwcm9ncmVzc0NvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIHRleHQ6ICdQcm9jZXNzaW5nIGpzb24gZmlsZScsXG4gICAgICAgIHN0YXR1czogYDAgb2YgJHt0b3RhbE5vZGV9YCxcbiAgICAgICAgYnV0dG9uczogW2J1dHRvbl0sXG4gICAgICB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGF3YWl0IHRoaXMuYWRkTWV0YVRvTm9kZXMocm9vdE5vZGUsIHByb2Nlc3NlZE5vZGVzLCAoY291bnQpID0+IHtcbiAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NWYWx1ZShNYXRoLmNlaWwoKGNvdW50IC8gdG90YWxOb2RlKSAqIDEwMCkpO1xuICAgICAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc1N0YXR1cyhgJHtjb3VudH0gb2YgJHt0b3RhbE5vZGV9YCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwYWdlID0gcm9vdC5jaGlsZHJlbj8uWzBdITtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5zZXQocm9vdCk7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHBhZ2UpO1xuICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NDb2xvcignc3VjY2VzcycpO1xuICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KCdKc29uIGZpbGUgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICBidXR0b24udGV4dCA9ICdPa2F5JztcbiAgICAgICAgYnV0dG9uLmNvbG9yID0gJ3N1Y2Nlc3MnO1xuICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NWYWx1ZSgxMDApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICAgICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzQ29sb3IoJ2RhbmdlcicpO1xuICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0Nhbm5vdCBwcm9jZXNzIGpzb24gZmlsZScpO1xuICAgICAgICBidXR0b24udGV4dCA9ICdDbG9zZSc7XG4gICAgICAgIGJ1dHRvbi5jb2xvciA9ICdkYW5nZXInO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY291bnRUb3RhbE5vZGVzKG5vZGU6IEFYUFdpZGdldE5vZGUpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDE7IC8vIENvdW50IHRoZSBjdXJyZW50IG5vZGVcbiAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvdW50ICs9IG5vZGUuY2hpbGRyZW4ucmVkdWNlKChzdW0sIGNoaWxkKSA9PiBzdW0gKyB0aGlzLmNvdW50VG90YWxOb2RlcyhjaGlsZCksIDApO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVW5pcXVlTmFtZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIE5vcm1hbGl6ZSB0aGUgdHlwZSB0byBmb2xsb3cgY2FtZWxDYXNlIGNvbnZlbnRpb25cbiAgICBjb25zdCBiYXNlTmFtZSA9IHR5cGUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpO1xuICAgIGxldCBpbmRleCA9IDE7XG4gICAgbGV0IHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG5cbiAgICAvLyBHYXRoZXIgYWxsIGV4aXN0aW5nIG5hbWVzIHRvIGNoZWNrIGFnYWluc3RcbiAgICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5jb2xsZWN0QWxsTmFtZXModGhpcy5kb2N1bWVudCgpLCBleGlzdGluZ05hbWVzKTtcblxuICAgIC8vIEluY3JlbWVudCB0aGUgaW5kZXggdW50aWwgYSB1bmlxdWUgbmFtZSBpcyBmb3VuZFxuICAgIHdoaWxlIChleGlzdGluZ05hbWVzLmhhcyh1bmlxdWVOYW1lKSkge1xuICAgICAgaW5kZXgrKztcbiAgICAgIHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaXF1ZU5hbWU7XG4gIH1cblxuICBnZW5lcmF0ZVVuaXF1ZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygxMCwgMTgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsZWN0QWxsTmFtZXMobm9kZTogQVhQV2lkZ2V0Tm9kZSwgbmFtZXM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgaWYgKG5vZGUubmFtZSkge1xuICAgICAgbmFtZXMuYWRkKG5vZGUubmFtZSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5jb2xsZWN0QWxsTmFtZXMoY2hpbGQsIG5hbWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb3BlblByZXZpZXcoKSB7XG4gICAgY29uc3QgY29tID0gYXdhaXQgaW1wb3J0KCcuLi8uLi9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMYXlvdXREZXNpZ25lclByZXZpZXdDb21wb25lbnQpO1xuICAgIGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oY29tLCB7XG4gICAgICBoZWFkZXI6IGZhbHNlLFxuICAgICAgc2l6ZTogJ2Z1bGwnLFxuICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHdpZGdldHM6IHNvcnRCeShcbiAgICAgICAgICB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UuYWxsKCkuZmlsdGVyKChjKSA9PiBjLnZpc2libGUgIT0gZmFsc2UpLFxuICAgICAgICAgIChjKSA9PiBjLnRpdGxlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export class AXPDesignerModes {
|
|
2
|
+
static { this.View = { id: 'view', title: 'View' }; }
|
|
3
|
+
static { this.Design = { id: 'designer', title: 'Designer' }; }
|
|
4
|
+
static { this.Edit = { id: 'edit', title: 'Edit' }; }
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIudHlwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2Rlc2lnbmVyLnR5cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLGdCQUFnQjthQUNYLFNBQUksR0FBb0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN0RCxXQUFNLEdBQW9CLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDaEUsU0FBSSxHQUFvQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lckRhdGFTb3VyY2VOYW1lIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQRGVzaWduZXJNb2RlID1cbiAgfCB7IGlkOiAnZGVzaWduZXInOyB0aXRsZTogJ0Rlc2lnbmVyJyB9XG4gIHwgeyBpZDogJ3ZpZXcnOyB0aXRsZTogJ1ZpZXcnIH1cbiAgfCB7IGlkOiAnZWRpdCc7IHRpdGxlOiAnRWRpdCcgfTtcblxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVyTW9kZXMge1xuICBzdGF0aWMgcmVhZG9ubHkgVmlldzogQVhQRGVzaWduZXJNb2RlID0geyBpZDogJ3ZpZXcnLCB0aXRsZTogJ1ZpZXcnIH07XG4gIHN0YXRpYyByZWFkb25seSBEZXNpZ246IEFYUERlc2lnbmVyTW9kZSA9IHsgaWQ6ICdkZXNpZ25lcicsIHRpdGxlOiAnRGVzaWduZXInIH07XG4gIHN0YXRpYyByZWFkb25seSBFZGl0OiBBWFBEZXNpZ25lck1vZGUgPSB7IGlkOiAnZWRpdCcsIHRpdGxlOiAnRWRpdCcgfTtcbn1cbiJdfQ==
|
|
@@ -33,7 +33,7 @@ export class AXPEntitySingleOverviewComponent {
|
|
|
33
33
|
this.selectedRelatedIEntityTabIndex.set(e.index);
|
|
34
34
|
}
|
|
35
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntitySingleOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntitySingleOverviewComponent, isStandalone: true, selector: "axp-entity-single-overview", ngImport: i0, template: "<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntitySingleOverviewComponent, isStandalone: true, selector: "axp-entity-single-overview", ngImport: i0, template: "<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'classic'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n</ax-tabs>\n@for(e of vm.relatedEntities();track $index;let index= $index){\n<div [class.ax-hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n</div>\n} }\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i3.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i3.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
|
|
37
37
|
//
|
|
38
38
|
AXPLayoutBuilderModule }, { kind: "component", type: i5.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i5.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "component", type: AXPEntityDetailListViewComponent, selector: "axp-entity-detail-list-view", inputs: ["viewModel"] }, { kind: "ngmodule", type:
|
|
39
39
|
//
|
|
@@ -63,6 +63,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
63
63
|
AXPEntityDetailListViewComponent,
|
|
64
64
|
//
|
|
65
65
|
AXTranslationModule,
|
|
66
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'
|
|
66
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'classic'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n</ax-tabs>\n@for(e of vm.relatedEntities();track $index;let index= $index){\n<div [class.ax-hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n</div>\n} }\n" }]
|
|
67
67
|
}] });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNpbmdsZS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3L292ZXJ2aWV3L2VudGl0eS1zaW5nbGUtb3ZlcnZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9vdmVydmlldy9lbnRpdHktc2luZ2xlLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlFQUFpRSxDQUFDOzs7Ozs7O0FBZ0NuSCxNQUFNLE9BQU8sZ0NBQWdDO0lBOUI3QztRQStCVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQixPQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsQ0FBQztRQUVyRixtQ0FBOEIsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FLdEQ7SUFIQyxnQ0FBZ0MsQ0FBQyxDQUF5QjtRQUN4RCxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQVJVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHNGQ25EN0MsMnNFQTREQSwyQ0RuQ0ksWUFBWSw4QkFDWixZQUFZLDhCQUNaLGlCQUFpQiwrSEFDakIsZ0JBQWdCLDhCQUNoQixlQUFlLDhCQUNmLFlBQVksa01BQ1osbUJBQW1CLDhCQUNuQixjQUFjLDhCQUNkLGNBQWMsOEJBQ2QsZUFBZSw4QkFDZixZQUFZLGthQUNaLGNBQWMsdVpBQ2QsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLHNCQUFzQixvV0FDdEIsZ0JBQWdCLCtCQUVoQixzQkFBc0IsaUZBQ3RCLGdDQUFnQztnQkFFaEMsRUFBRTtnQkFDRixtQkFBbUI7OzJGQUtWLGdDQUFnQztrQkE5QjVDLFNBQVM7K0JBRUUsNEJBQTRCLFdBQzdCO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGdDQUFnQzt3QkFFaEMsRUFBRTt3QkFDRixtQkFBbUI7cUJBQ3BCLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBY3Rpb25TaGVldE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hY3Rpb24tc2hlZXQnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLCBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktZGV0YWlsLWxpc3Qtdmlldy9lbnRpdHktZGV0YWlsLWxpc3Qtdmlldy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1zaW5nbGUtb3ZlcnZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzZWxlY3RvcjogJ2F4cC1lbnRpdHktc2luZ2xlLW92ZXJ2aWV3JyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIEFYUEVudGl0eURldGFpbExpc3RWaWV3Q29tcG9uZW50LFxuXG4gICAgLy9cbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5U2luZ2xlT3ZlcnZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5kYXRhWyd2bSddIGFzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbDtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRSZWxhdGVkSUVudGl0eVRhYkluZGV4ID0gc2lnbmFsKDApO1xuXG4gIGhhbmRsZUFjdGl2ZVJlbGF0ZWRFbnRpdHlDaGFuZ2VkKGU6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleC5zZXQoZS5pbmRleCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0xMiBheC1nYXAtNFwiPlxuICBAZm9yKHNlY3Rpb24gb2Ygdm0uc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5uYW1lKCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWNhcmQgYXgtc2hhZG93LW1kIGF4LW10LTJcIiBbZ3JpZExheW91dF09XCJzZWN0aW9uLmxheW91dCgpXCI+XG4gICAgPGF4LWZvcm0gI2Zvcm0+XG4gICAgICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZC1oZWFkZXIgIWF4LXB5LTIgIWF4LXB4LTRcIj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIWF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZFwiPnt7IHNlY3Rpb24udGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgQGlmKHNlY3Rpb24uZGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXNtIGF4LWZvbnQtbm9ybWFsIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKCkgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIEBpZihzZWN0aW9uLmVkaXRhYmxlKCkpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImF4LXhzXCJcbiAgICAgICAgICAgIGNvbG9yPVwiZ2hvc3RcIlxuICAgICAgICAgICAgW2xvb2tdPVwiJ2JsYW5rJ1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJ2bS5leGVjdXRlQ29tbWFuZCgnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJywgc2VjdGlvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcGVuIGF4LXRleHQtZ3JheS02MDBcIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgIWF4LWdyaWQgIWF4LWdyaWQtY29scy0xMiAhYXgtZ2FwLTRcIj5cbiAgICAgICAgICBAZm9yKGF0dHIgb2Ygc2VjdGlvbi5wcm9wcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMVwiIFtncmlkTGF5b3V0XT1cImF0dHIubGF5b3V0KClcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+e3sgYXR0ci50aXRsZSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC01MDBcIj5cbiAgICAgICAgICAgICAgPGF4cC13aWRnZXQtcmVuZGVyZXIgW25vZGVdPVwiYXR0ci5ub2RlKClcIiBbbW9kZV09XCIndmlldydcIj4gPC9heHAtd2lkZ2V0LXJlbmRlcmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgIDwvYXgtZm9ybT5cbiAgPC9kaXY+
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNpbmdsZS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3L292ZXJ2aWV3L2VudGl0eS1zaW5nbGUtb3ZlcnZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9vdmVydmlldy9lbnRpdHktc2luZ2xlLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlFQUFpRSxDQUFDOzs7Ozs7O0FBZ0NuSCxNQUFNLE9BQU8sZ0NBQWdDO0lBOUI3QztRQStCVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQixPQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBbUMsQ0FBQztRQUVyRixtQ0FBOEIsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FLdEQ7SUFIQyxnQ0FBZ0MsQ0FBQyxDQUF5QjtRQUN4RCxJQUFJLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQVJVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHNGQ25EN0MsMnNFQTREQSwyQ0RuQ0ksWUFBWSw4QkFDWixZQUFZLDhCQUNaLGlCQUFpQiwrSEFDakIsZ0JBQWdCLDhCQUNoQixlQUFlLDhCQUNmLFlBQVksa01BQ1osbUJBQW1CLDhCQUNuQixjQUFjLDhCQUNkLGNBQWMsOEJBQ2QsZUFBZSw4QkFDZixZQUFZLGthQUNaLGNBQWMsdVpBQ2QsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLHNCQUFzQixvV0FDdEIsZ0JBQWdCLCtCQUVoQixzQkFBc0IsaUZBQ3RCLGdDQUFnQztnQkFFaEMsRUFBRTtnQkFDRixtQkFBbUI7OzJGQUtWLGdDQUFnQztrQkE5QjVDLFNBQVM7K0JBRUUsNEJBQTRCLFdBQzdCO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLGdDQUFnQzt3QkFFaEMsRUFBRTt3QkFDRixtQkFBbUI7cUJBQ3BCLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhBY3Rpb25TaGVldE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hY3Rpb24tc2hlZXQnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLCBBWFBTdGlja3lEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktZGV0YWlsLWxpc3Qtdmlldy9lbnRpdHktZGV0YWlsLWxpc3Qtdmlldy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1zaW5nbGUtb3ZlcnZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzZWxlY3RvcjogJ2F4cC1lbnRpdHktc2luZ2xlLW92ZXJ2aWV3JyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYQWN0aW9uU2hlZXRNb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIEFYUEVudGl0eURldGFpbExpc3RWaWV3Q29tcG9uZW50LFxuXG4gICAgLy9cbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5U2luZ2xlT3ZlcnZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5kYXRhWyd2bSddIGFzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbDtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRSZWxhdGVkSUVudGl0eVRhYkluZGV4ID0gc2lnbmFsKDApO1xuXG4gIGhhbmRsZUFjdGl2ZVJlbGF0ZWRFbnRpdHlDaGFuZ2VkKGU6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleC5zZXQoZS5pbmRleCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0xMiBheC1nYXAtNFwiPlxuICBAZm9yKHNlY3Rpb24gb2Ygdm0uc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5uYW1lKCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWNhcmQgYXgtc2hhZG93LW1kIGF4LW10LTJcIiBbZ3JpZExheW91dF09XCJzZWN0aW9uLmxheW91dCgpXCI+XG4gICAgPGF4LWZvcm0gI2Zvcm0+XG4gICAgICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZC1oZWFkZXIgIWF4LXB5LTIgIWF4LXB4LTRcIj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiIWF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZFwiPnt7IHNlY3Rpb24udGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgQGlmKHNlY3Rpb24uZGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXNtIGF4LWZvbnQtbm9ybWFsIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKCkgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIEBpZihzZWN0aW9uLmVkaXRhYmxlKCkpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImF4LXhzXCJcbiAgICAgICAgICAgIGNvbG9yPVwiZ2hvc3RcIlxuICAgICAgICAgICAgW2xvb2tdPVwiJ2JsYW5rJ1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJ2bS5leGVjdXRlQ29tbWFuZCgnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJywgc2VjdGlvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcGVuIGF4LXRleHQtZ3JheS02MDBcIj4gPC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgIWF4LWdyaWQgIWF4LWdyaWQtY29scy0xMiAhYXgtZ2FwLTRcIj5cbiAgICAgICAgICBAZm9yKGF0dHIgb2Ygc2VjdGlvbi5wcm9wcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMVwiIFtncmlkTGF5b3V0XT1cImF0dHIubGF5b3V0KClcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+e3sgYXR0ci50aXRsZSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC01MDBcIj5cbiAgICAgICAgICAgICAgPGF4cC13aWRnZXQtcmVuZGVyZXIgW25vZGVdPVwiYXR0ci5ub2RlKClcIiBbbW9kZV09XCIndmlldydcIj4gPC9heHAtd2lkZ2V0LXJlbmRlcmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgIDwvYXgtZm9ybT5cbiAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYodm0ucmVsYXRlZEVudGl0aWVzKCkubGVuZ3RoKSB7XG48YXgtdGFic1xuICBbbG9va109XCInY2xhc3NpYydcIlxuICBjbGFzcz1cImF4LW10LTIgYXgtZm9udC1zZW1pYm9sZFwiXG4gICN0YWJcbiAgKG9uQWN0aXZlVGFiQ2hhbmdlZCk9XCJoYW5kbGVBY3RpdmVSZWxhdGVkRW50aXR5Q2hhbmdlZCgkZXZlbnQpXCJcbj5cbiAgQGZvcihlIG9mIHZtLnJlbGF0ZWRFbnRpdGllcygpO3RyYWNrICRpbmRleDtsZXQgaW5kZXg9ICRpbmRleCl7XG4gIDxheC10YWItaXRlbSBbdGV4dF09XCJlLnRpdGxlKClcIiBba2V5XT1cImluZGV4LnRvU3RyaW5nKClcIj4gPC9heC10YWItaXRlbT5cbiAgfVxuPC9heC10YWJzPlxuQGZvcihlIG9mIHZtLnJlbGF0ZWRFbnRpdGllcygpO3RyYWNrICRpbmRleDtsZXQgaW5kZXg9ICRpbmRleCl7XG48ZGl2IFtjbGFzcy5heC1oaWRkZW5dPVwiJGluZGV4ICE9IHNlbGVjdGVkUmVsYXRlZElFbnRpdHlUYWJJbmRleCgpXCI+XG4gIDxheHAtZW50aXR5LWRldGFpbC1saXN0LXZpZXcgW3ZpZXdNb2RlbF09XCJlXCI+PC9heHAtZW50aXR5LWRldGFpbC1saXN0LXZpZXc+XG48L2Rpdj5cbn0gfVxuIl19
|
|
@@ -27,7 +27,7 @@ export class AXPButtonWidgetDesignerComponent extends AXPWidgetComponent {
|
|
|
27
27
|
return cls;
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPButtonWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPButtonWidgetDesignerComponent, isStandalone: true, selector: "
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPButtonWidgetDesignerComponent, isStandalone: true, selector: "axp-button-widget", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
|
|
31
31
|
<ax-button [disabled]="disabled()" [color]="color()" [look]="look()" [text]="text()">
|
|
32
32
|
@if(icon() && text()){
|
|
33
33
|
<ax-prefix
|
|
@@ -44,7 +44,7 @@ export class AXPButtonWidgetDesignerComponent extends AXPWidgetComponent {
|
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPButtonWidgetDesignerComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
46
|
args: [{
|
|
47
|
-
selector: '
|
|
47
|
+
selector: 'axp-button-widget',
|
|
48
48
|
template: `
|
|
49
49
|
<ax-button [disabled]="disabled()" [color]="color()" [look]="look()" [text]="text()">
|
|
50
50
|
@if(icon() && text()){
|
|
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
67
67
|
type: HostBinding,
|
|
68
68
|
args: ['class']
|
|
69
69
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXdpZGdldC1kZXNpZ25lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2FjdGlvbnMvYnV0dG9uL2J1dHRvbi13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQXFCeEcsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLGtCQUF1QjtJQXBCN0U7O1FBcUJZLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsVUFBSyxHQUFHLFFBQVEsQ0FBbUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUNuRixTQUFJLEdBQUcsUUFBUSxDQUFrQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLFNBQUksR0FBRyxRQUFRLENBQXFCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLFlBQU8sR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsU0FBSSxHQUFHLFFBQVEsQ0FBcUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFckUsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0tBU25EO0lBUEMsSUFDWSxPQUFPO1FBQ2pCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixFQUFFO1FBQ0YsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OEdBaEJVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHVKQWxCakM7Ozs7Ozs7Ozs7OztHQVlULDJEQUdTLFlBQVksOEJBQUUsY0FBYyx1WkFBRSxlQUFlLDhLQUFFLGlCQUFpQix1VkFBRSxhQUFhOzsyRkFHOUUsZ0NBQWdDO2tCQXBCNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7OztHQVlUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO29CQUMxRixNQUFNLEVBQUUsRUFBRTtpQkFDWDs4QkFZYSxPQUFPO3NCQURsQixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWENsaWNrRXZlbnQsIEFYU3R5bGVDb2xvclR5cGUsIEFYU3R5bGVMb29rVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWJ1dHRvbi13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIiBbY29sb3JdPVwiY29sb3IoKVwiIFtsb29rXT1cImxvb2soKVwiIFt0ZXh0XT1cInRleHQoKVwiPlxuICAgICAgQGlmKGljb24oKSAmJiB0ZXh0KCkpe1xuICAgICAgPGF4LXByZWZpeFxuICAgICAgICA+PGF4LWljb24+IDxpIGNsYXNzPVwiZmEtc29saWRcIiBbY2xhc3NdPVwiaWNvbigpXCI+PC9pPiA8L2F4LWljb25cbiAgICAgID48L2F4LXByZWZpeD5cbiAgICAgIH0gQGVsc2UgaWYoaWNvbigpICYmICF0ZXh0KCkpIHtcbiAgICAgIDxheC1pY29uPiA8aSBjbGFzcz1cImZhLXNvbGlkXCIgW2NsYXNzXT1cImljb24oKVwiPjwvaT4gPC9heC1pY29uPlxuICAgICAgfSBAaWYobG9hZGluZygpKXtcbiAgICAgIDxheC1sb2FkaW5nPiA8L2F4LWxvYWRpbmc+XG4gICAgICB9XG4gICAgPC9heC1idXR0b24+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQVhMb2FkaW5nTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZSwgQVhCYWRnZU1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJ1dHRvbldpZGdldERlc2lnbmVyQ29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSk7XG4gIHByb3RlY3RlZCBjb2xvciA9IGNvbXB1dGVkPEFYU3R5bGVDb2xvclR5cGU+KCgpID0+IHRoaXMub3B0aW9ucygpWydjb2xvciddPy5pZCA/PyAncHJpbWFyeScpO1xuICBwcm90ZWN0ZWQgbG9vayA9IGNvbXB1dGVkPEFYU3R5bGVMb29rVHlwZT4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2xvb2snXT8uaWQgPz8gJ3NvbGlkJyk7XG4gIHByb3RlY3RlZCB0ZXh0ID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndGV4dCddKTtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbG9hZGluZyddKTtcbiAgcHJvdGVjdGVkIGljb24gPSBjb21wdXRlZDxzdHJpbmcgfCB1bmRlZmluZWQ+KCgpID0+IHRoaXMub3B0aW9ucygpWydpY29uJ10pO1xuXG4gIHB1YmxpYyBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIC8vXG4gICAgY2xzWydheC1pbmxpbmUnXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19
|
|
@@ -29,7 +29,7 @@ export class AXPButtonWidgetViewComponent extends AXPWidgetComponent {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPButtonWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPButtonWidgetViewComponent, isStandalone: true, selector: "
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPButtonWidgetViewComponent, isStandalone: true, selector: "axp-button-widget", usesInheritance: true, ngImport: i0, template: `
|
|
33
33
|
<ax-button [disabled]="disabled()" [color]="color()" [look]="look()" [text]="text()">
|
|
34
34
|
@if(icon() && text()){
|
|
35
35
|
<ax-prefix
|
|
@@ -46,7 +46,7 @@ export class AXPButtonWidgetViewComponent extends AXPWidgetComponent {
|
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPButtonWidgetViewComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
48
|
args: [{
|
|
49
|
-
selector: '
|
|
49
|
+
selector: 'axp-button-widget',
|
|
50
50
|
template: `
|
|
51
51
|
<ax-button [disabled]="disabled()" [color]="color()" [look]="look()" [text]="text()">
|
|
52
52
|
@if(icon() && text()){
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
66
66
|
inputs: [],
|
|
67
67
|
}]
|
|
68
68
|
}] });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvYWN0aW9ucy9idXR0b24vYnV0dG9uLXdpZGdldC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQXVCLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFxQjNGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBdUI7SUFwQnpFOztRQXFCWSxhQUFRLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQy9ELFVBQUssR0FBRyxRQUFRLENBQW1CLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksU0FBUyxDQUFDLENBQUM7UUFDbkYsU0FBSSxHQUFHLFFBQVEsQ0FBa0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQztRQUM5RSxTQUFJLEdBQUcsUUFBUSxDQUFxQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNsRSxZQUFPLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUN0RSxTQUFJLEdBQUcsUUFBUSxDQUFxQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVyRSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7S0FXbkQ7SUFUVyxXQUFXLENBQUMsQ0FBZTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRVEsR0FBRztRQUNWLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztJQUNKLENBQUM7OEdBbEJVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLG9HQWxCN0I7Ozs7Ozs7Ozs7OztHQVlULDJEQUdTLFlBQVksOEJBQUUsY0FBYyx1WkFBRSxlQUFlLDhLQUFFLGlCQUFpQix1VkFBRSxhQUFhOzsyRkFHOUUsNEJBQTRCO2tCQXBCeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7OztHQVlUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDO29CQUMxRixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhTdHlsZUNvbG9yVHlwZSwgQVhTdHlsZUxvb2tUeXBlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUExheW91dEVsZW1lbnRBUEksIEFYUFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1idXR0b24td2lkZ2V0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXgtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCIgW2NvbG9yXT1cImNvbG9yKClcIiBbbG9va109XCJsb29rKClcIiBbdGV4dF09XCJ0ZXh0KClcIj5cbiAgICAgIEBpZihpY29uKCkgJiYgdGV4dCgpKXtcbiAgICAgIDxheC1wcmVmaXhcbiAgICAgICAgPjxheC1pY29uPiA8aSBjbGFzcz1cImZhLXNvbGlkXCIgW2NsYXNzXT1cImljb24oKVwiPjwvaT4gPC9heC1pY29uXG4gICAgICA+PC9heC1wcmVmaXg+XG4gICAgICB9IEBlbHNlIGlmKGljb24oKSAmJiAhdGV4dCgpKSB7XG4gICAgICA8YXgtaWNvbj4gPGkgY2xhc3M9XCJmYS1zb2xpZFwiIFtjbGFzc109XCJpY29uKClcIj48L2k+IDwvYXgtaWNvbj5cbiAgICAgIH0gQGlmKGxvYWRpbmcoKSl7XG4gICAgICA8YXgtbG9hZGluZz4gPC9heC1sb2FkaW5nPlxuICAgICAgfVxuICAgIDwvYXgtYnV0dG9uPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYTG9hZGluZ01vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBCdXR0b25XaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSk7XG4gIHByb3RlY3RlZCBjb2xvciA9IGNvbXB1dGVkPEFYU3R5bGVDb2xvclR5cGU+KCgpID0+IHRoaXMub3B0aW9ucygpWydjb2xvciddPy5pZCA/PyAncHJpbWFyeScpO1xuICBwcm90ZWN0ZWQgbG9vayA9IGNvbXB1dGVkPEFYU3R5bGVMb29rVHlwZT4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2xvb2snXT8uaWQgPz8gJ3NvbGlkJyk7XG4gIHByb3RlY3RlZCB0ZXh0ID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndGV4dCddKTtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbG9hZGluZyddID8/IGZhbHNlKTtcbiAgcHJvdGVjdGVkIGljb24gPSBjb21wdXRlZDxzdHJpbmcgfCB1bmRlZmluZWQ+KCgpID0+IHRoaXMub3B0aW9ucygpWydpY29uJ10pO1xuXG4gIHB1YmxpYyBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIHRoaXMub25DbGljay5lbWl0KGUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXBpKCk6IEFYUExheW91dEVsZW1lbnRBUEkge1xuICAgIHJldHVybiB7XG4gICAgICBvbkNsaWNrOiB0aGlzLm9uQ2xpY2ssXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -20,7 +20,7 @@ export class AXPMapBoxWidgetViewComponent extends AXPWidgetComponent {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMapBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPMapBoxWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div [
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPMapBoxWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div [style.height.px]="height()" class="ax-w-full">
|
|
24
24
|
<ax-map
|
|
25
25
|
[hasMarker]="false"
|
|
26
26
|
[markers]="markers()"
|
|
@@ -33,7 +33,7 @@ export class AXPMapBoxWidgetViewComponent extends AXPWidgetComponent {
|
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPMapBoxWidgetViewComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{
|
|
36
|
-
template: `<div [
|
|
36
|
+
template: `<div [style.height.px]="height()" class="ax-w-full">
|
|
37
37
|
<ax-map
|
|
38
38
|
[hasMarker]="false"
|
|
39
39
|
[markers]="markers()"
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
49
49
|
encapsulation: ViewEncapsulation.None,
|
|
50
50
|
}]
|
|
51
51
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWJveC13aWRnZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzL2FkdmFuY2UvbWFwL21hcC1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFrQmhHLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBbUM7SUFoQnJGOztRQWlCRSxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLG9CQUFlLEdBQUcsUUFBUSxDQUN4QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQ2pGO1lBQ0UsS0FBSyxFQUFFLENBQUMsQ0FBZ0IsRUFBRSxDQUFnQixFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDLFNBQVM7b0JBQUUsT0FBTyxJQUFJLENBQUM7O29CQUNyRSxPQUFPLEtBQUssQ0FBQztZQUNwQixDQUFDO1NBQ0YsQ0FDRixDQUFDO0tBQ0g7OEdBYlksNEJBQTRCO2tHQUE1Qiw0QkFBNEIsK0ZBZjdCOzs7Ozs7OztTQVFILDJEQUdHLFlBQVksOEJBQUUsV0FBVzs7MkZBSXhCLDRCQUE0QjtrQkFoQnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7OztTQVFIO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNYXBMb2NhdGlvbiwgQVhNYXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWFwJztcbmltcG9ydCB7IEFYUFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGA8ZGl2IFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0KClcIiBjbGFzcz1cImF4LXctZnVsbFwiPlxuICAgIDxheC1tYXBcbiAgICAgIFtoYXNNYXJrZXJdPVwiZmFsc2VcIlxuICAgICAgW21hcmtlcnNdPVwibWFya2VycygpXCJcbiAgICAgIFt6b29tTGV2ZWxdPVwiem9vbUxldmVsKClcIlxuICAgICAgW2xhdGl0dWRlXT1cImluaXRpYWxMb2NhdGlvbigpLmxhdGl0dWRlXCJcbiAgICAgIFtsb25naXR1ZGVdPVwiaW5pdGlhbExvY2F0aW9uKCkubG9uZ2l0dWRlXCJcbiAgICA+PC9heC1tYXA+XG4gIDwvZGl2PmAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWE1hcE1vZHVsZV0sXG4gIGlucHV0czogW10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUE1hcEJveFdpZGdldFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRDb21wb25lbnQ8QVhNYXBMb2NhdGlvbltdPiB7XG4gIG1hcmtlcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldFZhbHVlKCkpO1xuICBoZWlnaHQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMub3B0aW9ucygpWydoZWlnaHQnXSA/PyAzMDApO1xuICB6b29tTGV2ZWwgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHRoaXMub3B0aW9ucygpWyd6b29tTGV2ZWwnXSA/PyAxMyk7XG4gIGluaXRpYWxMb2NhdGlvbiA9IGNvbXB1dGVkPEFYTWFwTG9jYXRpb24+KFxuICAgICgpID0+IHRoaXMub3B0aW9ucygpWydpbml0aWFsTG9jYXRpb24nXSA/PyB7IGxhdGl0dWRlOiA1MS41MDUsIGxvbmdpdHVkZTogLTAuMDkgfSxcbiAgICB7XG4gICAgICBlcXVhbDogKGE6IEFYTWFwTG9jYXRpb24sIGI6IEFYTWFwTG9jYXRpb24pID0+IHtcbiAgICAgICAgaWYgKGEubGF0aXR1ZGUgPT09IGIubGF0aXR1ZGUgJiYgYS5sb25naXR1ZGUgPT09IGIubG9uZ2l0dWRlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgICB9LFxuICAgIH1cbiAgKTtcbn1cbiJdfQ==
|