@firestitch/report 18.10.2 → 18.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/reports/components/report-canvas/report-canvas.component.d.ts +0 -1
- package/app/reports/data/report.data.d.ts +8 -12
- package/app/reports/export/report-export-collector.service.d.ts +0 -1
- package/app/reports/export/report-filter-lines.d.ts +0 -2
- package/app/reports/interfaces/report-chat-viewer-state.interface.d.ts +0 -2
- package/app/reports/interfaces/report-export-snapshot.interface.d.ts +2 -3
- package/app/reports/interfaces/report-saved-filter-changes.interface.d.ts +4 -0
- package/app/reports/interfaces/report-saved-filter.interface.d.ts +6 -0
- package/app/reports/interfaces/{report-view-config.interface.d.ts → report-state-snapshot.interface.d.ts} +1 -2
- package/app/reports/interfaces/report-viewer-feature.type.d.ts +1 -1
- package/app/reports/report-chat-viewer-state.d.ts +3 -3
- package/app/reports/report-saved-filters.d.ts +3 -0
- package/app/reports/report-state.d.ts +15 -0
- package/app/reports/services/report-filter-state.service.d.ts +9 -25
- package/app/reports/tile-data-state.d.ts +5 -5
- package/app/reports/views/report/fs-ai-report.component.d.ts +12 -5
- package/esm2022/app/reports/canvas-landing-page.mjs +3 -3
- package/esm2022/app/reports/components/component-list/component-list.component.mjs +3 -3
- package/esm2022/app/reports/components/report-canvas/report-canvas.component.mjs +8 -12
- package/esm2022/app/reports/components/report-component/report-component.component.mjs +25 -30
- package/esm2022/app/reports/data/report.data.mjs +24 -41
- package/esm2022/app/reports/export/report-export-collector.service.mjs +11 -18
- package/esm2022/app/reports/export/report-filter-lines.mjs +5 -15
- package/esm2022/app/reports/filter-settings-rules.mjs +2 -2
- package/esm2022/app/reports/interfaces/canvas-landing-input.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-chat-viewer-state.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-export-snapshot.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-saved-filter-changes.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-saved-filter.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-state-snapshot.interface.mjs +2 -0
- package/esm2022/app/reports/interfaces/report-temporary-state.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-tile-state.interface.mjs +1 -1
- package/esm2022/app/reports/interfaces/report-viewer-feature.type.mjs +1 -1
- package/esm2022/app/reports/interfaces/report.interface.mjs +1 -1
- package/esm2022/app/reports/mark-click.mjs +2 -2
- package/esm2022/app/reports/report-chat-viewer-state.mjs +3 -3
- package/esm2022/app/reports/report-date-presets.mjs +2 -2
- package/esm2022/app/reports/report-saved-filters.mjs +92 -0
- package/esm2022/app/reports/report-state.mjs +169 -0
- package/esm2022/app/reports/report-viewer-features.mjs +2 -4
- package/esm2022/app/reports/services/report-filter-state.service.mjs +83 -310
- package/esm2022/app/reports/tile-data-state.mjs +4 -4
- package/esm2022/app/reports/tile-loads.mjs +5 -6
- package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +192 -102
- package/esm2022/app/reports/views/report/report.component.mjs +14 -16
- package/esm2022/public_api.mjs +4 -8
- package/fesm2022/{firestitch-report-echarts-CyHkFToO.mjs → firestitch-report-echarts-B0RWUjR8.mjs} +2 -2
- package/fesm2022/{firestitch-report-echarts-CyHkFToO.mjs.map → firestitch-report-echarts-B0RWUjR8.mjs.map} +1 -1
- package/fesm2022/{firestitch-report-firestitch-report-DftB7M1o.mjs → firestitch-report-firestitch-report-CJW0lLdW.mjs} +480 -1450
- package/fesm2022/firestitch-report-firestitch-report-CJW0lLdW.mjs.map +1 -0
- package/fesm2022/firestitch-report.mjs +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +3 -7
- package/app/reports/components/report-view-picker/report-view-picker.component.d.ts +0 -21
- package/app/reports/dialogs/report-view/report-view-dialog.component.d.ts +0 -13
- package/app/reports/interfaces/report-view-create.interface.d.ts +0 -7
- package/app/reports/interfaces/report-view-deleted.interface.d.ts +0 -4
- package/app/reports/interfaces/report-view-dialog-data.interface.d.ts +0 -7
- package/app/reports/interfaces/report-view-dropped.interface.d.ts +0 -5
- package/app/reports/interfaces/report-view-menu-item.interface.d.ts +0 -10
- package/app/reports/interfaces/report-view-summary.interface.d.ts +0 -11
- package/app/reports/interfaces/report-view.interface.d.ts +0 -7
- package/app/reports/interfaces/report-views.interface.d.ts +0 -7
- package/app/reports/report-view-config.d.ts +0 -34
- package/app/reports/report-view-menu.d.ts +0 -15
- package/app/reports/services/report-view.service.d.ts +0 -39
- package/esm2022/app/reports/components/report-view-picker/report-view-picker.component.mjs +0 -115
- package/esm2022/app/reports/dialogs/report-view/report-view-dialog.component.mjs +0 -52
- package/esm2022/app/reports/interfaces/report-view-config.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view-create.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view-deleted.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view-dialog-data.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view-dropped.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view-menu-item.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view-summary.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-view.interface.mjs +0 -2
- package/esm2022/app/reports/interfaces/report-views.interface.mjs +0 -2
- package/esm2022/app/reports/report-view-config.mjs +0 -587
- package/esm2022/app/reports/report-view-menu.mjs +0 -119
- package/esm2022/app/reports/services/report-view.service.mjs +0 -218
- package/fesm2022/firestitch-report-firestitch-report-DftB7M1o.mjs.map +0 -1
|
@@ -5,9 +5,9 @@ import { formatDayRange, formatPlainNumber } from '../format';
|
|
|
5
5
|
import { GRANULARITY_OPTIONS, } from '../interfaces/report.interface';
|
|
6
6
|
import { dateBoundLabel, dateBoundString, relativeLabel } from '../report-filter-items';
|
|
7
7
|
import { isTile } from '../report-tile';
|
|
8
|
-
import { finiteNumber } from '../report-
|
|
8
|
+
import { finiteNumber } from '../report-state';
|
|
9
9
|
// The words a file uses for what the screen held: each filter's value, the
|
|
10
|
-
// group-by grain, a drilled tile
|
|
10
|
+
// group-by grain, a drilled tile and the match. The PDF and
|
|
11
11
|
// PowerPoint covers print these lines, and the zip sends them (filterLines,
|
|
12
12
|
// with filterSummary as their text for an older server), so every export
|
|
13
13
|
// words one filter one way. Pure, so the node harness checks every wording.
|
|
@@ -81,16 +81,6 @@ export function matchLineText(match, form) {
|
|
|
81
81
|
export function drillLineText(component, path, formatContext) {
|
|
82
82
|
return crumbedTitle(component.title, drillCrumbLabels(path, formatContext));
|
|
83
83
|
}
|
|
84
|
-
// The cover's line for the open saved view: 'View: "Q3 North" (shared)',
|
|
85
|
-
// with ', changed since it was opened' while the screen differs from it.
|
|
86
|
-
// Null when no view is open.
|
|
87
|
-
export function viewLineText(view, changed) {
|
|
88
|
-
if (!view) {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
const line = `View: "${(view.name ?? '').trim()}" (${view.shared ? 'shared' : 'personal'})`;
|
|
92
|
-
return changed ? `${line}, changed since it was opened` : line;
|
|
93
|
-
}
|
|
94
84
|
// The filter lines of an export, in order: one per filter group with a
|
|
95
85
|
// value (the report's group order), the group-by line, then one per drilled
|
|
96
86
|
// chart (page order). A This Page export (input.pageId) lists only the
|
|
@@ -227,10 +217,10 @@ function drillLines(input) {
|
|
|
227
217
|
return (report.pages ?? [])
|
|
228
218
|
.filter((page) => !pageId || page.id === pageId)
|
|
229
219
|
.flatMap((page) => page.components ?? [])
|
|
230
|
-
.filter((component) => component.type === 'chart' && !!snapshot.
|
|
220
|
+
.filter((component) => component.type === 'chart' && !!snapshot.state.tiles?.[component.id]?.drill?.length)
|
|
231
221
|
.map((component) => ({
|
|
232
222
|
kind: 'drill',
|
|
233
|
-
text: drillLineText({ title: input.titles?.[component.id] ?? component.title }, snapshot.
|
|
223
|
+
text: drillLineText({ title: input.titles?.[component.id] ?? component.title }, snapshot.state.tiles[component.id].drill, snapshot.formatContext),
|
|
234
224
|
componentId: component.id,
|
|
235
225
|
}));
|
|
236
226
|
}
|
|
@@ -249,4 +239,4 @@ function pageName(report, pageId) {
|
|
|
249
239
|
}
|
|
250
240
|
return report.pages[index].name || `Page ${index + 1}`;
|
|
251
241
|
}
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZpbHRlci1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9leHBvcnQvcmVwb3J0LWZpbHRlci1saW5lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUTlELE9BQU8sRUFFTCxtQkFBbUIsR0FLcEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3JELDJFQUEyRTtBQUMzRSwyRUFBMkU7QUFDM0UsNEVBQTRFO0FBQzVFLHlFQUF5RTtBQUN6RSw0RUFBNEU7QUFHNUUsMEVBQTBFO0FBQzFFLHNFQUFzRTtBQUN0RSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQztBQUVyRSwyRUFBMkU7QUFDM0UseUJBQXlCO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQztBQUVuRCxvQ0FBb0M7QUFDcEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRWpDLG1FQUFtRTtBQUNuRSxNQUFNLGNBQWMsR0FB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QXlDO0FBQ3pDLFNBQVMsY0FBYyxDQUFDLEtBQXdCO0lBQzlDLE9BQU8sS0FBSyxDQUFDLFlBQVk7V0FDcEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3BHLENBQUM7QUFFRCw0RUFBNEU7QUFDNUUsZUFBZTtBQUNmLFNBQVMsUUFBUSxDQUFDLE1BQWMsRUFBRSxNQUFpQztJQUNqRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpGLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxRQUFRLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGNydW1iZWRUaXRsZSwgZHJpbGxDcnVtYkxhYmVscyB9IGZyb20gJy4uL2RyaWxsLWNydW1icyc7XG5pbXBvcnQgeyBmb3JtYXREYXlSYW5nZSwgZm9ybWF0UGxhaW5OdW1iZXIgfSBmcm9tICcuLi9mb3JtYXQnO1xuaW1wb3J0IHsgUmVwb3J0RHJpbGxTdGVwIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZHJpbGwtc3RlcC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0RXhwb3J0TGluZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWV4cG9ydC1saW5lLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRFeHBvcnRMaW5lc0lucHV0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZXhwb3J0LWxpbmVzLWlucHV0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRGaWx0ZXJMaW5lQ29udGV4dCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWZpbHRlci1saW5lLWNvbnRleHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckxpbmVGb3JtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZmlsdGVyLWxpbmUtZm9ybS50eXBlJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlck1hdGNoIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZmlsdGVyLW1hdGNoLnR5cGUnO1xuaW1wb3J0IHsgUmVwb3J0Vmlld1N1bW1hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC12aWV3LXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEZpbHRlckdyb3VwVmFsdWUsXG4gIEdSQU5VTEFSSVRZX09QVElPTlMsXG4gIFJlcG9ydCxcbiAgUmVwb3J0Q29tcG9uZW50LFxuICBSZXBvcnRGaWx0ZXJHcm91cCxcbiAgUmVwb3J0Rm9ybWF0Q29udGV4dCxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IGRhdGVCb3VuZExhYmVsLCBkYXRlQm91bmRTdHJpbmcsIHJlbGF0aXZlTGFiZWwgfSBmcm9tICcuLi9yZXBvcnQtZmlsdGVyLWl0ZW1zJztcbmltcG9ydCB7IGlzVGlsZSB9IGZyb20gJy4uL3JlcG9ydC10aWxlJztcbmltcG9ydCB7IGZpbml0ZU51bWJlciB9IGZyb20gJy4uL3JlcG9ydC12aWV3LWNvbmZpZyc7XG5cblxuLy8gVGhlIHdvcmRzIGEgZmlsZSB1c2VzIGZvciB3aGF0IHRoZSBzY3JlZW4gaGVsZDogZWFjaCBmaWx0ZXIncyB2YWx1ZSwgdGhlXG4vLyBncm91cC1ieSBncmFpbiwgYSBkcmlsbGVkIHRpbGUsIHRoZSBtYXRjaCBhbmQgdGhlIG9wZW4gdmlldy4gVGhlIFBERiBhbmRcbi8vIFBvd2VyUG9pbnQgY292ZXJzIHByaW50IHRoZXNlIGxpbmVzLCBhbmQgdGhlIHppcCBzZW5kcyB0aGVtIChmaWx0ZXJMaW5lcyxcbi8vIHdpdGggZmlsdGVyU3VtbWFyeSBhcyB0aGVpciB0ZXh0IGZvciBhbiBvbGRlciBzZXJ2ZXIpLCBzbyBldmVyeSBleHBvcnRcbi8vIHdvcmRzIG9uZSBmaWx0ZXIgb25lIHdheS4gUHVyZSwgc28gdGhlIG5vZGUgaGFybmVzcyBjaGVja3MgZXZlcnkgd29yZGluZy5cblxuXG4vLyBUaGUgbWF0Y2ggd2hpbGUgdGhlIHJlcG9ydCBiYXIncyBmaWx0ZXJzIGNvbWJpbmUgd2l0aCAnYW55JzogdGhlIGNoaXAnc1xuLy8gd29yZHMsIGFuZCB0aGUgY292ZXIncyBsaW5lLiBUaGUgemlwJ3Mgbm90ZXMgY2FycnkgdGhlIHNlcnZlcidzIG93blxuLy8gc2VudGVuY2UgaW5zdGVhZC5cbmV4cG9ydCBjb25zdCBNQVRDSF9BTllfQ0hJUCA9ICdNYXRjaDogYW55IGZpbHRlcic7XG5leHBvcnQgY29uc3QgTUFUQ0hfQU5ZX0xJTkUgPSAnRmlsdGVycyBpbiB0aGUgcmVwb3J0IGJhcjogbWF0Y2ggYW55JztcblxuLy8gVGhlIHJlcG9ydCBiYXIncyBNYXRjaCBjaGlwIHdoaWxlIHRoZSBmaWx0ZXJzIGNvbWJpbmUgd2l0aCAnYWxsJy4gQSBmaWxlXG4vLyBwcmludHMgbm8gbGluZSBmb3IgaXQuXG5leHBvcnQgY29uc3QgTUFUQ0hfQUxMX0NISVAgPSAnTWF0Y2g6IGFsbCBmaWx0ZXJzJztcblxuLy8gQSBncm91cCdzIGxhYmVsIHdoZW4gaXQgaGFzIG5vbmUuXG5jb25zdCBVTkxBQkVMRURfR1JPVVAgPSAnRmlsdGVyJztcblxuLy8gVGhlIGxhYmVsIG9mIHRoZSBncm91cC1ieSBsaW5lIHdoZW4gdGhlIHJlcG9ydCBuYW1lcyBubyBjb250cm9sLlxuY29uc3QgR1JPVVBfQllfTEFCRUwgPSAnR3JvdXAgQnknO1xuXG5cbi8vIE9uZSBmaWx0ZXIgZ3JvdXAncyB2YWx1ZSBhcyB0ZXh0ICgnUmVnaW9uOiBXZXN0LCBFYXN0JyksIG9yIG51bGwgd2hlbiB0aGVcbi8vIHZhbHVlIGhvbGRzIG5vdGhpbmcuIFZhbHVlcyBsZWZ0IG91dCBzYXkgc28gYmVmb3JlIHRoZSBsYWJlbDogJ0V4Y2x1ZGVcbi8vIFJlZ2lvbjogV2VzdCwgRWFzdCcuICdjaGlwJyBpcyB0aGUgc2hvcnQgZm9ybTsgJ2xpbmUnIGFkZHMgd2hhdCBhIGZpbGVcbi8vIHJlYWRlciBjYW5ub3Qgc2VlIG9uIHNjcmVlbjpcbi8vIC0gZXhjbHVkZTogJ0V4Y2x1ZGUgUmVnaW9uOiBXZXN0LCBFYXN0IChyb3dzIHdpdGggbm8gUmVnaW9uIGFyZSBrZXB0KScsIG9yXG4vLyAgICcuLi4gYXJlIGxlZnQgb3V0JyB3aGVuIHRoZSBibGFuayBsYWJlbCAoY29udGV4dC5ibGFua0xhYmVsKSBpcyBvbmUgb2Zcbi8vICAgdGhlIHZhbHVlcyBsZWZ0IG91dC4gV2l0aG91dCBhIGtub3duIGJsYW5rIGxhYmVsIHRoZSBsaW5lIHNheXMgbm90aGluZ1xuLy8gICBhYm91dCB0aGUgYmxhbmsgcm93cztcbi8vIC0gcmFuZ2U6ICdBbW91bnQ6IDEwIHRvIDUwIChib3RoIGluY2x1ZGVkKSc7IGFuIG9wZW4gZW5kIHJlYWRzICcxMCBvclxuLy8gICBtb3JlJyBvciAnNTAgb3IgbGVzcycgaW4gYm90aCBmb3Jtcztcbi8vIC0gYSBsaXZlIHByZXNldDogJ1JlcG9ydCBQZXJpb2Q6IExhc3QgMzAgZGF5cyAoU2VwIDMg4oCTIE9jdCAyLCAyMDI2KSc7XG4vLyAtIGEgcGFnZSBncm91cDogJ0NvaG9ydCAocGFnZSBcIlJldGVudGlvblwiIG9ubHkpOiAyMDI1Jy5cbi8vIE51bWJlcnMgYW5kIGRhdGVzIGFyZSB3cml0dGVuIGluIHRoZSByZXBvcnQncyBsb2NhbGUsIGFuZCAwIGlzIGEgbnVtYmVyXG4vLyBsaWtlIGFueSBvdGhlci5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJMaW5lVGV4dChcbiAgZ3JvdXA6IFBpY2s8UmVwb3J0RmlsdGVyR3JvdXAsICdsYWJlbCcgfCAnbGV2ZWwnPixcbiAgdmFsdWU6IEZpbHRlckdyb3VwVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBjb250ZXh0OiBSZXBvcnRGaWx0ZXJMaW5lQ29udGV4dCxcbiAgZm9ybTogUmVwb3J0RmlsdGVyTGluZUZvcm0sXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgbGFiZWwgPSBncm91cC5sYWJlbCB8fCBVTkxBQkVMRURfR1JPVVA7XG4gIGNvbnN0IHRleHQgPSB2YWx1ZSA/IHZhbHVlVGV4dChsYWJlbCwgdmFsdWUsIGNvbnRleHQsIGZvcm0pIDogbnVsbDtcblxuICBpZiAodGV4dCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcGFnZU9ubHkgPSBmb3JtID09PSAnbGluZScgJiYgZ3JvdXAubGV2ZWwgPT09ICdwYWdlJyAmJiBjb250ZXh0LnBhZ2VOYW1lO1xuICBjb25zdCBuYW1lID0gcGFnZU9ubHkgPyBgJHtsYWJlbH0gKHBhZ2UgXCIke2NvbnRleHQucGFnZU5hbWV9XCIgb25seSlgIDogbGFiZWw7XG5cbiAgcmV0dXJuIGAke2V4Y2x1ZGVzKHZhbHVlKSA/ICdFeGNsdWRlICcgOiAnJ30ke25hbWV9OiAke3RleHR9YDtcbn1cblxuLy8gVGhlIHdvcmRzIG9mIG9uZSBmaWx0ZXIncyB2YWx1ZSBhcyBpdHMgY2hpcCByZWFkcyB0aGVtIGFmdGVyIHRoZSBsYWJlbFxuLy8gKCdXZXN0LCBFYXN0JywgJzAgdG8gMTAnLCAnMCBvciBtb3JlJywgJzUwIG9yIGxlc3MnKSwgb3IgbnVsbCB3aGVuIHRoZVxuLy8gdmFsdWUgaG9sZHMgbm90aGluZy4gVmFsdWVzIGxlZnQgb3V0IHJlYWQgYXMgdGhlaXIgbmFtZXM6IGZpbHRlckxpbmVUZXh0XG4vLyBwdXRzICdFeGNsdWRlJyBiZWZvcmUgdGhlIGxhYmVsLCBhbmQgYSB7e2ZpbHRlci48aWQ+fX0gdG9rZW4gcmVhZHMgdGhlbSBhc1xuLy8gJ0FsbCBleGNlcHQgV2VzdCcuIFRoZSBvbmUgc291cmNlIG9mIHRoZXNlIHdvcmRzLCBzbyB0aGUgY2hpcCwgYSBmaWxlJ3Ncbi8vIGNvdmVyIGFuZCBhIHRva2VuIG5ldmVyIHdvcmQgYSB2YWx1ZSB0d28gd2F5cy5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJDaGlwVmFsdWVUZXh0KFxuICB2YWx1ZTogRmlsdGVyR3JvdXBWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQsXG4gIGNvbnRleHQ6IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0LFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiB2YWx1ZSA/IHZhbHVlVGV4dCgnJywgdmFsdWUsIGNvbnRleHQsICdjaGlwJykgOiBudWxsO1xufVxuXG4vLyBXaGV0aGVyIGEgdmFsdWUgaXMgd29yZGVkIGFzIHZhbHVlcyBsZWZ0IG91dDogdGhlIHNhbWUgb3JkZXIgdmFsdWVUZXh0XG4vLyByZWFkcyBhIHZhbHVlIGluLCBzbyBhIHZhbHVlIHdpdGggZGF5cyBvciBrZXB0IHBpY2tzIGlzIG5ldmVyIG9uZS5cbmV4cG9ydCBmdW5jdGlvbiBleGNsdWRlcyh2YWx1ZTogRmlsdGVyR3JvdXBWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgIXZhbHVlLnN0YXJ0ICYmICF2YWx1ZS5lbmQgJiYgIXZhbHVlLnZhbHVlcz8ubGVuZ3RoICYmICEhdmFsdWUuZXhjbHVkZVZhbHVlcz8ubGVuZ3RoO1xufVxuXG4vLyBUaGUgcGlja3MgYSB2YWx1ZSBuYW1lcywga2VwdCBvciBsZWZ0IG91dCwgaW4gcGljayBvcmRlcjogd2hhdCBhIHNlbGVjdCdzXG4vLyBuYW1lcyBhcmUgcmVhZCBmb3IuIE5vbmUgZm9yIGEgZGF0ZSByYW5nZS5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZVBpY2tzKHZhbHVlOiBGaWx0ZXJHcm91cFZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHVua25vd25bXSB7XG4gIGlmICghdmFsdWUgfHwgdmFsdWUuc3RhcnQgfHwgdmFsdWUuZW5kKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlLnZhbHVlcz8ubGVuZ3RoID8gdmFsdWUudmFsdWVzIDogdmFsdWUuZXhjbHVkZVZhbHVlcyA/PyBbXTtcbn1cblxuLy8gVGhlIG1hdGNoIGFzIHRleHQgd2hpbGUgaXQgaXMgJ2FueScsIGVsc2UgbnVsbDsgdGhlIGNoaXAgYWxzbyB3b3JkcyAnYWxsJy5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaExpbmVUZXh0KG1hdGNoOiBSZXBvcnRGaWx0ZXJNYXRjaCB8IG51bGwgfCB1bmRlZmluZWQsIGZvcm06IFJlcG9ydEZpbHRlckxpbmVGb3JtKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChtYXRjaCAhPT0gJ2FueScpIHtcbiAgICByZXR1cm4gZm9ybSA9PT0gJ2NoaXAnICYmIG1hdGNoID09PSAnYWxsJyA/IE1BVENIX0FMTF9DSElQIDogbnVsbDtcbiAgfVxuXG4gIHJldHVybiBmb3JtID09PSAnY2hpcCcgPyBNQVRDSF9BTllfQ0hJUCA6IE1BVENIX0FOWV9MSU5FO1xufVxuXG4vLyBBIGRyaWxsZWQgdGlsZSdzIGxpbmU6IGl0cyB0aXRsZSBhbmQgdGhlIGJyZWFkY3J1bWIgb2YgaXRzIHBhdGgsIGluIHRoZVxuLy8gcmVwb3J0J3MgbG9jYWxlICgnUmV2ZW51ZSBieSBQZXJpb2Qg4oC6IDIwMjYg4oC6IFEzJykuXG5leHBvcnQgZnVuY3Rpb24gZHJpbGxMaW5lVGV4dChcbiAgY29tcG9uZW50OiBQaWNrPFJlcG9ydENvbXBvbmVudCwgJ3RpdGxlJz4sXG4gIHBhdGg6IHJlYWRvbmx5IFJlcG9ydERyaWxsU3RlcFtdLFxuICBmb3JtYXRDb250ZXh0OiBQaWNrPFJlcG9ydEZvcm1hdENvbnRleHQsICdsb2NhbGUnPixcbik6IHN0cmluZyB7XG4gIHJldHVybiBjcnVtYmVkVGl0bGUoY29tcG9uZW50LnRpdGxlLCBkcmlsbENydW1iTGFiZWxzKHBhdGgsIGZvcm1hdENvbnRleHQpKTtcbn1cblxuLy8gVGhlIGNvdmVyJ3MgbGluZSBmb3IgdGhlIG9wZW4gc2F2ZWQgdmlldzogJ1ZpZXc6IFwiUTMgTm9ydGhcIiAoc2hhcmVkKScsXG4vLyB3aXRoICcsIGNoYW5nZWQgc2luY2UgaXQgd2FzIG9wZW5lZCcgd2hpbGUgdGhlIHNjcmVlbiBkaWZmZXJzIGZyb20gaXQuXG4vLyBOdWxsIHdoZW4gbm8gdmlldyBpcyBvcGVuLlxuZXhwb3J0IGZ1bmN0aW9uIHZpZXdMaW5lVGV4dChcbiAgdmlldzogUGljazxSZXBvcnRWaWV3U3VtbWFyeSwgJ25hbWUnIHwgJ3NoYXJlZCc+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgY2hhbmdlZDogYm9vbGVhbixcbik6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIXZpZXcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGxpbmUgPSBgVmlldzogXCIkeyh2aWV3Lm5hbWUgPz8gJycpLnRyaW0oKX1cIiAoJHt2aWV3LnNoYXJlZCA/ICdzaGFyZWQnIDogJ3BlcnNvbmFsJ30pYDtcblxuICByZXR1cm4gY2hhbmdlZCA/IGAke2xpbmV9LCBjaGFuZ2VkIHNpbmNlIGl0IHdhcyBvcGVuZWRgIDogbGluZTtcbn1cblxuLy8gVGhlIGZpbHRlciBsaW5lcyBvZiBhbiBleHBvcnQsIGluIG9yZGVyOiBvbmUgcGVyIGZpbHRlciBncm91cCB3aXRoIGFcbi8vIHZhbHVlICh0aGUgcmVwb3J0J3MgZ3JvdXAgb3JkZXIpLCB0aGUgZ3JvdXAtYnkgbGluZSwgdGhlbiBvbmUgcGVyIGRyaWxsZWRcbi8vIGNoYXJ0IChwYWdlIG9yZGVyKS4gQSBUaGlzIFBhZ2UgZXhwb3J0IChpbnB1dC5wYWdlSWQpIGxpc3RzIG9ubHkgdGhlXG4vLyBncm91cHMgdGhhdCByZWFjaCBhIHRpbGUgb2YgdGhhdCBwYWdlLCBhbmQgb25seSB0aGF0IHBhZ2UncyBkcmlsbGVkXG4vLyBjaGFydHMuIEEgc2VsZWN0J3MgbmFtZXMgYXJlIGEgcmVxdWVzdCwgc28gdGhlIGxpbmVzIGFycml2ZSB0b2dldGhlciBvbmNlXG4vLyBldmVyeSBuYW1lIGlzIGtub3duOyBhIGZhaWxlZCBuYW1lIHJlYWQgd3JpdGVzIHRoZSBwaWNrcyBhcyB0aGV5IGFyZVxuLy8gc3RvcmVkLlxuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydExpbmVzKGlucHV0OiBSZXBvcnRFeHBvcnRMaW5lc0lucHV0KTogT2JzZXJ2YWJsZTxSZXBvcnRFeHBvcnRMaW5lW10+IHtcbiAgY29uc3QgZ3JvdXBzJCA9IGV4cG9ydEdyb3VwcyhpbnB1dC5yZXBvcnQsIGlucHV0LnBhZ2VJZClcbiAgICAubWFwKChncm91cCkgPT4gZ3JvdXBMaW5lKGdyb3VwLCBpbnB1dCkpO1xuICBjb25zdCByZXN0ID0gW2dyb3VwQnlMaW5lKGlucHV0KSwgLi4uZHJpbGxMaW5lcyhpbnB1dCldXG4gICAgLmZpbHRlcigobGluZSk6IGxpbmUgaXMgUmVwb3J0RXhwb3J0TGluZSA9PiBsaW5lICE9PSBudWxsKTtcblxuICByZXR1cm4gKGdyb3VwcyQubGVuZ3RoID8gZm9ya0pvaW4oZ3JvdXBzJCkgOiBvZihbXSkpXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKGxpbmVzKSA9PiBbXG4gICAgICAgIC4uLmxpbmVzLmZpbHRlcigobGluZSk6IGxpbmUgaXMgUmVwb3J0RXhwb3J0TGluZSA9PiBsaW5lICE9PSBudWxsKSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIF0pLFxuICAgICk7XG59XG5cbi8vIFRoZSBncm91cHMgYW4gZXhwb3J0J3MgbGluZXMgbWF5IG5hbWU6IGV2ZXJ5IGdyb3VwLCBvciBmb3IgYSBUaGlzIFBhZ2Vcbi8vIGV4cG9ydCB0aGUgZ3JvdXBzIHdpdGggYSBtZW1iZXIgdGlsZSBvbiB0aGF0IHBhZ2UuIEEgcGFnZSBncm91cCByZWFjaGVzXG4vLyBvbmx5IGl0cyBvd24gcGFnZS5cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRHcm91cHMocmVwb3J0OiBSZXBvcnQsIHBhZ2VJZDogbnVtYmVyIHwgbnVsbCk6IFJlcG9ydEZpbHRlckdyb3VwW10ge1xuICBjb25zdCBncm91cHMgPSByZXBvcnQuZmlsdGVyR3JvdXBzID8/IFtdO1xuXG4gIGlmICghcGFnZUlkKSB7XG4gICAgcmV0dXJuIGdyb3VwcztcbiAgfVxuXG4gIGNvbnN0IHBhZ2UgPSAocmVwb3J0LnBhZ2VzID8/IFtdKS5maW5kKChjYW5kaWRhdGUpID0+IGNhbmRpZGF0ZS5pZCA9PT0gcGFnZUlkKTtcbiAgY29uc3QgdGlsZUlkcyA9IChwYWdlPy5jb21wb25lbnRzID8/IFtdKVxuICAgIC5maWx0ZXIoKGNvbXBvbmVudCkgPT4gaXNUaWxlKGNvbXBvbmVudCkpXG4gICAgLm1hcCgoY29tcG9uZW50KSA9PiBjb21wb25lbnQuaWQpO1xuXG4gIHJldHVybiBncm91cHMuZmlsdGVyKChncm91cCkgPT4gKGdyb3VwLmxldmVsICE9PSAncGFnZScgfHwgZ3JvdXAucGFnZUlkID09PSBwYWdlSWQpXG4gICAgJiYgZ3JvdXBNZW1iZXJJZHMoZ3JvdXApLnNvbWUoKGNvbXBvbmVudElkKSA9PiB0aWxlSWRzLmluY2x1ZGVzKGNvbXBvbmVudElkKSkpO1xufVxuXG4vLyBUaGUgdGV4dCBhZnRlciB0aGUgbGFiZWwsIG9yIG51bGwgd2hlbiB0aGUgdmFsdWUgaG9sZHMgbm90aGluZy5cbmZ1bmN0aW9uIHZhbHVlVGV4dChcbiAgbGFiZWw6IHN0cmluZyxcbiAgdmFsdWU6IEZpbHRlckdyb3VwVmFsdWUsXG4gIGNvbnRleHQ6IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0LFxuICBmb3JtOiBSZXBvcnRGaWx0ZXJMaW5lRm9ybSxcbik6IHN0cmluZyB8IG51bGwge1xuICBpZiAodmFsdWUuc3RhcnQgfHwgdmFsdWUuZW5kKSB7XG4gICAgcmV0dXJuIGRhdGVUZXh0KHZhbHVlLCBjb250ZXh0LCBmb3JtKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS52YWx1ZXM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBwaWNrTmFtZXModmFsdWUudmFsdWVzLCBjb250ZXh0KS5qb2luKCcsICcpO1xuICB9XG5cbiAgaWYgKHZhbHVlLmV4Y2x1ZGVWYWx1ZXM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBleGNsdWRlVGV4dChsYWJlbCwgdmFsdWUuZXhjbHVkZVZhbHVlcywgY29udGV4dCwgZm9ybSk7XG4gIH1cblxuICBjb25zdCBrZXl3b3JkID0gdHlwZW9mIHZhbHVlLnZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnZhbHVlLnRyaW0oKSA6ICcnO1xuXG4gIHJldHVybiByYW5nZVRleHQodmFsdWUsIGNvbnRleHQsIGZvcm0pID8/IChrZXl3b3JkID8gYFwiJHtrZXl3b3JkfVwiYCA6IG51bGwpO1xufVxuXG4vLyBBIGRhdGUgcmFuZ2U6IGEgbGl2ZSBwcmVzZXQgYnkgaXRzIG5hbWUgKHdpdGggaXRzIGRheXMgaW4gYSBsaW5lKSwgZWxzZVxuLy8gaXRzIHR3byBkYXlzICgn4oCmJyBmb3IgYW4gb3BlbiBlbmQpLlxuZnVuY3Rpb24gZGF0ZVRleHQodmFsdWU6IEZpbHRlckdyb3VwVmFsdWUsIGNvbnRleHQ6IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0LCBmb3JtOiBSZXBvcnRGaWx0ZXJMaW5lRm9ybSk6IHN0cmluZyB7XG4gIGlmIChjb250ZXh0LnByZXNldCkge1xuICAgIGNvbnN0IG5hbWUgPSByZWxhdGl2ZUxhYmVsKGNvbnRleHQucHJlc2V0KTtcbiAgICBjb25zdCBkYXlzID0gZm9ybSA9PT0gJ2xpbmUnXG4gICAgICA/IGZvcm1hdERheVJhbmdlKGRhdGVCb3VuZFN0cmluZyh2YWx1ZS5zdGFydCksIGRhdGVCb3VuZFN0cmluZyh2YWx1ZS5lbmQpLCBjb250ZXh0LmxvY2FsZSlcbiAgICAgIDogJyc7XG5cbiAgICByZXR1cm4gZGF5cyA/IGAke25hbWV9ICgke2RheXN9KWAgOiBuYW1lO1xuICB9XG5cbiAgcmV0dXJuIGAke2RhdGVCb3VuZExhYmVsKHZhbHVlLnN0YXJ0LCBjb250ZXh0LmxvY2FsZSkgPz8gJ+KApid9IOKAkyAke2RhdGVCb3VuZExhYmVsKHZhbHVlLmVuZCwgY29udGV4dC5sb2NhbGUpID8/ICfigKYnfWA7XG59XG5cbi8vIFRoZSB2YWx1ZXMgYSBzZWxlY3QgbGVhdmVzIG91dC4gQSBsaW5lIHNheXMgd2hhdCBoYXBwZW5zIHRvIHRoZSByb3dzIHdpdGhcbi8vIG5vIHZhbHVlOiB0aGV5IHN0YXksIHVubGVzcyB0aGUgZ3JvdXAncyBibGFuayBsYWJlbCBpcyBvbmUgb2YgdGhlIHZhbHVlc1xuLy8gbGVmdCBvdXQuIFdoaWxlIHRoZSBibGFuayBsYWJlbCBpcyB1bmtub3duICh1bmRlZmluZWQpIHRoZSBsaW5lIHNheXNcbi8vIG5vdGhpbmcgYWJvdXQgdGhlbTogYSBibGFuayBsYWJlbCBhbW9uZyB0aGUgcGlja3Mgd291bGQgbWFrZSAnYXJlIGtlcHQnXG4vLyBmYWxzZS5cbmZ1bmN0aW9uIGV4Y2x1ZGVUZXh0KFxuICBsYWJlbDogc3RyaW5nLFxuICB2YWx1ZXM6IHVua25vd25bXSxcbiAgY29udGV4dDogUmVwb3J0RmlsdGVyTGluZUNvbnRleHQsXG4gIGZvcm06IFJlcG9ydEZpbHRlckxpbmVGb3JtLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgdGV4dCA9IHBpY2tOYW1lcyh2YWx1ZXMsIGNvbnRleHQpLmpvaW4oJywgJyk7XG4gIGNvbnN0IGJsYW5rTGFiZWwgPSBjb250ZXh0LmJsYW5rTGFiZWw7XG5cbiAgaWYgKGZvcm0gPT09ICdjaGlwJyB8fCBibGFua0xhYmVsID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIGNvbnN0IGJsYW5rID0gYmxhbmtMYWJlbCAhPT0gbnVsbCAmJiB2YWx1ZXMuc29tZSgodmFsdWUpID0+IFN0cmluZyh2YWx1ZSkgPT09IGJsYW5rTGFiZWwpO1xuXG4gIHJldHVybiBgJHt0ZXh0fSAocm93cyB3aXRoIG5vICR7bGFiZWx9ICR7YmxhbmsgPyAnYXJlIGxlZnQgb3V0JyA6ICdhcmUga2VwdCd9KWA7XG59XG5cbi8vIEEgbnVtYmVyIHJhbmdlJ3MgZW5kcyBpbiB0aGUgcmVwb3J0J3MgbG9jYWxlLCBvciBudWxsIHdpdGggbmVpdGhlci5cbmZ1bmN0aW9uIHJhbmdlVGV4dCh2YWx1ZTogRmlsdGVyR3JvdXBWYWx1ZSwgY29udGV4dDogUmVwb3J0RmlsdGVyTGluZUNvbnRleHQsIGZvcm06IFJlcG9ydEZpbHRlckxpbmVGb3JtKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IG1pbiA9IGZpbml0ZU51bWJlcih2YWx1ZS5taW4pO1xuICBjb25zdCBtYXggPSBmaW5pdGVOdW1iZXIodmFsdWUubWF4KTtcbiAgY29uc3Qgd3JpdGUgPSAoZW5kOiBudW1iZXIpID0+IGZvcm1hdFBsYWluTnVtYmVyKGVuZCwgY29udGV4dC5sb2NhbGUpO1xuXG4gIGlmIChtaW4gIT09IHVuZGVmaW5lZCAmJiBtYXggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgJHt3cml0ZShtaW4pfSB0byAke3dyaXRlKG1heCl9JHtmb3JtID09PSAnbGluZScgPyAnIChib3RoIGluY2x1ZGVkKScgOiAnJ31gO1xuICB9XG5cbiAgaWYgKG1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGAke3dyaXRlKG1pbil9IG9yIG1vcmVgO1xuICB9XG5cbiAgcmV0dXJuIG1heCAhPT0gdW5kZWZpbmVkID8gYCR7d3JpdGUobWF4KX0gb3IgbGVzc2AgOiBudWxsO1xufVxuXG4vLyBUaGUgcGlja3MnIG5hbWVzOiB0aGUgb25lcyB0aGUgY2FsbGVyIHJlc29sdmVkLCBlbHNlIGVhY2ggcGljayBhcyBzdG9yZWQuXG5mdW5jdGlvbiBwaWNrTmFtZXModmFsdWVzOiB1bmtub3duW10sIGNvbnRleHQ6IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0KTogc3RyaW5nW10ge1xuICBjb25zdCBuYW1lcyA9IGNvbnRleHQubmFtZXM7XG5cbiAgcmV0dXJuIHZhbHVlcy5tYXAoKHZhbHVlLCBpbmRleCkgPT4gbmFtZXM/LltpbmRleF0gPz8gU3RyaW5nKHZhbHVlKSk7XG59XG5cbi8vIE9uZSBncm91cCdzIGxpbmUsIG9uY2UgaXRzIHBpY2tzIGFyZSBuYW1lZC4gQW4gZXhjbHVkZSBsaW5lIHNheXMgd2hhdFxuLy8gaGFwcGVucyB0byB0aGUgYmxhbmsgcm93cyBmcm9tIHRoZSBncm91cCdzIGJsYW5rIGxhYmVsLCB3aGljaCB0aGUgc2VydmVyXG4vLyBzZW5kcyBvbiBhIHNlbGVjdCBncm91cCAobnVsbDogYmxhbmsgcm93cyBoYXZlIG5vbmUpLiBBbiBvbGRlciBzZXJ2ZXJcbi8vIHNlbmRzIG5vbmUsIGFuZCB0aGUgbGluZSB0aGVuIHNheXMgbm90aGluZyBhYm91dCB0aGVtLlxuZnVuY3Rpb24gZ3JvdXBMaW5lKGdyb3VwOiBSZXBvcnRGaWx0ZXJHcm91cCwgaW5wdXQ6IFJlcG9ydEV4cG9ydExpbmVzSW5wdXQpOiBPYnNlcnZhYmxlPFJlcG9ydEV4cG9ydExpbmUgfCBudWxsPiB7XG4gIGNvbnN0IHNuYXBzaG90ID0gaW5wdXQuc25hcHNob3Q7XG4gIGNvbnN0IHZhbHVlID0gc25hcHNob3QudmFsdWVzW2dyb3VwLmlkXTtcblxuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG5cbiAgY29uc3QgcGlja3MgPSB2YWx1ZVBpY2tzKHZhbHVlKTtcbiAgY29uc3QgbmFtZXMkID0gcGlja3MubGVuZ3RoXG4gICAgPyBpbnB1dC5uYW1lcyhncm91cCwgcGlja3MpLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSkpXG4gICAgOiBvZihudWxsKTtcblxuICByZXR1cm4gbmFtZXMkLnBpcGUoXG4gICAgbWFwKChuYW1lcyk6IFJlcG9ydEV4cG9ydExpbmUgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSBmaWx0ZXJMaW5lVGV4dChncm91cCwgdmFsdWUsIHtcbiAgICAgICAgbG9jYWxlOiBzbmFwc2hvdC5mb3JtYXRDb250ZXh0LmxvY2FsZSxcbiAgICAgICAgbmFtZXMsXG4gICAgICAgIHByZXNldDogc25hcHNob3QucHJlc2V0c1tncm91cC5pZF0gPz8gbnVsbCxcbiAgICAgICAgcGFnZU5hbWU6IHBhZ2VOYW1lKGlucHV0LnJlcG9ydCwgZ3JvdXAucGFnZUlkKSxcbiAgICAgICAgYmxhbmtMYWJlbDogZ3JvdXAuYmxhbmtMYWJlbCxcbiAgICAgIH0sICdsaW5lJyk7XG5cbiAgICAgIHJldHVybiB0ZXh0ID8geyBraW5kOiAnZ3JvdXAnLCB0ZXh0LCBncm91cElkOiBncm91cC5pZCB9IDogbnVsbDtcbiAgICB9KSxcbiAgKTtcbn1cblxuLy8gVGhlIGdyb3VwLWJ5IGdyYWluIHVuZGVyIHRoZSByZXBvcnQncyBvd24gbmFtZSBmb3IgdGhlIGNvbnRyb2wsIG9yIG51bGxcbi8vIHdoaWxlIG5vIGdyYWluIGlzIHBpY2tlZC5cbmZ1bmN0aW9uIGdyb3VwQnlMaW5lKGlucHV0OiBSZXBvcnRFeHBvcnRMaW5lc0lucHV0KTogUmVwb3J0RXhwb3J0TGluZSB8IG51bGwge1xuICBjb25zdCBmcmVxdWVuY3kgPSBpbnB1dC5zbmFwc2hvdC5mcmVxdWVuY3k7XG5cbiAgaWYgKCFmcmVxdWVuY3kpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbiA9IEdSQU5VTEFSSVRZX09QVElPTlMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gZnJlcXVlbmN5KTtcbiAgY29uc3QgbGFiZWwgPSBpbnB1dC5yZXBvcnQuY29uZmlnPy5ncm91cEJ5Py5sYWJlbCB8fCBHUk9VUF9CWV9MQUJFTDtcblxuICByZXR1cm4geyBraW5kOiAnZ3JvdXBCeScsIHRleHQ6IGAke2xhYmVsfTogJHtvcHRpb24/Lm5hbWUgPz8gZnJlcXVlbmN5fWAgfTtcbn1cblxuLy8gT25lIGxpbmUgcGVyIGRyaWxsZWQgY2hhcnQgb2YgdGhlIGV4cG9ydCdzIHBhZ2VzLCB3aGlsZSB0aGUgc2VydmVyIGRyaWxscy5cbmZ1bmN0aW9uIGRyaWxsTGluZXMoaW5wdXQ6IFJlcG9ydEV4cG9ydExpbmVzSW5wdXQpOiBSZXBvcnRFeHBvcnRMaW5lW10ge1xuICBjb25zdCB7IHJlcG9ydCwgc25hcHNob3QsIHBhZ2VJZCB9ID0gaW5wdXQ7XG5cbiAgaWYgKCFzbmFwc2hvdC5mZWF0dXJlcy5pbmNsdWRlcygnZHJpbGwnKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiAocmVwb3J0LnBhZ2VzID8/IFtdKVxuICAgIC5maWx0ZXIoKHBhZ2UpID0+ICFwYWdlSWQgfHwgcGFnZS5pZCA9PT0gcGFnZUlkKVxuICAgIC5mbGF0TWFwKChwYWdlKSA9PiBwYWdlLmNvbXBvbmVudHMgPz8gW10pXG4gICAgLmZpbHRlcigoY29tcG9uZW50KSA9PiBjb21wb25lbnQudHlwZSA9PT0gJ2NoYXJ0JyAmJiAhIXNuYXBzaG90LnZpZXcudGlsZXM/Lltjb21wb25lbnQuaWRdPy5kcmlsbD8ubGVuZ3RoKVxuICAgIC5tYXAoKGNvbXBvbmVudCk6IFJlcG9ydEV4cG9ydExpbmUgPT4gKHtcbiAgICAgIGtpbmQ6ICdkcmlsbCcsXG4gICAgICB0ZXh0OiBkcmlsbExpbmVUZXh0KFxuICAgICAgICB7IHRpdGxlOiBpbnB1dC50aXRsZXM/Lltjb21wb25lbnQuaWRdID8/IGNvbXBvbmVudC50aXRsZSB9LFxuICAgICAgICBzbmFwc2hvdC52aWV3LnRpbGVzW2NvbXBvbmVudC5pZF0uZHJpbGwsXG4gICAgICAgIHNuYXBzaG90LmZvcm1hdENvbnRleHQsXG4gICAgICApLFxuICAgICAgY29tcG9uZW50SWQ6IGNvbXBvbmVudC5pZCxcbiAgICB9KSk7XG59XG5cbi8vIFRoZSB0aWxlcyBhIGdyb3VwJ3MgbWVtYmVycyBzaXQgb246IHRoZSBzZXJ2ZXIncyBsaXN0LCBlbHNlIHRoZSB0aWxlcyBvZlxuLy8gaXRzIGVuYWJsZWQgbWVtYmVycyAoYW4gb2xkZXIgc2VydmVyKS5cbmZ1bmN0aW9uIGdyb3VwTWVtYmVySWRzKGdyb3VwOiBSZXBvcnRGaWx0ZXJHcm91cCk6IG51bWJlcltdIHtcbiAgcmV0dXJuIGdyb3VwLmNvbXBvbmVudElkc1xuICAgID8/IChncm91cC5maWx0ZXJzID8/IFtdKS5maWx0ZXIoKG1lbWJlcikgPT4gbWVtYmVyLmVuYWJsZWQpLm1hcCgobWVtYmVyKSA9PiBtZW1iZXIuY29tcG9uZW50SWQpO1xufVxuXG4vLyBBIHBhZ2UncyBuYW1lIGFzIHRoZSBleHBvcnQgbmFtZXMgaXQgKCdQYWdlIDInIHdoZW4gaXQgaGFzIG5vbmUpLCBvciBudWxsXG4vLyBmb3Igbm8gcGFnZS5cbmZ1bmN0aW9uIHBhZ2VOYW1lKHJlcG9ydDogUmVwb3J0LCBwYWdlSWQ6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaW5kZXggPSBwYWdlSWQgPyAocmVwb3J0LnBhZ2VzID8/IFtdKS5maW5kSW5kZXgoKHBhZ2UpID0+IHBhZ2UuaWQgPT09IHBhZ2VJZCkgOiAtMTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gcmVwb3J0LnBhZ2VzW2luZGV4XS5uYW1lIHx8IGBQYWdlICR7aW5kZXggKyAxfWA7XG59XG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWZpbHRlci1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9leHBvcnQvcmVwb3J0LWZpbHRlci1saW5lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTzlELE9BQU8sRUFFTCxtQkFBbUIsR0FLcEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLDJFQUEyRTtBQUMzRSw0REFBNEQ7QUFDNUQsNEVBQTRFO0FBQzVFLHlFQUF5RTtBQUN6RSw0RUFBNEU7QUFHNUUsMEVBQTBFO0FBQzFFLHNFQUFzRTtBQUN0RSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQztBQUVyRSwyRUFBMkU7QUFDM0UseUJBQXlCO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQztBQUVuRCxvQ0FBb0M7QUFDcEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRWpDLG1FQUFtRTtBQUNuRSxNQUFNLGNBQWMsR0FB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LFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVEsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3J1bWJlZFRpdGxlLCBkcmlsbENydW1iTGFiZWxzIH0gZnJvbSAnLi4vZHJpbGwtY3J1bWJzJztcbmltcG9ydCB7IGZvcm1hdERheVJhbmdlLCBmb3JtYXRQbGFpbk51bWJlciB9IGZyb20gJy4uL2Zvcm1hdCc7XG5pbXBvcnQgeyBSZXBvcnREcmlsbFN0ZXAgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kcmlsbC1zdGVwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRFeHBvcnRMaW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZXhwb3J0LWxpbmUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydEV4cG9ydExpbmVzSW5wdXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1leHBvcnQtbGluZXMtaW5wdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZmlsdGVyLWxpbmUtY29udGV4dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0RmlsdGVyTGluZUZvcm0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1maWx0ZXItbGluZS1mb3JtLnR5cGUnO1xuaW1wb3J0IHsgUmVwb3J0RmlsdGVyTWF0Y2ggfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1maWx0ZXItbWF0Y2gudHlwZSc7XG5pbXBvcnQge1xuICBGaWx0ZXJHcm91cFZhbHVlLFxuICBHUkFOVUxBUklUWV9PUFRJT05TLFxuICBSZXBvcnQsXG4gIFJlcG9ydENvbXBvbmVudCxcbiAgUmVwb3J0RmlsdGVyR3JvdXAsXG4gIFJlcG9ydEZvcm1hdENvbnRleHQsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBkYXRlQm91bmRMYWJlbCwgZGF0ZUJvdW5kU3RyaW5nLCByZWxhdGl2ZUxhYmVsIH0gZnJvbSAnLi4vcmVwb3J0LWZpbHRlci1pdGVtcyc7XG5pbXBvcnQgeyBpc1RpbGUgfSBmcm9tICcuLi9yZXBvcnQtdGlsZSc7XG5pbXBvcnQgeyBmaW5pdGVOdW1iZXIgfSBmcm9tICcuLi9yZXBvcnQtc3RhdGUnO1xuXG5cbi8vIFRoZSB3b3JkcyBhIGZpbGUgdXNlcyBmb3Igd2hhdCB0aGUgc2NyZWVuIGhlbGQ6IGVhY2ggZmlsdGVyJ3MgdmFsdWUsIHRoZVxuLy8gZ3JvdXAtYnkgZ3JhaW4sIGEgZHJpbGxlZCB0aWxlIGFuZCB0aGUgbWF0Y2guIFRoZSBQREYgYW5kXG4vLyBQb3dlclBvaW50IGNvdmVycyBwcmludCB0aGVzZSBsaW5lcywgYW5kIHRoZSB6aXAgc2VuZHMgdGhlbSAoZmlsdGVyTGluZXMsXG4vLyB3aXRoIGZpbHRlclN1bW1hcnkgYXMgdGhlaXIgdGV4dCBmb3IgYW4gb2xkZXIgc2VydmVyKSwgc28gZXZlcnkgZXhwb3J0XG4vLyB3b3JkcyBvbmUgZmlsdGVyIG9uZSB3YXkuIFB1cmUsIHNvIHRoZSBub2RlIGhhcm5lc3MgY2hlY2tzIGV2ZXJ5IHdvcmRpbmcuXG5cblxuLy8gVGhlIG1hdGNoIHdoaWxlIHRoZSByZXBvcnQgYmFyJ3MgZmlsdGVycyBjb21iaW5lIHdpdGggJ2FueSc6IHRoZSBjaGlwJ3Ncbi8vIHdvcmRzLCBhbmQgdGhlIGNvdmVyJ3MgbGluZS4gVGhlIHppcCdzIG5vdGVzIGNhcnJ5IHRoZSBzZXJ2ZXIncyBvd25cbi8vIHNlbnRlbmNlIGluc3RlYWQuXG5leHBvcnQgY29uc3QgTUFUQ0hfQU5ZX0NISVAgPSAnTWF0Y2g6IGFueSBmaWx0ZXInO1xuZXhwb3J0IGNvbnN0IE1BVENIX0FOWV9MSU5FID0gJ0ZpbHRlcnMgaW4gdGhlIHJlcG9ydCBiYXI6IG1hdGNoIGFueSc7XG5cbi8vIFRoZSByZXBvcnQgYmFyJ3MgTWF0Y2ggY2hpcCB3aGlsZSB0aGUgZmlsdGVycyBjb21iaW5lIHdpdGggJ2FsbCcuIEEgZmlsZVxuLy8gcHJpbnRzIG5vIGxpbmUgZm9yIGl0LlxuZXhwb3J0IGNvbnN0IE1BVENIX0FMTF9DSElQID0gJ01hdGNoOiBhbGwgZmlsdGVycyc7XG5cbi8vIEEgZ3JvdXAncyBsYWJlbCB3aGVuIGl0IGhhcyBub25lLlxuY29uc3QgVU5MQUJFTEVEX0dST1VQID0gJ0ZpbHRlcic7XG5cbi8vIFRoZSBsYWJlbCBvZiB0aGUgZ3JvdXAtYnkgbGluZSB3aGVuIHRoZSByZXBvcnQgbmFtZXMgbm8gY29udHJvbC5cbmNvbnN0IEdST1VQX0JZX0xBQkVMID0gJ0dyb3VwIEJ5JztcblxuXG4vLyBPbmUgZmlsdGVyIGdyb3VwJ3MgdmFsdWUgYXMgdGV4dCAoJ1JlZ2lvbjogV2VzdCwgRWFzdCcpLCBvciBudWxsIHdoZW4gdGhlXG4vLyB2YWx1ZSBob2xkcyBub3RoaW5nLiBWYWx1ZXMgbGVmdCBvdXQgc2F5IHNvIGJlZm9yZSB0aGUgbGFiZWw6ICdFeGNsdWRlXG4vLyBSZWdpb246IFdlc3QsIEVhc3QnLiAnY2hpcCcgaXMgdGhlIHNob3J0IGZvcm07ICdsaW5lJyBhZGRzIHdoYXQgYSBmaWxlXG4vLyByZWFkZXIgY2Fubm90IHNlZSBvbiBzY3JlZW46XG4vLyAtIGV4Y2x1ZGU6ICdFeGNsdWRlIFJlZ2lvbjogV2VzdCwgRWFzdCAocm93cyB3aXRoIG5vIFJlZ2lvbiBhcmUga2VwdCknLCBvclxuLy8gICAnLi4uIGFyZSBsZWZ0IG91dCcgd2hlbiB0aGUgYmxhbmsgbGFiZWwgKGNvbnRleHQuYmxhbmtMYWJlbCkgaXMgb25lIG9mXG4vLyAgIHRoZSB2YWx1ZXMgbGVmdCBvdXQuIFdpdGhvdXQgYSBrbm93biBibGFuayBsYWJlbCB0aGUgbGluZSBzYXlzIG5vdGhpbmdcbi8vICAgYWJvdXQgdGhlIGJsYW5rIHJvd3M7XG4vLyAtIHJhbmdlOiAnQW1vdW50OiAxMCB0byA1MCAoYm90aCBpbmNsdWRlZCknOyBhbiBvcGVuIGVuZCByZWFkcyAnMTAgb3Jcbi8vICAgbW9yZScgb3IgJzUwIG9yIGxlc3MnIGluIGJvdGggZm9ybXM7XG4vLyAtIGEgbGl2ZSBwcmVzZXQ6ICdSZXBvcnQgUGVyaW9kOiBMYXN0IDMwIGRheXMgKFNlcCAzIOKAkyBPY3QgMiwgMjAyNiknO1xuLy8gLSBhIHBhZ2UgZ3JvdXA6ICdDb2hvcnQgKHBhZ2UgXCJSZXRlbnRpb25cIiBvbmx5KTogMjAyNScuXG4vLyBOdW1iZXJzIGFuZCBkYXRlcyBhcmUgd3JpdHRlbiBpbiB0aGUgcmVwb3J0J3MgbG9jYWxlLCBhbmQgMCBpcyBhIG51bWJlclxuLy8gbGlrZSBhbnkgb3RoZXIuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyTGluZVRleHQoXG4gIGdyb3VwOiBQaWNrPFJlcG9ydEZpbHRlckdyb3VwLCAnbGFiZWwnIHwgJ2xldmVsJz4sXG4gIHZhbHVlOiBGaWx0ZXJHcm91cFZhbHVlIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgY29udGV4dDogUmVwb3J0RmlsdGVyTGluZUNvbnRleHQsXG4gIGZvcm06IFJlcG9ydEZpbHRlckxpbmVGb3JtLFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGxhYmVsID0gZ3JvdXAubGFiZWwgfHwgVU5MQUJFTEVEX0dST1VQO1xuICBjb25zdCB0ZXh0ID0gdmFsdWUgPyB2YWx1ZVRleHQobGFiZWwsIHZhbHVlLCBjb250ZXh0LCBmb3JtKSA6IG51bGw7XG5cbiAgaWYgKHRleHQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHBhZ2VPbmx5ID0gZm9ybSA9PT0gJ2xpbmUnICYmIGdyb3VwLmxldmVsID09PSAncGFnZScgJiYgY29udGV4dC5wYWdlTmFtZTtcbiAgY29uc3QgbmFtZSA9IHBhZ2VPbmx5ID8gYCR7bGFiZWx9IChwYWdlIFwiJHtjb250ZXh0LnBhZ2VOYW1lfVwiIG9ubHkpYCA6IGxhYmVsO1xuXG4gIHJldHVybiBgJHtleGNsdWRlcyh2YWx1ZSkgPyAnRXhjbHVkZSAnIDogJyd9JHtuYW1lfTogJHt0ZXh0fWA7XG59XG5cbi8vIFRoZSB3b3JkcyBvZiBvbmUgZmlsdGVyJ3MgdmFsdWUgYXMgaXRzIGNoaXAgcmVhZHMgdGhlbSBhZnRlciB0aGUgbGFiZWxcbi8vICgnV2VzdCwgRWFzdCcsICcwIHRvIDEwJywgJzAgb3IgbW9yZScsICc1MCBvciBsZXNzJyksIG9yIG51bGwgd2hlbiB0aGVcbi8vIHZhbHVlIGhvbGRzIG5vdGhpbmcuIFZhbHVlcyBsZWZ0IG91dCByZWFkIGFzIHRoZWlyIG5hbWVzOiBmaWx0ZXJMaW5lVGV4dFxuLy8gcHV0cyAnRXhjbHVkZScgYmVmb3JlIHRoZSBsYWJlbCwgYW5kIGEge3tmaWx0ZXIuPGlkPn19IHRva2VuIHJlYWRzIHRoZW0gYXNcbi8vICdBbGwgZXhjZXB0IFdlc3QnLiBUaGUgb25lIHNvdXJjZSBvZiB0aGVzZSB3b3Jkcywgc28gdGhlIGNoaXAsIGEgZmlsZSdzXG4vLyBjb3ZlciBhbmQgYSB0b2tlbiBuZXZlciB3b3JkIGEgdmFsdWUgdHdvIHdheXMuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQ2hpcFZhbHVlVGV4dChcbiAgdmFsdWU6IEZpbHRlckdyb3VwVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkLFxuICBjb250ZXh0OiBSZXBvcnRGaWx0ZXJMaW5lQ29udGV4dCxcbik6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gdmFsdWUgPyB2YWx1ZVRleHQoJycsIHZhbHVlLCBjb250ZXh0LCAnY2hpcCcpIDogbnVsbDtcbn1cblxuLy8gV2hldGhlciBhIHZhbHVlIGlzIHdvcmRlZCBhcyB2YWx1ZXMgbGVmdCBvdXQ6IHRoZSBzYW1lIG9yZGVyIHZhbHVlVGV4dFxuLy8gcmVhZHMgYSB2YWx1ZSBpbiwgc28gYSB2YWx1ZSB3aXRoIGRheXMgb3Iga2VwdCBwaWNrcyBpcyBuZXZlciBvbmUuXG5leHBvcnQgZnVuY3Rpb24gZXhjbHVkZXModmFsdWU6IEZpbHRlckdyb3VwVmFsdWUgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIXZhbHVlICYmICF2YWx1ZS5zdGFydCAmJiAhdmFsdWUuZW5kICYmICF2YWx1ZS52YWx1ZXM/Lmxlbmd0aCAmJiAhIXZhbHVlLmV4Y2x1ZGVWYWx1ZXM/Lmxlbmd0aDtcbn1cblxuLy8gVGhlIHBpY2tzIGEgdmFsdWUgbmFtZXMsIGtlcHQgb3IgbGVmdCBvdXQsIGluIHBpY2sgb3JkZXI6IHdoYXQgYSBzZWxlY3Qnc1xuLy8gbmFtZXMgYXJlIHJlYWQgZm9yLiBOb25lIGZvciBhIGRhdGUgcmFuZ2UuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVQaWNrcyh2YWx1ZTogRmlsdGVyR3JvdXBWYWx1ZSB8IG51bGwgfCB1bmRlZmluZWQpOiB1bmtub3duW10ge1xuICBpZiAoIXZhbHVlIHx8IHZhbHVlLnN0YXJ0IHx8IHZhbHVlLmVuZCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZS52YWx1ZXM/Lmxlbmd0aCA/IHZhbHVlLnZhbHVlcyA6IHZhbHVlLmV4Y2x1ZGVWYWx1ZXMgPz8gW107XG59XG5cbi8vIFRoZSBtYXRjaCBhcyB0ZXh0IHdoaWxlIGl0IGlzICdhbnknLCBlbHNlIG51bGw7IHRoZSBjaGlwIGFsc28gd29yZHMgJ2FsbCcuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hMaW5lVGV4dChtYXRjaDogUmVwb3J0RmlsdGVyTWF0Y2ggfCBudWxsIHwgdW5kZWZpbmVkLCBmb3JtOiBSZXBvcnRGaWx0ZXJMaW5lRm9ybSk6IHN0cmluZyB8IG51bGwge1xuICBpZiAobWF0Y2ggIT09ICdhbnknKSB7XG4gICAgcmV0dXJuIGZvcm0gPT09ICdjaGlwJyAmJiBtYXRjaCA9PT0gJ2FsbCcgPyBNQVRDSF9BTExfQ0hJUCA6IG51bGw7XG4gIH1cblxuICByZXR1cm4gZm9ybSA9PT0gJ2NoaXAnID8gTUFUQ0hfQU5ZX0NISVAgOiBNQVRDSF9BTllfTElORTtcbn1cblxuLy8gQSBkcmlsbGVkIHRpbGUncyBsaW5lOiBpdHMgdGl0bGUgYW5kIHRoZSBicmVhZGNydW1iIG9mIGl0cyBwYXRoLCBpbiB0aGVcbi8vIHJlcG9ydCdzIGxvY2FsZSAoJ1JldmVudWUgYnkgUGVyaW9kIOKAuiAyMDI2IOKAuiBRMycpLlxuZXhwb3J0IGZ1bmN0aW9uIGRyaWxsTGluZVRleHQoXG4gIGNvbXBvbmVudDogUGljazxSZXBvcnRDb21wb25lbnQsICd0aXRsZSc+LFxuICBwYXRoOiByZWFkb25seSBSZXBvcnREcmlsbFN0ZXBbXSxcbiAgZm9ybWF0Q29udGV4dDogUGljazxSZXBvcnRGb3JtYXRDb250ZXh0LCAnbG9jYWxlJz4sXG4pOiBzdHJpbmcge1xuICByZXR1cm4gY3J1bWJlZFRpdGxlKGNvbXBvbmVudC50aXRsZSwgZHJpbGxDcnVtYkxhYmVscyhwYXRoLCBmb3JtYXRDb250ZXh0KSk7XG59XG5cbi8vIFRoZSBmaWx0ZXIgbGluZXMgb2YgYW4gZXhwb3J0LCBpbiBvcmRlcjogb25lIHBlciBmaWx0ZXIgZ3JvdXAgd2l0aCBhXG4vLyB2YWx1ZSAodGhlIHJlcG9ydCdzIGdyb3VwIG9yZGVyKSwgdGhlIGdyb3VwLWJ5IGxpbmUsIHRoZW4gb25lIHBlciBkcmlsbGVkXG4vLyBjaGFydCAocGFnZSBvcmRlcikuIEEgVGhpcyBQYWdlIGV4cG9ydCAoaW5wdXQucGFnZUlkKSBsaXN0cyBvbmx5IHRoZVxuLy8gZ3JvdXBzIHRoYXQgcmVhY2ggYSB0aWxlIG9mIHRoYXQgcGFnZSwgYW5kIG9ubHkgdGhhdCBwYWdlJ3MgZHJpbGxlZFxuLy8gY2hhcnRzLiBBIHNlbGVjdCdzIG5hbWVzIGFyZSBhIHJlcXVlc3QsIHNvIHRoZSBsaW5lcyBhcnJpdmUgdG9nZXRoZXIgb25jZVxuLy8gZXZlcnkgbmFtZSBpcyBrbm93bjsgYSBmYWlsZWQgbmFtZSByZWFkIHdyaXRlcyB0aGUgcGlja3MgYXMgdGhleSBhcmVcbi8vIHN0b3JlZC5cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRMaW5lcyhpbnB1dDogUmVwb3J0RXhwb3J0TGluZXNJbnB1dCk6IE9ic2VydmFibGU8UmVwb3J0RXhwb3J0TGluZVtdPiB7XG4gIGNvbnN0IGdyb3VwcyQgPSBleHBvcnRHcm91cHMoaW5wdXQucmVwb3J0LCBpbnB1dC5wYWdlSWQpXG4gICAgLm1hcCgoZ3JvdXApID0+IGdyb3VwTGluZShncm91cCwgaW5wdXQpKTtcbiAgY29uc3QgcmVzdCA9IFtncm91cEJ5TGluZShpbnB1dCksIC4uLmRyaWxsTGluZXMoaW5wdXQpXVxuICAgIC5maWx0ZXIoKGxpbmUpOiBsaW5lIGlzIFJlcG9ydEV4cG9ydExpbmUgPT4gbGluZSAhPT0gbnVsbCk7XG5cbiAgcmV0dXJuIChncm91cHMkLmxlbmd0aCA/IGZvcmtKb2luKGdyb3VwcyQpIDogb2YoW10pKVxuICAgIC5waXBlKFxuICAgICAgbWFwKChsaW5lcykgPT4gW1xuICAgICAgICAuLi5saW5lcy5maWx0ZXIoKGxpbmUpOiBsaW5lIGlzIFJlcG9ydEV4cG9ydExpbmUgPT4gbGluZSAhPT0gbnVsbCksXG4gICAgICAgIC4uLnJlc3QsXG4gICAgICBdKSxcbiAgICApO1xufVxuXG4vLyBUaGUgZ3JvdXBzIGFuIGV4cG9ydCdzIGxpbmVzIG1heSBuYW1lOiBldmVyeSBncm91cCwgb3IgZm9yIGEgVGhpcyBQYWdlXG4vLyBleHBvcnQgdGhlIGdyb3VwcyB3aXRoIGEgbWVtYmVyIHRpbGUgb24gdGhhdCBwYWdlLiBBIHBhZ2UgZ3JvdXAgcmVhY2hlc1xuLy8gb25seSBpdHMgb3duIHBhZ2UuXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0R3JvdXBzKHJlcG9ydDogUmVwb3J0LCBwYWdlSWQ6IG51bWJlciB8IG51bGwpOiBSZXBvcnRGaWx0ZXJHcm91cFtdIHtcbiAgY29uc3QgZ3JvdXBzID0gcmVwb3J0LmZpbHRlckdyb3VwcyA/PyBbXTtcblxuICBpZiAoIXBhZ2VJZCkge1xuICAgIHJldHVybiBncm91cHM7XG4gIH1cblxuICBjb25zdCBwYWdlID0gKHJlcG9ydC5wYWdlcyA/PyBbXSkuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaWQgPT09IHBhZ2VJZCk7XG4gIGNvbnN0IHRpbGVJZHMgPSAocGFnZT8uY29tcG9uZW50cyA/PyBbXSlcbiAgICAuZmlsdGVyKChjb21wb25lbnQpID0+IGlzVGlsZShjb21wb25lbnQpKVxuICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmlkKTtcblxuICByZXR1cm4gZ3JvdXBzLmZpbHRlcigoZ3JvdXApID0+IChncm91cC5sZXZlbCAhPT0gJ3BhZ2UnIHx8IGdyb3VwLnBhZ2VJZCA9PT0gcGFnZUlkKVxuICAgICYmIGdyb3VwTWVtYmVySWRzKGdyb3VwKS5zb21lKChjb21wb25lbnRJZCkgPT4gdGlsZUlkcy5pbmNsdWRlcyhjb21wb25lbnRJZCkpKTtcbn1cblxuLy8gVGhlIHRleHQgYWZ0ZXIgdGhlIGxhYmVsLCBvciBudWxsIHdoZW4gdGhlIHZhbHVlIGhvbGRzIG5vdGhpbmcuXG5mdW5jdGlvbiB2YWx1ZVRleHQoXG4gIGxhYmVsOiBzdHJpbmcsXG4gIHZhbHVlOiBGaWx0ZXJHcm91cFZhbHVlLFxuICBjb250ZXh0OiBSZXBvcnRGaWx0ZXJMaW5lQ29udGV4dCxcbiAgZm9ybTogUmVwb3J0RmlsdGVyTGluZUZvcm0sXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHZhbHVlLnN0YXJ0IHx8IHZhbHVlLmVuZCkge1xuICAgIHJldHVybiBkYXRlVGV4dCh2YWx1ZSwgY29udGV4dCwgZm9ybSk7XG4gIH1cblxuICBpZiAodmFsdWUudmFsdWVzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gcGlja05hbWVzKHZhbHVlLnZhbHVlcywgY29udGV4dCkuam9pbignLCAnKTtcbiAgfVxuXG4gIGlmICh2YWx1ZS5leGNsdWRlVmFsdWVzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZXhjbHVkZVRleHQobGFiZWwsIHZhbHVlLmV4Y2x1ZGVWYWx1ZXMsIGNvbnRleHQsIGZvcm0pO1xuICB9XG5cbiAgY29uc3Qga2V5d29yZCA9IHR5cGVvZiB2YWx1ZS52YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS52YWx1ZS50cmltKCkgOiAnJztcblxuICByZXR1cm4gcmFuZ2VUZXh0KHZhbHVlLCBjb250ZXh0LCBmb3JtKSA/PyAoa2V5d29yZCA/IGBcIiR7a2V5d29yZH1cImAgOiBudWxsKTtcbn1cblxuLy8gQSBkYXRlIHJhbmdlOiBhIGxpdmUgcHJlc2V0IGJ5IGl0cyBuYW1lICh3aXRoIGl0cyBkYXlzIGluIGEgbGluZSksIGVsc2Vcbi8vIGl0cyB0d28gZGF5cyAoJ+KApicgZm9yIGFuIG9wZW4gZW5kKS5cbmZ1bmN0aW9uIGRhdGVUZXh0KHZhbHVlOiBGaWx0ZXJHcm91cFZhbHVlLCBjb250ZXh0OiBSZXBvcnRGaWx0ZXJMaW5lQ29udGV4dCwgZm9ybTogUmVwb3J0RmlsdGVyTGluZUZvcm0pOiBzdHJpbmcge1xuICBpZiAoY29udGV4dC5wcmVzZXQpIHtcbiAgICBjb25zdCBuYW1lID0gcmVsYXRpdmVMYWJlbChjb250ZXh0LnByZXNldCk7XG4gICAgY29uc3QgZGF5cyA9IGZvcm0gPT09ICdsaW5lJ1xuICAgICAgPyBmb3JtYXREYXlSYW5nZShkYXRlQm91bmRTdHJpbmcodmFsdWUuc3RhcnQpLCBkYXRlQm91bmRTdHJpbmcodmFsdWUuZW5kKSwgY29udGV4dC5sb2NhbGUpXG4gICAgICA6ICcnO1xuXG4gICAgcmV0dXJuIGRheXMgPyBgJHtuYW1lfSAoJHtkYXlzfSlgIDogbmFtZTtcbiAgfVxuXG4gIHJldHVybiBgJHtkYXRlQm91bmRMYWJlbCh2YWx1ZS5zdGFydCwgY29udGV4dC5sb2NhbGUpID8/ICfigKYnfSDigJMgJHtkYXRlQm91bmRMYWJlbCh2YWx1ZS5lbmQsIGNvbnRleHQubG9jYWxlKSA/PyAn4oCmJ31gO1xufVxuXG4vLyBUaGUgdmFsdWVzIGEgc2VsZWN0IGxlYXZlcyBvdXQuIEEgbGluZSBzYXlzIHdoYXQgaGFwcGVucyB0byB0aGUgcm93cyB3aXRoXG4vLyBubyB2YWx1ZTogdGhleSBzdGF5LCB1bmxlc3MgdGhlIGdyb3VwJ3MgYmxhbmsgbGFiZWwgaXMgb25lIG9mIHRoZSB2YWx1ZXNcbi8vIGxlZnQgb3V0LiBXaGlsZSB0aGUgYmxhbmsgbGFiZWwgaXMgdW5rbm93biAodW5kZWZpbmVkKSB0aGUgbGluZSBzYXlzXG4vLyBub3RoaW5nIGFib3V0IHRoZW06IGEgYmxhbmsgbGFiZWwgYW1vbmcgdGhlIHBpY2tzIHdvdWxkIG1ha2UgJ2FyZSBrZXB0J1xuLy8gZmFsc2UuXG5mdW5jdGlvbiBleGNsdWRlVGV4dChcbiAgbGFiZWw6IHN0cmluZyxcbiAgdmFsdWVzOiB1bmtub3duW10sXG4gIGNvbnRleHQ6IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0LFxuICBmb3JtOiBSZXBvcnRGaWx0ZXJMaW5lRm9ybSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHRleHQgPSBwaWNrTmFtZXModmFsdWVzLCBjb250ZXh0KS5qb2luKCcsICcpO1xuICBjb25zdCBibGFua0xhYmVsID0gY29udGV4dC5ibGFua0xhYmVsO1xuXG4gIGlmIChmb3JtID09PSAnY2hpcCcgfHwgYmxhbmtMYWJlbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICBjb25zdCBibGFuayA9IGJsYW5rTGFiZWwgIT09IG51bGwgJiYgdmFsdWVzLnNvbWUoKHZhbHVlKSA9PiBTdHJpbmcodmFsdWUpID09PSBibGFua0xhYmVsKTtcblxuICByZXR1cm4gYCR7dGV4dH0gKHJvd3Mgd2l0aCBubyAke2xhYmVsfSAke2JsYW5rID8gJ2FyZSBsZWZ0IG91dCcgOiAnYXJlIGtlcHQnfSlgO1xufVxuXG4vLyBBIG51bWJlciByYW5nZSdzIGVuZHMgaW4gdGhlIHJlcG9ydCdzIGxvY2FsZSwgb3IgbnVsbCB3aXRoIG5laXRoZXIuXG5mdW5jdGlvbiByYW5nZVRleHQodmFsdWU6IEZpbHRlckdyb3VwVmFsdWUsIGNvbnRleHQ6IFJlcG9ydEZpbHRlckxpbmVDb250ZXh0LCBmb3JtOiBSZXBvcnRGaWx0ZXJMaW5lRm9ybSk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBtaW4gPSBmaW5pdGVOdW1iZXIodmFsdWUubWluKTtcbiAgY29uc3QgbWF4ID0gZmluaXRlTnVtYmVyKHZhbHVlLm1heCk7XG4gIGNvbnN0IHdyaXRlID0gKGVuZDogbnVtYmVyKSA9PiBmb3JtYXRQbGFpbk51bWJlcihlbmQsIGNvbnRleHQubG9jYWxlKTtcblxuICBpZiAobWluICE9PSB1bmRlZmluZWQgJiYgbWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYCR7d3JpdGUobWluKX0gdG8gJHt3cml0ZShtYXgpfSR7Zm9ybSA9PT0gJ2xpbmUnID8gJyAoYm90aCBpbmNsdWRlZCknIDogJyd9YDtcbiAgfVxuXG4gIGlmIChtaW4gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgJHt3cml0ZShtaW4pfSBvciBtb3JlYDtcbiAgfVxuXG4gIHJldHVybiBtYXggIT09IHVuZGVmaW5lZCA/IGAke3dyaXRlKG1heCl9IG9yIGxlc3NgIDogbnVsbDtcbn1cblxuLy8gVGhlIHBpY2tzJyBuYW1lczogdGhlIG9uZXMgdGhlIGNhbGxlciByZXNvbHZlZCwgZWxzZSBlYWNoIHBpY2sgYXMgc3RvcmVkLlxuZnVuY3Rpb24gcGlja05hbWVzKHZhbHVlczogdW5rbm93bltdLCBjb250ZXh0OiBSZXBvcnRGaWx0ZXJMaW5lQ29udGV4dCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbmFtZXMgPSBjb250ZXh0Lm5hbWVzO1xuXG4gIHJldHVybiB2YWx1ZXMubWFwKCh2YWx1ZSwgaW5kZXgpID0+IG5hbWVzPy5baW5kZXhdID8/IFN0cmluZyh2YWx1ZSkpO1xufVxuXG4vLyBPbmUgZ3JvdXAncyBsaW5lLCBvbmNlIGl0cyBwaWNrcyBhcmUgbmFtZWQuIEFuIGV4Y2x1ZGUgbGluZSBzYXlzIHdoYXRcbi8vIGhhcHBlbnMgdG8gdGhlIGJsYW5rIHJvd3MgZnJvbSB0aGUgZ3JvdXAncyBibGFuayBsYWJlbCwgd2hpY2ggdGhlIHNlcnZlclxuLy8gc2VuZHMgb24gYSBzZWxlY3QgZ3JvdXAgKG51bGw6IGJsYW5rIHJvd3MgaGF2ZSBub25lKS4gQW4gb2xkZXIgc2VydmVyXG4vLyBzZW5kcyBub25lLCBhbmQgdGhlIGxpbmUgdGhlbiBzYXlzIG5vdGhpbmcgYWJvdXQgdGhlbS5cbmZ1bmN0aW9uIGdyb3VwTGluZShncm91cDogUmVwb3J0RmlsdGVyR3JvdXAsIGlucHV0OiBSZXBvcnRFeHBvcnRMaW5lc0lucHV0KTogT2JzZXJ2YWJsZTxSZXBvcnRFeHBvcnRMaW5lIHwgbnVsbD4ge1xuICBjb25zdCBzbmFwc2hvdCA9IGlucHV0LnNuYXBzaG90O1xuICBjb25zdCB2YWx1ZSA9IHNuYXBzaG90LnZhbHVlc1tncm91cC5pZF07XG5cbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHBpY2tzID0gdmFsdWVQaWNrcyh2YWx1ZSk7XG4gIGNvbnN0IG5hbWVzJCA9IHBpY2tzLmxlbmd0aFxuICAgID8gaW5wdXQubmFtZXMoZ3JvdXAsIHBpY2tzKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpKVxuICAgIDogb2YobnVsbCk7XG5cbiAgcmV0dXJuIG5hbWVzJC5waXBlKFxuICAgIG1hcCgobmFtZXMpOiBSZXBvcnRFeHBvcnRMaW5lIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB0ZXh0ID0gZmlsdGVyTGluZVRleHQoZ3JvdXAsIHZhbHVlLCB7XG4gICAgICAgIGxvY2FsZTogc25hcHNob3QuZm9ybWF0Q29udGV4dC5sb2NhbGUsXG4gICAgICAgIG5hbWVzLFxuICAgICAgICBwcmVzZXQ6IHNuYXBzaG90LnByZXNldHNbZ3JvdXAuaWRdID8/IG51bGwsXG4gICAgICAgIHBhZ2VOYW1lOiBwYWdlTmFtZShpbnB1dC5yZXBvcnQsIGdyb3VwLnBhZ2VJZCksXG4gICAgICAgIGJsYW5rTGFiZWw6IGdyb3VwLmJsYW5rTGFiZWwsXG4gICAgICB9LCAnbGluZScpO1xuXG4gICAgICByZXR1cm4gdGV4dCA/IHsga2luZDogJ2dyb3VwJywgdGV4dCwgZ3JvdXBJZDogZ3JvdXAuaWQgfSA6IG51bGw7XG4gICAgfSksXG4gICk7XG59XG5cbi8vIFRoZSBncm91cC1ieSBncmFpbiB1bmRlciB0aGUgcmVwb3J0J3Mgb3duIG5hbWUgZm9yIHRoZSBjb250cm9sLCBvciBudWxsXG4vLyB3aGlsZSBubyBncmFpbiBpcyBwaWNrZWQuXG5mdW5jdGlvbiBncm91cEJ5TGluZShpbnB1dDogUmVwb3J0RXhwb3J0TGluZXNJbnB1dCk6IFJlcG9ydEV4cG9ydExpbmUgfCBudWxsIHtcbiAgY29uc3QgZnJlcXVlbmN5ID0gaW5wdXQuc25hcHNob3QuZnJlcXVlbmN5O1xuXG4gIGlmICghZnJlcXVlbmN5KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBvcHRpb24gPSBHUkFOVUxBUklUWV9PUFRJT05TLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IGZyZXF1ZW5jeSk7XG4gIGNvbnN0IGxhYmVsID0gaW5wdXQucmVwb3J0LmNvbmZpZz8uZ3JvdXBCeT8ubGFiZWwgfHwgR1JPVVBfQllfTEFCRUw7XG5cbiAgcmV0dXJuIHsga2luZDogJ2dyb3VwQnknLCB0ZXh0OiBgJHtsYWJlbH06ICR7b3B0aW9uPy5uYW1lID8/IGZyZXF1ZW5jeX1gIH07XG59XG5cbi8vIE9uZSBsaW5lIHBlciBkcmlsbGVkIGNoYXJ0IG9mIHRoZSBleHBvcnQncyBwYWdlcywgd2hpbGUgdGhlIHNlcnZlciBkcmlsbHMuXG5mdW5jdGlvbiBkcmlsbExpbmVzKGlucHV0OiBSZXBvcnRFeHBvcnRMaW5lc0lucHV0KTogUmVwb3J0RXhwb3J0TGluZVtdIHtcbiAgY29uc3QgeyByZXBvcnQsIHNuYXBzaG90LCBwYWdlSWQgfSA9IGlucHV0O1xuXG4gIGlmICghc25hcHNob3QuZmVhdHVyZXMuaW5jbHVkZXMoJ2RyaWxsJykpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gKHJlcG9ydC5wYWdlcyA/PyBbXSlcbiAgICAuZmlsdGVyKChwYWdlKSA9PiAhcGFnZUlkIHx8IHBhZ2UuaWQgPT09IHBhZ2VJZClcbiAgICAuZmxhdE1hcCgocGFnZSkgPT4gcGFnZS5jb21wb25lbnRzID8/IFtdKVxuICAgIC5maWx0ZXIoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LnR5cGUgPT09ICdjaGFydCcgJiYgISFzbmFwc2hvdC5zdGF0ZS50aWxlcz8uW2NvbXBvbmVudC5pZF0/LmRyaWxsPy5sZW5ndGgpXG4gICAgLm1hcCgoY29tcG9uZW50KTogUmVwb3J0RXhwb3J0TGluZSA9PiAoe1xuICAgICAga2luZDogJ2RyaWxsJyxcbiAgICAgIHRleHQ6IGRyaWxsTGluZVRleHQoXG4gICAgICAgIHsgdGl0bGU6IGlucHV0LnRpdGxlcz8uW2NvbXBvbmVudC5pZF0gPz8gY29tcG9uZW50LnRpdGxlIH0sXG4gICAgICAgIHNuYXBzaG90LnN0YXRlLnRpbGVzW2NvbXBvbmVudC5pZF0uZHJpbGwsXG4gICAgICAgIHNuYXBzaG90LmZvcm1hdENvbnRleHQsXG4gICAgICApLFxuICAgICAgY29tcG9uZW50SWQ6IGNvbXBvbmVudC5pZCxcbiAgICB9KSk7XG59XG5cbi8vIFRoZSB0aWxlcyBhIGdyb3VwJ3MgbWVtYmVycyBzaXQgb246IHRoZSBzZXJ2ZXIncyBsaXN0LCBlbHNlIHRoZSB0aWxlcyBvZlxuLy8gaXRzIGVuYWJsZWQgbWVtYmVycyAoYW4gb2xkZXIgc2VydmVyKS5cbmZ1bmN0aW9uIGdyb3VwTWVtYmVySWRzKGdyb3VwOiBSZXBvcnRGaWx0ZXJHcm91cCk6IG51bWJlcltdIHtcbiAgcmV0dXJuIGdyb3VwLmNvbXBvbmVudElkc1xuICAgID8/IChncm91cC5maWx0ZXJzID8/IFtdKS5maWx0ZXIoKG1lbWJlcikgPT4gbWVtYmVyLmVuYWJsZWQpLm1hcCgobWVtYmVyKSA9PiBtZW1iZXIuY29tcG9uZW50SWQpO1xufVxuXG4vLyBBIHBhZ2UncyBuYW1lIGFzIHRoZSBleHBvcnQgbmFtZXMgaXQgKCdQYWdlIDInIHdoZW4gaXQgaGFzIG5vbmUpLCBvciBudWxsXG4vLyBmb3Igbm8gcGFnZS5cbmZ1bmN0aW9uIHBhZ2VOYW1lKHJlcG9ydDogUmVwb3J0LCBwYWdlSWQ6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaW5kZXggPSBwYWdlSWQgPyAocmVwb3J0LnBhZ2VzID8/IFtdKS5maW5kSW5kZXgoKHBhZ2UpID0+IHBhZ2UuaWQgPT09IHBhZ2VJZCkgOiAtMTtcblxuICBpZiAoaW5kZXggPCAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gcmVwb3J0LnBhZ2VzW2luZGV4XS5uYW1lIHx8IGBQYWdlICR7aW5kZXggKyAxfWA7XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RELATIVE_RANGE_NAMES, isRelativeRange } from './report-
|
|
1
|
+
import { RELATIVE_RANGE_NAMES, isRelativeRange } from './report-state';
|
|
2
2
|
import { offersExclude } from './report-viewer-features';
|
|
3
3
|
// The Type select's choices. A column that can be either holds both.
|
|
4
4
|
export const FILTER_TYPE_OPTIONS = [
|
|
@@ -287,4 +287,4 @@ export function normalizeDefault(value) {
|
|
|
287
287
|
export function defaultChanged(stored, draft) {
|
|
288
288
|
return JSON.stringify(normalizeDefault(stored)) !== JSON.stringify(normalizeDefault(draft));
|
|
289
289
|
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ZpbHRlci1zZXR0aW5ncy1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RCxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQTZDO0lBQzNFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ25DLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO0NBQy9DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyx1Q0FBdUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRywyQ0FBMkMsQ0FBQztBQUMvRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztBQUVqRSwyRUFBMkU7QUFDM0UsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLDZFQUE2RTtBQUM3RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLGdFQUFnRSxDQUFDO0FBQzVHLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFM0MsK0RBQStEO0FB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LENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM1RCxDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLHdCQUF3QjtBQUN4QixNQUFNLFVBQVUsY0FBYyxDQUM1QixNQUE2QyxFQUM3QyxLQUE0QztJQUU1QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBydWxlcyBiZWhpbmQgdGhlIHR3byBmaWx0ZXIgc2V0dGluZ3MgZGlhbG9ncywga2VwdCBwdXJlIHNvIHRoZSBub2RlXG4vLyBoYXJuZXNzIGNoZWNrcyB0aGVtIHdpdGhvdXQgYSBkaWFsb2cuIFRoZSBjb21wb25lbnQgc2V0dGluZ3MnIEZpbHRlcnMgdGFiXG4vLyByZWFkcyB0aGUgVHlwZSBzZWxlY3QsIHRoZSBSZXBvcnQgYmFyIHNlbGVjdCBhbmQgdGhlIFRoaXMgY29tcG9uZW50IHRvZ2dsZVxuLy8gZnJvbSBoZXJlOyB0aGUgcmVwb3J0IHNldHRpbmdzJyBGaWx0ZXJzIHRhYiByZWFkcyBpdHMgZGVmYXVsdCByb3dzICh0aGVcbi8vIHBlcmlvZCwgdGhlIGV4Y2x1ZGUgdG9nZ2xlLCB0aGUgbnVtYmVyIHJhbmdlIGVuZHMgYW5kIHRoZWlyIGNoZWNrKSBmcm9tXG4vLyBoZXJlLiBUaGUgZGlhbG9ncyBvbmx5IGNhbGwgdGhlc2UuXG5pbXBvcnQgeyBGaWx0ZXJCYXJQbGFjZW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLWJhci1wbGFjZW1lbnQudHlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnRUb2dnbGVTdGF0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9maWx0ZXItY29tcG9uZW50LXRvZ2dsZS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2V0dGluZ3NPcHRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLXNldHRpbmdzLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZVNlbGVjdFN0YXRlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci10eXBlLXNlbGVjdC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0Vmlld2VyRmVhdHVyZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9yZXBvcnQtdmlld2VyLWZlYXR1cmUudHlwZSc7XG5pbXBvcnQge1xuICBGaWx0ZXJHcm91cERlZmF1bHQsXG4gIFJlcG9ydEZpbHRlckdyb3VwLFxuICBSZXBvcnRGaWx0ZXJMZXZlbCxcbiAgUmVwb3J0RmlsdGVyVHlwZSxcbiAgUmVwb3J0UGFnZSxcbiAgUmVwb3J0UmVsYXRpdmVSYW5nZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3JlcG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUkVMQVRJVkVfUkFOR0VfTkFNRVMsIGlzUmVsYXRpdmVSYW5nZSB9IGZyb20gJy4vcmVwb3J0LXZpZXctY29uZmlnJztcbmltcG9ydCB7IG9mZmVyc0V4Y2x1ZGUgfSBmcm9tICcuL3JlcG9ydC12aWV3ZXItZmVhdHVyZXMnO1xuXG5cbi8vIFRoZSBUeXBlIHNlbGVjdCdzIGNob2ljZXMuIEEgY29sdW1uIHRoYXQgY2FuIGJlIGVpdGhlciBob2xkcyBib3RoLlxuZXhwb3J0IGNvbnN0IEZJTFRFUl9UWVBFX09QVElPTlM6IEZpbHRlclNldHRpbmdzT3B0aW9uPFJlcG9ydEZpbHRlclR5cGU+W10gPSBbXG4gIHsgdmFsdWU6ICdzZWxlY3QnLCBuYW1lOiAnVmFsdWVzJyB9LFxuICB7IHZhbHVlOiAnbnVtYmVyUmFuZ2UnLCBuYW1lOiAnTnVtYmVyIHJhbmdlJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IFRZUEVfTE9DS0VEX1RPT0xUSVAgPSAnUmVtb3ZlIHRoZSBmaWx0ZXIgdG8gY2hhbmdlIGl0cyB0eXBlLic7XG5leHBvcnQgY29uc3QgUEFHRV9GSUxURVJfVE9PTFRJUCA9ICdBIHBhZ2UgZmlsdGVyIHNob3dzIGluIHRoZSBwYWdlIGJhciBvbmx5Lic7XG5leHBvcnQgY29uc3QgQ09NUE9ORU5UX1RPR0dMRV9UT09MVElQID0gJ1Nob3cgb24gdGhpcyBjb21wb25lbnQnO1xuXG4vLyBUaGUgRGVmYXVsdCBwZXJpb2Qgc2VsZWN0J3MgdmFsdWUgZm9yIGEgcmFuZ2Ugb2YgZml4ZWQgZGF5cy4gTm8gcmVsYXRpdmVcbi8vIHJhbmdlIGlzIG5hbWVkIHRoaXMuXG5leHBvcnQgY29uc3QgRklYRURfREFURVNfUEVSSU9EID0gJ2ZpeGVkJztcblxuLy8gSG93IG1hbnkgZGVjaW1hbHMgYSBEZWZhdWx0IG1pbmltdW0gb3IgRGVmYXVsdCBtYXhpbXVtIHRha2VzLlxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQk9VTkRfU0NBTEUgPSA2O1xuXG4vLyBBIGZpbHRlcidzIE5hbWUgYW5kIExhYmVsLCBjaGVja2VkIGFzIHRoZSBzZXJ2ZXIgY2hlY2tzIHRoZW0sIHNvIGEgYmFkIG9uZVxuLy8gaXMgY2F1Z2h0IGJlZm9yZSBTYXZlLiBUaGUgbmFtZSBpcyBhbiBpZGVudGlmaWVyOiBhIGxldHRlciwgdGhlbiBsZXR0ZXJzXG4vLyBhbmQgZGlnaXRzLiBUaGF0IGl0IGlzIHVuaXF1ZSBpbiB0aGUgcmVwb3J0IGlzIHRoZSBzZXJ2ZXIncyB0byBjaGVjay5cbmV4cG9ydCBjb25zdCBGSUxURVJfTkFNRV9QQVRURVJOID0gL15bQS1aYS16XVtBLVphLXowLTldKiQvO1xuZXhwb3J0IGNvbnN0IEZJTFRFUl9OQU1FX1BBVFRFUk5fTUVTU0FHRSA9ICdBIG5hbWUgc3RhcnRzIHdpdGggYSBsZXR0ZXIgYW5kIGhvbGRzIG9ubHkgbGV0dGVycyBhbmQgZGlnaXRzLic7XG5leHBvcnQgY29uc3QgRklMVEVSX05BTUVfTUFYX0xFTkdUSCA9IDUwO1xuZXhwb3J0IGNvbnN0IEZJTFRFUl9MQUJFTF9NQVhfTEVOR1RIID0gMjAwO1xuXG4vLyBFdmVyeSBSZXBvcnQgYmFyIGNob2ljZSwgaW4gdGhlIG9yZGVyIHRoZSBzZWxlY3QgbGlzdHMgdGhlbS5cbmNvbnN0IEJBUl9QTEFDRU1FTlRfT1BUSU9OUzogRmlsdGVyU2V0dGluZ3NPcHRpb248RmlsdGVyQmFyUGxhY2VtZW50PltdID0gW1xuICB7IHZhbHVlOiAnb2ZmJywgbmFtZTogJ09mZicgfSxcbiAgeyB2YWx1ZTogJ2V2ZXJ5JywgbmFtZTogJ0V2ZXJ5IHBhZ2UnIH0sXG4gIHsgdmFsdWU6ICdwYWdlJywgbmFtZTogJ1RoaXMgcGFnZSBvbmx5JyB9LFxuXTtcblxuXG4vLyBBIG51bWJlciB3aXRoIGl0cyBncm91cCBjb21tYXMgaW4gcGxhY2UgKCcxLDI1MC41JywgJy0xMiwwMDAnKS5cbmNvbnN0IEdST1VQRURfREVDSU1BTCA9IC9eLT9cXGR7MSwzfSgsXFxkezN9KSsoXFwuXFxkKik/JC87XG4vLyBBIHBsYWluIGRlY2ltYWwgbnVtYmVyICgnMTI1MC41JywgJy0zJywgJzAnLCAnLjUnKS4gSGV4LCBiaW5hcnksIG9jdGFsLFxuLy8gZXhwb25lbnRzIGFuZCBpbm5lciBzcGFjZXMgZG8gbm90IG1hdGNoLCB0aG91Z2ggTnVtYmVyKCkgcmVhZHMgc29tZS5cbmNvbnN0IFBMQUlOX0RFQ0lNQUwgPSAvXi0/KFxcZCsoXFwuXFxkKik/fFxcLlxcZCspJC87XG5cbi8vIEEgZGVmYXVsdCByYW5nZSBlbmQgYXMgdHlwZWQuIEFuIGVtcHR5IGZpZWxkIGlzIG5vIGVuZC4gQSBudW1iZXIgaW5wdXRcbi8vIHdpdGggYSBtYXNrIGhhbmRzIGJhY2sgdGV4dCB3aXRoIGl0cyBncm91cCBjb21tYXMgKCcxLDI1MC41JyksIHNvIHRob3NlIGdvXG4vLyBiZWZvcmUgTnVtYmVyKCkgcmVhZHMgaXQ7IDAgaXMgYW4gZW5kIGxpa2UgYW55IG90aGVyLiBBbnl0aGluZyB0aGF0IGlzIG5vdFxuLy8gYSBkZWNpbWFsIG51bWJlciBpcyBubyBlbmQuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZWZhdWx0Qm91bmQocmF3OiB1bmtub3duKTogbnVtYmVyIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgcmF3ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocmF3KSA/IHJhdyA6IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHJhdyAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHRyaW1tZWQgPSByYXcudHJpbSgpO1xuICBjb25zdCB0ZXh0ID0gR1JPVVBFRF9ERUNJTUFMLnRlc3QodHJpbW1lZCkgPyB0cmltbWVkLnJlcGxhY2UoLywvZywgJycpIDogdHJpbW1lZDtcbiAgaWYgKCFQTEFJTl9ERUNJTUFMLnRlc3QodGV4dCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gTnVtYmVyKHRleHQpO1xuXG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpID8gdmFsdWUgOiBudWxsO1xufVxuXG4vLyBXaHkgdHdvIHJhbmdlIGVuZHMgY2Fubm90IGJlIHNhdmVkLCBpbiB0aGUgc2VydmVyJ3Mgd29yZHMsIG9yIG51bGwuIEFuIG9wZW5cbi8vIGVuZCBpcyBhbHdheXMgZmluZS5cbmV4cG9ydCBmdW5jdGlvbiBib3VuZHNFcnJvcihtaW46IG51bWJlciB8IG51bGwsIG1heDogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICBpZiAobWluID09PSBudWxsIHx8IG1heCA9PT0gbnVsbCB8fCBtaW4gPD0gbWF4KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gYG1pbiAoJHttaW59KSBpcyBhYm92ZSBtYXggKCR7bWF4fSkuYDtcbn1cblxuLy8gVGhlIFR5cGUgc2VsZWN0IG9mIGEgY29sdW1uIG9uIHRoZSBjb21wb25lbnQgc2V0dGluZ3MnIEZpbHRlcnMgdGFiLiBJdFxuLy8gc2hvd3Mgd2hlbiB0aGUgY29sdW1uIGNhbiB0YWtlIGVpdGhlciB0eXBlIGFuZCB0aGUgc2VydmVyIHNlcnZlcyBudW1iZXJcbi8vIHJhbmdlcyAoYW4gb2xkZXIgc2VydmVyIGxpc3RzIG5vIGZlYXR1cmVzKS4gQSBmaWx0ZXIncyB0eXBlIGNhbm5vdCBjaGFuZ2UsXG4vLyBzbyBpdCBpcyBsb2NrZWQgd2hpbGUgdGhlIGNvbHVtbiBoYXMgYSBmaWx0ZXIgb24gdGhpcyBjb21wb25lbnQuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVNlbGVjdFN0YXRlKFxuICB0eXBlczogUmVwb3J0RmlsdGVyVHlwZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgaGFzRmlsdGVyT25UaGlzQ29tcG9uZW50OiBib29sZWFuLFxuICBmZWF0dXJlczogUmVwb3J0Vmlld2VyRmVhdHVyZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IEZpbHRlclR5cGVTZWxlY3RTdGF0ZSB7XG4gIGNvbnN0IHNob3cgPSAoZmVhdHVyZXMgPz8gW10pLmluY2x1ZGVzKCdudW1iZXJSYW5nZScpXG4gICAgJiYgRklMVEVSX1RZUEVfT1BUSU9OUy5ldmVyeSgob3B0aW9uKSA9PiAodHlwZXMgPz8gW10pLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpO1xuXG4gIGlmICghc2hvdykge1xuICAgIHJldHVybiB7IHNob3c6IGZhbHNlLCBkaXNhYmxlZDogZmFsc2UsIHRvb2x0aXA6IG51bGwgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2hvdzogdHJ1ZSxcbiAgICBkaXNhYmxlZDogaGFzRmlsdGVyT25UaGlzQ29tcG9uZW50LFxuICAgIHRvb2x0aXA6IGhhc0ZpbHRlck9uVGhpc0NvbXBvbmVudCA/IFRZUEVfTE9DS0VEX1RPT0xUSVAgOiBudWxsLFxuICB9O1xufVxuXG4vLyBUaGUgbGV2ZWxzIGEgbmV3IG9yIG1vdmVkIGZpbHRlciBjYW4gdGFrZSBvbiBhIGNvbXBvbmVudC4gVGhpcyBwYWdlIG9ubHlcbi8vIG5lZWRzIGEgc2VydmVyIHRoYXQgc2VydmVzIHBhZ2UgZmlsdGVycyBhbmQgYSBjb21wb25lbnQgb24gYSBwYWdlIChhXG4vLyBoZWFkZXIgb3IgZm9vdGVyIGNvbXBvbmVudCBpcyBvbiBubyBwYWdlKS5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJMZXZlbENob2ljZXMoXG4gIGZlYXR1cmVzOiBSZXBvcnRWaWV3ZXJGZWF0dXJlW10gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBvblBhZ2U6IGJvb2xlYW4sXG4pOiBSZXBvcnRGaWx0ZXJMZXZlbFtdIHtcbiAgY29uc3QgbGV2ZWxzOiBSZXBvcnRGaWx0ZXJMZXZlbFtdID0gWydjb21wb25lbnQnLCAncmVwb3J0JywgJ2JvdGgnXTtcblxuICByZXR1cm4gb25QYWdlICYmIChmZWF0dXJlcyA/PyBbXSkuaW5jbHVkZXMoJ3BhZ2VTY29wZScpXG4gICAgPyBbLi4ubGV2ZWxzLCAncGFnZSddXG4gICAgOiBsZXZlbHM7XG59XG5cbi8vIFRoZSBSZXBvcnQgYmFyIHNlbGVjdCdzIGNob2ljZXMgZm9yIHRoZSBsZXZlbHMgb24gb2ZmZXIuIFRoZSBjaG9pY2UgYSByb3dcbi8vIGFscmVhZHkgaG9sZHMgaXMgYWx3YXlzIGxpc3RlZCwgc28gdGhlIHNlbGVjdCBuZXZlciBzaG93cyBibGFuay5cbmV4cG9ydCBmdW5jdGlvbiBiYXJQbGFjZW1lbnRPcHRpb25zKFxuICBsZXZlbENob2ljZXM6IFJlcG9ydEZpbHRlckxldmVsW10sXG4gIGN1cnJlbnQ6IEZpbHRlckJhclBsYWNlbWVudCA9ICdvZmYnLFxuKTogRmlsdGVyU2V0dGluZ3NPcHRpb248RmlsdGVyQmFyUGxhY2VtZW50PltdIHtcbiAgcmV0dXJuIEJBUl9QTEFDRU1FTlRfT1BUSU9OUy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgIHN3aXRjaCAob3B0aW9uLnZhbHVlKSB7XG4gICAgICBjYXNlICdldmVyeSc6XG4gICAgICAgIHJldHVybiBsZXZlbENob2ljZXMuaW5jbHVkZXMoJ3JlcG9ydCcpIHx8IGxldmVsQ2hvaWNlcy5pbmNsdWRlcygnYm90aCcpIHx8IGN1cnJlbnQgPT09ICdldmVyeSc7XG4gICAgICBjYXNlICdwYWdlJzpcbiAgICAgICAgcmV0dXJuIGxldmVsQ2hvaWNlcy5pbmNsdWRlcygncGFnZScpIHx8IGN1cnJlbnQgPT09ICdwYWdlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8vIEEgdmFsdWUncyBSZXBvcnQgYmFyIGNob2ljZXMuIEEgdmFsdWUgaGFzIG5vIHN0cmlwIG9mIGl0cyBvd24gYW5kIGl0c1xuLy8gZ3JvdXAgbWF5IGJlIHNoYXJlZCwgc28gYSBwaWNrIG5ldmVyIGxvd2VycyB0aGUgZ3JvdXAgKHRoZSBpbmxpbmUgdmFsdWVzXG4vLyBydWxlKTogVGhpcyBwYWdlIG9ubHkgaXMgb2ZmZXJlZCBmb3IgYSBuZXcgZmlsdGVyLCBvciBmb3IgYSBncm91cCB0aGF0IGlzXG4vLyBhbHJlYWR5IGEgcGFnZSBncm91cCwgbmV2ZXIgdG8gbW92ZSBhIHNoYXJlZCBncm91cCB0byBvbmUgcGFnZS5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZVBsYWNlbWVudE9wdGlvbnMoXG4gIGxldmVsQ2hvaWNlczogUmVwb3J0RmlsdGVyTGV2ZWxbXSxcbiAgY3VycmVudDogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogRmlsdGVyU2V0dGluZ3NPcHRpb248RmlsdGVyQmFyUGxhY2VtZW50PltdIHtcbiAgY29uc3QgY2hvaWNlcyA9ICFjdXJyZW50IHx8IGN1cnJlbnQgPT09ICdwYWdlJ1xuICAgID8gbGV2ZWxDaG9pY2VzXG4gICAgOiBsZXZlbENob2ljZXMuZmlsdGVyKChsZXZlbCkgPT4gbGV2ZWwgIT09ICdwYWdlJyk7XG5cbiAgcmV0dXJuIGJhclBsYWNlbWVudE9wdGlvbnMoY2hvaWNlcywgYmFyUGxhY2VtZW50KGN1cnJlbnQpKTtcbn1cblxuLy8gVGhlIGxldmVsIGEgdmFsdWUncyBmaWx0ZXIgZ3JvdXAgZW5kcyBhdCBhZnRlciBhIFJlcG9ydCBiYXIgcGljaywgb3IgbnVsbFxuLy8gd2hlbiB0aGUgdmFsdWUgbGVhdmVzIGl0LiBPZmYgdW5saW5rcyB0aGlzIHZhbHVlIGFsb25lIGFuZCB0aGUgZ3JvdXAga2VlcHNcbi8vIGl0cyBvdGhlciBtZW1iZXJzLiBBIG5ldyBmaWx0ZXIgdGFrZXMgdGhlIHBpY2sncyBsZXZlbC4gRXZlcnkgcGFnZSByYWlzZXMgYVxuLy8gc3RyaXAtb25seSBncm91cCB0byBib3RoLCBrZWVwaW5nIGl0cyBzdHJpcHMsIGFuZCBhIHBhZ2UgZ3JvdXAgdG8gdGhlXG4vLyByZXBvcnQgYmFyLiBOb3RoaW5nIGVsc2UgbW92ZXMgdGhlIGdyb3VwLCBzbyBhIHZhbHVlIG5ldmVyIGxvd2VycyBpdC5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZpbHRlckxldmVsKFxuICBwbGFjZW1lbnQ6IEZpbHRlckJhclBsYWNlbWVudCxcbiAgY3VycmVudDogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHtcbiAgaWYgKHBsYWNlbWVudCA9PT0gJ29mZicpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICghY3VycmVudCkge1xuICAgIHJldHVybiBwbGFjZW1lbnQgPT09ICdwYWdlJyA/ICdwYWdlJyA6ICdyZXBvcnQnO1xuICB9XG5cbiAgaWYgKHBsYWNlbWVudCAhPT0gJ2V2ZXJ5Jykge1xuICAgIHJldHVybiBjdXJyZW50O1xuICB9XG5cbiAgc3dpdGNoIChjdXJyZW50KSB7XG4gICAgY2FzZSAnY29tcG9uZW50JzpcbiAgICAgIHJldHVybiAnYm90aCc7XG4gICAgY2FzZSAncGFnZSc6XG4gICAgICByZXR1cm4gJ3JlcG9ydCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICB9XG59XG5cbi8vIFdoZXJlIGEgZ3JvdXAgb2YgYSBsZXZlbCBzaG93cyBpbiB0aGUgcmVwb3J0IGJhci4gTm8gZ3JvdXAgKG5vIGZpbHRlcikgaXNcbi8vIG9mZi5cbmV4cG9ydCBmdW5jdGlvbiBiYXJQbGFjZW1lbnQobGV2ZWw6IFJlcG9ydEZpbHRlckxldmVsIHwgbnVsbCB8IHVuZGVmaW5lZCk6IEZpbHRlckJhclBsYWNlbWVudCB7XG4gIHN3aXRjaCAobGV2ZWwpIHtcbiAgICBjYXNlICdyZXBvcnQnOlxuICAgIGNhc2UgJ2JvdGgnOlxuICAgICAgcmV0dXJuICdldmVyeSc7XG4gICAgY2FzZSAncGFnZSc6XG4gICAgICByZXR1cm4gJ3BhZ2UnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ29mZic7XG4gIH1cbn1cblxuLy8gV2hldGhlciBhIGdyb3VwIG9mIGEgbGV2ZWwgc2hvd3Mgb24gaXRzIGNvbXBvbmVudHMuXG5leHBvcnQgZnVuY3Rpb24gc2hvd25PbkNvbXBvbmVudChsZXZlbDogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBsZXZlbCA9PT0gJ2NvbXBvbmVudCcgfHwgbGV2ZWwgPT09ICdib3RoJztcbn1cblxuLy8gVGhlIGxldmVsIHRoZSB0d28gY29udHJvbHMgb2YgYSByb3cgYXNrIGZvciwgb3IgbnVsbCB3aGVuIHRoZXkgYXNrIGZvciBub1xuLy8gZmlsdGVyIGF0IGFsbC4gQSBwYWdlIGZpbHRlciBzaG93cyBpbiBpdHMgcGFnZSdzIGJhciBvbmx5LCBzbyBUaGlzIHBhZ2Vcbi8vIG9ubHkgaWdub3JlcyB0aGUgVGhpcyBjb21wb25lbnQgdG9nZ2xlLlxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckxldmVsKHBsYWNlbWVudDogRmlsdGVyQmFyUGxhY2VtZW50LCBjb21wb25lbnQ6IGJvb2xlYW4pOiBSZXBvcnRGaWx0ZXJMZXZlbCB8IG51bGwge1xuICBzd2l0Y2ggKHBsYWNlbWVudCkge1xuICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgcmV0dXJuICdwYWdlJztcbiAgICBjYXNlICdldmVyeSc6XG4gICAgICByZXR1cm4gY29tcG9uZW50ID8gJ2JvdGgnIDogJ3JlcG9ydCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjb21wb25lbnQgPyAnY29tcG9uZW50JyA6IG51bGw7XG4gIH1cbn1cblxuLy8gVGhlIFRoaXMgY29tcG9uZW50IHRvZ2dsZSBvZiBhIHJvdzogbG9ja2VkIHdoaWxlIFRoaXMgcGFnZSBvbmx5IGlzIHBpY2tlZC5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnRUb2dnbGVTdGF0ZShwbGFjZW1lbnQ6IEZpbHRlckJhclBsYWNlbWVudCk6IEZpbHRlckNvbXBvbmVudFRvZ2dsZVN0YXRlIHtcbiAgcmV0dXJuIHBsYWNlbWVudCA9PT0gJ3BhZ2UnXG4gICAgPyB7IGRpc2FibGVkOiB0cnVlLCB0b29sdGlwOiBQQUdFX0ZJTFRFUl9UT09MVElQIH1cbiAgICA6IHsgZGlzYWJsZWQ6IGZhbHNlLCB0b29sdGlwOiBDT01QT05FTlRfVE9HR0xFX1RPT0xUSVAgfTtcbn1cblxuLy8gVGhlIGdyb3VwcyB0aGUgcmVwb3J0IHNldHRpbmdzJyBGaWx0ZXJzIHRhYiBsaXN0cyBkZWZhdWx0cyBmb3I6IHRob3NlIG9mXG4vLyB0aGUgcmVwb3J0IGJhciwgZXZlcnkgcGFnZSBvciBvbmUsIGluIGJhciBvcmRlci5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0Um93R3JvdXBzKGdyb3VwczogUmVwb3J0RmlsdGVyR3JvdXBbXSB8IG51bGwgfCB1bmRlZmluZWQpOiBSZXBvcnRGaWx0ZXJHcm91cFtdIHtcbiAgcmV0dXJuIChncm91cHMgPz8gW10pXG4gICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLmxldmVsID09PSAncmVwb3J0JyB8fCBncm91cC5sZXZlbCA9PT0gJ2JvdGgnIHx8IGdyb3VwLmxldmVsID09PSAncGFnZScpXG4gICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbn1cblxuLy8gQSBkZWZhdWx0IHJvdydzIGxhYmVsOiBhIHBhZ2UgZ3JvdXAgbmFtZXMgaXRzIHBhZ2UsICdSZWdpb24gKHBhZ2Vcbi8vIFwiT3ZlcnZpZXdcIiknLiBBIHBhZ2Ugd2l0aCBubyBuYW1lIHJlYWRzIGFzIHRoZSBjYW52YXMgbmFtZXMgaXQgKCdQYWdlIDInKS5cbi8vIEEgcGFnZSB0aGlzIHJlcG9ydCBubyBsb25nZXIgaG9sZHMgYWRkcyBub3RoaW5nLlxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRSb3dMYWJlbChncm91cDogUmVwb3J0RmlsdGVyR3JvdXAsIHBhZ2VzOiBSZXBvcnRQYWdlW10gfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgbGFiZWwgPSBncm91cC5sYWJlbCB8fCBncm91cC5maWx0ZXJzPy5bMF0/LmZpbHRlckNvbHVtbiB8fCAnRmlsdGVyJztcblxuICBpZiAoZ3JvdXAubGV2ZWwgIT09ICdwYWdlJykge1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gKHBhZ2VzID8/IFtdKS5maW5kSW5kZXgoKHBhZ2UpID0+IHBhZ2UuaWQgPT09IGdyb3VwLnBhZ2VJZCk7XG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICByZXR1cm4gYCR7bGFiZWx9IChwYWdlIFwiJHtwYWdlc1tpbmRleF0ubmFtZSB8fCBgUGFnZSAke2luZGV4ICsgMX1gfVwiKWA7XG59XG5cbi8vIFRoZSBEZWZhdWx0IHBlcmlvZCBzZWxlY3QncyBjaG9pY2VzOiBGaXhlZCBkYXRlcywgdGhlbiBldmVyeSByZWxhdGl2ZVxuLy8gcmFuZ2UgaW4gdGhlIHNlcnZlciBlbnVtJ3Mgb3JkZXIsIG5hbWVkIGJ5IGBsYWJlbHNgLiBBIHN0b3JlZCByYW5nZSB0aGlzXG4vLyB2aWV3ZXIgZG9lcyBub3Qga25vdyBpcyBsaXN0ZWQgbGFzdCwgc28gdGhlIHNlbGVjdCBzdGlsbCBzaG93cyBpdC5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UGVyaW9kT3B0aW9ucyhcbiAgbGFiZWxzOiAocmVsYXRpdmU6IFJlcG9ydFJlbGF0aXZlUmFuZ2UpID0+IHN0cmluZyxcbiAgc3RvcmVkOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbik6IEZpbHRlclNldHRpbmdzT3B0aW9uW10ge1xuICBjb25zdCBvcHRpb25zOiBGaWx0ZXJTZXR0aW5nc09wdGlvbltdID0gW1xuICAgIHsgdmFsdWU6IEZJWEVEX0RBVEVTX1BFUklPRCwgbmFtZTogJ0ZpeGVkIGRhdGVzJyB9LFxuICAgIC4uLlJFTEFUSVZFX1JBTkdFX05BTUVTLm1hcCgocmVsYXRpdmUpID0+ICh7IHZhbHVlOiByZWxhdGl2ZSwgbmFtZTogbGFiZWxzKHJlbGF0aXZlKSB9KSksXG4gIF07XG5cbiAgcmV0dXJuIHN0b3JlZCAmJiBzdG9yZWQgIT09IEZJWEVEX0RBVEVTX1BFUklPRCAmJiAhaXNSZWxhdGl2ZVJhbmdlKHN0b3JlZClcbiAgICA/IFsuLi5vcHRpb25zLCB7IHZhbHVlOiBzdG9yZWQsIG5hbWU6IGxhYmVscyhzdG9yZWQgYXMgUmVwb3J0UmVsYXRpdmVSYW5nZSkgfV1cbiAgICA6IG9wdGlvbnM7XG59XG5cbi8vIFRoZSBEZWZhdWx0IHBlcmlvZCBhIHN0b3JlZCBkYXRlIHJhbmdlIGRlZmF1bHQgb3BlbnMgb246IGl0cyByZWxhdGl2ZVxuLy8gcmFuZ2UsIGVsc2UgRml4ZWQgZGF0ZXMgKHRoZSBkYXlzLCBvciBub25lKS5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UGVyaW9kKHN0b3JlZDogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIHJldHVybiBzdG9yZWQ/LnJlbGF0aXZlICYmICFzdG9yZWQuc3RhcnQgJiYgIXN0b3JlZC5lbmRcbiAgICA/IHN0b3JlZC5yZWxhdGl2ZVxuICAgIDogRklYRURfREFURVNfUEVSSU9EO1xufVxuXG4vLyBBIGRhdGUgcmFuZ2UgZGVmYXVsdCBpbiBpdHMgc3RvcmVkIHNoYXBlOiB0aGUgcmVsYXRpdmUgcmFuZ2UgcGlja2VkLCBlbHNlXG4vLyB0aGUgZml4ZWQgZGF5cywgb3IgbnVsbCB3aGVuIHRoZXJlIGFyZSBub25lLiBOZXZlciBib3RoOiB0aGUgc2VydmVyXG4vLyByZWZ1c2VzIGEgcmVsYXRpdmUgcmFuZ2Ugd2l0aCBkYXlzLlxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVSYW5nZURlZmF1bHQoXG4gIHBlcmlvZDogc3RyaW5nLFxuICBzdGFydDogc3RyaW5nIHwgbnVsbCxcbiAgZW5kOiBzdHJpbmcgfCBudWxsLFxuKTogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB7XG4gIGlmIChwZXJpb2QgIT09IEZJWEVEX0RBVEVTX1BFUklPRCkge1xuICAgIHJldHVybiB7IHJlbGF0aXZlOiBwZXJpb2QgfTtcbiAgfVxuXG4gIGlmICghc3RhcnQgJiYgIWVuZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4uKHN0YXJ0ID8geyBzdGFydCB9IDoge30pLCAuLi4oZW5kID8geyBlbmQgfSA6IHt9KSB9O1xufVxuXG4vLyBBIHNlbGVjdCBkZWZhdWx0IGluIGl0cyBzdG9yZWQgc2hhcGU6IHRoZSBwaWNrcyBrZXB0LCBvciBsZWZ0IG91dCB3aGlsZVxuLy8gRXhjbHVkZSB0aGVzZSB2YWx1ZXMgaXMgb24sIG9yIG51bGwgd2hlbiBub3RoaW5nIGlzIHBpY2tlZC5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3REZWZhdWx0KHZhbHVlczogdW5rbm93bltdLCBleGNsdWRlOiBib29sZWFuKTogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB7XG4gIGlmICghdmFsdWVzLmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGV4Y2x1ZGUgPyB7IGV4Y2x1ZGVWYWx1ZXM6IHZhbHVlcyB9IDogeyB2YWx1ZXMgfTtcbn1cblxuLy8gQSBudW1iZXIgcmFuZ2UgZGVmYXVsdCBpbiBpdHMgc3RvcmVkIHNoYXBlIGZyb20gdGhlIGVuZHMgYXMgdHlwZWQ6IGFuXG4vLyBvcGVuIGVuZCBpcyBsZWZ0IG91dCwgMCBpcyBrZXB0LCBhbmQgdHdvIG9wZW4gZW5kcyBhcmUgbm8gZGVmYXVsdC5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJSYW5nZURlZmF1bHQocmF3TWluOiB1bmtub3duLCByYXdNYXg6IHVua25vd24pOiBGaWx0ZXJHcm91cERlZmF1bHQgfCBudWxsIHtcbiAgY29uc3QgbWluID0gcGFyc2VEZWZhdWx0Qm91bmQocmF3TWluKTtcbiAgY29uc3QgbWF4ID0gcGFyc2VEZWZhdWx0Qm91bmQocmF3TWF4KTtcblxuICBpZiAobWluID09PSBudWxsICYmIG1heCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4uKG1pbiAhPT0gbnVsbCA/IHsgbWluIH0gOiB7fSksIC4uLihtYXggIT09IG51bGwgPyB7IG1heCB9IDoge30pIH07XG59XG5cbi8vIFdoZXRoZXIgYSBzZWxlY3QgZ3JvdXAncyBkZWZhdWx0IHJvdyBvZmZlcnMgRXhjbHVkZSB0aGVzZSB2YWx1ZXM6IHRoZVxuLy8gcmVwb3J0IGJhcidzIHJ1bGUgKG9mZmVyc0V4Y2x1ZGUpLCBzbyBub3Qgb24gYSBzZXJ2ZXIgdGhhdCBkb2VzIG5vdCBzZXJ2ZVxuLy8gZXhjbHVkZSAoYW4gb2xkZXIgc2VydmVyIGxpc3RzIG5vIGZlYXR1cmVzKSBub3Igb24gYSBncm91cCB3aXRoIGEgbWVtYmVyXG4vLyB0aGF0IGJpbmRzIHNldmVyYWwgY29sdW1ucyAobXVsdGlDb2x1bW4pLiBBIGRlZmF1bHQgdGhhdCBhbHJlYWR5IGxlYXZlc1xuLy8gdmFsdWVzIG91dCBrZWVwcyB0aGUgdG9nZ2xlLCBzbyBpdCBjYW4gYmUgdHVybmVkIG9mZi5cbmV4cG9ydCBmdW5jdGlvbiBzaG93RXhjbHVkZVRvZ2dsZShcbiAgZ3JvdXA6IFJlcG9ydEZpbHRlckdyb3VwLFxuICBmZWF0dXJlczogUmVwb3J0Vmlld2VyRmVhdHVyZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IGJvb2xlYW4ge1xuICBpZiAoZ3JvdXAudHlwZSA9PT0gJ3NlbGVjdCcgJiYgZ3JvdXAuY29uZmlnPy5kZWZhdWx0Py5leGNsdWRlVmFsdWVzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBvZmZlcnNFeGNsdWRlKGdyb3VwLCBmZWF0dXJlcyk7XG59XG5cbi8vIEEgc3RvcmVkIG9yIGRyYWZ0IGRlZmF1bHQgaW4gYSBzdGFibGUgZm9ybSBmb3IgY29tcGFyaW5nOiBlbXB0eSBhbmRcbi8vIGFic2VudCBrZXlzIGFyZSBkcm9wcGVkLCBzbyBhIG5vLW9wIGVkaXQgZG9lcyBub3QgcmVhZCBhcyBhIGNoYW5nZS4gMCBpcyBhblxuLy8gZW5kIGxpa2UgYW55IG90aGVyLiBOb3RoaW5nIGxlZnQgaXMgbnVsbC5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEZWZhdWx0KHZhbHVlOiBGaWx0ZXJHcm91cERlZmF1bHQgfCBudWxsIHwgdW5kZWZpbmVkKTogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWQ6IEZpbHRlckdyb3VwRGVmYXVsdCA9IHt9O1xuICBpZiAodmFsdWUuc3RhcnQpIHtcbiAgICBub3JtYWxpemVkLnN0YXJ0ID0gdmFsdWUuc3RhcnQ7XG4gIH1cbiAgaWYgKHZhbHVlLmVuZCkge1xuICAgIG5vcm1hbGl6ZWQuZW5kID0gdmFsdWUuZW5kO1xuICB9XG4gIGlmICh2YWx1ZS52YWx1ZXM/Lmxlbmd0aCkge1xuICAgIG5vcm1hbGl6ZWQudmFsdWVzID0gdmFsdWUudmFsdWVzO1xuICB9XG4gIGlmICh2YWx1ZS5leGNsdWRlVmFsdWVzPy5sZW5ndGgpIHtcbiAgICBub3JtYWxpemVkLmV4Y2x1ZGVWYWx1ZXMgPSB2YWx1ZS5leGNsdWRlVmFsdWVzO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUubWluID09PSAnbnVtYmVyJykge1xuICAgIG5vcm1hbGl6ZWQubWluID0gdmFsdWUubWluO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUubWF4ID09PSAnbnVtYmVyJykge1xuICAgIG5vcm1hbGl6ZWQubWF4ID0gdmFsdWUubWF4O1xuICB9XG4gIGlmICh2YWx1ZS52YWx1ZSkge1xuICAgIG5vcm1hbGl6ZWQudmFsdWUgPSB2YWx1ZS52YWx1ZTtcbiAgfVxuICBpZiAodmFsdWUucmVsYXRpdmUpIHtcbiAgICBub3JtYWxpemVkLnJlbGF0aXZlID0gdmFsdWUucmVsYXRpdmU7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmtleXMobm9ybWFsaXplZCkubGVuZ3RoID8gbm9ybWFsaXplZCA6IG51bGw7XG59XG5cbi8vIFdoZXRoZXIgYSByb3cncyBkcmFmdCBkZWZhdWx0IGRpZmZlcnMgZnJvbSB0aGUgZ3JvdXAncyBzdG9yZWQgb25lLiBPbmx5IGFcbi8vIGNoYW5nZWQgcm93IGlzIHNhdmVkLlxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRDaGFuZ2VkKFxuICBzdG9yZWQ6IEZpbHRlckdyb3VwRGVmYXVsdCB8IG51bGwgfCB1bmRlZmluZWQsXG4gIGRyYWZ0OiBGaWx0ZXJHcm91cERlZmF1bHQgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShub3JtYWxpemVEZWZhdWx0KHN0b3JlZCkpICE9PSBKU09OLnN0cmluZ2lmeShub3JtYWxpemVEZWZhdWx0KGRyYWZ0KSk7XG59XG4iXX0=
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ZpbHRlci1zZXR0aW5ncy1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd6RCxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQTZDO0lBQzNFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO0lBQ25DLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO0NBQy9DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyx1Q0FBdUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRywyQ0FBMkMsQ0FBQztBQUMvRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztBQUVqRSwyRUFBMkU7QUFDM0UsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxnRUFBZ0U7QUFDaEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLDZFQUE2RTtBQUM3RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLGdFQUFnRSxDQUFDO0FBQzVHLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFM0MsK0RBQStEO0FB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LENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM1RCxDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLHdCQUF3QjtBQUN4QixNQUFNLFVBQVUsY0FBYyxDQUM1QixNQUE2QyxFQUM3QyxLQUE0QztJQUU1QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBydWxlcyBiZWhpbmQgdGhlIHR3byBmaWx0ZXIgc2V0dGluZ3MgZGlhbG9ncywga2VwdCBwdXJlIHNvIHRoZSBub2RlXG4vLyBoYXJuZXNzIGNoZWNrcyB0aGVtIHdpdGhvdXQgYSBkaWFsb2cuIFRoZSBjb21wb25lbnQgc2V0dGluZ3MnIEZpbHRlcnMgdGFiXG4vLyByZWFkcyB0aGUgVHlwZSBzZWxlY3QsIHRoZSBSZXBvcnQgYmFyIHNlbGVjdCBhbmQgdGhlIFRoaXMgY29tcG9uZW50IHRvZ2dsZVxuLy8gZnJvbSBoZXJlOyB0aGUgcmVwb3J0IHNldHRpbmdzJyBGaWx0ZXJzIHRhYiByZWFkcyBpdHMgZGVmYXVsdCByb3dzICh0aGVcbi8vIHBlcmlvZCwgdGhlIGV4Y2x1ZGUgdG9nZ2xlLCB0aGUgbnVtYmVyIHJhbmdlIGVuZHMgYW5kIHRoZWlyIGNoZWNrKSBmcm9tXG4vLyBoZXJlLiBUaGUgZGlhbG9ncyBvbmx5IGNhbGwgdGhlc2UuXG5pbXBvcnQgeyBGaWx0ZXJCYXJQbGFjZW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLWJhci1wbGFjZW1lbnQudHlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnRUb2dnbGVTdGF0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9maWx0ZXItY29tcG9uZW50LXRvZ2dsZS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2V0dGluZ3NPcHRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLXNldHRpbmdzLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZVNlbGVjdFN0YXRlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci10eXBlLXNlbGVjdC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0Vmlld2VyRmVhdHVyZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9yZXBvcnQtdmlld2VyLWZlYXR1cmUudHlwZSc7XG5pbXBvcnQge1xuICBGaWx0ZXJHcm91cERlZmF1bHQsXG4gIFJlcG9ydEZpbHRlckdyb3VwLFxuICBSZXBvcnRGaWx0ZXJMZXZlbCxcbiAgUmVwb3J0RmlsdGVyVHlwZSxcbiAgUmVwb3J0UGFnZSxcbiAgUmVwb3J0UmVsYXRpdmVSYW5nZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3JlcG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUkVMQVRJVkVfUkFOR0VfTkFNRVMsIGlzUmVsYXRpdmVSYW5nZSB9IGZyb20gJy4vcmVwb3J0LXN0YXRlJztcbmltcG9ydCB7IG9mZmVyc0V4Y2x1ZGUgfSBmcm9tICcuL3JlcG9ydC12aWV3ZXItZmVhdHVyZXMnO1xuXG5cbi8vIFRoZSBUeXBlIHNlbGVjdCdzIGNob2ljZXMuIEEgY29sdW1uIHRoYXQgY2FuIGJlIGVpdGhlciBob2xkcyBib3RoLlxuZXhwb3J0IGNvbnN0IEZJTFRFUl9UWVBFX09QVElPTlM6IEZpbHRlclNldHRpbmdzT3B0aW9uPFJlcG9ydEZpbHRlclR5cGU+W10gPSBbXG4gIHsgdmFsdWU6ICdzZWxlY3QnLCBuYW1lOiAnVmFsdWVzJyB9LFxuICB7IHZhbHVlOiAnbnVtYmVyUmFuZ2UnLCBuYW1lOiAnTnVtYmVyIHJhbmdlJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IFRZUEVfTE9DS0VEX1RPT0xUSVAgPSAnUmVtb3ZlIHRoZSBmaWx0ZXIgdG8gY2hhbmdlIGl0cyB0eXBlLic7XG5leHBvcnQgY29uc3QgUEFHRV9GSUxURVJfVE9PTFRJUCA9ICdBIHBhZ2UgZmlsdGVyIHNob3dzIGluIHRoZSBwYWdlIGJhciBvbmx5Lic7XG5leHBvcnQgY29uc3QgQ09NUE9ORU5UX1RPR0dMRV9UT09MVElQID0gJ1Nob3cgb24gdGhpcyBjb21wb25lbnQnO1xuXG4vLyBUaGUgRGVmYXVsdCBwZXJpb2Qgc2VsZWN0J3MgdmFsdWUgZm9yIGEgcmFuZ2Ugb2YgZml4ZWQgZGF5cy4gTm8gcmVsYXRpdmVcbi8vIHJhbmdlIGlzIG5hbWVkIHRoaXMuXG5leHBvcnQgY29uc3QgRklYRURfREFURVNfUEVSSU9EID0gJ2ZpeGVkJztcblxuLy8gSG93IG1hbnkgZGVjaW1hbHMgYSBEZWZhdWx0IG1pbmltdW0gb3IgRGVmYXVsdCBtYXhpbXVtIHRha2VzLlxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQk9VTkRfU0NBTEUgPSA2O1xuXG4vLyBBIGZpbHRlcidzIE5hbWUgYW5kIExhYmVsLCBjaGVja2VkIGFzIHRoZSBzZXJ2ZXIgY2hlY2tzIHRoZW0sIHNvIGEgYmFkIG9uZVxuLy8gaXMgY2F1Z2h0IGJlZm9yZSBTYXZlLiBUaGUgbmFtZSBpcyBhbiBpZGVudGlmaWVyOiBhIGxldHRlciwgdGhlbiBsZXR0ZXJzXG4vLyBhbmQgZGlnaXRzLiBUaGF0IGl0IGlzIHVuaXF1ZSBpbiB0aGUgcmVwb3J0IGlzIHRoZSBzZXJ2ZXIncyB0byBjaGVjay5cbmV4cG9ydCBjb25zdCBGSUxURVJfTkFNRV9QQVRURVJOID0gL15bQS1aYS16XVtBLVphLXowLTldKiQvO1xuZXhwb3J0IGNvbnN0IEZJTFRFUl9OQU1FX1BBVFRFUk5fTUVTU0FHRSA9ICdBIG5hbWUgc3RhcnRzIHdpdGggYSBsZXR0ZXIgYW5kIGhvbGRzIG9ubHkgbGV0dGVycyBhbmQgZGlnaXRzLic7XG5leHBvcnQgY29uc3QgRklMVEVSX05BTUVfTUFYX0xFTkdUSCA9IDUwO1xuZXhwb3J0IGNvbnN0IEZJTFRFUl9MQUJFTF9NQVhfTEVOR1RIID0gMjAwO1xuXG4vLyBFdmVyeSBSZXBvcnQgYmFyIGNob2ljZSwgaW4gdGhlIG9yZGVyIHRoZSBzZWxlY3QgbGlzdHMgdGhlbS5cbmNvbnN0IEJBUl9QTEFDRU1FTlRfT1BUSU9OUzogRmlsdGVyU2V0dGluZ3NPcHRpb248RmlsdGVyQmFyUGxhY2VtZW50PltdID0gW1xuICB7IHZhbHVlOiAnb2ZmJywgbmFtZTogJ09mZicgfSxcbiAgeyB2YWx1ZTogJ2V2ZXJ5JywgbmFtZTogJ0V2ZXJ5IHBhZ2UnIH0sXG4gIHsgdmFsdWU6ICdwYWdlJywgbmFtZTogJ1RoaXMgcGFnZSBvbmx5JyB9LFxuXTtcblxuXG4vLyBBIG51bWJlciB3aXRoIGl0cyBncm91cCBjb21tYXMgaW4gcGxhY2UgKCcxLDI1MC41JywgJy0xMiwwMDAnKS5cbmNvbnN0IEdST1VQRURfREVDSU1BTCA9IC9eLT9cXGR7MSwzfSgsXFxkezN9KSsoXFwuXFxkKik/JC87XG4vLyBBIHBsYWluIGRlY2ltYWwgbnVtYmVyICgnMTI1MC41JywgJy0zJywgJzAnLCAnLjUnKS4gSGV4LCBiaW5hcnksIG9jdGFsLFxuLy8gZXhwb25lbnRzIGFuZCBpbm5lciBzcGFjZXMgZG8gbm90IG1hdGNoLCB0aG91Z2ggTnVtYmVyKCkgcmVhZHMgc29tZS5cbmNvbnN0IFBMQUlOX0RFQ0lNQUwgPSAvXi0/KFxcZCsoXFwuXFxkKik/fFxcLlxcZCspJC87XG5cbi8vIEEgZGVmYXVsdCByYW5nZSBlbmQgYXMgdHlwZWQuIEFuIGVtcHR5IGZpZWxkIGlzIG5vIGVuZC4gQSBudW1iZXIgaW5wdXRcbi8vIHdpdGggYSBtYXNrIGhhbmRzIGJhY2sgdGV4dCB3aXRoIGl0cyBncm91cCBjb21tYXMgKCcxLDI1MC41JyksIHNvIHRob3NlIGdvXG4vLyBiZWZvcmUgTnVtYmVyKCkgcmVhZHMgaXQ7IDAgaXMgYW4gZW5kIGxpa2UgYW55IG90aGVyLiBBbnl0aGluZyB0aGF0IGlzIG5vdFxuLy8gYSBkZWNpbWFsIG51bWJlciBpcyBubyBlbmQuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZWZhdWx0Qm91bmQocmF3OiB1bmtub3duKTogbnVtYmVyIHwgbnVsbCB7XG4gIGlmICh0eXBlb2YgcmF3ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocmF3KSA/IHJhdyA6IG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHJhdyAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHRyaW1tZWQgPSByYXcudHJpbSgpO1xuICBjb25zdCB0ZXh0ID0gR1JPVVBFRF9ERUNJTUFMLnRlc3QodHJpbW1lZCkgPyB0cmltbWVkLnJlcGxhY2UoLywvZywgJycpIDogdHJpbW1lZDtcbiAgaWYgKCFQTEFJTl9ERUNJTUFMLnRlc3QodGV4dCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gTnVtYmVyKHRleHQpO1xuXG4gIHJldHVybiBOdW1iZXIuaXNGaW5pdGUodmFsdWUpID8gdmFsdWUgOiBudWxsO1xufVxuXG4vLyBXaHkgdHdvIHJhbmdlIGVuZHMgY2Fubm90IGJlIHNhdmVkLCBpbiB0aGUgc2VydmVyJ3Mgd29yZHMsIG9yIG51bGwuIEFuIG9wZW5cbi8vIGVuZCBpcyBhbHdheXMgZmluZS5cbmV4cG9ydCBmdW5jdGlvbiBib3VuZHNFcnJvcihtaW46IG51bWJlciB8IG51bGwsIG1heDogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICBpZiAobWluID09PSBudWxsIHx8IG1heCA9PT0gbnVsbCB8fCBtaW4gPD0gbWF4KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gYG1pbiAoJHttaW59KSBpcyBhYm92ZSBtYXggKCR7bWF4fSkuYDtcbn1cblxuLy8gVGhlIFR5cGUgc2VsZWN0IG9mIGEgY29sdW1uIG9uIHRoZSBjb21wb25lbnQgc2V0dGluZ3MnIEZpbHRlcnMgdGFiLiBJdFxuLy8gc2hvd3Mgd2hlbiB0aGUgY29sdW1uIGNhbiB0YWtlIGVpdGhlciB0eXBlIGFuZCB0aGUgc2VydmVyIHNlcnZlcyBudW1iZXJcbi8vIHJhbmdlcyAoYW4gb2xkZXIgc2VydmVyIGxpc3RzIG5vIGZlYXR1cmVzKS4gQSBmaWx0ZXIncyB0eXBlIGNhbm5vdCBjaGFuZ2UsXG4vLyBzbyBpdCBpcyBsb2NrZWQgd2hpbGUgdGhlIGNvbHVtbiBoYXMgYSBmaWx0ZXIgb24gdGhpcyBjb21wb25lbnQuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVNlbGVjdFN0YXRlKFxuICB0eXBlczogUmVwb3J0RmlsdGVyVHlwZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgaGFzRmlsdGVyT25UaGlzQ29tcG9uZW50OiBib29sZWFuLFxuICBmZWF0dXJlczogUmVwb3J0Vmlld2VyRmVhdHVyZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IEZpbHRlclR5cGVTZWxlY3RTdGF0ZSB7XG4gIGNvbnN0IHNob3cgPSAoZmVhdHVyZXMgPz8gW10pLmluY2x1ZGVzKCdudW1iZXJSYW5nZScpXG4gICAgJiYgRklMVEVSX1RZUEVfT1BUSU9OUy5ldmVyeSgob3B0aW9uKSA9PiAodHlwZXMgPz8gW10pLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpO1xuXG4gIGlmICghc2hvdykge1xuICAgIHJldHVybiB7IHNob3c6IGZhbHNlLCBkaXNhYmxlZDogZmFsc2UsIHRvb2x0aXA6IG51bGwgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2hvdzogdHJ1ZSxcbiAgICBkaXNhYmxlZDogaGFzRmlsdGVyT25UaGlzQ29tcG9uZW50LFxuICAgIHRvb2x0aXA6IGhhc0ZpbHRlck9uVGhpc0NvbXBvbmVudCA/IFRZUEVfTE9DS0VEX1RPT0xUSVAgOiBudWxsLFxuICB9O1xufVxuXG4vLyBUaGUgbGV2ZWxzIGEgbmV3IG9yIG1vdmVkIGZpbHRlciBjYW4gdGFrZSBvbiBhIGNvbXBvbmVudC4gVGhpcyBwYWdlIG9ubHlcbi8vIG5lZWRzIGEgc2VydmVyIHRoYXQgc2VydmVzIHBhZ2UgZmlsdGVycyBhbmQgYSBjb21wb25lbnQgb24gYSBwYWdlIChhXG4vLyBoZWFkZXIgb3IgZm9vdGVyIGNvbXBvbmVudCBpcyBvbiBubyBwYWdlKS5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJMZXZlbENob2ljZXMoXG4gIGZlYXR1cmVzOiBSZXBvcnRWaWV3ZXJGZWF0dXJlW10gfCBudWxsIHwgdW5kZWZpbmVkLFxuICBvblBhZ2U6IGJvb2xlYW4sXG4pOiBSZXBvcnRGaWx0ZXJMZXZlbFtdIHtcbiAgY29uc3QgbGV2ZWxzOiBSZXBvcnRGaWx0ZXJMZXZlbFtdID0gWydjb21wb25lbnQnLCAncmVwb3J0JywgJ2JvdGgnXTtcblxuICByZXR1cm4gb25QYWdlICYmIChmZWF0dXJlcyA/PyBbXSkuaW5jbHVkZXMoJ3BhZ2VTY29wZScpXG4gICAgPyBbLi4ubGV2ZWxzLCAncGFnZSddXG4gICAgOiBsZXZlbHM7XG59XG5cbi8vIFRoZSBSZXBvcnQgYmFyIHNlbGVjdCdzIGNob2ljZXMgZm9yIHRoZSBsZXZlbHMgb24gb2ZmZXIuIFRoZSBjaG9pY2UgYSByb3dcbi8vIGFscmVhZHkgaG9sZHMgaXMgYWx3YXlzIGxpc3RlZCwgc28gdGhlIHNlbGVjdCBuZXZlciBzaG93cyBibGFuay5cbmV4cG9ydCBmdW5jdGlvbiBiYXJQbGFjZW1lbnRPcHRpb25zKFxuICBsZXZlbENob2ljZXM6IFJlcG9ydEZpbHRlckxldmVsW10sXG4gIGN1cnJlbnQ6IEZpbHRlckJhclBsYWNlbWVudCA9ICdvZmYnLFxuKTogRmlsdGVyU2V0dGluZ3NPcHRpb248RmlsdGVyQmFyUGxhY2VtZW50PltdIHtcbiAgcmV0dXJuIEJBUl9QTEFDRU1FTlRfT1BUSU9OUy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgIHN3aXRjaCAob3B0aW9uLnZhbHVlKSB7XG4gICAgICBjYXNlICdldmVyeSc6XG4gICAgICAgIHJldHVybiBsZXZlbENob2ljZXMuaW5jbHVkZXMoJ3JlcG9ydCcpIHx8IGxldmVsQ2hvaWNlcy5pbmNsdWRlcygnYm90aCcpIHx8IGN1cnJlbnQgPT09ICdldmVyeSc7XG4gICAgICBjYXNlICdwYWdlJzpcbiAgICAgICAgcmV0dXJuIGxldmVsQ2hvaWNlcy5pbmNsdWRlcygncGFnZScpIHx8IGN1cnJlbnQgPT09ICdwYWdlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8vIEEgdmFsdWUncyBSZXBvcnQgYmFyIGNob2ljZXMuIEEgdmFsdWUgaGFzIG5vIHN0cmlwIG9mIGl0cyBvd24gYW5kIGl0c1xuLy8gZ3JvdXAgbWF5IGJlIHNoYXJlZCwgc28gYSBwaWNrIG5ldmVyIGxvd2VycyB0aGUgZ3JvdXAgKHRoZSBpbmxpbmUgdmFsdWVzXG4vLyBydWxlKTogVGhpcyBwYWdlIG9ubHkgaXMgb2ZmZXJlZCBmb3IgYSBuZXcgZmlsdGVyLCBvciBmb3IgYSBncm91cCB0aGF0IGlzXG4vLyBhbHJlYWR5IGEgcGFnZSBncm91cCwgbmV2ZXIgdG8gbW92ZSBhIHNoYXJlZCBncm91cCB0byBvbmUgcGFnZS5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZVBsYWNlbWVudE9wdGlvbnMoXG4gIGxldmVsQ2hvaWNlczogUmVwb3J0RmlsdGVyTGV2ZWxbXSxcbiAgY3VycmVudDogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogRmlsdGVyU2V0dGluZ3NPcHRpb248RmlsdGVyQmFyUGxhY2VtZW50PltdIHtcbiAgY29uc3QgY2hvaWNlcyA9ICFjdXJyZW50IHx8IGN1cnJlbnQgPT09ICdwYWdlJ1xuICAgID8gbGV2ZWxDaG9pY2VzXG4gICAgOiBsZXZlbENob2ljZXMuZmlsdGVyKChsZXZlbCkgPT4gbGV2ZWwgIT09ICdwYWdlJyk7XG5cbiAgcmV0dXJuIGJhclBsYWNlbWVudE9wdGlvbnMoY2hvaWNlcywgYmFyUGxhY2VtZW50KGN1cnJlbnQpKTtcbn1cblxuLy8gVGhlIGxldmVsIGEgdmFsdWUncyBmaWx0ZXIgZ3JvdXAgZW5kcyBhdCBhZnRlciBhIFJlcG9ydCBiYXIgcGljaywgb3IgbnVsbFxuLy8gd2hlbiB0aGUgdmFsdWUgbGVhdmVzIGl0LiBPZmYgdW5saW5rcyB0aGlzIHZhbHVlIGFsb25lIGFuZCB0aGUgZ3JvdXAga2VlcHNcbi8vIGl0cyBvdGhlciBtZW1iZXJzLiBBIG5ldyBmaWx0ZXIgdGFrZXMgdGhlIHBpY2sncyBsZXZlbC4gRXZlcnkgcGFnZSByYWlzZXMgYVxuLy8gc3RyaXAtb25seSBncm91cCB0byBib3RoLCBrZWVwaW5nIGl0cyBzdHJpcHMsIGFuZCBhIHBhZ2UgZ3JvdXAgdG8gdGhlXG4vLyByZXBvcnQgYmFyLiBOb3RoaW5nIGVsc2UgbW92ZXMgdGhlIGdyb3VwLCBzbyBhIHZhbHVlIG5ldmVyIGxvd2VycyBpdC5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZpbHRlckxldmVsKFxuICBwbGFjZW1lbnQ6IEZpbHRlckJhclBsYWNlbWVudCxcbiAgY3VycmVudDogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHtcbiAgaWYgKHBsYWNlbWVudCA9PT0gJ29mZicpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICghY3VycmVudCkge1xuICAgIHJldHVybiBwbGFjZW1lbnQgPT09ICdwYWdlJyA/ICdwYWdlJyA6ICdyZXBvcnQnO1xuICB9XG5cbiAgaWYgKHBsYWNlbWVudCAhPT0gJ2V2ZXJ5Jykge1xuICAgIHJldHVybiBjdXJyZW50O1xuICB9XG5cbiAgc3dpdGNoIChjdXJyZW50KSB7XG4gICAgY2FzZSAnY29tcG9uZW50JzpcbiAgICAgIHJldHVybiAnYm90aCc7XG4gICAgY2FzZSAncGFnZSc6XG4gICAgICByZXR1cm4gJ3JlcG9ydCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICB9XG59XG5cbi8vIFdoZXJlIGEgZ3JvdXAgb2YgYSBsZXZlbCBzaG93cyBpbiB0aGUgcmVwb3J0IGJhci4gTm8gZ3JvdXAgKG5vIGZpbHRlcikgaXNcbi8vIG9mZi5cbmV4cG9ydCBmdW5jdGlvbiBiYXJQbGFjZW1lbnQobGV2ZWw6IFJlcG9ydEZpbHRlckxldmVsIHwgbnVsbCB8IHVuZGVmaW5lZCk6IEZpbHRlckJhclBsYWNlbWVudCB7XG4gIHN3aXRjaCAobGV2ZWwpIHtcbiAgICBjYXNlICdyZXBvcnQnOlxuICAgIGNhc2UgJ2JvdGgnOlxuICAgICAgcmV0dXJuICdldmVyeSc7XG4gICAgY2FzZSAncGFnZSc6XG4gICAgICByZXR1cm4gJ3BhZ2UnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ29mZic7XG4gIH1cbn1cblxuLy8gV2hldGhlciBhIGdyb3VwIG9mIGEgbGV2ZWwgc2hvd3Mgb24gaXRzIGNvbXBvbmVudHMuXG5leHBvcnQgZnVuY3Rpb24gc2hvd25PbkNvbXBvbmVudChsZXZlbDogUmVwb3J0RmlsdGVyTGV2ZWwgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBsZXZlbCA9PT0gJ2NvbXBvbmVudCcgfHwgbGV2ZWwgPT09ICdib3RoJztcbn1cblxuLy8gVGhlIGxldmVsIHRoZSB0d28gY29udHJvbHMgb2YgYSByb3cgYXNrIGZvciwgb3IgbnVsbCB3aGVuIHRoZXkgYXNrIGZvciBub1xuLy8gZmlsdGVyIGF0IGFsbC4gQSBwYWdlIGZpbHRlciBzaG93cyBpbiBpdHMgcGFnZSdzIGJhciBvbmx5LCBzbyBUaGlzIHBhZ2Vcbi8vIG9ubHkgaWdub3JlcyB0aGUgVGhpcyBjb21wb25lbnQgdG9nZ2xlLlxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckxldmVsKHBsYWNlbWVudDogRmlsdGVyQmFyUGxhY2VtZW50LCBjb21wb25lbnQ6IGJvb2xlYW4pOiBSZXBvcnRGaWx0ZXJMZXZlbCB8IG51bGwge1xuICBzd2l0Y2ggKHBsYWNlbWVudCkge1xuICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgcmV0dXJuICdwYWdlJztcbiAgICBjYXNlICdldmVyeSc6XG4gICAgICByZXR1cm4gY29tcG9uZW50ID8gJ2JvdGgnIDogJ3JlcG9ydCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjb21wb25lbnQgPyAnY29tcG9uZW50JyA6IG51bGw7XG4gIH1cbn1cblxuLy8gVGhlIFRoaXMgY29tcG9uZW50IHRvZ2dsZSBvZiBhIHJvdzogbG9ja2VkIHdoaWxlIFRoaXMgcGFnZSBvbmx5IGlzIHBpY2tlZC5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnRUb2dnbGVTdGF0ZShwbGFjZW1lbnQ6IEZpbHRlckJhclBsYWNlbWVudCk6IEZpbHRlckNvbXBvbmVudFRvZ2dsZVN0YXRlIHtcbiAgcmV0dXJuIHBsYWNlbWVudCA9PT0gJ3BhZ2UnXG4gICAgPyB7IGRpc2FibGVkOiB0cnVlLCB0b29sdGlwOiBQQUdFX0ZJTFRFUl9UT09MVElQIH1cbiAgICA6IHsgZGlzYWJsZWQ6IGZhbHNlLCB0b29sdGlwOiBDT01QT05FTlRfVE9HR0xFX1RPT0xUSVAgfTtcbn1cblxuLy8gVGhlIGdyb3VwcyB0aGUgcmVwb3J0IHNldHRpbmdzJyBGaWx0ZXJzIHRhYiBsaXN0cyBkZWZhdWx0cyBmb3I6IHRob3NlIG9mXG4vLyB0aGUgcmVwb3J0IGJhciwgZXZlcnkgcGFnZSBvciBvbmUsIGluIGJhciBvcmRlci5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0Um93R3JvdXBzKGdyb3VwczogUmVwb3J0RmlsdGVyR3JvdXBbXSB8IG51bGwgfCB1bmRlZmluZWQpOiBSZXBvcnRGaWx0ZXJHcm91cFtdIHtcbiAgcmV0dXJuIChncm91cHMgPz8gW10pXG4gICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLmxldmVsID09PSAncmVwb3J0JyB8fCBncm91cC5sZXZlbCA9PT0gJ2JvdGgnIHx8IGdyb3VwLmxldmVsID09PSAncGFnZScpXG4gICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbn1cblxuLy8gQSBkZWZhdWx0IHJvdydzIGxhYmVsOiBhIHBhZ2UgZ3JvdXAgbmFtZXMgaXRzIHBhZ2UsICdSZWdpb24gKHBhZ2Vcbi8vIFwiT3ZlcnZpZXdcIiknLiBBIHBhZ2Ugd2l0aCBubyBuYW1lIHJlYWRzIGFzIHRoZSBjYW52YXMgbmFtZXMgaXQgKCdQYWdlIDInKS5cbi8vIEEgcGFnZSB0aGlzIHJlcG9ydCBubyBsb25nZXIgaG9sZHMgYWRkcyBub3RoaW5nLlxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRSb3dMYWJlbChncm91cDogUmVwb3J0RmlsdGVyR3JvdXAsIHBhZ2VzOiBSZXBvcnRQYWdlW10gfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgbGFiZWwgPSBncm91cC5sYWJlbCB8fCBncm91cC5maWx0ZXJzPy5bMF0/LmZpbHRlckNvbHVtbiB8fCAnRmlsdGVyJztcblxuICBpZiAoZ3JvdXAubGV2ZWwgIT09ICdwYWdlJykge1xuICAgIHJldHVybiBsYWJlbDtcbiAgfVxuXG4gIGNvbnN0IGluZGV4ID0gKHBhZ2VzID8/IFtdKS5maW5kSW5kZXgoKHBhZ2UpID0+IHBhZ2UuaWQgPT09IGdyb3VwLnBhZ2VJZCk7XG4gIGlmIChpbmRleCA8IDApIHtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICByZXR1cm4gYCR7bGFiZWx9IChwYWdlIFwiJHtwYWdlc1tpbmRleF0ubmFtZSB8fCBgUGFnZSAke2luZGV4ICsgMX1gfVwiKWA7XG59XG5cbi8vIFRoZSBEZWZhdWx0IHBlcmlvZCBzZWxlY3QncyBjaG9pY2VzOiBGaXhlZCBkYXRlcywgdGhlbiBldmVyeSByZWxhdGl2ZVxuLy8gcmFuZ2UgaW4gdGhlIHNlcnZlciBlbnVtJ3Mgb3JkZXIsIG5hbWVkIGJ5IGBsYWJlbHNgLiBBIHN0b3JlZCByYW5nZSB0aGlzXG4vLyB2aWV3ZXIgZG9lcyBub3Qga25vdyBpcyBsaXN0ZWQgbGFzdCwgc28gdGhlIHNlbGVjdCBzdGlsbCBzaG93cyBpdC5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UGVyaW9kT3B0aW9ucyhcbiAgbGFiZWxzOiAocmVsYXRpdmU6IFJlcG9ydFJlbGF0aXZlUmFuZ2UpID0+IHN0cmluZyxcbiAgc3RvcmVkOiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbik6IEZpbHRlclNldHRpbmdzT3B0aW9uW10ge1xuICBjb25zdCBvcHRpb25zOiBGaWx0ZXJTZXR0aW5nc09wdGlvbltdID0gW1xuICAgIHsgdmFsdWU6IEZJWEVEX0RBVEVTX1BFUklPRCwgbmFtZTogJ0ZpeGVkIGRhdGVzJyB9LFxuICAgIC4uLlJFTEFUSVZFX1JBTkdFX05BTUVTLm1hcCgocmVsYXRpdmUpID0+ICh7IHZhbHVlOiByZWxhdGl2ZSwgbmFtZTogbGFiZWxzKHJlbGF0aXZlKSB9KSksXG4gIF07XG5cbiAgcmV0dXJuIHN0b3JlZCAmJiBzdG9yZWQgIT09IEZJWEVEX0RBVEVTX1BFUklPRCAmJiAhaXNSZWxhdGl2ZVJhbmdlKHN0b3JlZClcbiAgICA/IFsuLi5vcHRpb25zLCB7IHZhbHVlOiBzdG9yZWQsIG5hbWU6IGxhYmVscyhzdG9yZWQgYXMgUmVwb3J0UmVsYXRpdmVSYW5nZSkgfV1cbiAgICA6IG9wdGlvbnM7XG59XG5cbi8vIFRoZSBEZWZhdWx0IHBlcmlvZCBhIHN0b3JlZCBkYXRlIHJhbmdlIGRlZmF1bHQgb3BlbnMgb246IGl0cyByZWxhdGl2ZVxuLy8gcmFuZ2UsIGVsc2UgRml4ZWQgZGF0ZXMgKHRoZSBkYXlzLCBvciBub25lKS5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UGVyaW9kKHN0b3JlZDogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIHJldHVybiBzdG9yZWQ/LnJlbGF0aXZlICYmICFzdG9yZWQuc3RhcnQgJiYgIXN0b3JlZC5lbmRcbiAgICA/IHN0b3JlZC5yZWxhdGl2ZVxuICAgIDogRklYRURfREFURVNfUEVSSU9EO1xufVxuXG4vLyBBIGRhdGUgcmFuZ2UgZGVmYXVsdCBpbiBpdHMgc3RvcmVkIHNoYXBlOiB0aGUgcmVsYXRpdmUgcmFuZ2UgcGlja2VkLCBlbHNlXG4vLyB0aGUgZml4ZWQgZGF5cywgb3IgbnVsbCB3aGVuIHRoZXJlIGFyZSBub25lLiBOZXZlciBib3RoOiB0aGUgc2VydmVyXG4vLyByZWZ1c2VzIGEgcmVsYXRpdmUgcmFuZ2Ugd2l0aCBkYXlzLlxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVSYW5nZURlZmF1bHQoXG4gIHBlcmlvZDogc3RyaW5nLFxuICBzdGFydDogc3RyaW5nIHwgbnVsbCxcbiAgZW5kOiBzdHJpbmcgfCBudWxsLFxuKTogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB7XG4gIGlmIChwZXJpb2QgIT09IEZJWEVEX0RBVEVTX1BFUklPRCkge1xuICAgIHJldHVybiB7IHJlbGF0aXZlOiBwZXJpb2QgfTtcbiAgfVxuXG4gIGlmICghc3RhcnQgJiYgIWVuZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4uKHN0YXJ0ID8geyBzdGFydCB9IDoge30pLCAuLi4oZW5kID8geyBlbmQgfSA6IHt9KSB9O1xufVxuXG4vLyBBIHNlbGVjdCBkZWZhdWx0IGluIGl0cyBzdG9yZWQgc2hhcGU6IHRoZSBwaWNrcyBrZXB0LCBvciBsZWZ0IG91dCB3aGlsZVxuLy8gRXhjbHVkZSB0aGVzZSB2YWx1ZXMgaXMgb24sIG9yIG51bGwgd2hlbiBub3RoaW5nIGlzIHBpY2tlZC5cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3REZWZhdWx0KHZhbHVlczogdW5rbm93bltdLCBleGNsdWRlOiBib29sZWFuKTogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB7XG4gIGlmICghdmFsdWVzLmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGV4Y2x1ZGUgPyB7IGV4Y2x1ZGVWYWx1ZXM6IHZhbHVlcyB9IDogeyB2YWx1ZXMgfTtcbn1cblxuLy8gQSBudW1iZXIgcmFuZ2UgZGVmYXVsdCBpbiBpdHMgc3RvcmVkIHNoYXBlIGZyb20gdGhlIGVuZHMgYXMgdHlwZWQ6IGFuXG4vLyBvcGVuIGVuZCBpcyBsZWZ0IG91dCwgMCBpcyBrZXB0LCBhbmQgdHdvIG9wZW4gZW5kcyBhcmUgbm8gZGVmYXVsdC5cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJSYW5nZURlZmF1bHQocmF3TWluOiB1bmtub3duLCByYXdNYXg6IHVua25vd24pOiBGaWx0ZXJHcm91cERlZmF1bHQgfCBudWxsIHtcbiAgY29uc3QgbWluID0gcGFyc2VEZWZhdWx0Qm91bmQocmF3TWluKTtcbiAgY29uc3QgbWF4ID0gcGFyc2VEZWZhdWx0Qm91bmQocmF3TWF4KTtcblxuICBpZiAobWluID09PSBudWxsICYmIG1heCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgLi4uKG1pbiAhPT0gbnVsbCA/IHsgbWluIH0gOiB7fSksIC4uLihtYXggIT09IG51bGwgPyB7IG1heCB9IDoge30pIH07XG59XG5cbi8vIFdoZXRoZXIgYSBzZWxlY3QgZ3JvdXAncyBkZWZhdWx0IHJvdyBvZmZlcnMgRXhjbHVkZSB0aGVzZSB2YWx1ZXM6IHRoZVxuLy8gcmVwb3J0IGJhcidzIHJ1bGUgKG9mZmVyc0V4Y2x1ZGUpLCBzbyBub3Qgb24gYSBzZXJ2ZXIgdGhhdCBkb2VzIG5vdCBzZXJ2ZVxuLy8gZXhjbHVkZSAoYW4gb2xkZXIgc2VydmVyIGxpc3RzIG5vIGZlYXR1cmVzKSBub3Igb24gYSBncm91cCB3aXRoIGEgbWVtYmVyXG4vLyB0aGF0IGJpbmRzIHNldmVyYWwgY29sdW1ucyAobXVsdGlDb2x1bW4pLiBBIGRlZmF1bHQgdGhhdCBhbHJlYWR5IGxlYXZlc1xuLy8gdmFsdWVzIG91dCBrZWVwcyB0aGUgdG9nZ2xlLCBzbyBpdCBjYW4gYmUgdHVybmVkIG9mZi5cbmV4cG9ydCBmdW5jdGlvbiBzaG93RXhjbHVkZVRvZ2dsZShcbiAgZ3JvdXA6IFJlcG9ydEZpbHRlckdyb3VwLFxuICBmZWF0dXJlczogUmVwb3J0Vmlld2VyRmVhdHVyZVtdIHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IGJvb2xlYW4ge1xuICBpZiAoZ3JvdXAudHlwZSA9PT0gJ3NlbGVjdCcgJiYgZ3JvdXAuY29uZmlnPy5kZWZhdWx0Py5leGNsdWRlVmFsdWVzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBvZmZlcnNFeGNsdWRlKGdyb3VwLCBmZWF0dXJlcyk7XG59XG5cbi8vIEEgc3RvcmVkIG9yIGRyYWZ0IGRlZmF1bHQgaW4gYSBzdGFibGUgZm9ybSBmb3IgY29tcGFyaW5nOiBlbXB0eSBhbmRcbi8vIGFic2VudCBrZXlzIGFyZSBkcm9wcGVkLCBzbyBhIG5vLW9wIGVkaXQgZG9lcyBub3QgcmVhZCBhcyBhIGNoYW5nZS4gMCBpcyBhblxuLy8gZW5kIGxpa2UgYW55IG90aGVyLiBOb3RoaW5nIGxlZnQgaXMgbnVsbC5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEZWZhdWx0KHZhbHVlOiBGaWx0ZXJHcm91cERlZmF1bHQgfCBudWxsIHwgdW5kZWZpbmVkKTogRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbCB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWQ6IEZpbHRlckdyb3VwRGVmYXVsdCA9IHt9O1xuICBpZiAodmFsdWUuc3RhcnQpIHtcbiAgICBub3JtYWxpemVkLnN0YXJ0ID0gdmFsdWUuc3RhcnQ7XG4gIH1cbiAgaWYgKHZhbHVlLmVuZCkge1xuICAgIG5vcm1hbGl6ZWQuZW5kID0gdmFsdWUuZW5kO1xuICB9XG4gIGlmICh2YWx1ZS52YWx1ZXM/Lmxlbmd0aCkge1xuICAgIG5vcm1hbGl6ZWQudmFsdWVzID0gdmFsdWUudmFsdWVzO1xuICB9XG4gIGlmICh2YWx1ZS5leGNsdWRlVmFsdWVzPy5sZW5ndGgpIHtcbiAgICBub3JtYWxpemVkLmV4Y2x1ZGVWYWx1ZXMgPSB2YWx1ZS5leGNsdWRlVmFsdWVzO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUubWluID09PSAnbnVtYmVyJykge1xuICAgIG5vcm1hbGl6ZWQubWluID0gdmFsdWUubWluO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUubWF4ID09PSAnbnVtYmVyJykge1xuICAgIG5vcm1hbGl6ZWQubWF4ID0gdmFsdWUubWF4O1xuICB9XG4gIGlmICh2YWx1ZS52YWx1ZSkge1xuICAgIG5vcm1hbGl6ZWQudmFsdWUgPSB2YWx1ZS52YWx1ZTtcbiAgfVxuICBpZiAodmFsdWUucmVsYXRpdmUpIHtcbiAgICBub3JtYWxpemVkLnJlbGF0aXZlID0gdmFsdWUucmVsYXRpdmU7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmtleXMobm9ybWFsaXplZCkubGVuZ3RoID8gbm9ybWFsaXplZCA6IG51bGw7XG59XG5cbi8vIFdoZXRoZXIgYSByb3cncyBkcmFmdCBkZWZhdWx0IGRpZmZlcnMgZnJvbSB0aGUgZ3JvdXAncyBzdG9yZWQgb25lLiBPbmx5IGFcbi8vIGNoYW5nZWQgcm93IGlzIHNhdmVkLlxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRDaGFuZ2VkKFxuICBzdG9yZWQ6IEZpbHRlckdyb3VwRGVmYXVsdCB8IG51bGwgfCB1bmRlZmluZWQsXG4gIGRyYWZ0OiBGaWx0ZXJHcm91cERlZmF1bHQgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShub3JtYWxpemVEZWZhdWx0KHN0b3JlZCkpICE9PSBKU09OLnN0cmluZ2lmeShub3JtYWxpemVEZWZhdWx0KGRyYWZ0KSk7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLWxhbmRpbmctaW5wdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ludGVyZmFjZXMvY2FudmFzLWxhbmRpbmctaW5wdXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXaGF0IHRoZSBjYW52YXMga25vd3Mgd2hlbiBpdHMgcmVwb3J0IGlucHV0IGNoYW5nZXM6IHRoZSByZXBvcnQgaXQgc2hvd2VkXG4vLyBiZWZvcmUsIGl0cyBwYWdlIGNvdW50IHRoZW4sIGFuZCB0aGUgcGFnZSB0aGUgaG9zdCBhc2tzIGZvciAoYSA/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLWxhbmRpbmctaW5wdXQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ludGVyZmFjZXMvY2FudmFzLWxhbmRpbmctaW5wdXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXaGF0IHRoZSBjYW52YXMga25vd3Mgd2hlbiBpdHMgcmVwb3J0IGlucHV0IGNoYW5nZXM6IHRoZSByZXBvcnQgaXQgc2hvd2VkXG4vLyBiZWZvcmUsIGl0cyBwYWdlIGNvdW50IHRoZW4sIGFuZCB0aGUgcGFnZSB0aGUgaG9zdCBhc2tzIGZvciAoYSA/cGFnZT0gdGhlXG4vLyByZXBvcnQgb3BlbmVkIHdpdGgpLiBTZWUgY2FudmFzTGFuZGluZ1BhZ2UuXG5leHBvcnQgaW50ZXJmYWNlIENhbnZhc0xhbmRpbmdJbnB1dCB7XG4gIHJlcG9ydElkOiBudW1iZXIgfCBudWxsO1xuICBwcmV2aW91c1JlcG9ydElkOiBudW1iZXIgfCBudWxsO1xuICBwcmV2aW91c1BhZ2VDb3VudDogbnVtYmVyO1xuICBwYWdlSWRzOiBudW1iZXJbXTtcbiAgcGFnZUlkOiBudW1iZXIgfCBudWxsO1xuICBhY3RpdmVQYWdlSW5kZXg6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNoYXQtdmlld2VyLXN0YXRlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC1jaGF0LXZpZXdlci1zdGF0ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydENoYXRWaWV3ZXJDcm9zc0ZpbHRlciB9IGZyb20gJy4vcmVwb3J0LWNoYXQtdmlld2VyLWNyb3NzLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0Q2hhdFZpZXdlckRldGFpbCB9IGZyb20gJy4vcmVwb3J0LWNoYXQtdmlld2VyLWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0Q2hhdFZpZXdlckRyaWxsIH0gZnJvbSAnLi9yZXBvcnQtY2hhdC12aWV3ZXItZHJpbGwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydENoYXRWaWV3ZXJGaWx0ZXIgfSBmcm9tICcuL3JlcG9ydC1jaGF0LXZpZXdlci1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydENoYXRWaWV3ZXJTZWxlY3Rpb24gfSBmcm9tICcuL3JlcG9ydC1jaGF0LXZpZXdlci1zZWxlY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlck1hdGNoIH0gZnJvbSAnLi9yZXBvcnQtZmlsdGVyLW1hdGNoLnR5cGUnO1xuaW1wb3J0IHsgQ2hhcnRHcmFudWxhcml0eSB9IGZyb20gJy4vcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gV2hhdCB0aGUgdmlld2VyIGhhcyBvbiBzY3JlZW4sIHNlbnQgYXMgYHZpZXdlclN0YXRlYCB3aXRoIGVhY2ggcmVwb3J0IGNoYXRcbi8vIHR1cm4gc28gdGhlIGFnZW50IGtub3dzIHdoYXQgXCJ0aGlzIGNoYXJ0XCIgYW5kIFwidGhpcyBwZXJpb2RcIiBtZWFuLiBSZWFkIGF0XG4vLyB0aGUgbW9tZW50IHRoZSB0dXJuIGlzIHNlbnQ7IGl0IGlzIG5ldmVyIHNhdmVkIHRvIHRoZSByZXBvcnQuIEV2ZXJ5IGZpZWxkXG4vLyBhZnRlciBgZmlsdGVyc2AgaXMgb3B0aW9uYWw6IGEga2V5IGxlZnQgb3V0IG1lYW5zIHRoZSB2aWV3ZXIgaGFzIG5vdGhpbmdcbi8vIHRoZXJlLCBhbmQgYSBzZXJ2ZXIgdGhhdCBkb2VzIG5vdCBrbm93IGEga2V5IGlnbm9yZXMgaXQuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydENoYXRWaWV3ZXJTdGF0ZSB7XG4gIC8vIFRoZSBncm91cC1ieSBjb250cm9sJ3MgZ3JhaW4sIG9yIG51bGwgd2hlbiB0aGUgdmlld2VyIGhhcyBub3QgcGlja2VkIG9uZS5cbiAgZ3JhbnVsYXJpdHk6IENoYXJ0R3JhbnVsYXJpdHkgfCBudWxsO1xuICAvLyBUaGUgY2FudmFzIHNlbGVjdGlvbi4gT25seSBzZW50IHdoaWxlIGVkaXQgbW9kZSBpcyBvbiwgYmVjYXVzZSB0aGVcbiAgLy8gc2VsZWN0aW9uIGlzIGRyYXduIG9ubHkgdGhlbi5cbiAgc2VsZWN0ZWRDb21wb25lbnRJZDogbnVtYmVyIHwgbnVsbDtcbiAgLy8gT25lIGVudHJ5IHBlciBmaWx0ZXIgZ3JvdXAgd2l0aCBhIHZhbHVlLCBpbiBncm91cCBpZCBvcmRlci5cbiAgZmlsdGVyczogUmVwb3J0Q2hhdFZpZXdlckZpbHRlcltdO1xuICAvLyAnYW55JyB3aGlsZSB0aGUgYmFyJ3MgZ3JvdXBzIG1hdGNoIGFueSBmaWx0ZXI7IGxlZnQgb3V0IGZvciAnYWxsJy5cbiAgbWF0Y2g/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNoYXQtdmlld2VyLXN0YXRlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC1jaGF0LXZpZXdlci1zdGF0ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydENoYXRWaWV3ZXJDcm9zc0ZpbHRlciB9IGZyb20gJy4vcmVwb3J0LWNoYXQtdmlld2VyLWNyb3NzLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0Q2hhdFZpZXdlckRldGFpbCB9IGZyb20gJy4vcmVwb3J0LWNoYXQtdmlld2VyLWRldGFpbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0Q2hhdFZpZXdlckRyaWxsIH0gZnJvbSAnLi9yZXBvcnQtY2hhdC12aWV3ZXItZHJpbGwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydENoYXRWaWV3ZXJGaWx0ZXIgfSBmcm9tICcuL3JlcG9ydC1jaGF0LXZpZXdlci1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydENoYXRWaWV3ZXJTZWxlY3Rpb24gfSBmcm9tICcuL3JlcG9ydC1jaGF0LXZpZXdlci1zZWxlY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlck1hdGNoIH0gZnJvbSAnLi9yZXBvcnQtZmlsdGVyLW1hdGNoLnR5cGUnO1xuaW1wb3J0IHsgQ2hhcnRHcmFudWxhcml0eSB9IGZyb20gJy4vcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gV2hhdCB0aGUgdmlld2VyIGhhcyBvbiBzY3JlZW4sIHNlbnQgYXMgYHZpZXdlclN0YXRlYCB3aXRoIGVhY2ggcmVwb3J0IGNoYXRcbi8vIHR1cm4gc28gdGhlIGFnZW50IGtub3dzIHdoYXQgXCJ0aGlzIGNoYXJ0XCIgYW5kIFwidGhpcyBwZXJpb2RcIiBtZWFuLiBSZWFkIGF0XG4vLyB0aGUgbW9tZW50IHRoZSB0dXJuIGlzIHNlbnQ7IGl0IGlzIG5ldmVyIHNhdmVkIHRvIHRoZSByZXBvcnQuIEV2ZXJ5IGZpZWxkXG4vLyBhZnRlciBgZmlsdGVyc2AgaXMgb3B0aW9uYWw6IGEga2V5IGxlZnQgb3V0IG1lYW5zIHRoZSB2aWV3ZXIgaGFzIG5vdGhpbmdcbi8vIHRoZXJlLCBhbmQgYSBzZXJ2ZXIgdGhhdCBkb2VzIG5vdCBrbm93IGEga2V5IGlnbm9yZXMgaXQuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydENoYXRWaWV3ZXJTdGF0ZSB7XG4gIC8vIFRoZSBncm91cC1ieSBjb250cm9sJ3MgZ3JhaW4sIG9yIG51bGwgd2hlbiB0aGUgdmlld2VyIGhhcyBub3QgcGlja2VkIG9uZS5cbiAgZ3JhbnVsYXJpdHk6IENoYXJ0R3JhbnVsYXJpdHkgfCBudWxsO1xuICAvLyBUaGUgY2FudmFzIHNlbGVjdGlvbi4gT25seSBzZW50IHdoaWxlIGVkaXQgbW9kZSBpcyBvbiwgYmVjYXVzZSB0aGVcbiAgLy8gc2VsZWN0aW9uIGlzIGRyYXduIG9ubHkgdGhlbi5cbiAgc2VsZWN0ZWRDb21wb25lbnRJZDogbnVtYmVyIHwgbnVsbDtcbiAgLy8gT25lIGVudHJ5IHBlciBmaWx0ZXIgZ3JvdXAgd2l0aCBhIHZhbHVlLCBpbiBncm91cCBpZCBvcmRlci5cbiAgZmlsdGVyczogUmVwb3J0Q2hhdFZpZXdlckZpbHRlcltdO1xuICAvLyAnYW55JyB3aGlsZSB0aGUgYmFyJ3MgZ3JvdXBzIG1hdGNoIGFueSBmaWx0ZXI7IGxlZnQgb3V0IGZvciAnYWxsJy5cbiAgbWF0Y2g/OiBSZXBvcnRGaWx0ZXJNYXRjaDtcbiAgLy8gVGhlIGNyb3NzLWZpbHRlciBvbiBzY3JlZW4gKGF0IG1vc3Qgb25lKS5cbiAgY3Jvc3NGaWx0ZXJzPzogUmVwb3J0Q2hhdFZpZXdlckNyb3NzRmlsdGVyW107XG4gIC8vIEVhY2ggZHJpbGxlZCBjaGFydCwgaW4gY29tcG9uZW50IGlkIG9yZGVyLlxuICBkcmlsbHM/OiBSZXBvcnRDaGF0Vmlld2VyRHJpbGxbXTtcbiAgLy8gVGhlIHJvd3MgcGFuZWwsIG9yIG51bGwgd2hlbiBpdCBpcyBjbG9zZWQuXG4gIGRldGFpbD86IFJlcG9ydENoYXRWaWV3ZXJEZXRhaWwgfCBudWxsO1xuICAvLyBSZXNlcnZlZCBmb3IgaW5saW5lIHZhbHVlczsgbmV2ZXIgc2V0IGJ5IHRoaXMgdmlld2VyLlxuICBzZWxlY3Rpb24/OiBSZXBvcnRDaGF0Vmlld2VyU2VsZWN0aW9uO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWV4cG9ydC1zbmFwc2hvdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtZXhwb3J0LXNuYXBzaG90LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb3J0U3RhdGVTbmFwc2hvdCB9IGZyb20gJy4vcmVwb3J0LXN0YXRlLXNuYXBzaG90LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRWaWV3ZXJGZWF0dXJlIH0gZnJvbSAnLi9yZXBvcnQtdmlld2VyLWZlYXR1cmUudHlwZSc7XG5pbXBvcnQge1xuICBDaGFydEdyYW51bGFyaXR5LFxuICBDb21wb25lbnREYXRhU3RhdGUsXG4gIEZpbHRlckdyb3VwVmFsdWUsXG4gIFJlcG9ydEZvcm1hdENvbnRleHQsXG4gIFJlcG9ydFJlbGF0aXZlUmFuZ2UsXG4gIFJlc29sdmVkRmlsdGVyVmFsdWUsXG59IGZyb20gJy4vcmVwb3J0LmludGVyZmFjZSc7XG5cblxuLy8gVGhlIHNjcmVlbiBhcyBvbmUgZXhwb3J0IHJlYWRzIGl0LCB0YWtlbiBvbmNlIHdoZW4gdGhlIGV4cG9ydCBzdGFydHNcbi8vIChSZXBvcnRFeHBvcnRDb2xsZWN0b3JTZXJ2aWNlLnNuYXBzaG90KSwgc28gZXZlcnkgdGlsZSwgdGhlIGZpbHRlciBsaW5lc1xuLy8gYW5kIHRoZSBjb3ZlciBvZiBvbmUgZmlsZSBob2xkIHRoZSBzYW1lIHN0YXRlLCB3aGF0ZXZlciB0aGUgdmlld2VyIGNoYW5nZXNcbi8vIHdoaWxlIHRoZSB0aWxlcyBhcmUgZmV0Y2hlZC5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RXhwb3J0U25hcHNob3Qge1xuICAvLyBUaGUgZHVyYWJsZSBzdGF0ZSAoUmVwb3J0RmlsdGVyU3RhdGVTZXJ2aWNlLnNuYXBzaG90KS5cbiAgc3RhdGU6IFJlcG9ydFN0YXRlU25hcHNob3Q7XG4gIC8vIEVhY2ggZ3JvdXAncyB2YWx1ZSBhcyB0aGUgYmFyIGhvbGRzIGl0LCBieSBncm91cCBpZC4gQSBncm91cCB3aXRoXG4gIC8vIG5vdGhpbmcgc2V0IGlzIGxlZnQgb3V0LlxuICB2YWx1ZXM6IFJlY29yZDxudW1iZXIsIEZpbHRlckdyb3VwVmFsdWU+O1xuICAvLyBUaGUgcmVsYXRpdmUgcmFuZ2UgZWFjaCBkYXRlIGdyb3VwIHN0aWxsIGlzLCBieSBncm91cCBpZC5cbiAgcHJlc2V0czogUmVjb3JkPG51bWJlciwgUmVwb3J0UmVsYXRpdmVSYW5nZT47XG4gIC8vIEVhY2ggdGlsZSdzIGZpbHRlciBlbnRyaWVzLCBieSBjb21wb25lbnQgaWQuXG4gIGZpbHRlcnM6IFJlY29yZDxudW1iZXIsIFJlc29sdmVkRmlsdGVyVmFsdWVbXT47XG4gIC8vIEVhY2ggaW5saW5lIHZhbHVlJ3MgZmlsdGVyIGVudHJpZXMsIGJ5IGNvbXBvbmVudCBpZDogd2hhdCBpdHMgbGF5ZXInc1xuICAvLyB2YWx1ZXMgcmVxdWVzdCBjYXJyaWVzLlxuICB2YWx1ZUZpbHRlcnM6IFJlY29yZDxudW1iZXIsIFJlc29sdmVkRmlsdGVyVmFsdWVbXT47XG4gIC8vIEVhY2ggdGlsZSdzIHN0YXRlICh0aWxlRGF0YVN0YXRlKSwgYnkgY29tcG9uZW50IGlkLlxuICBzdGF0ZXM6IFJlY29yZDxudW1iZXIsIENvbXBvbmVudERhdGFTdGF0ZT47XG4gIC8vIFRoZSBncm91cC1ieSBncmFpbiwgb3IgbnVsbC5cbiAgZnJlcXVlbmN5OiBDaGFydEdyYW51bGFyaXR5IHwgbnVsbDtcbiAgLy8gVGhlIHZpZXdlciBmZWF0dXJlcyB0aGUgc2VydmVyIHNlcnZlcyBhbmQgdGhpcyB2aWV3ZXIgaW1wbGVtZW50cy5cbiAgZmVhdHVyZXM6IFJlcG9ydFZpZXdlckZlYXR1cmVbXTtcbiAgLy8gSG93IHRoZSByZXBvcnQgd3JpdGVzIGl0cyBudW1iZXJzIGFuZCBkYXRlcy5cbiAgZm9ybWF0Q29udGV4dDogUmVwb3J0Rm9ybWF0Q29udGV4dDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXNhdmVkLWZpbHRlci1jaGFuZ2VzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC1zYXZlZC1maWx0ZXItY2hhbmdlcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFdoYXQgYSBzYXZlZCBmaWx0ZXIncyBjcmVhdGUgb3IgdXBkYXRlIHNlbmRzOiBhIGNyZWF0ZSBzZW5kcyBib3RoLCBhblxuLy8gdXBkYXRlIG9ubHkgdGhlIGtleXMgdGhhdCBjaGFuZ2UuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFNhdmVkRmlsdGVyQ2hhbmdlcyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZpbHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXNhdmVkLWZpbHRlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtc2F2ZWQtZmlsdGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gT25lIG9mIGEgcmVwb3J0J3Mgc2F2ZWQgZmlsdGVycywgc2hhcmVkIGJ5IGV2ZXJ5b25lIHdobyBtYXkgb3BlbiB0aGVcbi8vIHJlcG9ydDogYSBuYW1lIGFuZCB0aGUgdmFsdWVzIG9mIHRoZSByZXBvcnQtd2lkZSBmaWx0ZXJzIChsZXZlbCByZXBvcnQgb3Jcbi8vIGJvdGgpIGl0IHB1dHMgYmFjayBvbiBldmVyeSBwYWdlLiBgZmlsdGVyc2AgaXMga2V5ZWQgYnkgdGhlIHJlcG9ydCBiYXInc1xuLy8gaXRlbSBuYW1lcyAoZmlsdGVyPGdyb3VwSWQ+KSwgZWFjaCB2YWx1ZSBpbiB0aGUgc2hhcGUgdGhlIGJhcidzIGl0ZW0gaG9sZHNcbi8vIGl0IChhIGRhdGUgcmFuZ2UncyBkYXlzIGFzIHl5eXktTU0tZGQpLiBQYWdlIGZpbHRlcnMsIHRoZSBncm91cC1ieSBncmFpbixcbi8vIHRoZSBtYXRjaCwgbGlzdCBzb3J0cywgc2VhcmNoZXMsIGhpZGRlbiBjb2x1bW5zLCB0aGUgcGFnZSBhbmQgZHJpbGwgcGF0aHNcbi8vIGFyZSBuZXZlciBwYXJ0IG9mIGl0LlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTYXZlZEZpbHRlciB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgZmlsdGVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8vIEl0cyBwbGFjZSBpbiB0aGUgcmVwb3J0J3MgbGlzdDsgdGhlIGxpc3QgYXJyaXZlcyBpbiB0aGlzIG9yZGVyLlxuICBvcmRlcj86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXN0YXRlLXNuYXBzaG90LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC1zdGF0ZS1zbmFwc2hvdC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9ydEZpbHRlck1hdGNoIH0gZnJvbSAnLi9yZXBvcnQtZmlsdGVyLW1hdGNoLnR5cGUnO1xuaW1wb3J0IHsgUmVwb3J0VGlsZVN0YXRlIH0gZnJvbSAnLi9yZXBvcnQtdGlsZS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hhcnRHcmFudWxhcml0eSwgRmlsdGVyR3JvdXBEZWZhdWx0IH0gZnJvbSAnLi9yZXBvcnQuaW50ZXJmYWNlJztcblxuXG4vLyBUaGUgdmlld2VyJ3Mgc3RhdGUgb24gc2NyZWVuIGFzIG9uZSBkb2N1bWVudCAoUmVwb3J0RmlsdGVyU3RhdGVTZXJ2aWNlXG4vLyAuc25hcHNob3QpOiB3aGF0IGEgdGlsZSdzIGRhdGEgcmVxdWVzdCwgdGhlIGV4cG9ydHMgYW5kIHRoZSBjaGF0IHJlYWQuIEl0XG4vLyBpcyBuZXZlciBzYXZlZCBhbmQgbmV2ZXIgd3JpdHRlbiB0byB0aGUgYnJvd3NlciBVUkwuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFN0YXRlU25hcHNob3Qge1xuICAvLyBUaGUgb3BlbiBwYWdlLlxuICBwYWdlSWQ/OiBudW1iZXI7XG4gIC8vIFRoZSByZXBvcnQncyBncm91cC1ieSBncmFpbi5cbiAgZ3JvdXBCeT86IENoYXJ0R3JhbnVsYXJpdHk7XG4gIC8vIEFic2VudCA9ICdhbGwnLlxuICBtYXRjaD86IFJlcG9ydEZpbHRlck1hdGNoO1xuICAvLyBHcm91cCBpZCAtPiBpdHMgdmFsdWUgaW4gdGhlIHN0b3JlZCBzaGFwZTsgbnVsbCA9IGNsZWFyZWQgb24gcHVycG9zZS5cbiAgZ3JvdXBzPzogUmVjb3JkPG51bWJlciwgRmlsdGVyR3JvdXBEZWZhdWx0IHwgbnVsbD47XG4gIC8vIENvbXBvbmVudCBpZCAtPiB0aGF0IHRpbGUncyBvd24gc3RhdGUuXG4gIHRpbGVzPzogUmVjb3JkPG51bWJlciwgUmVwb3J0VGlsZVN0YXRlPjtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRlbXBvcmFyeS1zdGF0ZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtdGVtcG9yYXJ5LXN0YXRlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhlIHZpZXdlcidzIHRlbXBvcmFyeSBzdGF0ZTogd2hhdCBpdCBwaWNrZWQgb24gYSB0aWxlIGZvciB0aGlzIHZpc2l0IG9ubHkuXG4vLyBEYXRhIHJlcXVlc3RzIGFuZCBleHBvcnRzIHJlYWQgaXQ7IHRoZSBzbmFwc2hvdCBhbmQgdGhlIHNjcmVlbidzXG4vLyBcImRpZmZlcnMgZnJvbSB0aGUgZGVmYXVsdHNcIiBjaGVjayBuZXZlciBkbyAoUmVwb3J0RmlsdGVyU3RhdGVTZXJ2aWNlLnNuYXBzaG90KCkgbGVhdmVzIGl0IG91dCkuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFRlbXBvcmFyeVN0YXRlIHtcbiAgLy8gVGhlIGNyb3NzLWZpbHRlciBlbnRyaWVzIGluIGZvcmNlICh0aGUgdmlld2VyIGtlZXBzIGF0IG1vc3Qgb25lKS5cbiAgY3Jvc3NGaWx0ZXJzOiB1bmtub3duW107XG4gIC8vIFRoZSB0aWxlIGFuZCB2YWx1ZSB3aG9zZSByb3dzIHBhbmVsIGlzIG9wZW4sIG9yIG51bGwuXG4gIGRldGFpbDogdW5rbm93bjtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRpbGUtc3RhdGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2ludGVyZmFjZXMvcmVwb3J0LXRpbGUtc3RhdGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvcnREcmlsbFN0ZXAgfSBmcm9tICcuL3JlcG9ydC1kcmlsbC1zdGVwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXBvcnRTb3J0IH0gZnJvbSAnLi9yZXBvcnQuaW50ZXJmYWNlJztcblxuXG4vLyBPbmUgdGlsZSdzIG93biB2aWV3ZXIgc3RhdGUgaW4gYSBzbmFwc2hvdCAoUmVwb3J0U3RhdGVTbmFwc2hvdC50aWxlcyk6IG9ubHlcbi8vIHdoYXQgZGlmZmVycyBmcm9tIHRoZSBhdXRob3JlZCB0aWxlLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRUaWxlU3RhdGUge1xuICAvLyBBIGxpc3QncyBzb3J0LCBmaXJzdCB0ZXJtLlxuICBzb3J0PzogUmVwb3J0U29ydDtcbiAgLy8gQSBsaXN0J3Mgc2VhcmNoIGJveCB0ZXh0LlxuICBzZWFyY2g/OiBzdHJpbmc7XG4gIC8vIFRoZSBjb25maWcgY29sdW1uIG5hbWVzIGEgdmlld2VyIGhpZCBvbiBhIHBsYWluIGxpc3QuXG4gIGhpZGRlbj86IHN0cmluZ1tdO1xuICAvLyBBIGNoYXJ0J3MgZHJpbGwgcGF0aCwgdG9wIGZpcnN0LlxuICBkcmlsbD86IFJlcG9ydERyaWxsU3RlcFtdO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci1mZWF0dXJlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtdmlld2VyLWZlYXR1cmUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQSB2aWV3ZXIgY2FwYWJpbGl0eSB0aGUgc2VydmVyIGNhbiBzZXJ2ZSAoUmVwb3J0LnZpZXdlckZlYXR1cmVzKS4gVGhlXG4vLyB2aWV3ZXIgb2ZmZXJzIGEgY29udHJvbCBvbmx5IHdoZW4gdGhlIHJlcG9ydCBsaXN0cyBpdHMgZmVhdHVyZSwgYW5kIGl0XG4vLyBuYW1lcyB0aGUgZmVhdHVyZXMgaXQgaW1wbGVtZW50cyBvbiB0aGUgcmVwb3J0IEdFVCAoZmVhdHVyZXM9PGxpc3Q+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXdlci1mZWF0dXJlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3JlcG9ydHMvaW50ZXJmYWNlcy9yZXBvcnQtdmlld2VyLWZlYXR1cmUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQSB2aWV3ZXIgY2FwYWJpbGl0eSB0aGUgc2VydmVyIGNhbiBzZXJ2ZSAoUmVwb3J0LnZpZXdlckZlYXR1cmVzKS4gVGhlXG4vLyB2aWV3ZXIgb2ZmZXJzIGEgY29udHJvbCBvbmx5IHdoZW4gdGhlIHJlcG9ydCBsaXN0cyBpdHMgZmVhdHVyZSwgYW5kIGl0XG4vLyBuYW1lcyB0aGUgZmVhdHVyZXMgaXQgaW1wbGVtZW50cyBvbiB0aGUgcmVwb3J0IEdFVCAoZmVhdHVyZXM9PGxpc3Q+KS5cbi8vIE1pcnJvcnMgdGhlIHNlcnZlcidzIFJlcG9ydFZpZXdlckZlYXR1cmVFbnVtIHZhbHVlIGZvciB2YWx1ZS5cbmV4cG9ydCB0eXBlIFJlcG9ydFZpZXdlckZlYXR1cmUgPVxuICB8ICdleGNsdWRlVmFsdWVzJ1xuICB8ICdudW1iZXJSYW5nZSdcbiAgfCAnbWF0Y2hBbnknXG4gIHwgJ3BhZ2VTY29wZSdcbiAgfCAnY2FzY2FkaW5nT3B0aW9ucydcbiAgfCAnc2NvcGVGaWx0ZXJzJ1xuICB8ICdkcmlsbCdcbiAgfCAnY3Jvc3NGaWx0ZXInXG4gIHwgJ2RldGFpbCc7XG4iXX0=
|