bways-report 0.1.2 → 0.1.4
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/README.md +150 -51
- package/esm2022/lib/core/errors/reporting-errors.mjs +2 -2
- package/esm2022/lib/core/index.mjs +3 -1
- package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
- package/esm2022/lib/core/models/report-definition.model.mjs +1 -1
- package/esm2022/lib/core/models/report-grid.model.mjs +1 -1
- package/esm2022/lib/core/services/report-session-context.service.mjs +50 -5
- package/esm2022/lib/core/utils/data-normalization.util.mjs +56 -0
- package/esm2022/lib/core/utils/report-parameter.util.mjs +180 -0
- package/esm2022/lib/data-access/adapters/http-datasource.adapter.mjs +82 -0
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +34 -9
- package/esm2022/lib/data-access/adapters/http-masterdata.adapter.mjs +38 -0
- package/esm2022/lib/data-access/adapters/http-persistence.adapter.mjs +217 -0
- package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +3 -1
- package/esm2022/lib/data-access/adapters/index.mjs +8 -3
- package/esm2022/lib/data-access/adapters/local-storage-persistence.adapter.mjs +167 -0
- package/esm2022/lib/data-access/adapters/mock-datasource.adapter.mjs +60 -0
- package/esm2022/lib/data-access/contracts/api-dtos.mjs +6 -0
- package/esm2022/lib/data-access/contracts/index.mjs +2 -1
- package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +24 -3
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +572 -102
- package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +593 -0
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +225 -25
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +568 -12
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +238 -11
- package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +191 -25
- package/esm2022/lib/features/designer/designer.component.mjs +245 -27
- package/esm2022/lib/features/designer/index.mjs +4 -1
- package/esm2022/lib/features/designer/rpt-report-designer.component.mjs +102 -0
- package/esm2022/lib/features/designer/services/designer-state.service.mjs +18 -10
- package/esm2022/lib/features/designer/services/report-template.service.mjs +318 -0
- package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +41 -9
- package/esm2022/lib/features/export/index.mjs +2 -2
- package/esm2022/lib/features/export/models/export.models.mjs +1 -1
- package/esm2022/lib/features/export/services/report-export.service.mjs +420 -5
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
- package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +239 -33
- package/esm2022/lib/features/runtime/index.mjs +2 -1
- package/esm2022/lib/features/runtime/report-execution.service.mjs +56 -0
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +423 -30
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +349 -7
- package/esm2022/lib/features/runtime/rpt-report.component.mjs +545 -0
- package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +19 -8
- package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +18 -7
- package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +3 -3
- package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +3 -3
- package/esm2022/lib/primitives/components/date-range/rpt-date-range.component.mjs +346 -0
- package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +728 -74
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +30 -1
- package/esm2022/lib/primitives/components/index.mjs +2 -1
- package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +3 -3
- package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +3 -3
- package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +3 -3
- package/esm2022/lib/primitives/register-builtins.mjs +51 -2
- package/esm2022/lib/provide-reporting.mjs +145 -24
- package/fesm2022/bways-report.mjs +7797 -921
- package/fesm2022/bways-report.mjs.map +1 -1
- package/lib/core/index.d.ts +2 -0
- package/lib/core/models/report-datasource.model.d.ts +9 -0
- package/lib/core/models/report-definition.model.d.ts +2 -0
- package/lib/core/models/report-grid.model.d.ts +67 -1
- package/lib/core/services/report-session-context.service.d.ts +6 -1
- package/lib/core/utils/data-normalization.util.d.ts +15 -0
- package/lib/core/utils/report-parameter.util.d.ts +35 -0
- package/lib/data-access/adapters/http-datasource.adapter.d.ts +20 -0
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +3 -0
- package/lib/data-access/adapters/http-masterdata.adapter.d.ts +13 -0
- package/lib/data-access/adapters/http-persistence.adapter.d.ts +27 -0
- package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +2 -0
- package/lib/data-access/adapters/index.d.ts +7 -2
- package/lib/data-access/adapters/local-storage-persistence.adapter.d.ts +19 -0
- package/lib/data-access/adapters/mock-datasource.adapter.d.ts +9 -0
- package/lib/data-access/contracts/api-dtos.d.ts +67 -0
- package/lib/data-access/contracts/index.d.ts +1 -0
- package/lib/features/designer/components/component-palette/component-palette.component.d.ts +2 -1
- package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +22 -0
- package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +1 -1
- package/lib/features/designer/components/property-editor/property-editor-action.component.d.ts +33 -0
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +13 -0
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +16 -2
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +9 -1
- package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +12 -1
- package/lib/features/designer/designer.component.d.ts +11 -0
- package/lib/features/designer/index.d.ts +4 -0
- package/lib/features/designer/rpt-report-designer.component.d.ts +38 -0
- package/lib/features/designer/services/designer-state.service.d.ts +1 -1
- package/lib/features/designer/services/report-template.service.d.ts +32 -0
- package/lib/features/designer/utilities/canvas-layout.util.d.ts +4 -0
- package/lib/features/export/index.d.ts +2 -2
- package/lib/features/export/models/export.models.d.ts +23 -0
- package/lib/features/export/services/report-export.service.d.ts +31 -2
- package/lib/features/runtime/dynamic-renderer.component.d.ts +42 -2
- package/lib/features/runtime/index.d.ts +2 -0
- package/lib/features/runtime/report-execution.service.d.ts +16 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +171 -6
- package/lib/features/runtime/report-runtime.component.d.ts +86 -1
- package/lib/features/runtime/rpt-report.component.d.ts +69 -0
- package/lib/primitives/components/button/rpt-button.component.d.ts +5 -2
- package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +1 -0
- package/lib/primitives/components/date-range/rpt-date-range.component.d.ts +43 -0
- package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +55 -7
- package/lib/primitives/components/index.d.ts +2 -0
- package/lib/provide-reporting.d.ts +79 -26
- package/package.json +2 -1
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/index.js +45 -0
- package/schematics/ng-add/schema.json +17 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { generateId } from '../core/utilities/id-generator';
|
|
2
|
-
import { RptButtonComponent, RptCheckboxComponent, RptDateComponent, RptDropdownComponent, RptInputComponent, RptNumberComponent, RptKpiCardComponent, ReportChartBridgeComponent, } from './components';
|
|
2
|
+
import { RptButtonComponent, RptCheckboxComponent, RptDateComponent, RptDateRangeComponent, RptDropdownComponent, RptInputComponent, RptNumberComponent, RptKpiCardComponent, ReportChartBridgeComponent, } from './components';
|
|
3
3
|
/**
|
|
4
4
|
* Registers all built-in primitive components with the ComponentRegistry.
|
|
5
5
|
*
|
|
@@ -62,6 +62,7 @@ export function registerBuiltinComponents(registry) {
|
|
|
62
62
|
label: 'Dropdown',
|
|
63
63
|
properties: {
|
|
64
64
|
placeholder: '-- Select --',
|
|
65
|
+
nativeSelect: false,
|
|
65
66
|
options: [
|
|
66
67
|
{ key: '1', label: 'Option 1' },
|
|
67
68
|
{ key: '2', label: 'Option 2' },
|
|
@@ -73,6 +74,8 @@ export function registerBuiltinComponents(registry) {
|
|
|
73
74
|
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
74
75
|
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
75
76
|
{ key: 'placeholder', label: 'Placeholder', type: 'string', group: 'General' },
|
|
77
|
+
{ key: 'nativeSelect', label: 'Native Browser Select', type: 'boolean', defaultValue: false, group: 'Display' },
|
|
78
|
+
{ key: 'openAbove', label: 'Open Above Trigger', type: 'boolean', defaultValue: false, group: 'Display' },
|
|
76
79
|
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
77
80
|
],
|
|
78
81
|
});
|
|
@@ -101,6 +104,52 @@ export function registerBuiltinComponents(registry) {
|
|
|
101
104
|
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
102
105
|
],
|
|
103
106
|
});
|
|
107
|
+
// 3b. Unified Date Range Selector
|
|
108
|
+
registry.register({
|
|
109
|
+
type: 'date-range',
|
|
110
|
+
displayName: 'Date Range',
|
|
111
|
+
category: 'input',
|
|
112
|
+
icon: 'date_range',
|
|
113
|
+
createDefaultConfig: () => ({
|
|
114
|
+
id: generateId('drange'),
|
|
115
|
+
type: 'date-range',
|
|
116
|
+
key: 'dateRange',
|
|
117
|
+
label: 'Date Range',
|
|
118
|
+
layout: {
|
|
119
|
+
columnSpan: 4,
|
|
120
|
+
},
|
|
121
|
+
properties: {
|
|
122
|
+
defaultPreset: 'thisMonth',
|
|
123
|
+
showPresets: true,
|
|
124
|
+
},
|
|
125
|
+
}),
|
|
126
|
+
component: RptDateRangeComponent,
|
|
127
|
+
propertySchema: [
|
|
128
|
+
{ key: 'label', label: 'Label', type: 'string', required: true, group: 'General' },
|
|
129
|
+
{ key: 'key', label: 'Field Name (Key)', type: 'string', required: true, group: 'General' },
|
|
130
|
+
{
|
|
131
|
+
key: 'defaultPreset',
|
|
132
|
+
label: 'Default Preset',
|
|
133
|
+
type: 'select',
|
|
134
|
+
defaultValue: 'thisMonth',
|
|
135
|
+
options: [
|
|
136
|
+
{ key: 'today', label: 'Today' },
|
|
137
|
+
{ key: 'yesterday', label: 'Yesterday' },
|
|
138
|
+
{ key: 'thisWeek', label: 'This Week' },
|
|
139
|
+
{ key: 'thisMonth', label: 'This Month' },
|
|
140
|
+
{ key: 'lastMonth', label: 'Last Month' },
|
|
141
|
+
{ key: 'thisQuarter', label: 'This Quarter' },
|
|
142
|
+
{ key: 'ytd', label: 'YTD' },
|
|
143
|
+
{ key: 'custom', label: 'Custom (Blank)' },
|
|
144
|
+
],
|
|
145
|
+
group: 'General',
|
|
146
|
+
},
|
|
147
|
+
{ key: 'showPresets', label: 'Show Preset Pills', type: 'boolean', defaultValue: true, group: 'Display' },
|
|
148
|
+
{ key: 'minDate', label: 'Min Date', type: 'string', group: 'Validation' },
|
|
149
|
+
{ key: 'maxDate', label: 'Max Date', type: 'string', group: 'Validation' },
|
|
150
|
+
{ key: 'required', label: 'Required', type: 'boolean', group: 'Validation' },
|
|
151
|
+
],
|
|
152
|
+
});
|
|
104
153
|
// 4. Number Input
|
|
105
154
|
registry.register({
|
|
106
155
|
type: 'number',
|
|
@@ -325,4 +374,4 @@ export function registerBuiltinComponents(registry) {
|
|
|
325
374
|
],
|
|
326
375
|
});
|
|
327
376
|
}
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYnVpbHRpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcmltaXRpdmVzL3JlZ2lzdGVyLWJ1aWx0aW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixHQUMzQixNQUFNLGNBQWMsQ0FBQztBQUd0Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxRQUEyQjtJQUNuRSxnQkFBZ0I7SUFDaEIsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNoQixJQUFJLEVBQUUsT0FBTztRQUNiLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLElBQUksRUFBRSxhQUFhO1FBQ25CLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUIsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDdkIsSUFBSSxFQUFFLE9BQU87WUFDYixHQUFHLEVBQUUsV0FBVztZQUNoQixLQUFLLEVBQUUsWUFBWTtZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsSUFBSSxFQUFFLE1BQU07YUFDYjtTQUNGLENBQUM7UUFDRixTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLGNBQWMsRUFBRTtZQUNkLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2xGLEVBQUUsR0FBRyxF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LE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUUsQ0FBQzthQUNkO1NBQ0YsQ0FBQztRQUNGLFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsY0FBYyxFQUFFO1lBQ2QsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDeEY7Z0JBQ0UsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxZQUFZLEVBQUUsS0FBSztnQkFDbkIsT0FBTyxFQUFFO29CQUNQLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO29CQUNsQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtvQkFDdEMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtpQkFDNUM7Z0JBQ0QsS0FBSyxFQUFFLFNBQVM7YUFDakI7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeSB9IGZyb20gJy4uL2NvcmUvcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5JztcbmltcG9ydCB7IGdlbmVyYXRlSWQgfSBmcm9tICcuLi9jb3JlL3V0aWxpdGllcy9pZC1nZW5lcmF0b3InO1xuaW1wb3J0IHtcbiAgUnB0QnV0dG9uQ29tcG9uZW50LFxuICBScHRDaGVja2JveENvbXBvbmVudCxcbiAgUnB0RGF0ZUNvbXBvbmVudCxcbiAgUnB0RHJvcGRvd25Db21wb25lbnQsXG4gIFJwdElucHV0Q29tcG9uZW50LFxuICBScHROdW1iZXJDb21wb25lbnQsXG4gIFJwdEtwaUNhcmRDb21wb25lbnQsXG4gIFJlcG9ydENoYXJ0QnJpZGdlQ29tcG9uZW50LFxufSBmcm9tICcuL2NvbXBvbmVudHMnO1xuXG5cbi8qKlxuICogUmVnaXN0ZXJzIGFsbCBidWlsdC1pbiBwcmltaXRpdmUgY29tcG9uZW50cyB3aXRoIHRoZSBDb21wb25lbnRSZWdpc3RyeS5cbiAqXG4gKiBUaGlzIHByb3ZpZGVzIHRoZSBiYXNlbGluZSBjb21wb25lbnRzIGZvciBhbnkgcmVwb3J0aW5nIHBhZ2UuXG4gKiBIb3N0IGFwcGxpY2F0aW9ucyBjYW4gb3ZlcnJpZGUgYW55IG9mIHRoZXNlIGJ5IGNhbGxpbmcgYHJlZ2lzdHJ5LnJlZ2lzdGVyKClgXG4gKiB3aXRoIHRoZWlyIG93biBjdXN0b20gY29tcG9uZW50IGFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gcmVnaXN0cnkgLSBUaGUgQ29tcG9uZW50UmVnaXN0cnkgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckJ1aWx0aW5Db21wb25lbnRzKHJlZ2lzdHJ5OiBDb21wb25lbnRSZWdpc3RyeSk6IHZvaWQge1xuICAvLyAxLiBUZXh0IElucHV0XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnaW5wdXQnLFxuICAgIGRpc3BsYXlOYW1lOiAnVGV4dCBJbnB1dCcsXG4gICAgY2F0ZWdvcnk6ICdpbnB1dCcsXG4gICAgaWNvbjogJ3RleHRfZmllbGRzJyxcbiAgICBjcmVhdGVEZWZhdWx0Q29uZmlnOiAoKSA9PiAoe1xuICAgICAgaWQ6IGdlbmVyYXRlSWQoJ2lucHV0JyksXG4gICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAga2V5OiAndGV4dElucHV0JyxcbiAgICAgIGxhYmVsOiAnVGV4dCBJbnB1dCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgdmFsdWUuLi4nLFxuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0SW5wdXRDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwbGFjZWhvbGRlcicsIGxhYmVsOiAnUGxhY2Vob2xkZXInLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd0eXBlJyxcbiAgICAgICAgbGFiZWw6ICdJbnB1dCBUeXBlJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3RleHQnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICd0ZXh0JywgbGFiZWw6ICdUZXh0JyB9LFxuICAgICAgICAgIHsga2V5OiAnZW1haWwnLCBsYWJlbDogJ0VtYWlsJyB9LFxuICAgICAgICAgIHsga2V5OiAndGVsJywgbGFiZWw6ICdQaG9uZScgfSxcbiAgICAgICAgICB7IGtleTogJ3VybCcsIGxhYmVsOiAnVVJMJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0dlbmVyYWwnLFxuICAgICAgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ1JlcXVpcmVkJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ21pbkxlbmd0aCcsIGxhYmVsOiAnTWluIExlbmd0aCcsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ21heExlbmd0aCcsIGxhYmVsOiAnTWF4IExlbmd0aCcsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gMi4gRHJvcGRvd25cbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdkcm9wZG93bicsXG4gICAgZGlzcGxheU5hbWU6ICdEcm9wZG93bicsXG4gICAgY2F0ZWdvcnk6ICdpbnB1dCcsXG4gICAgaWNvbjogJ2Fycm93X2Ryb3BfZG93bl9jaXJjbGUnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnZHJvcGRvd24nKSxcbiAgICAgIHR5cGU6ICdkcm9wZG93bicsXG4gICAgICBrZXk6ICdkcm9wZG93bkZpZWxkJyxcbiAgICAgIGxhYmVsOiAnRHJvcGRvd24nLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJy0tIFNlbGVjdCAtLScsXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICB7IGtleTogJzEnLCBsYWJlbDogJ09wdGlvbiAxJyB9LFxuICAgICAgICAgIHsga2V5OiAnMicsIGxhYmVsOiAnT3B0aW9uIDInIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0RHJvcGRvd25Db21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwbGFjZWhvbGRlcicsIGxhYmVsOiAnUGxhY2Vob2xkZXInLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdyZXF1aXJlZCcsIGxhYmVsOiAnUmVxdWlyZWQnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyAzLiBEYXRlIFBpY2tlclxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2RhdGUnLFxuICAgIGRpc3BsYXlOYW1lOiAnRGF0ZSBQaWNrZXInLFxuICAgIGNhdGVnb3J5OiAnaW5wdXQnLFxuICAgIGljb246ICdjYWxlbmRhcl90b2RheScsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdkYXRlJyksXG4gICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICBrZXk6ICdkYXRlRmllbGQnLFxuICAgICAgbGFiZWw6ICdEYXRlJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaW5jbHVkZVRpbWU6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdERhdGVDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdpbmNsdWRlVGltZScsIGxhYmVsOiAnSW5jbHVkZSBUaW1lJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ21pbkRhdGUnLCBsYWJlbDogJ01pbiBEYXRlJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICAgIHsga2V5OiAnbWF4RGF0ZScsIGxhYmVsOiAnTWF4IERhdGUnLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdyZXF1aXJlZCcsIGxhYmVsOiAnUmVxdWlyZWQnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA0LiBOdW1iZXIgSW5wdXRcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRpc3BsYXlOYW1lOiAnTnVtYmVyIElucHV0JyxcbiAgICBjYXRlZ29yeTogJ2lucHV0JyxcbiAgICBpY29uOiAnbnVtYmVycycsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdudW1iZXInKSxcbiAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAga2V5OiAnbnVtYmVyRmllbGQnLFxuICAgICAgbGFiZWw6ICdOdW1iZXInLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJzAnLFxuICAgICAgICBzdGVwOiAxLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdE51bWJlckNvbXBvbmVudCxcbiAgICBwcm9wZXJ0eVNjaGVtYTogW1xuICAgICAgeyBrZXk6ICdsYWJlbCcsIGxhYmVsOiAnTGFiZWwnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAna2V5JywgbGFiZWw6ICdGaWVsZCBOYW1lIChLZXkpJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3BsYWNlaG9sZGVyJywgbGFiZWw6ICdQbGFjZWhvbGRlcicsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3ByZWZpeCcsIGxhYmVsOiAnUHJlZml4IChlLmcuICQpJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAnc3VmZml4JywgbGFiZWw6ICdTdWZmaXggKGUuZy4gJSknLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdEaXNwbGF5JyB9LFxuICAgICAgeyBrZXk6ICdzdGVwJywgbGFiZWw6ICdTdGVwJywgdHlwZTogJ251bWJlcicsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAnbWluJywgbGFiZWw6ICdNaW4gVmFsdWUnLCB0eXBlOiAnbnVtYmVyJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdtYXgnLCBsYWJlbDogJ01heCBWYWx1ZScsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ3JlcXVpcmVkJywgbGFiZWw6ICdSZXF1aXJlZCcsIHR5cGU6ICdib29sZWFuJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIC8vIDUuIENoZWNrYm94XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgIGRpc3BsYXlOYW1lOiAnQ2hlY2tib3gnLFxuICAgIGNhdGVnb3J5OiAnaW5wdXQnLFxuICAgIGljb246ICdjaGVja19ib3gnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnY2hrJyksXG4gICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAga2V5OiAnY2hlY2tib3hGaWVsZCcsXG4gICAgICBsYWJlbDogJ0FjdGl2ZScsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0Q2hlY2tib3hDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdkZWZhdWx0VmFsdWUnLCBsYWJlbDogJ0RlZmF1bHQgVmFsdWUnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ011c3QgYmUgY2hlY2tlZCcsIHR5cGU6ICdib29sZWFuJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIC8vIDYuIEJ1dHRvblxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgZGlzcGxheU5hbWU6ICdBY3Rpb24gQnV0dG9uJyxcbiAgICBjYXRlZ29yeTogJ2FjdGlvbicsXG4gICAgaWNvbjogJ3NtYXJ0X2J1dHRvbicsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdidG4nKSxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgbGFiZWw6ICdSdW4gUmVwb3J0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdmFyaWFudDogJ3ByaW1hcnknLFxuICAgICAgICBhY3Rpb246ICdleGVjdXRlLXJlcG9ydCcsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0QnV0dG9uQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ2xhYmVsJywgbGFiZWw6ICdCdXR0b24gVGV4dCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdpY29uJyxcbiAgICAgICAgbGFiZWw6ICdCdXR0b24gSWNvbicsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICcnLCBsYWJlbDogJ05vbmUgKE5vIEljb24pJyB9LFxuICAgICAgICAgIHsga2V5OiAnc2VhcmNoJywgbGFiZWw6ICdTZWFyY2gnIH0sXG4gICAgICAgICAgeyBrZXk6ICdkb3dubG9hZCcsIGxhYmVsOiAnRG93bmxvYWQnIH0sXG4gICAgICAgICAgeyBrZXk6ICdmaWx0ZXInLCBsYWJlbDogJ0ZpbHRlcicgfSxcbiAgICAgICAgICB7IGtleTogJ3JlZnJlc2gnLCBsYWJlbDogJ1JlZnJlc2gnIH0sXG4gICAgICAgICAgeyBrZXk6ICdjaGVjaycsIGxhYmVsOiAnQ2hlY2snIH0sXG4gICAgICAgICAgeyBrZXk6ICdwbHVzJywgbGFiZWw6ICdQbHVzJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0Rpc3BsYXknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZnVsbFdpZHRoJyxcbiAgICAgICAgbGFiZWw6ICdGdWxsIFdpZHRoIChGaWxsIENvbHVtbiknLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgIGdyb3VwOiAnRGlzcGxheScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd2YXJpYW50JyxcbiAgICAgICAgbGFiZWw6ICdTdHlsZSBWYXJpYW50JyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3ByaW1hcnknLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICdwcmltYXJ5JywgbGFiZWw6ICdQcmltYXJ5JyB9LFxuICAgICAgICAgIHsga2V5OiAnc2Vjb25kYXJ5JywgbGFiZWw6ICdTZWNvbmRhcnknIH0sXG4gICAgICAgICAgeyBrZXk6ICdvdXRsaW5lJywgbGFiZWw6ICdPdXRsaW5lJyB9LFxuICAgICAgICAgIHsga2V5OiAnZGFuZ2VyJywgbGFiZWw6ICdEYW5nZXInIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnRGlzcGxheScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgICBsYWJlbDogJ0FjdGlvbiBUeXBlJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ2V4ZWN1dGUtcmVwb3J0JyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAnZXhlY3V0ZS1yZXBvcnQnLCBsYWJlbDogJ0V4ZWN1dGUgUmVwb3J0JyB9LFxuICAgICAgICAgIHsga2V5OiAncmVzZXQnLCBsYWJlbDogJ1Jlc2V0IEZvcm0nIH0sXG4gICAgICAgICAgeyBrZXk6ICdjdXN0b20nLCBsYWJlbDogJ0N1c3RvbSBFdmVudCcgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZ3JvdXA6ICdBY3Rpb24nLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA3LiBLUEkgTWV0cmljIENhcmRcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdrcGktY2FyZCcsXG4gICAgZGlzcGxheU5hbWU6ICdLUEkgTWV0cmljIENhcmQnLFxuICAgIGNhdGVnb3J5OiAnZGlzcGxheScsXG4gICAgaWNvbjogJ21vbml0b3JpbmcnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgna3BpJyksXG4gICAgICB0eXBlOiAna3BpLWNhcmQnLFxuICAgICAgbGFiZWw6ICdUb3RhbCBSZXZlbnVlJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGl0bGU6ICdUb3RhbCBSZXZlbnVlJyxcbiAgICAgICAgdmFsdWU6IDEyNTQwMCxcbiAgICAgICAgcHJlZml4OiAnJCcsXG4gICAgICAgIHRoZW1lOiAncHJpbWFyeScsXG4gICAgICAgIGljb246ICdkb2xsYXInLFxuICAgICAgICB0cmVuZFZhbHVlOiAxMi44LFxuICAgICAgICB0cmVuZERpcmVjdGlvbjogJ3VwJyxcbiAgICAgICAgdHJlbmRMYWJlbDogJ3ZzIGxhc3QgbW9udGgnXG4gICAgICB9LFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgIGNvbHVtblNwYW46IDMsXG4gICAgICB9XG4gICAgfSksXG4gICAgY29tcG9uZW50OiBScHRLcGlDYXJkQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ3RpdGxlJywgbGFiZWw6ICdNZXRyaWMgVGl0bGUnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAndmFsdWUnLCBsYWJlbDogJ1ZhbHVlJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3ByZWZpeCcsIGxhYmVsOiAnUHJlZml4IChlLmcuICQpJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAnc3VmZml4JywgbGFiZWw6ICdTdWZmaXggKGUuZy4gJSknLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdEaXNwbGF5JyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd0aGVtZScsXG4gICAgICAgIGxhYmVsOiAnVGhlbWUgQWNjZW50JyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3ByaW1hcnknLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICdwcmltYXJ5JywgbGFiZWw6ICdQcmltYXJ5IChCbHVlKScgfSxcbiAgICAgICAgICB7IGtleTogJ3N1Y2Nlc3MnLCBsYWJlbDogJ1N1Y2Nlc3MgKEdyZWVuKScgfSxcbiAgICAgICAgICB7IGtleTogJ3dhcm5pbmcnLCBsYWJlbDogJ1dhcm5pbmcgKEFtYmVyKScgfSxcbiAgICAgICAgICB7IGtleTogJ2RhbmdlcicsIGxhYmVsOiAnRGFuZ2VyIChSZWQpJyB9LFxuICAgICAgICAgIHsga2V5OiAnaW5mbycsIGxhYmVsOiAnSW5mbyAoQ3lhbiknIH0sXG4gICAgICAgICAgeyBrZXk6ICduZXV0cmFsJywgbGFiZWw6ICdOZXV0cmFsIChTbGF0ZSknIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnRGlzcGxheScsXG4gICAgICB9LFxuICAgICAgeyBrZXk6ICdpY29uJywgbGFiZWw6ICdJY29uIChlLmcuIGRvbGxhciwgY2hlY2ssIGNoYXJ0LWJhciwgYm94KScsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ0Rpc3BsYXknIH0sXG4gICAgICB7IGtleTogJ3RyZW5kVmFsdWUnLCBsYWJlbDogJ1RyZW5kIFZhbHVlICglKScsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ1RyZW5kJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICd0cmVuZERpcmVjdGlvbicsXG4gICAgICAgIGxhYmVsOiAnVHJlbmQgRGlyZWN0aW9uJyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ25ldXRyYWwnLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICd1cCcsIGxhYmVsOiAnVXAgKEdyb3d0aCknIH0sXG4gICAgICAgICAgeyBrZXk6ICdkb3duJywgbGFiZWw6ICdEb3duIChEZWNsaW5lKScgfSxcbiAgICAgICAgICB7IGtleTogJ25ldXRyYWwnLCBsYWJlbDogJ05ldXRyYWwnIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnVHJlbmQnLFxuICAgICAgfSxcbiAgICAgIHsga2V5OiAndHJlbmRMYWJlbCcsIGxhYmVsOiAnVHJlbmQgTGFiZWwnLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdUcmVuZCcgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA4LiBDaGFydCBCcmlkZ2VcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdjaGFydCcsXG4gICAgZGlzcGxheU5hbWU6ICdDaGFydCBWaXN1YWxpemF0aW9uJyxcbiAgICBjYXRlZ29yeTogJ2Rpc3BsYXknLFxuICAgIGljb246ICdiYXJfY2hhcnQnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnY2hhcnQnKSxcbiAgICAgIHR5cGU6ICdjaGFydCcsXG4gICAgICBsYWJlbDogJ1BlcmZvcm1hbmNlIEJyZWFrZG93bicsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHRpdGxlOiAnTW9udGhseSBQZXJmb3JtYW5jZScsXG4gICAgICAgIGNoYXJ0VHlwZTogJ2JhcicsXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7IGxhYmVsOiAnUTEnLCB2YWx1ZTogNDUgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnUTInLCB2YWx1ZTogNjggfSxcbiAgICAgICAgICB7IGxhYmVsOiAnUTMnLCB2YWx1ZTogODUgfSxcbiAgICAgICAgICB7IGxhYmVsOiAnUTQnLCB2YWx1ZTogMTEwIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBjb2x1bW5TcGFuOiA2LFxuICAgICAgfVxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUmVwb3J0Q2hhcnRCcmlkZ2VDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAndGl0bGUnLCBsYWJlbDogJ0NoYXJ0IFRpdGxlJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2NoYXJ0VHlwZScsXG4gICAgICAgIGxhYmVsOiAnQ2hhcnQgVHlwZScsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICdiYXInLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICdiYXInLCBsYWJlbDogJ0JhciBDaGFydCcgfSxcbiAgICAgICAgICB7IGtleTogJ2RvbnV0JywgbGFiZWw6ICdEb251dCBDaGFydCcgfSxcbiAgICAgICAgICB7IGtleTogJ2xpbmUnLCBsYWJlbDogJ0xpbmUgLyBBcmVhIENoYXJ0JyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0dlbmVyYWwnLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbn1cblxuXG4iXX0=
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYnVpbHRpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcmltaXRpdmVzL3JlZ2lzdGVyLWJ1aWx0aW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQiwwQkFBMEIsR0FDM0IsTUFBTSxjQUFjLENBQUM7QUFHdEI7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsUUFBMkI7SUFDbkUsZ0JBQWdCO0lBQ2hCLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDaEIsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXLEVBQUUsWUFBWTtRQUN6QixRQUFRLEVBQUUsT0FBTztRQUNqQixJQUFJLEVBQUUsYUFBYTtRQUNuQixtQkFBbUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ3ZCLElBQUksRUFBRSxPQUFPO1lBQ2IsR0FBRyxFQUFFLFdBQVc7WUFDaEIsS0FBSyxFQUFFLFlBQVk7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxnQkFBZ0I7Z0JBQzdCLElBQUksRUFBRSxNQUFNO2FBQ2I7U0FDRixDQUFDO1FBQ0YsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixjQUFjLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUNs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QzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO2lCQUM1QjthQUNGO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxDQUFDO2FBQ2Q7U0FDRixDQUFDO1FBQ0YsU0FBUyxFQUFFLDBCQUEwQjtRQUNyQyxjQUFjLEVBQUU7WUFDZCxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN4RjtnQkFDRSxHQUFHLEVBQUUsV0FBVztnQkFDaEIsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLElBQUksRUFBRSxRQUFRO2dCQUNkLFlBQVksRUFBRSxLQUFLO2dCQUNuQixPQUFPLEVBQUU7b0JBQ1AsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7b0JBQ2xDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO29CQUN0QyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO2lCQUM1QztnQkFDRCxLQUFLLEVBQUUsU0FBUzthQUNqQjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZ2lzdHJ5IH0gZnJvbSAnLi4vY29yZS9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnknO1xuaW1wb3J0IHsgZ2VuZXJhdGVJZCB9IGZyb20gJy4uL2NvcmUvdXRpbGl0aWVzL2lkLWdlbmVyYXRvcic7XG5pbXBvcnQge1xuICBScHRCdXR0b25Db21wb25lbnQsXG4gIFJwdENoZWNrYm94Q29tcG9uZW50LFxuICBScHREYXRlQ29tcG9uZW50LFxuICBScHREYXRlUmFuZ2VDb21wb25lbnQsXG4gIFJwdERyb3Bkb3duQ29tcG9uZW50LFxuICBScHRJbnB1dENvbXBvbmVudCxcbiAgUnB0TnVtYmVyQ29tcG9uZW50LFxuICBScHRLcGlDYXJkQ29tcG9uZW50LFxuICBSZXBvcnRDaGFydEJyaWRnZUNvbXBvbmVudCxcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcblxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbGwgYnVpbHQtaW4gcHJpbWl0aXZlIGNvbXBvbmVudHMgd2l0aCB0aGUgQ29tcG9uZW50UmVnaXN0cnkuXG4gKlxuICogVGhpcyBwcm92aWRlcyB0aGUgYmFzZWxpbmUgY29tcG9uZW50cyBmb3IgYW55IHJlcG9ydGluZyBwYWdlLlxuICogSG9zdCBhcHBsaWNhdGlvbnMgY2FuIG92ZXJyaWRlIGFueSBvZiB0aGVzZSBieSBjYWxsaW5nIGByZWdpc3RyeS5yZWdpc3RlcigpYFxuICogd2l0aCB0aGVpciBvd24gY3VzdG9tIGNvbXBvbmVudCBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHJlZ2lzdHJ5IC0gVGhlIENvbXBvbmVudFJlZ2lzdHJ5IGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJCdWlsdGluQ29tcG9uZW50cyhyZWdpc3RyeTogQ29tcG9uZW50UmVnaXN0cnkpOiB2b2lkIHtcbiAgLy8gMS4gVGV4dCBJbnB1dFxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2lucHV0JyxcbiAgICBkaXNwbGF5TmFtZTogJ1RleHQgSW5wdXQnLFxuICAgIGNhdGVnb3J5OiAnaW5wdXQnLFxuICAgIGljb246ICd0ZXh0X2ZpZWxkcycsXG4gICAgY3JlYXRlRGVmYXVsdENvbmZpZzogKCkgPT4gKHtcbiAgICAgIGlkOiBnZW5lcmF0ZUlkKCdpbnB1dCcpLFxuICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgIGtleTogJ3RleHRJbnB1dCcsXG4gICAgICBsYWJlbDogJ1RleHQgSW5wdXQnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogJ0VudGVyIHZhbHVlLi4uJyxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdElucHV0Q29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ2xhYmVsJywgbGFiZWw6ICdMYWJlbCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdrZXknLCBsYWJlbDogJ0ZpZWxkIE5hbWUgKEtleSknLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAncGxhY2Vob2xkZXInLCBsYWJlbDogJ1BsYWNlaG9sZGVyJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAndHlwZScsXG4gICAgICAgIGxhYmVsOiAnSW5wdXQgVHlwZScsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICd0ZXh0JyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAndGV4dCcsIGxhYmVsOiAnVGV4dCcgfSxcbiAgICAgICAgICB7IGtleTogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCcgfSxcbiAgICAgICAgICB7IGtleTogJ3RlbCcsIGxhYmVsOiAnUGhvbmUnIH0sXG4gICAgICAgICAgeyBrZXk6ICd1cmwnLCBsYWJlbDogJ1VSTCcgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZ3JvdXA6ICdHZW5lcmFsJyxcbiAgICAgIH0sXG4gICAgICB7IGtleTogJ3JlcXVpcmVkJywgbGFiZWw6ICdSZXF1aXJlZCcsIHR5cGU6ICdib29sZWFuJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdtaW5MZW5ndGgnLCBsYWJlbDogJ01pbiBMZW5ndGgnLCB0eXBlOiAnbnVtYmVyJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdtYXhMZW5ndGgnLCBsYWJlbDogJ01heCBMZW5ndGgnLCB0eXBlOiAnbnVtYmVyJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIC8vIDIuIERyb3Bkb3duXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnZHJvcGRvd24nLFxuICAgIGRpc3BsYXlOYW1lOiAnRHJvcGRvd24nLFxuICAgIGNhdGVnb3J5OiAnaW5wdXQnLFxuICAgIGljb246ICdhcnJvd19kcm9wX2Rvd25fY2lyY2xlJyxcbiAgICBjcmVhdGVEZWZhdWx0Q29uZmlnOiAoKSA9PiAoe1xuICAgICAgaWQ6IGdlbmVyYXRlSWQoJ2Ryb3Bkb3duJyksXG4gICAgICB0eXBlOiAnZHJvcGRvd24nLFxuICAgICAga2V5OiAnZHJvcGRvd25GaWVsZCcsXG4gICAgICBsYWJlbDogJ0Ryb3Bkb3duJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6ICctLSBTZWxlY3QgLS0nLFxuICAgICAgICBuYXRpdmVTZWxlY3Q6IGZhbHNlLFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgeyBrZXk6ICcxJywgbGFiZWw6ICdPcHRpb24gMScgfSxcbiAgICAgICAgICB7IGtleTogJzInLCBsYWJlbDogJ09wdGlvbiAyJyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdERyb3Bkb3duQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ2xhYmVsJywgbGFiZWw6ICdMYWJlbCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdrZXknLCBsYWJlbDogJ0ZpZWxkIE5hbWUgKEtleSknLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAncGxhY2Vob2xkZXInLCBsYWJlbDogJ1BsYWNlaG9sZGVyJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAnbmF0aXZlU2VsZWN0JywgbGFiZWw6ICdOYXRpdmUgQnJvd3NlciBTZWxlY3QnLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHRWYWx1ZTogZmFsc2UsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAnb3BlbkFib3ZlJywgbGFiZWw6ICdPcGVuIEFib3ZlIFRyaWdnZXInLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHRWYWx1ZTogZmFsc2UsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ1JlcXVpcmVkJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gMy4gRGF0ZSBQaWNrZXJcbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdkYXRlJyxcbiAgICBkaXNwbGF5TmFtZTogJ0RhdGUgUGlja2VyJyxcbiAgICBjYXRlZ29yeTogJ2lucHV0JyxcbiAgICBpY29uOiAnY2FsZW5kYXJfdG9kYXknLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnZGF0ZScpLFxuICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAga2V5OiAnZGF0ZUZpZWxkJyxcbiAgICAgIGxhYmVsOiAnRGF0ZScsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGluY2x1ZGVUaW1lOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgY29tcG9uZW50OiBScHREYXRlQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ2xhYmVsJywgbGFiZWw6ICdMYWJlbCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdrZXknLCBsYWJlbDogJ0ZpZWxkIE5hbWUgKEtleSknLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAnaW5jbHVkZVRpbWUnLCBsYWJlbDogJ0luY2x1ZGUgVGltZScsIHR5cGU6ICdib29sZWFuJywgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdtaW5EYXRlJywgbGFiZWw6ICdNaW4gRGF0ZScsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ21heERhdGUnLCBsYWJlbDogJ01heCBEYXRlJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ1JlcXVpcmVkJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gM2IuIFVuaWZpZWQgRGF0ZSBSYW5nZSBTZWxlY3RvclxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2RhdGUtcmFuZ2UnLFxuICAgIGRpc3BsYXlOYW1lOiAnRGF0ZSBSYW5nZScsXG4gICAgY2F0ZWdvcnk6ICdpbnB1dCcsXG4gICAgaWNvbjogJ2RhdGVfcmFuZ2UnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnZHJhbmdlJyksXG4gICAgICB0eXBlOiAnZGF0ZS1yYW5nZScsXG4gICAgICBrZXk6ICdkYXRlUmFuZ2UnLFxuICAgICAgbGFiZWw6ICdEYXRlIFJhbmdlJyxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBjb2x1bW5TcGFuOiA0LFxuICAgICAgfSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZGVmYXVsdFByZXNldDogJ3RoaXNNb250aCcsXG4gICAgICAgIHNob3dQcmVzZXRzOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdERhdGVSYW5nZUNvbXBvbmVudCxcbiAgICBwcm9wZXJ0eVNjaGVtYTogW1xuICAgICAgeyBrZXk6ICdsYWJlbCcsIGxhYmVsOiAnTGFiZWwnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAna2V5JywgbGFiZWw6ICdGaWVsZCBOYW1lIChLZXkpJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2RlZmF1bHRQcmVzZXQnLFxuICAgICAgICBsYWJlbDogJ0RlZmF1bHQgUHJlc2V0JyxcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ3RoaXNNb250aCcsXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICB7IGtleTogJ3RvZGF5JywgbGFiZWw6ICdUb2RheScgfSxcbiAgICAgICAgICB7IGtleTogJ3llc3RlcmRheScsIGxhYmVsOiAnWWVzdGVyZGF5JyB9LFxuICAgICAgICAgIHsga2V5OiAndGhpc1dlZWsnLCBsYWJlbDogJ1RoaXMgV2VlaycgfSxcbiAgICAgICAgICB7IGtleTogJ3RoaXNNb250aCcsIGxhYmVsOiAnVGhpcyBNb250aCcgfSxcbiAgICAgICAgICB7IGtleTogJ2xhc3RNb250aCcsIGxhYmVsOiAnTGFzdCBNb250aCcgfSxcbiAgICAgICAgICB7IGtleTogJ3RoaXNRdWFydGVyJywgbGFiZWw6ICdUaGlzIFF1YXJ0ZXInIH0sXG4gICAgICAgICAgeyBrZXk6ICd5dGQnLCBsYWJlbDogJ1lURCcgfSxcbiAgICAgICAgICB7IGtleTogJ2N1c3RvbScsIGxhYmVsOiAnQ3VzdG9tIChCbGFuayknIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnR2VuZXJhbCcsXG4gICAgICB9LFxuICAgICAgeyBrZXk6ICdzaG93UHJlc2V0cycsIGxhYmVsOiAnU2hvdyBQcmVzZXQgUGlsbHMnLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHRWYWx1ZTogdHJ1ZSwgZ3JvdXA6ICdEaXNwbGF5JyB9LFxuICAgICAgeyBrZXk6ICdtaW5EYXRlJywgbGFiZWw6ICdNaW4gRGF0ZScsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgICB7IGtleTogJ21heERhdGUnLCBsYWJlbDogJ01heCBEYXRlJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICAgIHsga2V5OiAncmVxdWlyZWQnLCBsYWJlbDogJ1JlcXVpcmVkJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ1ZhbGlkYXRpb24nIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gNC4gTnVtYmVyIElucHV0XG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkaXNwbGF5TmFtZTogJ051bWJlciBJbnB1dCcsXG4gICAgY2F0ZWdvcnk6ICdpbnB1dCcsXG4gICAgaWNvbjogJ251bWJlcnMnLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnbnVtYmVyJyksXG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIGtleTogJ251bWJlckZpZWxkJyxcbiAgICAgIGxhYmVsOiAnTnVtYmVyJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgcGxhY2Vob2xkZXI6ICcwJyxcbiAgICAgICAgc3RlcDogMSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgY29tcG9uZW50OiBScHROdW1iZXJDb21wb25lbnQsXG4gICAgcHJvcGVydHlTY2hlbWE6IFtcbiAgICAgIHsga2V5OiAnbGFiZWwnLCBsYWJlbDogJ0xhYmVsJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ2tleScsIGxhYmVsOiAnRmllbGQgTmFtZSAoS2V5KScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwbGFjZWhvbGRlcicsIGxhYmVsOiAnUGxhY2Vob2xkZXInLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwcmVmaXgnLCBsYWJlbDogJ1ByZWZpeCAoZS5nLiAkKScsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ0Rpc3BsYXknIH0sXG4gICAgICB7IGtleTogJ3N1ZmZpeCcsIGxhYmVsOiAnU3VmZml4IChlLmcuICUpJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHsga2V5OiAnc3RlcCcsIGxhYmVsOiAnU3RlcCcsIHR5cGU6ICdudW1iZXInLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ21pbicsIGxhYmVsOiAnTWluIFZhbHVlJywgdHlwZTogJ251bWJlcicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICAgIHsga2V5OiAnbWF4JywgbGFiZWw6ICdNYXggVmFsdWUnLCB0eXBlOiAnbnVtYmVyJywgZ3JvdXA6ICdWYWxpZGF0aW9uJyB9LFxuICAgICAgeyBrZXk6ICdyZXF1aXJlZCcsIGxhYmVsOiAnUmVxdWlyZWQnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA1LiBDaGVja2JveFxuICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICBkaXNwbGF5TmFtZTogJ0NoZWNrYm94JyxcbiAgICBjYXRlZ29yeTogJ2lucHV0JyxcbiAgICBpY29uOiAnY2hlY2tfYm94JyxcbiAgICBjcmVhdGVEZWZhdWx0Q29uZmlnOiAoKSA9PiAoe1xuICAgICAgaWQ6IGdlbmVyYXRlSWQoJ2NoaycpLFxuICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgIGtleTogJ2NoZWNrYm94RmllbGQnLFxuICAgICAgbGFiZWw6ICdBY3RpdmUnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdENoZWNrYm94Q29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ2xhYmVsJywgbGFiZWw6ICdMYWJlbCcsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdrZXknLCBsYWJlbDogJ0ZpZWxkIE5hbWUgKEtleSknLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHsga2V5OiAnZGVmYXVsdFZhbHVlJywgbGFiZWw6ICdEZWZhdWx0IFZhbHVlJywgdHlwZTogJ2Jvb2xlYW4nLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3JlcXVpcmVkJywgbGFiZWw6ICdNdXN0IGJlIGNoZWNrZWQnLCB0eXBlOiAnYm9vbGVhbicsIGdyb3VwOiAnVmFsaWRhdGlvbicgfSxcbiAgICBdLFxuICB9KTtcblxuICAvLyA2LiBCdXR0b25cbiAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIGRpc3BsYXlOYW1lOiAnQWN0aW9uIEJ1dHRvbicsXG4gICAgY2F0ZWdvcnk6ICdhY3Rpb24nLFxuICAgIGljb246ICdzbWFydF9idXR0b24nLFxuICAgIGNyZWF0ZURlZmF1bHRDb25maWc6ICgpID0+ICh7XG4gICAgICBpZDogZ2VuZXJhdGVJZCgnYnRuJyksXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIGxhYmVsOiAnUnVuIFJlcG9ydCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHZhcmlhbnQ6ICdwcmltYXJ5JyxcbiAgICAgICAgYWN0aW9uOiAnZXhlY3V0ZS1yZXBvcnQnLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJwdEJ1dHRvbkNvbXBvbmVudCxcbiAgICBwcm9wZXJ0eVNjaGVtYTogW1xuICAgICAgeyBrZXk6ICdsYWJlbCcsIGxhYmVsOiAnQnV0dG9uIFRleHQnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGdyb3VwOiAnR2VuZXJhbCcgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnaWNvbicsXG4gICAgICAgIGxhYmVsOiAnQnV0dG9uIEljb24nLFxuICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAnJywgbGFiZWw6ICdOb25lIChObyBJY29uKScgfSxcbiAgICAgICAgICB7IGtleTogJ3NlYXJjaCcsIGxhYmVsOiAnU2VhcmNoJyB9LFxuICAgICAgICAgIHsga2V5OiAnZG93bmxvYWQnLCBsYWJlbDogJ0Rvd25sb2FkJyB9LFxuICAgICAgICAgIHsga2V5OiAnZmlsdGVyJywgbGFiZWw6ICdGaWx0ZXInIH0sXG4gICAgICAgICAgeyBrZXk6ICdyZWZyZXNoJywgbGFiZWw6ICdSZWZyZXNoJyB9LFxuICAgICAgICAgIHsga2V5OiAnY2hlY2snLCBsYWJlbDogJ0NoZWNrJyB9LFxuICAgICAgICAgIHsga2V5OiAncGx1cycsIGxhYmVsOiAnUGx1cycgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZ3JvdXA6ICdEaXNwbGF5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2Z1bGxXaWR0aCcsXG4gICAgICAgIGxhYmVsOiAnRnVsbCBXaWR0aCAoRmlsbCBDb2x1bW4pJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICBncm91cDogJ0Rpc3BsYXknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAndmFyaWFudCcsXG4gICAgICAgIGxhYmVsOiAnU3R5bGUgVmFyaWFudCcsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICdwcmltYXJ5JyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAncHJpbWFyeScsIGxhYmVsOiAnUHJpbWFyeScgfSxcbiAgICAgICAgICB7IGtleTogJ3NlY29uZGFyeScsIGxhYmVsOiAnU2Vjb25kYXJ5JyB9LFxuICAgICAgICAgIHsga2V5OiAnb3V0bGluZScsIGxhYmVsOiAnT3V0bGluZScgfSxcbiAgICAgICAgICB7IGtleTogJ2RhbmdlcicsIGxhYmVsOiAnRGFuZ2VyJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0Rpc3BsYXknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYWN0aW9uJyxcbiAgICAgICAgbGFiZWw6ICdBY3Rpb24gVHlwZScsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICdleGVjdXRlLXJlcG9ydCcsXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICB7IGtleTogJ2V4ZWN1dGUtcmVwb3J0JywgbGFiZWw6ICdFeGVjdXRlIFJlcG9ydCcgfSxcbiAgICAgICAgICB7IGtleTogJ3Jlc2V0JywgbGFiZWw6ICdSZXNldCBGb3JtJyB9LFxuICAgICAgICAgIHsga2V5OiAnY3VzdG9tJywgbGFiZWw6ICdDdXN0b20gRXZlbnQnIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdyb3VwOiAnQWN0aW9uJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gNy4gS1BJIE1ldHJpYyBDYXJkXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAna3BpLWNhcmQnLFxuICAgIGRpc3BsYXlOYW1lOiAnS1BJIE1ldHJpYyBDYXJkJyxcbiAgICBjYXRlZ29yeTogJ2Rpc3BsYXknLFxuICAgIGljb246ICdtb25pdG9yaW5nJyxcbiAgICBjcmVhdGVEZWZhdWx0Q29uZmlnOiAoKSA9PiAoe1xuICAgICAgaWQ6IGdlbmVyYXRlSWQoJ2twaScpLFxuICAgICAgdHlwZTogJ2twaS1jYXJkJyxcbiAgICAgIGxhYmVsOiAnVG90YWwgUmV2ZW51ZScsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHRpdGxlOiAnVG90YWwgUmV2ZW51ZScsXG4gICAgICAgIHZhbHVlOiAxMjU0MDAsXG4gICAgICAgIHByZWZpeDogJyQnLFxuICAgICAgICB0aGVtZTogJ3ByaW1hcnknLFxuICAgICAgICBpY29uOiAnZG9sbGFyJyxcbiAgICAgICAgdHJlbmRWYWx1ZTogMTIuOCxcbiAgICAgICAgdHJlbmREaXJlY3Rpb246ICd1cCcsXG4gICAgICAgIHRyZW5kTGFiZWw6ICd2cyBsYXN0IG1vbnRoJ1xuICAgICAgfSxcbiAgICAgIGxheW91dDoge1xuICAgICAgICBjb2x1bW5TcGFuOiAzLFxuICAgICAgfVxuICAgIH0pLFxuICAgIGNvbXBvbmVudDogUnB0S3BpQ2FyZENvbXBvbmVudCxcbiAgICBwcm9wZXJ0eVNjaGVtYTogW1xuICAgICAgeyBrZXk6ICd0aXRsZScsIGxhYmVsOiAnTWV0cmljIFRpdGxlJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBncm91cDogJ0dlbmVyYWwnIH0sXG4gICAgICB7IGtleTogJ3ZhbHVlJywgbGFiZWw6ICdWYWx1ZScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAgeyBrZXk6ICdwcmVmaXgnLCBsYWJlbDogJ1ByZWZpeCAoZS5nLiAkKScsIHR5cGU6ICdzdHJpbmcnLCBncm91cDogJ0Rpc3BsYXknIH0sXG4gICAgICB7IGtleTogJ3N1ZmZpeCcsIGxhYmVsOiAnU3VmZml4IChlLmcuICUpJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnRGlzcGxheScgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAndGhlbWUnLFxuICAgICAgICBsYWJlbDogJ1RoZW1lIEFjY2VudCcsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICdwcmltYXJ5JyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAncHJpbWFyeScsIGxhYmVsOiAnUHJpbWFyeSAoQmx1ZSknIH0sXG4gICAgICAgICAgeyBrZXk6ICdzdWNjZXNzJywgbGFiZWw6ICdTdWNjZXNzIChHcmVlbiknIH0sXG4gICAgICAgICAgeyBrZXk6ICd3YXJuaW5nJywgbGFiZWw6ICdXYXJuaW5nIChBbWJlciknIH0sXG4gICAgICAgICAgeyBrZXk6ICdkYW5nZXInLCBsYWJlbDogJ0RhbmdlciAoUmVkKScgfSxcbiAgICAgICAgICB7IGtleTogJ2luZm8nLCBsYWJlbDogJ0luZm8gKEN5YW4pJyB9LFxuICAgICAgICAgIHsga2V5OiAnbmV1dHJhbCcsIGxhYmVsOiAnTmV1dHJhbCAoU2xhdGUpJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ0Rpc3BsYXknLFxuICAgICAgfSxcbiAgICAgIHsga2V5OiAnaWNvbicsIGxhYmVsOiAnSWNvbiAoZS5nLiBkb2xsYXIsIGNoZWNrLCBjaGFydC1iYXIsIGJveCknLCB0eXBlOiAnc3RyaW5nJywgZ3JvdXA6ICdEaXNwbGF5JyB9LFxuICAgICAgeyBrZXk6ICd0cmVuZFZhbHVlJywgbGFiZWw6ICdUcmVuZCBWYWx1ZSAoJSknLCB0eXBlOiAnbnVtYmVyJywgZ3JvdXA6ICdUcmVuZCcgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAndHJlbmREaXJlY3Rpb24nLFxuICAgICAgICBsYWJlbDogJ1RyZW5kIERpcmVjdGlvbicsXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6ICduZXV0cmFsJyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAndXAnLCBsYWJlbDogJ1VwIChHcm93dGgpJyB9LFxuICAgICAgICAgIHsga2V5OiAnZG93bicsIGxhYmVsOiAnRG93biAoRGVjbGluZSknIH0sXG4gICAgICAgICAgeyBrZXk6ICduZXV0cmFsJywgbGFiZWw6ICdOZXV0cmFsJyB9LFxuICAgICAgICBdLFxuICAgICAgICBncm91cDogJ1RyZW5kJyxcbiAgICAgIH0sXG4gICAgICB7IGtleTogJ3RyZW5kTGFiZWwnLCBsYWJlbDogJ1RyZW5kIExhYmVsJywgdHlwZTogJ3N0cmluZycsIGdyb3VwOiAnVHJlbmQnIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gOC4gQ2hhcnQgQnJpZGdlXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICB0eXBlOiAnY2hhcnQnLFxuICAgIGRpc3BsYXlOYW1lOiAnQ2hhcnQgVmlzdWFsaXphdGlvbicsXG4gICAgY2F0ZWdvcnk6ICdkaXNwbGF5JyxcbiAgICBpY29uOiAnYmFyX2NoYXJ0JyxcbiAgICBjcmVhdGVEZWZhdWx0Q29uZmlnOiAoKSA9PiAoe1xuICAgICAgaWQ6IGdlbmVyYXRlSWQoJ2NoYXJ0JyksXG4gICAgICB0eXBlOiAnY2hhcnQnLFxuICAgICAgbGFiZWw6ICdQZXJmb3JtYW5jZSBCcmVha2Rvd24nLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB0aXRsZTogJ01vbnRobHkgUGVyZm9ybWFuY2UnLFxuICAgICAgICBjaGFydFR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgeyBsYWJlbDogJ1ExJywgdmFsdWU6IDQ1IH0sXG4gICAgICAgICAgeyBsYWJlbDogJ1EyJywgdmFsdWU6IDY4IH0sXG4gICAgICAgICAgeyBsYWJlbDogJ1EzJywgdmFsdWU6IDg1IH0sXG4gICAgICAgICAgeyBsYWJlbDogJ1E0JywgdmFsdWU6IDExMCB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgY29sdW1uU3BhbjogNixcbiAgICAgIH1cbiAgICB9KSxcbiAgICBjb21wb25lbnQ6IFJlcG9ydENoYXJ0QnJpZGdlQ29tcG9uZW50LFxuICAgIHByb3BlcnR5U2NoZW1hOiBbXG4gICAgICB7IGtleTogJ3RpdGxlJywgbGFiZWw6ICdDaGFydCBUaXRsZScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZ3JvdXA6ICdHZW5lcmFsJyB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdjaGFydFR5cGUnLFxuICAgICAgICBsYWJlbDogJ0NoYXJ0IFR5cGUnLFxuICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnYmFyJyxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgIHsga2V5OiAnYmFyJywgbGFiZWw6ICdCYXIgQ2hhcnQnIH0sXG4gICAgICAgICAgeyBrZXk6ICdkb251dCcsIGxhYmVsOiAnRG9udXQgQ2hhcnQnIH0sXG4gICAgICAgICAgeyBrZXk6ICdsaW5lJywgbGFiZWw6ICdMaW5lIC8gQXJlYSBDaGFydCcgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZ3JvdXA6ICdHZW5lcmFsJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG59XG5cblxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Reporting library root provider function.
|
|
2
|
+
* Reporting library root provider function and feature functions.
|
|
3
3
|
*
|
|
4
4
|
* Configures the library, its tokens, and registers built-in primitives.
|
|
5
5
|
*/
|
|
@@ -11,8 +11,7 @@ import { MasterDataProvider } from './data-access/contracts/master-data.provider
|
|
|
11
11
|
import { ReportPersistenceAdapter } from './data-access/contracts/report-persistence.contract';
|
|
12
12
|
import { ReportSchemaDiscoveryAdapter } from './data-access/contracts/schema-discovery.contract';
|
|
13
13
|
import { ReportLookupAdapter } from './data-access/contracts/lookup.contract';
|
|
14
|
-
import { HttpReportSchemaDiscoveryAdapter } from './data-access/adapters
|
|
15
|
-
import { HttpReportLookupAdapter } from './data-access/adapters/http-lookup.adapter';
|
|
14
|
+
import { HttpReportDataSourceAdapter, HttpReportPersistenceAdapter, HttpReportLookupAdapter, HttpReportSchemaDiscoveryAdapter, HttpMasterDataAdapter, LocalStorageReportPersistenceAdapter, MockReportDataSourceAdapter, } from './data-access/adapters';
|
|
16
15
|
import { ComponentRegistry } from './core/registry/component-registry';
|
|
17
16
|
import { registerBuiltinComponents } from './primitives/register-builtins';
|
|
18
17
|
/** Default configuration values. */
|
|
@@ -23,27 +22,106 @@ const DEFAULT_CONFIG = {
|
|
|
23
22
|
schemaVersion: 1,
|
|
24
23
|
};
|
|
25
24
|
/**
|
|
26
|
-
*
|
|
25
|
+
* Kinds of reporting features available in `provideBwaysReport`.
|
|
26
|
+
*/
|
|
27
|
+
export var ReportingFeatureKind;
|
|
28
|
+
(function (ReportingFeatureKind) {
|
|
29
|
+
ReportingFeatureKind[ReportingFeatureKind["HttpAdapters"] = 0] = "HttpAdapters";
|
|
30
|
+
ReportingFeatureKind[ReportingFeatureKind["LocalStorage"] = 1] = "LocalStorage";
|
|
31
|
+
})(ReportingFeatureKind || (ReportingFeatureKind = {}));
|
|
32
|
+
/**
|
|
33
|
+
* Configures the built-in HTTP adapters for backend execution, persistence,
|
|
34
|
+
* schema discovery, lookup, and master data queries.
|
|
27
35
|
*
|
|
28
|
-
* @
|
|
29
|
-
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* provideReporting(
|
|
39
|
+
* { defaultPageSize: 50 },
|
|
40
|
+
* withHttpAdapters({ apiBaseUrl: 'http://localhost:3000/api/reporting' })
|
|
41
|
+
* )
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function withHttpAdapters(options) {
|
|
45
|
+
if (!options || !options.apiBaseUrl || typeof options.apiBaseUrl !== 'string' || options.apiBaseUrl.trim() === '') {
|
|
46
|
+
throw new Error(`[bways-report] "apiBaseUrl" is required when configuring withHttpAdapters(). ` +
|
|
47
|
+
`Please provide a valid backend URL, e.g. withHttpAdapters({ apiBaseUrl: 'http://localhost:3000/api/reporting' })`);
|
|
48
|
+
}
|
|
49
|
+
const cleanUrl = options.apiBaseUrl.replace(/\/+$/, '');
|
|
50
|
+
return {
|
|
51
|
+
ɵkind: ReportingFeatureKind.HttpAdapters,
|
|
52
|
+
ɵproviders: [
|
|
53
|
+
{
|
|
54
|
+
provide: REPORTING_CONFIG,
|
|
55
|
+
useValue: { apiBaseUrl: cleanUrl },
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
provide: ReportDataSourceAdapter,
|
|
59
|
+
useClass: HttpReportDataSourceAdapter,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
provide: ReportPersistenceAdapter,
|
|
63
|
+
useClass: HttpReportPersistenceAdapter,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
provide: MasterDataProvider,
|
|
67
|
+
useClass: HttpMasterDataAdapter,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
provide: ReportSchemaDiscoveryAdapter,
|
|
71
|
+
useClass: HttpReportSchemaDiscoveryAdapter,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
provide: ReportLookupAdapter,
|
|
75
|
+
useClass: HttpReportLookupAdapter,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Zero-backend sandbox mode using browser LocalStorage for report definitions
|
|
82
|
+
* and mock realistic datasets for query execution.
|
|
83
|
+
*
|
|
84
|
+
* Ideal for local development, prototyping, and offline testing without spinning up backends.
|
|
30
85
|
*
|
|
31
86
|
* @example
|
|
32
87
|
* ```typescript
|
|
33
|
-
*
|
|
34
|
-
* export const appConfig: ApplicationConfig = {
|
|
35
|
-
* providers: [
|
|
36
|
-
* provideReporting({
|
|
37
|
-
* apiBaseUrl: 'http://localhost:3000/api/reporting',
|
|
38
|
-
* gridComponent: BwaysGridComponent,
|
|
39
|
-
* defaultPageSize: 50,
|
|
40
|
-
* }),
|
|
41
|
-
* ],
|
|
42
|
-
* };
|
|
88
|
+
* provideReporting(withLocalStorage())
|
|
43
89
|
* ```
|
|
44
90
|
*/
|
|
45
|
-
export function
|
|
91
|
+
export function withLocalStorage() {
|
|
92
|
+
return {
|
|
93
|
+
ɵkind: ReportingFeatureKind.LocalStorage,
|
|
94
|
+
ɵproviders: [
|
|
95
|
+
{
|
|
96
|
+
provide: ReportPersistenceAdapter,
|
|
97
|
+
useClass: LocalStorageReportPersistenceAdapter,
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
provide: ReportDataSourceAdapter,
|
|
101
|
+
useClass: MockReportDataSourceAdapter,
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** Alias for withLocalStorage */
|
|
107
|
+
export const withMockAdapters = withLocalStorage;
|
|
108
|
+
/**
|
|
109
|
+
* Provides the BWays-Report library to the Angular application.
|
|
110
|
+
*
|
|
111
|
+
* Supports modern idiomatic feature functions, e.g.:
|
|
112
|
+
* `provideReporting({ apiBaseUrl: '/api/reporting' })`
|
|
113
|
+
* or zero-backend sandbox mode:
|
|
114
|
+
* `provideReporting(withLocalStorage())`
|
|
115
|
+
*
|
|
116
|
+
* @param options - Configuration and adapter implementations.
|
|
117
|
+
* @param features - Optional features like `withHttpAdapters(...)` or `withLocalStorage()`.
|
|
118
|
+
* @returns Environment providers for the reporting library.
|
|
119
|
+
*/
|
|
120
|
+
export function provideBwaysReport(options = {}, ...features) {
|
|
46
121
|
const config = { ...DEFAULT_CONFIG, ...options };
|
|
122
|
+
if (config.apiBaseUrl) {
|
|
123
|
+
config.apiBaseUrl = config.apiBaseUrl.replace(/\/+$/, '');
|
|
124
|
+
}
|
|
47
125
|
const providers = [
|
|
48
126
|
{ provide: REPORTING_CONFIG, useValue: config },
|
|
49
127
|
{
|
|
@@ -54,21 +132,44 @@ export function provideReporting(options = {}) {
|
|
|
54
132
|
registerBuiltinComponents(registry);
|
|
55
133
|
},
|
|
56
134
|
},
|
|
57
|
-
|
|
135
|
+
];
|
|
136
|
+
const hasHttpFeature = features.some((f) => f.ɵkind === ReportingFeatureKind.HttpAdapters);
|
|
137
|
+
const hasLocalFeature = features.some((f) => f.ɵkind === ReportingFeatureKind.LocalStorage);
|
|
138
|
+
// Append feature providers
|
|
139
|
+
for (const feature of features) {
|
|
140
|
+
providers.push(...feature.ɵproviders);
|
|
141
|
+
}
|
|
142
|
+
// Auto-provision HTTP adapters if apiBaseUrl was supplied as a 1-line option
|
|
143
|
+
if (!hasHttpFeature && !hasLocalFeature && options.apiBaseUrl) {
|
|
144
|
+
providers.push({ provide: ReportDataSourceAdapter, useClass: options.dataSourceAdapter ?? HttpReportDataSourceAdapter }, { provide: ReportPersistenceAdapter, useClass: options.persistenceAdapter ?? HttpReportPersistenceAdapter }, { provide: MasterDataProvider, useClass: options.masterDataProvider ?? HttpMasterDataAdapter }, { provide: ReportSchemaDiscoveryAdapter, useClass: options.schemaDiscoveryAdapter ?? HttpReportSchemaDiscoveryAdapter }, { provide: ReportLookupAdapter, useClass: options.lookupAdapter ?? HttpReportLookupAdapter });
|
|
145
|
+
}
|
|
146
|
+
else if (!hasHttpFeature && !hasLocalFeature) {
|
|
147
|
+
// If no backend apiBaseUrl and no feature passed, fallback to zero-backend sandbox mode
|
|
148
|
+
providers.push({
|
|
149
|
+
provide: ReportPersistenceAdapter,
|
|
150
|
+
useClass: options.persistenceAdapter ?? LocalStorageReportPersistenceAdapter,
|
|
151
|
+
}, {
|
|
152
|
+
provide: ReportDataSourceAdapter,
|
|
153
|
+
useClass: options.dataSourceAdapter ?? MockReportDataSourceAdapter,
|
|
154
|
+
}, {
|
|
58
155
|
provide: ReportSchemaDiscoveryAdapter,
|
|
59
156
|
useClass: options.schemaDiscoveryAdapter ?? HttpReportSchemaDiscoveryAdapter,
|
|
60
|
-
},
|
|
61
|
-
{
|
|
157
|
+
}, {
|
|
62
158
|
provide: ReportLookupAdapter,
|
|
63
159
|
useClass: options.lookupAdapter ?? HttpReportLookupAdapter,
|
|
64
|
-
},
|
|
65
|
-
|
|
160
|
+
}, {
|
|
161
|
+
provide: MasterDataProvider,
|
|
162
|
+
useClass: options.masterDataProvider ?? HttpMasterDataAdapter,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
// Component overrides
|
|
66
166
|
if (options.gridComponent) {
|
|
67
167
|
providers.push({ provide: GRID_COMPONENT, useValue: options.gridComponent });
|
|
68
168
|
}
|
|
69
169
|
if (options.chartComponent) {
|
|
70
170
|
providers.push({ provide: CHART_COMPONENT, useValue: options.chartComponent });
|
|
71
171
|
}
|
|
172
|
+
// Explicit adapter overrides always win
|
|
72
173
|
if (options.dataSourceAdapter) {
|
|
73
174
|
providers.push({ provide: ReportDataSourceAdapter, useClass: options.dataSourceAdapter });
|
|
74
175
|
}
|
|
@@ -78,10 +179,24 @@ export function provideReporting(options = {}) {
|
|
|
78
179
|
if (options.persistenceAdapter) {
|
|
79
180
|
providers.push({ provide: ReportPersistenceAdapter, useClass: options.persistenceAdapter });
|
|
80
181
|
}
|
|
182
|
+
if (options.schemaDiscoveryAdapter) {
|
|
183
|
+
providers.push({ provide: ReportSchemaDiscoveryAdapter, useClass: options.schemaDiscoveryAdapter });
|
|
184
|
+
}
|
|
185
|
+
if (options.lookupAdapter) {
|
|
186
|
+
providers.push({ provide: ReportLookupAdapter, useClass: options.lookupAdapter });
|
|
187
|
+
}
|
|
188
|
+
// Dynamic Session Context Providers
|
|
81
189
|
if (options.sessionContextProvider) {
|
|
82
190
|
providers.push({ provide: REPORT_SESSION_PROVIDER, useClass: options.sessionContextProvider });
|
|
83
191
|
}
|
|
84
|
-
|
|
192
|
+
// Flexible inline session syntax: session: () => ({ ... })
|
|
193
|
+
if (typeof options.session === 'function') {
|
|
194
|
+
providers.push({ provide: REPORT_SESSION_CONTEXT, useFactory: options.session });
|
|
195
|
+
}
|
|
196
|
+
else if (options.session !== undefined) {
|
|
197
|
+
providers.push({ provide: REPORT_SESSION_CONTEXT, useValue: options.session });
|
|
198
|
+
}
|
|
199
|
+
else if (options.sessionContextFactory) {
|
|
85
200
|
providers.push({ provide: REPORT_SESSION_CONTEXT, useFactory: options.sessionContextFactory });
|
|
86
201
|
}
|
|
87
202
|
else if (options.sessionContext !== undefined) {
|
|
@@ -89,4 +204,10 @@ export function provideReporting(options = {}) {
|
|
|
89
204
|
}
|
|
90
205
|
return makeEnvironmentProviders(providers);
|
|
91
206
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1yZXBvcnRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcm92aWRlLXJlcG9ydGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixNQUFNLEVBQ04sd0JBQXdCLEdBR3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixHQUVqQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEdBR3hCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDeEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0Usb0NBQW9DO0FBQ3BDLE1BQU0sY0FBYyxHQUFvQjtJQUN0QyxlQUFlLEVBQUUsRUFBRTtJQUNuQixVQUFVLEVBQUUsWUFBWTtJQUN4QixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBcURGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFVBQW1DLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQW9CLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUNsRSxNQUFNLFNBQVMsR0FBZTtRQUM1QixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQy9DO1lBQ0UsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxLQUFLLEVBQUUsSUFBSTtZQUNYLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxRQUFRLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixJQUFJLGdDQUFnQztTQUM3RTtRQUNEO1lBQ0UsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSx1QkFBdUI7U0FDM0Q7S0FDRixDQUFDO0lBRUYsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNsQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwb3J0aW5nIGxpYnJhcnkgcm9vdCBwcm92aWRlciBmdW5jdGlvbi5cbiAqXG4gKiBDb25maWd1cmVzIHRoZSBsaWJyYXJ5LCBpdHMgdG9rZW5zLCBhbmQgcmVnaXN0ZXJzIGJ1aWx0LWluIHByaW1pdGl2ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBpbmplY3QsXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgUHJvdmlkZXIsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0hBUlRfQ09NUE9ORU5ULFxuICBHUklEX0NPTVBPTkVOVCxcbiAgUkVQT1JUSU5HX0NPTkZJRyxcbiAgUmVwb3J0aW5nQ29uZmlnLFxufSBmcm9tICcuL2NvcmUvdG9rZW5zL3JlcG9ydGluZy1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtcbiAgUkVQT1JUX1NFU1NJT05fQ09OVEVYVCxcbiAgUkVQT1JUX1NFU1NJT05fUFJPVklERVIsXG4gIFNlc3Npb25Db250ZXh0UHJvdmlkZXIsXG4gIFNlc3Npb25Db250ZXh0U291cmNlLFxufSBmcm9tICcuL2NvcmUvdG9rZW5zL3Nlc3Npb24tY29udGV4dC50b2tlbic7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL2RhdGEtc291cmNlLmNvbnRyYWN0JztcbmltcG9ydCB7IE1hc3RlckRhdGFQcm92aWRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL21hc3Rlci1kYXRhLnByb3ZpZGVyJztcbmltcG9ydCB7IFJlcG9ydFBlcnNpc3RlbmNlQWRhcHRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL3JlcG9ydC1wZXJzaXN0ZW5jZS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRMb29rdXBBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvbG9va3VwLmNvbnRyYWN0JztcbmltcG9ydCB7IEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlcic7XG5pbXBvcnQgeyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciB9IGZyb20gJy4vZGF0YS1hY2Nlc3MvYWRhcHRlcnMvaHR0cC1sb29rdXAuYWRhcHRlcic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeSB9IGZyb20gJy4vY29yZS9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnknO1xuaW1wb3J0IHsgcmVnaXN0ZXJCdWlsdGluQ29tcG9uZW50cyB9IGZyb20gJy4vcHJpbWl0aXZlcy9yZWdpc3Rlci1idWlsdGlucyc7XG5cbi8qKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzLiAqL1xuY29uc3QgREVGQVVMVF9DT05GSUc6IFJlcG9ydGluZ0NvbmZpZyA9IHtcbiAgZGVmYXVsdFBhZ2VTaXplOiAyNSxcbiAgZGF0ZUZvcm1hdDogJ2RkL01NL3l5eXknLFxuICBlbmFibGVEZXNpZ25lcjogZmFsc2UsXG4gIHNjaGVtYVZlcnNpb246IDEsXG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgYHByb3ZpZGVSZXBvcnRpbmcoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZVJlcG9ydGluZ09wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFJlcG9ydGluZ0NvbmZpZz4ge1xuICAvKipcbiAgICogVGhlIEFuZ3VsYXIgY29tcG9uZW50IHRvIHVzZSBmb3IgcmVuZGVyaW5nIHJlcG9ydCByZXN1bHQgZ3JpZHMuXG4gICAqIEJXYXlzLWdyaWQgaXMgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQuIEhvc3QgY2FuIHByb3ZpZGUgYW55IGdyaWQgY29tcG9uZW50LlxuICAgKi9cbiAgZ3JpZENvbXBvbmVudD86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0byB1c2UgZm9yIHJlbmRlcmluZyByZXBvcnQgdmlzdWFsIGNoYXJ0cy5cbiAgICogSG9zdCBjYW4gcHJvdmlkZSB0aGVpciBwcmVmZXJyZWQgY2hhcnQgY29tcG9uZW50LCBvciB1c2UgdGhlIGJ1aWx0LWluIFNWRyBjaGFydHMuXG4gICAqL1xuICBjaGFydENvbXBvbmVudD86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqIEhvc3QncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGF0YSBzb3VyY2UgYWRhcHRlci4gKi9cbiAgZGF0YVNvdXJjZUFkYXB0ZXI/OiBUeXBlPFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyPjtcblxuICAvKiogSG9zdCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtYXN0ZXIgZGF0YSBwcm92aWRlci4gKi9cbiAgbWFzdGVyRGF0YVByb3ZpZGVyPzogVHlwZTxNYXN0ZXJEYXRhUHJvdmlkZXI+O1xuXG4gIC8qKiBIb3N0J3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIHBlcnNpc3RlbmNlIGFkYXB0ZXIuICovXG4gIHBlcnNpc3RlbmNlQWRhcHRlcj86IFR5cGU8UmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyPjtcblxuICAvKiogSG9zdCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzY2hlbWEgZGlzY292ZXJ5IGFkYXB0ZXIgKGRlZmF1bHRzIHRvIEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyKS4gKi9cbiAgc2NoZW1hRGlzY292ZXJ5QWRhcHRlcj86IFR5cGU8UmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlcj47XG5cbiAgLyoqIEhvc3QncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbG9va3VwIGFkYXB0ZXIgKGRlZmF1bHRzIHRvIEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyKS4gKi9cbiAgbG9va3VwQWRhcHRlcj86IFR5cGU8UmVwb3J0TG9va3VwQWRhcHRlcj47XG5cbiAgLyoqXG4gICAqIEhvc3QgYXBwbGljYXRpb24ncyBzZXNzaW9uIGNvbnRleHQgcGFyYW1ldGVycyAoZS5nLiB7IGJyYW5jaElkOiAxLCBjb21wYW55SWQ6IDEwLCB1c2VySWQ6ICd1c3ItMScgfSkuXG4gICAqIENhbiBiZSBhIHN0YXRpYyBvYmplY3QsIGFuIEFuZ3VsYXIgU2lnbmFsLCBhbiBPYnNlcnZhYmxlLCBvciBhIGR5bmFtaWMgZ2V0dGVyIGZ1bmN0aW9uLlxuICAgKiBTdG9yZWQgcHJvY2VkdXJlcyBhdXRvbWF0aWNhbGx5IGJpbmQgbWF0Y2hpbmcgcGFyYW1ldGVycyAobGlrZSBAQnJhbmNoSWQsIEBDb21wYW55SWQpIHRvIHRoaXMgY29udGV4dC5cbiAgICovXG4gIHNlc3Npb25Db250ZXh0PzogU2Vzc2lvbkNvbnRleHRTb3VyY2U7XG5cbiAgLyoqXG4gICAqIEhvc3QgYXBwbGljYXRpb24gc2VydmljZSBjbGFzcyBpbXBsZW1lbnRpbmcgYFNlc3Npb25Db250ZXh0UHJvdmlkZXJgLlxuICAgKiBSZXNvbHZlcyBzZXNzaW9uIHBhcmFtZXRlcnMgZHluYW1pY2FsbHkgYXQgcnVudGltZSAoZS5nLiBmcm9tIHVzZXIgYXV0aCBzdGF0ZSwgYWN0aXZlIGJyYW5jaCBzd2l0Y2hlcikuXG4gICAqL1xuICBzZXNzaW9uQ29udGV4dFByb3ZpZGVyPzogVHlwZTxTZXNzaW9uQ29udGV4dFByb3ZpZGVyPjtcblxuICAvKipcbiAgICogRmFjdG9yeSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBTZXNzaW9uQ29udGV4dFNvdXJjZSB3aXRoIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGNvbnRleHQuXG4gICAqIEUuZy4gYHNlc3Npb25Db250ZXh0RmFjdG9yeTogKCkgPT4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5jdXJyZW50U2Vzc2lvblNpZ25hbGBcbiAgICovXG4gIHNlc3Npb25Db250ZXh0RmFjdG9yeT86ICgpID0+IFNlc3Npb25Db250ZXh0U291cmNlO1xufVxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBCV2F5cy1SZXBvcnQgbGlicmFyeSB0byB0aGUgYXBwbGljYXRpb24uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIGFuZCBhZGFwdGVyIGltcGxlbWVudGF0aW9ucy5cbiAqIEByZXR1cm5zIEVudmlyb25tZW50IHByb3ZpZGVycyBmb3IgdGhlIHJlcG9ydGluZyBsaWJyYXJ5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBhcHAuY29uZmlnLnRzXG4gKiBleHBvcnQgY29uc3QgYXBwQ29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZyA9IHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVJlcG9ydGluZyh7XG4gKiAgICAgICBhcGlCYXNlVXJsOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS9yZXBvcnRpbmcnLFxuICogICAgICAgZ3JpZENvbXBvbmVudDogQndheXNHcmlkQ29tcG9uZW50LFxuICogICAgICAgZGVmYXVsdFBhZ2VTaXplOiA1MCxcbiAqICAgICB9KSxcbiAqICAgXSxcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSZXBvcnRpbmcob3B0aW9uczogUHJvdmlkZVJlcG9ydGluZ09wdGlvbnMgPSB7fSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgY29uZmlnOiBSZXBvcnRpbmdDb25maWcgPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH07XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICB7IHByb3ZpZGU6IFJFUE9SVElOR19DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBpbmplY3QoQ29tcG9uZW50UmVnaXN0cnkpO1xuICAgICAgICByZWdpc3RlckJ1aWx0aW5Db21wb25lbnRzKHJlZ2lzdHJ5KTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxuICAgICAgdXNlQ2xhc3M6IG9wdGlvbnMuc2NoZW1hRGlzY292ZXJ5QWRhcHRlciA/PyBIdHRwUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlcixcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJlcG9ydExvb2t1cEFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogb3B0aW9ucy5sb29rdXBBZGFwdGVyID8/IEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyLFxuICAgIH0sXG4gIF07XG5cbiAgaWYgKG9wdGlvbnMuZ3JpZENvbXBvbmVudCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHsgcHJvdmlkZTogR1JJRF9DT01QT05FTlQsIHVzZVZhbHVlOiBvcHRpb25zLmdyaWRDb21wb25lbnQgfSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5jaGFydENvbXBvbmVudCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHsgcHJvdmlkZTogQ0hBUlRfQ09NUE9ORU5ULCB1c2VWYWx1ZTogb3B0aW9ucy5jaGFydENvbXBvbmVudCB9KTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmRhdGFTb3VyY2VBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnREYXRhU291cmNlQWRhcHRlciwgdXNlQ2xhc3M6IG9wdGlvbnMuZGF0YVNvdXJjZUFkYXB0ZXIgfSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5tYXN0ZXJEYXRhUHJvdmlkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IE1hc3RlckRhdGFQcm92aWRlciwgdXNlQ2xhc3M6IG9wdGlvbnMubWFzdGVyRGF0YVByb3ZpZGVyIH0pO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMucGVyc2lzdGVuY2VBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsIHVzZUNsYXNzOiBvcHRpb25zLnBlcnNpc3RlbmNlQWRhcHRlciB9KTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNlc3Npb25Db250ZXh0UHJvdmlkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX1BST1ZJREVSLCB1c2VDbGFzczogb3B0aW9ucy5zZXNzaW9uQ29udGV4dFByb3ZpZGVyIH0pO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2Vzc2lvbkNvbnRleHRGYWN0b3J5KSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSRVBPUlRfU0VTU0lPTl9DT05URVhULCB1c2VGYWN0b3J5OiBvcHRpb25zLnNlc3Npb25Db250ZXh0RmFjdG9yeSB9KTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnNlc3Npb25Db250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX0NPTlRFWFQsIHVzZVZhbHVlOiBvcHRpb25zLnNlc3Npb25Db250ZXh0IH0pO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19
|
|
207
|
+
/** Alias for provideBwaysReport */
|
|
208
|
+
export const provideBwaysReporting = provideBwaysReport;
|
|
209
|
+
/** Backward-compatible alias for provideBwaysReport */
|
|
210
|
+
export const provideReporting = provideBwaysReport;
|
|
211
|
+
/** Semantic alias for BWays report providers */
|
|
212
|
+
export const bwaysReportProviders = provideBwaysReport;
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1yZXBvcnRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcm92aWRlLXJlcG9ydGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixNQUFNLEVBQ04sd0JBQXdCLEdBR3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixHQUVqQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEdBR3hCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLGdDQUFnQyxFQUNoQyxxQkFBcUIsRUFDckIsb0NBQW9DLEVBQ3BDLDJCQUEyQixHQUM1QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFLG9DQUFvQztBQUNwQyxNQUFNLGNBQWMsR0FBb0I7SUFDdEMsZUFBZSxFQUFFLEVBQUU7SUFDbkIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsY0FBYyxFQUFFLEtBQUs7SUFDckIsYUFBYSxFQUFFLENBQUM7Q0FDakIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksb0JBR1g7QUFIRCxXQUFZLG9CQUFvQjtJQUM5QiwrRUFBZ0IsQ0FBQTtJQUNoQiwrRUFBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQjtBQXFCRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsT0FBNEI7SUFFNUIsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2xILE1BQU0sSUFBSSxLQUFLLENBQ2IsK0VBQStFO1lBQy9FLGtIQUFrSCxDQUNuSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLG9CQUFvQixDQUFDLFlBQVk7UUFDeEMsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRTthQUNuQztZQUNEO2dCQUNFLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7YUFDdEM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsd0JBQXdCO2dCQUNqQyxRQUFRLEVBQUUsNEJBQTRCO2FBQ3ZDO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsUUFBUSxFQUFFLHFCQUFxQjthQUNoQztZQUNEO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFFBQVEsRUFBRSxnQ0FBZ0M7YUFDM0M7WUFDRDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsdUJBQXVCO2FBQ2xDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU87UUFDTCxLQUFLLEVBQUUsb0JBQW9CLENBQUMsWUFBWTtRQUN4QyxVQUFVLEVBQUU7WUFDVjtnQkFDRSxPQUFPLEVBQUUsd0JBQXdCO2dCQUNqQyxRQUFRLEVBQUUsb0NBQW9DO2FBQy9DO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsUUFBUSxFQUFFLDJCQUEyQjthQUN0QztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUEyRGpEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxVQUFxQyxFQUFFLEVBQ3ZDLEdBQUcsUUFBNEI7SUFFL0IsTUFBTSxNQUFNLEdBQW9CLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUNsRSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQWU7UUFDNUIsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUMvQztZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMzQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVGLDJCQUEyQjtJQUMzQixLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5RCxTQUFTLENBQUMsSUFBSSxDQUNaLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsaUJBQWlCLElBQUksMkJBQTJCLEVBQUUsRUFDeEcsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSw0QkFBNEIsRUFBRSxFQUMzRyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixJQUFJLHFCQUFxQixFQUFFLEVBQzlGLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsc0JBQXNCLElBQUksZ0NBQWdDLEVBQUUsRUFDdkgsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLElBQUksdUJBQXVCLEVBQUUsQ0FDN0YsQ0FBQztJQUNKLENBQUM7U0FBTSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0Msd0ZBQXdGO1FBQ3hGLFNBQVMsQ0FBQyxJQUFJLENBQ1o7WUFDRSxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLFFBQVEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLElBQUksb0NBQW9DO1NBQzdFLEVBQ0Q7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFFBQVEsRUFBRSxPQUFPLENBQUMsaUJBQWlCLElBQUksMkJBQTJCO1NBQ25FLEVBQ0Q7WUFDRSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFFBQVEsRUFBRSxPQUFPLENBQUMsc0JBQXNCLElBQUksZ0NBQWdDO1NBQzdFLEVBQ0Q7WUFDRSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLHVCQUF1QjtTQUMzRCxFQUNEO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixJQUFJLHFCQUFxQjtTQUM5RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLElBQUksT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELElBQUksT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFvQixFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO1NBQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztTQUFNLElBQUksT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsbUNBQW1DO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDO0FBRXhELHVEQUF1RDtBQUN2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9ydGluZyBsaWJyYXJ5IHJvb3QgcHJvdmlkZXIgZnVuY3Rpb24gYW5kIGZlYXR1cmUgZnVuY3Rpb25zLlxuICpcbiAqIENvbmZpZ3VyZXMgdGhlIGxpYnJhcnksIGl0cyB0b2tlbnMsIGFuZCByZWdpc3RlcnMgYnVpbHQtaW4gcHJpbWl0aXZlcy5cbiAqL1xuXG5pbXBvcnQge1xuICBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIGluamVjdCxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICBQcm92aWRlcixcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDSEFSVF9DT01QT05FTlQsXG4gIEdSSURfQ09NUE9ORU5ULFxuICBSRVBPUlRJTkdfQ09ORklHLFxuICBSZXBvcnRpbmdDb25maWcsXG59IGZyb20gJy4vY29yZS90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5pbXBvcnQge1xuICBSRVBPUlRfU0VTU0lPTl9DT05URVhULFxuICBSRVBPUlRfU0VTU0lPTl9QUk9WSURFUixcbiAgU2Vzc2lvbkNvbnRleHRQcm92aWRlcixcbiAgU2Vzc2lvbkNvbnRleHRTb3VyY2UsXG59IGZyb20gJy4vY29yZS90b2tlbnMvc2Vzc2lvbi1jb250ZXh0LnRva2VuJztcbmltcG9ydCB7IFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvZGF0YS1zb3VyY2UuY29udHJhY3QnO1xuaW1wb3J0IHsgTWFzdGVyRGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvbWFzdGVyLWRhdGEucHJvdmlkZXInO1xuaW1wb3J0IHsgUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIH0gZnJvbSAnLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvcmVwb3J0LXBlcnNpc3RlbmNlLmNvbnRyYWN0JztcbmltcG9ydCB7IFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIgfSBmcm9tICcuL2RhdGEtYWNjZXNzL2NvbnRyYWN0cy9zY2hlbWEtZGlzY292ZXJ5LmNvbnRyYWN0JztcbmltcG9ydCB7IFJlcG9ydExvb2t1cEFkYXB0ZXIgfSBmcm9tICcuL2RhdGEtYWNjZXNzL2NvbnRyYWN0cy9sb29rdXAuY29udHJhY3QnO1xuaW1wb3J0IHtcbiAgSHR0cFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyLFxuICBIdHRwUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyLFxuICBIdHRwUmVwb3J0TG9va3VwQWRhcHRlcixcbiAgSHR0cFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsXG4gIEh0dHBNYXN0ZXJEYXRhQWRhcHRlcixcbiAgTG9jYWxTdG9yYWdlUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyLFxuICBNb2NrUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXIsXG59IGZyb20gJy4vZGF0YS1hY2Nlc3MvYWRhcHRlcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVnaXN0cnkgfSBmcm9tICcuL2NvcmUvcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5JztcbmltcG9ydCB7IHJlZ2lzdGVyQnVpbHRpbkNvbXBvbmVudHMgfSBmcm9tICcuL3ByaW1pdGl2ZXMvcmVnaXN0ZXItYnVpbHRpbnMnO1xuXG4vKiogRGVmYXVsdCBjb25maWd1cmF0aW9uIHZhbHVlcy4gKi9cbmNvbnN0IERFRkFVTFRfQ09ORklHOiBSZXBvcnRpbmdDb25maWcgPSB7XG4gIGRlZmF1bHRQYWdlU2l6ZTogMjUsXG4gIGRhdGVGb3JtYXQ6ICdkZC9NTS95eXl5JyxcbiAgZW5hYmxlRGVzaWduZXI6IGZhbHNlLFxuICBzY2hlbWFWZXJzaW9uOiAxLFxufTtcblxuLyoqXG4gKiBLaW5kcyBvZiByZXBvcnRpbmcgZmVhdHVyZXMgYXZhaWxhYmxlIGluIGBwcm92aWRlQndheXNSZXBvcnRgLlxuICovXG5leHBvcnQgZW51bSBSZXBvcnRpbmdGZWF0dXJlS2luZCB7XG4gIEh0dHBBZGFwdGVycyA9IDAsXG4gIExvY2FsU3RvcmFnZSA9IDEsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZlYXR1cmUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGBwcm92aWRlQndheXNSZXBvcnQoLi4uKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nRmVhdHVyZTxLaW5kVCBleHRlbmRzIFJlcG9ydGluZ0ZlYXR1cmVLaW5kID0gUmVwb3J0aW5nRmVhdHVyZUtpbmQ+IHtcbiAgybVraW5kOiBLaW5kVDtcbiAgybVwcm92aWRlcnM6IFByb3ZpZGVyW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgYnVpbHQtaW4gSFRUUCBhZGFwdGVycyB2aWEgYHdpdGhIdHRwQWRhcHRlcnMoLi4uKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEFkYXB0ZXJzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBVUkwgZm9yIHRoZSBiYWNrZW5kIHJlcG9ydGluZyBSRVNUIEFQSSBlbmRwb2ludHMuXG4gICAqIEBleGFtcGxlICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3JlcG9ydGluZydcbiAgICovXG4gIGFwaUJhc2VVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmVzIHRoZSBidWlsdC1pbiBIVFRQIGFkYXB0ZXJzIGZvciBiYWNrZW5kIGV4ZWN1dGlvbiwgcGVyc2lzdGVuY2UsXG4gKiBzY2hlbWEgZGlzY292ZXJ5LCBsb29rdXAsIGFuZCBtYXN0ZXIgZGF0YSBxdWVyaWVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBwcm92aWRlUmVwb3J0aW5nKFxuICogICB7IGRlZmF1bHRQYWdlU2l6ZTogNTAgfSxcbiAqICAgd2l0aEh0dHBBZGFwdGVycyh7IGFwaUJhc2VVcmw6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3JlcG9ydGluZycgfSlcbiAqIClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aEh0dHBBZGFwdGVycyhcbiAgb3B0aW9uczogSHR0cEFkYXB0ZXJzT3B0aW9uc1xuKTogUmVwb3J0aW5nRmVhdHVyZTxSZXBvcnRpbmdGZWF0dXJlS2luZC5IdHRwQWRhcHRlcnM+IHtcbiAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmFwaUJhc2VVcmwgfHwgdHlwZW9mIG9wdGlvbnMuYXBpQmFzZVVybCAhPT0gJ3N0cmluZycgfHwgb3B0aW9ucy5hcGlCYXNlVXJsLnRyaW0oKSA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgW2J3YXlzLXJlcG9ydF0gXCJhcGlCYXNlVXJsXCIgaXMgcmVxdWlyZWQgd2hlbiBjb25maWd1cmluZyB3aXRoSHR0cEFkYXB0ZXJzKCkuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgYmFja2VuZCBVUkwsIGUuZy4gd2l0aEh0dHBBZGFwdGVycyh7IGFwaUJhc2VVcmw6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL3JlcG9ydGluZycgfSlgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGNsZWFuVXJsID0gb3B0aW9ucy5hcGlCYXNlVXJsLnJlcGxhY2UoL1xcLyskLywgJycpO1xuXG4gIHJldHVybiB7XG4gICAgybVraW5kOiBSZXBvcnRpbmdGZWF0dXJlS2luZC5IdHRwQWRhcHRlcnMsXG4gICAgybVwcm92aWRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUkVQT1JUSU5HX0NPTkZJRyxcbiAgICAgICAgdXNlVmFsdWU6IHsgYXBpQmFzZVVybDogY2xlYW5VcmwgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyLFxuICAgICAgICB1c2VDbGFzczogSHR0cFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyLFxuICAgICAgICB1c2VDbGFzczogSHR0cFJlcG9ydFBlcnNpc3RlbmNlQWRhcHRlcixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IE1hc3RlckRhdGFQcm92aWRlcixcbiAgICAgICAgdXNlQ2xhc3M6IEh0dHBNYXN0ZXJEYXRhQWRhcHRlcixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsXG4gICAgICAgIHVzZUNsYXNzOiBIdHRwUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlcixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJlcG9ydExvb2t1cEFkYXB0ZXIsXG4gICAgICAgIHVzZUNsYXNzOiBIdHRwUmVwb3J0TG9va3VwQWRhcHRlcixcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuLyoqXG4gKiBaZXJvLWJhY2tlbmQgc2FuZGJveCBtb2RlIHVzaW5nIGJyb3dzZXIgTG9jYWxTdG9yYWdlIGZvciByZXBvcnQgZGVmaW5pdGlvbnNcbiAqIGFuZCBtb2NrIHJlYWxpc3RpYyBkYXRhc2V0cyBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuICpcbiAqIElkZWFsIGZvciBsb2NhbCBkZXZlbG9wbWVudCwgcHJvdG90eXBpbmcsIGFuZCBvZmZsaW5lIHRlc3Rpbmcgd2l0aG91dCBzcGlubmluZyB1cCBiYWNrZW5kcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcHJvdmlkZVJlcG9ydGluZyh3aXRoTG9jYWxTdG9yYWdlKCkpXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhMb2NhbFN0b3JhZ2UoKTogUmVwb3J0aW5nRmVhdHVyZTxSZXBvcnRpbmdGZWF0dXJlS2luZC5Mb2NhbFN0b3JhZ2U+IHtcbiAgcmV0dXJuIHtcbiAgICDJtWtpbmQ6IFJlcG9ydGluZ0ZlYXR1cmVLaW5kLkxvY2FsU3RvcmFnZSxcbiAgICDJtXByb3ZpZGVyczogW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsXG4gICAgICAgIHVzZUNsYXNzOiBMb2NhbFN0b3JhZ2VSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBSZXBvcnREYXRhU291cmNlQWRhcHRlcixcbiAgICAgICAgdXNlQ2xhc3M6IE1vY2tSZXBvcnREYXRhU291cmNlQWRhcHRlcixcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuLyoqIEFsaWFzIGZvciB3aXRoTG9jYWxTdG9yYWdlICovXG5leHBvcnQgY29uc3Qgd2l0aE1vY2tBZGFwdGVycyA9IHdpdGhMb2NhbFN0b3JhZ2U7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBgcHJvdmlkZUJ3YXlzUmVwb3J0KClgIChhbmQgYHByb3ZpZGVSZXBvcnRpbmcoKWApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVCd2F5c1JlcG9ydE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFJlcG9ydGluZ0NvbmZpZz4ge1xuICAvKipcbiAgICogVGhlIEFuZ3VsYXIgY29tcG9uZW50IHRvIHVzZSBmb3IgcmVuZGVyaW5nIHJlcG9ydCByZXN1bHQgZ3JpZHMuXG4gICAqIEJXYXlzLWdyaWQgaXMgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQuIEhvc3QgY2FuIHByb3ZpZGUgYW55IGdyaWQgY29tcG9uZW50LlxuICAgKi9cbiAgZ3JpZENvbXBvbmVudD86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0byB1c2UgZm9yIHJlbmRlcmluZyByZXBvcnQgdmlzdWFsIGNoYXJ0cy5cbiAgICogSG9zdCBjYW4gcHJvdmlkZSB0aGVpciBwcmVmZXJyZWQgY2hhcnQgY29tcG9uZW50LCBvciB1c2UgdGhlIGJ1aWx0LWluIFNWRyBjaGFydHMuXG4gICAqL1xuICBjaGFydENvbXBvbmVudD86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqIEhvc3QncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGF0YSBzb3VyY2UgYWRhcHRlci4gKi9cbiAgZGF0YVNvdXJjZUFkYXB0ZXI/OiBUeXBlPFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyPjtcblxuICAvKiogSG9zdCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtYXN0ZXIgZGF0YSBwcm92aWRlci4gKi9cbiAgbWFzdGVyRGF0YVByb3ZpZGVyPzogVHlwZTxNYXN0ZXJEYXRhUHJvdmlkZXI+O1xuXG4gIC8qKiBIb3N0J3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIHBlcnNpc3RlbmNlIGFkYXB0ZXIuICovXG4gIHBlcnNpc3RlbmNlQWRhcHRlcj86IFR5cGU8UmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyPjtcblxuICAvKiogSG9zdCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzY2hlbWEgZGlzY292ZXJ5IGFkYXB0ZXIuICovXG4gIHNjaGVtYURpc2NvdmVyeUFkYXB0ZXI/OiBUeXBlPFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXI+O1xuXG4gIC8qKiBIb3N0J3MgaW1wbGVtZW50YXRpb24gb2YgdGhlIGxvb2t1cCBhZGFwdGVyLiAqL1xuICBsb29rdXBBZGFwdGVyPzogVHlwZTxSZXBvcnRMb29rdXBBZGFwdGVyPjtcblxuICAvKipcbiAgICogSW5saW5lIHNlc3Npb24gY29udGV4dCBwYXJhbWV0ZXJzIG9yIGZhY3RvcnkgZnVuY3Rpb246XG4gICAqIGUuZy4gYHNlc3Npb246ICgpID0+ICh7IGJyYW5jaElkOiBhdXRoLmJyYW5jaElkKCksIHVzZXI6IGF1dGgudXNlcigpIH0pYFxuICAgKi9cbiAgc2Vzc2lvbj86IFNlc3Npb25Db250ZXh0U291cmNlIHwgKCgpID0+IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcblxuICAvKipcbiAgICogSG9zdCBhcHBsaWNhdGlvbidzIHNlc3Npb24gY29udGV4dCBwYXJhbWV0ZXJzIChlLmcuIHsgYnJhbmNoSWQ6IDEsIGNvbXBhbnlJZDogMTAsIHVzZXJJZDogJ3Vzci0xJyB9KS5cbiAgICovXG4gIHNlc3Npb25Db250ZXh0PzogU2Vzc2lvbkNvbnRleHRTb3VyY2U7XG5cbiAgLyoqXG4gICAqIEhvc3QgYXBwbGljYXRpb24gc2VydmljZSBjbGFzcyBpbXBsZW1lbnRpbmcgYFNlc3Npb25Db250ZXh0UHJvdmlkZXJgLlxuICAgKi9cbiAgc2Vzc2lvbkNvbnRleHRQcm92aWRlcj86IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj47XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU2Vzc2lvbkNvbnRleHRTb3VyY2Ugd2l0aCBkZXBlbmRlbmN5IGluamVjdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgc2Vzc2lvbkNvbnRleHRGYWN0b3J5PzogKCkgPT4gU2Vzc2lvbkNvbnRleHRTb3VyY2U7XG59XG5cbi8qKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFuZCBhbHRlcm5hdGl2ZSBuYW1pbmcgYWxpYXNlcyAqL1xuZXhwb3J0IHR5cGUgUHJvdmlkZVJlcG9ydGluZ09wdGlvbnMgPSBQcm92aWRlQndheXNSZXBvcnRPcHRpb25zO1xuZXhwb3J0IHR5cGUgUHJvdmlkZUJ3YXlzUmVwb3J0aW5nT3B0aW9ucyA9IFByb3ZpZGVCd2F5c1JlcG9ydE9wdGlvbnM7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIEJXYXlzLVJlcG9ydCBsaWJyYXJ5IHRvIHRoZSBBbmd1bGFyIGFwcGxpY2F0aW9uLlxuICpcbiAqIFN1cHBvcnRzIG1vZGVybiBpZGlvbWF0aWMgZmVhdHVyZSBmdW5jdGlvbnMsIGUuZy46XG4gKiBgcHJvdmlkZVJlcG9ydGluZyh7IGFwaUJhc2VVcmw6ICcvYXBpL3JlcG9ydGluZycgfSlgXG4gKiBvciB6ZXJvLWJhY2tlbmQgc2FuZGJveCBtb2RlOlxuICogYHByb3ZpZGVSZXBvcnRpbmcod2l0aExvY2FsU3RvcmFnZSgpKWBcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gYW5kIGFkYXB0ZXIgaW1wbGVtZW50YXRpb25zLlxuICogQHBhcmFtIGZlYXR1cmVzIC0gT3B0aW9uYWwgZmVhdHVyZXMgbGlrZSBgd2l0aEh0dHBBZGFwdGVycyguLi4pYCBvciBgd2l0aExvY2FsU3RvcmFnZSgpYC5cbiAqIEByZXR1cm5zIEVudmlyb25tZW50IHByb3ZpZGVycyBmb3IgdGhlIHJlcG9ydGluZyBsaWJyYXJ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUJ3YXlzUmVwb3J0KFxuICBvcHRpb25zOiBQcm92aWRlQndheXNSZXBvcnRPcHRpb25zID0ge30sXG4gIC4uLmZlYXR1cmVzOiBSZXBvcnRpbmdGZWF0dXJlW11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgY29uc3QgY29uZmlnOiBSZXBvcnRpbmdDb25maWcgPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5vcHRpb25zIH07XG4gIGlmIChjb25maWcuYXBpQmFzZVVybCkge1xuICAgIGNvbmZpZy5hcGlCYXNlVXJsID0gY29uZmlnLmFwaUJhc2VVcmwucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gIH1cblxuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAgeyBwcm92aWRlOiBSRVBPUlRJTkdfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZVZhbHVlOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZ2lzdHJ5ID0gaW5qZWN0KENvbXBvbmVudFJlZ2lzdHJ5KTtcbiAgICAgICAgcmVnaXN0ZXJCdWlsdGluQ29tcG9uZW50cyhyZWdpc3RyeSk7XG4gICAgICB9LFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgaGFzSHR0cEZlYXR1cmUgPSBmZWF0dXJlcy5zb21lKChmKSA9PiBmLsm1a2luZCA9PT0gUmVwb3J0aW5nRmVhdHVyZUtpbmQuSHR0cEFkYXB0ZXJzKTtcbiAgY29uc3QgaGFzTG9jYWxGZWF0dXJlID0gZmVhdHVyZXMuc29tZSgoZikgPT4gZi7JtWtpbmQgPT09IFJlcG9ydGluZ0ZlYXR1cmVLaW5kLkxvY2FsU3RvcmFnZSk7XG5cbiAgLy8gQXBwZW5kIGZlYXR1cmUgcHJvdmlkZXJzXG4gIGZvciAoY29uc3QgZmVhdHVyZSBvZiBmZWF0dXJlcykge1xuICAgIHByb3ZpZGVycy5wdXNoKC4uLmZlYXR1cmUuybVwcm92aWRlcnMpO1xuICB9XG5cbiAgLy8gQXV0by1wcm92aXNpb24gSFRUUCBhZGFwdGVycyBpZiBhcGlCYXNlVXJsIHdhcyBzdXBwbGllZCBhcyBhIDEtbGluZSBvcHRpb25cbiAgaWYgKCFoYXNIdHRwRmVhdHVyZSAmJiAhaGFzTG9jYWxGZWF0dXJlICYmIG9wdGlvbnMuYXBpQmFzZVVybCkge1xuICAgIHByb3ZpZGVycy5wdXNoKFxuICAgICAgeyBwcm92aWRlOiBSZXBvcnREYXRhU291cmNlQWRhcHRlciwgdXNlQ2xhc3M6IG9wdGlvbnMuZGF0YVNvdXJjZUFkYXB0ZXIgPz8gSHR0cFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIH0sXG4gICAgICB7IHByb3ZpZGU6IFJlcG9ydFBlcnNpc3RlbmNlQWRhcHRlciwgdXNlQ2xhc3M6IG9wdGlvbnMucGVyc2lzdGVuY2VBZGFwdGVyID8/IEh0dHBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIgfSxcbiAgICAgIHsgcHJvdmlkZTogTWFzdGVyRGF0YVByb3ZpZGVyLCB1c2VDbGFzczogb3B0aW9ucy5tYXN0ZXJEYXRhUHJvdmlkZXIgPz8gSHR0cE1hc3RlckRhdGFBZGFwdGVyIH0sXG4gICAgICB7IHByb3ZpZGU6IFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsIHVzZUNsYXNzOiBvcHRpb25zLnNjaGVtYURpc2NvdmVyeUFkYXB0ZXIgPz8gSHR0cFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIgfSxcbiAgICAgIHsgcHJvdmlkZTogUmVwb3J0TG9va3VwQWRhcHRlciwgdXNlQ2xhc3M6IG9wdGlvbnMubG9va3VwQWRhcHRlciA/PyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciB9XG4gICAgKTtcbiAgfSBlbHNlIGlmICghaGFzSHR0cEZlYXR1cmUgJiYgIWhhc0xvY2FsRmVhdHVyZSkge1xuICAgIC8vIElmIG5vIGJhY2tlbmQgYXBpQmFzZVVybCBhbmQgbm8gZmVhdHVyZSBwYXNzZWQsIGZhbGxiYWNrIHRvIHplcm8tYmFja2VuZCBzYW5kYm94IG1vZGVcbiAgICBwcm92aWRlcnMucHVzaChcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyLFxuICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5wZXJzaXN0ZW5jZUFkYXB0ZXIgPz8gTG9jYWxTdG9yYWdlUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXIsXG4gICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLmRhdGFTb3VyY2VBZGFwdGVyID8/IE1vY2tSZXBvcnREYXRhU291cmNlQWRhcHRlcixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsXG4gICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnNjaGVtYURpc2NvdmVyeUFkYXB0ZXIgPz8gSHR0cFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBSZXBvcnRMb29rdXBBZGFwdGVyLFxuICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5sb29rdXBBZGFwdGVyID8/IEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogTWFzdGVyRGF0YVByb3ZpZGVyLFxuICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5tYXN0ZXJEYXRhUHJvdmlkZXIgPz8gSHR0cE1hc3RlckRhdGFBZGFwdGVyLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvLyBDb21wb25lbnQgb3ZlcnJpZGVzXG4gIGlmIChvcHRpb25zLmdyaWRDb21wb25lbnQpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IEdSSURfQ09NUE9ORU5ULCB1c2VWYWx1ZTogb3B0aW9ucy5ncmlkQ29tcG9uZW50IH0pO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuY2hhcnRDb21wb25lbnQpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IENIQVJUX0NPTVBPTkVOVCwgdXNlVmFsdWU6IG9wdGlvbnMuY2hhcnRDb21wb25lbnQgfSk7XG4gIH1cblxuICAvLyBFeHBsaWNpdCBhZGFwdGVyIG92ZXJyaWRlcyBhbHdheXMgd2luXG4gIGlmIChvcHRpb25zLmRhdGFTb3VyY2VBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnREYXRhU291cmNlQWRhcHRlciwgdXNlQ2xhc3M6IG9wdGlvbnMuZGF0YVNvdXJjZUFkYXB0ZXIgfSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5tYXN0ZXJEYXRhUHJvdmlkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IE1hc3RlckRhdGFQcm92aWRlciwgdXNlQ2xhc3M6IG9wdGlvbnMubWFzdGVyRGF0YVByb3ZpZGVyIH0pO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMucGVyc2lzdGVuY2VBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIsIHVzZUNsYXNzOiBvcHRpb25zLnBlcnNpc3RlbmNlQWRhcHRlciB9KTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNjaGVtYURpc2NvdmVyeUFkYXB0ZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsIHVzZUNsYXNzOiBvcHRpb25zLnNjaGVtYURpc2NvdmVyeUFkYXB0ZXIgfSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5sb29rdXBBZGFwdGVyKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goeyBwcm92aWRlOiBSZXBvcnRMb29rdXBBZGFwdGVyLCB1c2VDbGFzczogb3B0aW9ucy5sb29rdXBBZGFwdGVyIH0pO1xuICB9XG5cbiAgLy8gRHluYW1pYyBTZXNzaW9uIENvbnRleHQgUHJvdmlkZXJzXG4gIGlmIChvcHRpb25zLnNlc3Npb25Db250ZXh0UHJvdmlkZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX1BST1ZJREVSLCB1c2VDbGFzczogb3B0aW9ucy5zZXNzaW9uQ29udGV4dFByb3ZpZGVyIH0pO1xuICB9XG5cbiAgLy8gRmxleGlibGUgaW5saW5lIHNlc3Npb24gc3ludGF4OiBzZXNzaW9uOiAoKSA9PiAoeyAuLi4gfSlcbiAgaWYgKHR5cGVvZiBvcHRpb25zLnNlc3Npb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX0NPTlRFWFQsIHVzZUZhY3Rvcnk6IG9wdGlvbnMuc2Vzc2lvbiBhcyAoKSA9PiBhbnkgfSk7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5zZXNzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX0NPTlRFWFQsIHVzZVZhbHVlOiBvcHRpb25zLnNlc3Npb24gfSk7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5zZXNzaW9uQ29udGV4dEZhY3RvcnkpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IFJFUE9SVF9TRVNTSU9OX0NPTlRFWFQsIHVzZUZhY3Rvcnk6IG9wdGlvbnMuc2Vzc2lvbkNvbnRleHRGYWN0b3J5IH0pO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuc2Vzc2lvbkNvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHsgcHJvdmlkZTogUkVQT1JUX1NFU1NJT05fQ09OVEVYVCwgdXNlVmFsdWU6IG9wdGlvbnMuc2Vzc2lvbkNvbnRleHQgfSk7XG4gIH1cblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG5cbi8qKiBBbGlhcyBmb3IgcHJvdmlkZUJ3YXlzUmVwb3J0ICovXG5leHBvcnQgY29uc3QgcHJvdmlkZUJ3YXlzUmVwb3J0aW5nID0gcHJvdmlkZUJ3YXlzUmVwb3J0O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBmb3IgcHJvdmlkZUJ3YXlzUmVwb3J0ICovXG5leHBvcnQgY29uc3QgcHJvdmlkZVJlcG9ydGluZyA9IHByb3ZpZGVCd2F5c1JlcG9ydDtcblxuLyoqIFNlbWFudGljIGFsaWFzIGZvciBCV2F5cyByZXBvcnQgcHJvdmlkZXJzICovXG5leHBvcnQgY29uc3QgYndheXNSZXBvcnRQcm92aWRlcnMgPSBwcm92aWRlQndheXNSZXBvcnQ7XG4iXX0=
|