@provoly/dashboard 1.4.13 → 1.4.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/core/model/result-set.interface.mjs +1 -1
- package/esm2022/lib/core/model/search-mono-class.model.mjs +1 -1
- package/esm2022/lib/core/store/relation-types/relation-types.actions.mjs +2 -1
- package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +2 -1
- package/esm2022/lib/core/store/relation-types/relation-types.service.mjs +5 -1
- package/esm2022/lib/core/store/search/search.actions.mjs +1 -1
- package/esm2022/lib/core/store/search/search.effects.mjs +3 -3
- package/esm2022/lib/core/store/search/search.service.mjs +17 -7
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -1
- package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +20 -1
- package/esm2022/search/search-mono-class/store/search-mono-class.service.mjs +4 -4
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +7 -3
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
- package/fesm2022/provoly-dashboard-search.mjs +3 -3
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +6 -2
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +44 -8
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/model/result-set.interface.d.ts +6 -0
- package/lib/core/model/search-mono-class.model.d.ts +9 -2
- package/lib/core/store/relation-types/relation-types.actions.d.ts +9 -0
- package/lib/core/store/relation-types/relation-types.effects.d.ts +5 -0
- package/lib/core/store/relation-types/relation-types.service.d.ts +1 -0
- package/lib/core/store/search/search.actions.d.ts +4 -0
- package/lib/core/store/search/search.effects.d.ts +1 -0
- package/lib/core/store/search/search.service.d.ts +2 -2
- package/lib/dashboard/store/dashboard.actions.d.ts +5 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
- package/package.json +31 -31
- package/search/search-fulltext/store/search-fulltext.effects.d.ts +1 -0
- package/search/search-mono-class/store/search-mono-class.effects.d.ts +1 -0
- package/search/search-mono-class/store/search-mono-class.service.d.ts +1 -1
- package/search/search-multi-class/store/search-multi-class.effects.d.ts +1 -0
- package/toolbox/shared/presentation-form/presentation-form.component.d.ts +1 -0
|
@@ -372,6 +372,25 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
372
372
|
resultSets: updatedResultSets
|
|
373
373
|
}
|
|
374
374
|
};
|
|
375
|
+
}), on(DashboardActions.removeRelationsFromResultSets, (state, action) => {
|
|
376
|
+
const updatedResultSets = JSON.parse(JSON.stringify(state.results.resultSets));
|
|
377
|
+
Object.keys(updatedResultSets).forEach((rsId) => {
|
|
378
|
+
const isConcerned = Object.keys(updatedResultSets[rsId].items).map((classId) => {
|
|
379
|
+
return updatedResultSets[rsId].items[classId].map((item) => item.id === action.relation.source || item.id === action.relation.destination);
|
|
380
|
+
});
|
|
381
|
+
if (isConcerned) {
|
|
382
|
+
updatedResultSets[rsId].relations.filter((rel) => rel.relationType !== action.relation.relationType ||
|
|
383
|
+
rel.source !== action.relation.source ||
|
|
384
|
+
rel.destination !== action.relation.destination);
|
|
385
|
+
}
|
|
386
|
+
});
|
|
387
|
+
return {
|
|
388
|
+
...state,
|
|
389
|
+
results: {
|
|
390
|
+
...state.results,
|
|
391
|
+
resultSets: updatedResultSets
|
|
392
|
+
}
|
|
393
|
+
};
|
|
375
394
|
}), on(DashboardActions.addItemToResultSets, (state, action) => {
|
|
376
395
|
const updatedResultSets = JSON.parse(JSON.stringify(state.results.resultSets));
|
|
377
396
|
if (!!action.resultSet) {
|
|
@@ -637,4 +656,4 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
|
|
|
637
656
|
export function dashboardReducer(state, action) {
|
|
638
657
|
return internalReducer(state, action);
|
|
639
658
|
}
|
|
640
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRy9GLE9BQU8sRUFDTCxtQkFBbUIsRUFJcEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUk3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFtQ3BELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFO1FBQ1gsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDM0I7UUFDRCxjQUFjLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFB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Q0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRTtRQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsT0FBTyxFQUFFLElBQUk7S0FDZDtDQUNGLENBQUMsQ0FBQyxDQUNKLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBcUIsRUFBRSxNQUFjO0lBQ3BFLE9BQU8sZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERpc3BsYXlPcHRpb25zLCBnZXREaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlbGF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZWxhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0T3JkZXIgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1vcmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0cyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCB9IGZyb20gJy4uLy4uL2NvcmUvc3RvcmUvc2VhcmNoL3NlYXJjaC5jb25zdGFudHMnO1xuaW1wb3J0IHsgc29sdmVDb2xsaXNpb25zIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zb2x2ZS1jb2xsaXNpb25zLmZ1bmN0aW9uJztcbmltcG9ydCB7IFdpZGdldFBsYWNlbWVudFV0aWxzIH0gZnJvbSAnLi4vY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1wbGFjZW1lbnQvd2lkZ2V0LXBsYWNlbWVudC51dGlscyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zLCBEYXNoYm9hcmRDZWxsUGFyYW1zLCBWaWV3TW9kZSB9IGZyb20gJy4vZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9DT0xVTU5TX05VTUJFUixcbiAgREVGQVVMVF9HQVBfUFgsXG4gIERFRkFVTFRfUk9XX0hFSUdIVF9QWCxcbiAgREVGQVVMVF9ST1dTX05VTUJFUlxufSBmcm9tICcuL2Rhc2hib2FyZC5jb250YW50cyc7XG5pbXBvcnQgeyBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSB9IGZyb20gJy4vd21zLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFuaWZlc3RVdGlscyB9IGZyb20gJy4vbWFuaWZlc3QtdXRpbHMuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkRmVhdHVyZUtleSA9ICdAcHJ5L2Rhc2hib2FyZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkU3RhdGUge1xuICBtYW5pZmVzdHM6IHtcbiAgICBzZW5kZXI6IHN0cmluZztcbiAgICB0ZW5hbnRzOiBzdHJpbmdbXTtcbiAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgbGlzdDogTWFuaWZlc3REZXNjcmlwdGlvbltdO1xuICAgIGN1cnJlbnRJZDogc3RyaW5nO1xuICAgIHN0YXRpY01hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdDtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICB9O1xuICBwcmVzZW50YXRpb246IHtcbiAgICBjdXJyZW50OiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAgIHZpZXdNb2RlPzogVmlld01vZGU7XG4gICAgaW5pdGlhbDogR2xvYmFsTWFuaWZlc3QgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlc3VsdHM6IHtcbiAgICByZXN1bHRTZXRzOiBSZXN1bHRTZXRzO1xuICAgIHJlc3VsdFNldHNQYXJhbXM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IHN0cmluZ1tdO1xuICAgIGRlZmF1bHREYXRhc291cmNlOiBzdHJpbmdbXTtcbiAgICBzZWxlY3RlZEl0ZW1zOiBzdHJpbmdbXTtcbiAgICBvYmplY3REZXRhaWxzOiB7IFtpZDogc3RyaW5nXTogSXRlbSB9O1xuICAgIHF1aWNrT3JkZXI6IHsgW2lkOiBzdHJpbmddOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCB9O1xuICB9O1xuICBkYXNoYm9hcmQ6IHtcbiAgICBwYXJhbXM6IERhc2hib2FyZENlbGxQYXJhbXM7XG4gICAgZWRpdGlvbk1vZGU6IGJvb2xlYW47XG4gIH07XG4gIHdtc0ZlYXR1cmVzOiB7IFtjb21wb25lbnRJZDogc3RyaW5nXTogYW55W10gfTtcbiAgZGlzcGxheT86IERpc3BsYXlPcHRpb25zO1xuICBjYXBhYmlsaXRpZXM6IHsgW3VybDogc3RyaW5nXTogR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfCBudWxsIH07XG59XG5cbmV4cG9ydCBjb25zdCBkYXNoYm9hcmRJbml0aWFsU3RhdGU6IERhc2hib2FyZFN0YXRlID0ge1xuICBtYW5pZmVzdHM6IHtcbiAgICBzZW5kZXI6ICcnLFxuICAgIHRlbmFudHM6IFtdLFxuICAgIG1hbmlmZXN0OiB7XG4gICAgICB3aW5kb3dzOiBbeyB3aWRnZXRzOiBbXSB9XVxuICAgIH0sXG4gICAgc3RhdGljTWFuaWZlc3Q6IHtcbiAgICAgIHdpbmRvd3M6IFt7IHdpZGdldHM6IFtdIH1dXG4gICAgfSxcbiAgICBsaXN0OiBbXSxcbiAgICBjdXJyZW50SWQ6ICcnLFxuICAgIGxvYWRpbmc6IGZhbHNlXG4gIH0sXG4gIHByZXNlbnRhdGlvbjoge1xuICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcbiAgICBpbml0aWFsOiB1bmRlZmluZWRcbiAgfSxcbiAgcmVzdWx0czoge1xuICAgIGF2YWlsYWJsZURhdGFzb3VyY2VOYW1lczogW10sXG4gICAgcmVzdWx0U2V0czoge1xuICAgICAgW0RFRkFVTFRfTkFNRURfUVVFUllfSURdOiB7IGl0ZW1zOiB7fSwgcmVsYXRpb25zOiBbXSB9LFxuICAgICAgW0VYUExPUkVfTkFNRURfUVVFUllfSURdOiB7IGl0ZW1zOiB7fSwgcmVsYXRpb25zOiBbXSB9XG4gICAgfSxcbiAgICByZXN1bHRTZXRzUGFyYW1zOiB7XG4gICAgICBbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF06IHVuZGVmaW5lZCxcbiAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXTogdW5kZWZpbmVkXG4gICAgfSxcbiAgICBkZWZhdWx0RGF0YXNvdXJjZTogWydjdXJyZW50J10sXG4gICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgb2JqZWN0RGV0YWlsczoge30sXG4gICAgcXVpY2tPcmRlcjoge31cbiAgfSxcbiAgZGFzaGJvYXJkOiB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBncmlkV2lkdGg6IDEsXG4gICAgICBncmlkSGVpZ2h0OiAxLFxuICAgICAgZ3JpZEdhcDogREVGQVVMVF9HQVBfUFgsXG4gICAgICBjb2x1bW5zOiBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLFxuICAgICAgY2VsbEhlaWdodDogREVGQVVMVF9ST1dfSEVJR0hUX1BYLFxuICAgICAgcm93czogREVGQVVMVF9ST1dTX05VTUJFUixcbiAgICAgIGNlbGxXaWR0aDogMSxcbiAgICAgIG9mZnNldExlZnQ6IDAsXG4gICAgICBvZmZzZXRUb3A6IDAsXG4gICAgICBtb2JpbGVNb2RlOiBmYWxzZVxuICAgIH0sXG4gICAgZWRpdGlvbk1vZGU6IGZhbHNlXG4gIH0sXG4gIHdtc0ZlYXR1cmVzOiB7fSxcbiAgY2FwYWJpbGl0aWVzOiB7fVxufTtcblxuY29uc3QgaW50ZXJuYWxSZWR1Y2VyID0gY3JlYXRlUmVkdWNlcjxEYXNoYm9hcmRTdGF0ZT4oXG4gIGRhc2hib2FyZEluaXRpYWxTdGF0ZSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5qb2luLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIHRlbmFudHM6IFsuLi5zdGF0ZS5tYW5pZmVzdHMudGVuYW50cywgYWN0aW9uLnNlbmRlcl0uc29ydCgpXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZGVjbGFyZVNlbmRlcklkLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIHNlbmRlcjogYWN0aW9uLnNlbmRlcixcbiAgICAgIHRlbmFudHM6IFsuLi4oc3RhdGUubWFuaWZlc3RzLnRlbmFudHMubGVuZ3RoID09PSAwID8gYWN0aW9uLnRlbmFudHMgOiBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cyldLnNvcnQoKVxuICAgIH1cbiAgfSkpLFxuICBvbihcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0LFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclRlbmFudEpvaW4sXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdEFmdGVyVGVuYW50TGVhdmUsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdEFmdGVyRmV0Y2gsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdFdpdGhvdXRBY3RpdmF0aW9uLFxuICAgIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAoISFhY3Rpb24uc2VuZGVyICYmICFzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5maW5kKCh0ZW5hbnQpID0+IHRlbmFudCA9PT0gYWN0aW9uLnNlbmRlcikgJiYgIWFjdGlvbi5qb2luaW5nKSB7XG4gICAgICAgIC8vIGlnbm9yZSBtYW5pZmVzdCB1cGRhdGVzIGZyb20gdGVuYW50cyB0aGF0IGhhdmUgbm90IGpvaW5lZFxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICAgIHRlbmFudHM6IFsuLi4oYWN0aW9uLnRlbmFudHMgPz8gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMpXS5zb3J0KCksXG4gICAgICAgICAgbWFuaWZlc3Q6IE1hbmlmZXN0VXRpbHMuY2xlYW51cE1hbmlmZXN0KGFjdGlvbi5tYW5pZmVzdCksXG4gICAgICAgICAgY3VycmVudElkOiBhY3Rpb24ubWFuaWZlc3RJZCA/PyBzdGF0ZS5tYW5pZmVzdHMuY3VycmVudElkXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcHJlc2VudGF0aW9uOiBhY3Rpb24ucHJlc2VudGF0aW9uID8/IHN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtczogYWN0aW9uLnNlbGVjdGVkSWRzLFxuICAgICAgICAgIHJlc3VsdFNldHM6ICEhYWN0aW9uLnJlc3VsdFNldHNcbiAgICAgICAgICAgID8geyAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsIC4uLmFjdGlvbi5yZXN1bHRTZXRzIH1cbiAgICAgICAgICAgIDogc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZGlzcGxheTogYWN0aW9uLmRpc3BsYXkgPz8gc3RhdGUuZGlzcGxheVxuICAgICAgfTtcbiAgICB9XG4gICksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlUm91dGVNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBzZW5kZXJSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihhY3Rpb24uc2VuZGVyID8/IHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuICAgIG5ld1dpbmRvd3Nbc2VuZGVyUmFua10gPSB7IC4uLm5ld1dpbmRvd3Nbc2VuZGVyUmFua10sIHJvdXRlOiBhY3Rpb24ucm91dGUgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IFsuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93c107XG4gICAgbmV3V2luZG93c1tteVJhbmtdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0TWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIChuZXdXaW5kb3dzW215UmFua10gPz8geyB3aWRnZXRzOiBbXSB9KS53aWRnZXRzW2FjdGlvbi5pbmRleF0gPSBhY3Rpb24ubWFuaWZlc3Q7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVSZXN1bHRTZXQsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICByZXN1bHRTZXRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cyxcbiAgICAgICAgW2FjdGlvbi5pZF06ICFhY3Rpb24ubmV4dFxuICAgICAgICAgID8gYWN0aW9uLnJlc3VsdFNldFxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhhY3Rpb24ucmVzdWx0U2V0Lml0ZW1zKS5jb25jYXQoT2JqZWN0LmtleXMoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW2FjdGlvbi5pZF0uaXRlbXMpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIFtrZXldOiBbLi4uYWN0aW9uLnJlc3VsdFNldC5pdGVtc1trZXldLCAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNbYWN0aW9uLmlkXS5pdGVtc1trZXldXVxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KSxcbiAgICAgICAgICAgICAgY291bnQ6IGFjdGlvbi5yZXN1bHRTZXQuY291bnQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uczogWy4uLnN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1thY3Rpb24uaWRdLnJlbGF0aW9ucywgLi4uYWN0aW9uLnJlc3VsdFNldC5yZWxhdGlvbnNdLFxuICAgICAgICAgICAgICBhdXRvUmVmcmVzaEludGVydmFsOiBhY3Rpb24ucmVzdWx0U2V0LmF1dG9SZWZyZXNoSW50ZXJ2YWwsXG4gICAgICAgICAgICAgIHNlYXJjaEFmdGVyOiBhY3Rpb24ucmVzdWx0U2V0LnNlYXJjaEFmdGVyXG4gICAgICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzdWx0U2V0c1BhcmFtczoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNQYXJhbXMsXG4gICAgICAgIFthY3Rpb24uaWRdOiBhY3Rpb24ucGFyYW1zXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMubWF4aW1pemVXaWRnZXQsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzW2FjdGlvbi53aWRnZXRJbmRleF0ubGF5b3V0ID0ge1xuICAgICAgeDogMSxcbiAgICAgIHk6IDEsXG4gICAgICB3aWR0aDogc3RhdGUuZGFzaGJvYXJkLnBhcmFtcy5jb2x1bW5zLFxuICAgICAgaGVpZ2h0OiBzdGF0ZS5kYXNoYm9hcmQucGFyYW1zLnJvd3NcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0QXZhaWxhYmxlTmFtZWRRdWVyaWVzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgYXZhaWxhYmxlRGF0YXNvdXJjZU5hbWVzOiBhY3Rpb24ubmFtZXMsXG4gICAgICBkZWZhdWx0RGF0YXNvdXJjZTogc3RhdGUucmVzdWx0cy5kZWZhdWx0RGF0YXNvdXJjZS5maWx0ZXIoKHJzTmFtZSkgPT4gYWN0aW9uLm5hbWVzLmluY2x1ZGVzKHJzTmFtZSkpXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0RGVmYXVsdERhdGFzb3VyY2UsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBkZWZhdWx0RGF0YXNvdXJjZTogYWN0aW9uLm5hbWVzXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc29sdmVDb2xsaXNpb25zLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgd2luZG93czogc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKCh3aW5kb3cpID0+IHtcbiAgICAgICAgICBjb25zdCBbZmlyc3QsIC4uLm90aGVyc10gPSB3aW5kb3cud2lkZ2V0cztcbiAgICAgICAgICByZXR1cm4gc29sdmVDb2xsaXNpb25zKGZpcnN0LCBvdGhlcnMsIHdpbmRvdyk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGFzaGJvYXJkUGFyYW1zLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBkYXNoYm9hcmQ6IHtcbiAgICAgIC4uLnN0YXRlLmRhc2hib2FyZCxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICAuLi5zdGF0ZS5kYXNoYm9hcmQucGFyYW1zLFxuICAgICAgICAuLi5hY3Rpb24ucGFyYW1zXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudG9nZ2xlRWRpdGlvbk1vZGUsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGRhc2hib2FyZDoge1xuICAgICAgLi4uc3RhdGUuZGFzaGJvYXJkLFxuICAgICAgZWRpdGlvbk1vZGU6IGFjdGlvbi5mb3JjZSA/PyAhc3RhdGUuZGFzaGJvYXJkLmVkaXRpb25Nb2RlXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgc2VsZWN0ZWRJdGVtczogW1xuICAgICAgICAuLi5uZXcgU2V0KFxuICAgICAgICAgICFhY3Rpb24uY3VtdWxhdGl2ZVxuICAgICAgICAgICAgPyBbYWN0aW9uLmlkXVxuICAgICAgICAgICAgOiBzdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMuZmluZCgoaWQpID0+IGlkID09PSBhY3Rpb24uaWQpXG4gICAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoaWQpID0+IGlkICE9PSBhY3Rpb24uaWQpXG4gICAgICAgICAgICAgIDogWy4uLnN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcywgYWN0aW9uLmlkXVxuICAgICAgICApXG4gICAgICBdXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuaW52ZXJ0U2VsZWN0aW9uLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGFsbEl0ZW1zID0gT2JqZWN0LmtleXMoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzKVxuICAgICAgLm1hcCgocnMpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1tyc10uaXRlbXMpXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW3JzXS5pdGVtc1tjbGFzc0lkXSBhcyBJdGVtW10pXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgIClcbiAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmlkKTtcblxuICAgIGNvbnN0IGludmVydGVkSXRlbXNJZCA9IGFsbEl0ZW1zLmZpbHRlcigoaXRlbUlkKSA9PiAhc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGl0ZW1JZCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4ubmV3IFNldChpbnZlcnRlZEl0ZW1zSWQpXVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdE1hbnksIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4ubmV3IFNldChhY3Rpb24uaWRzKV1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdHNMaXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIGxpc3Q6IGFjdGlvbi5tYW5pZmVzdHNcbiAgICB9LFxuICAgIHByZXNlbnRhdGlvbjoge1xuICAgICAgLi4uc3RhdGUucHJlc2VudGF0aW9uLFxuICAgICAgY3VycmVudDogISFzdGF0ZS5wcmVzZW50YXRpb24uY3VycmVudFxuICAgICAgICA/IGFjdGlvbi5tYW5pZmVzdHMuZmluZCgobWFuaWZlc3QpID0+IG1hbmlmZXN0LmlkID09PSBzdGF0ZS5wcmVzZW50YXRpb24uY3VycmVudD8uaWQpID8/XG4gICAgICAgICAgc3RhdGUucHJlc2VudGF0aW9uLmN1cnJlbnRcbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVTdGF0aWNNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBzdGF0aWNNYW5pZmVzdDogYWN0aW9uLnN0YXRpY01hbmlmZXN0XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMubG9hZEFuZEFjdGl2YXRlTWFuaWZlc3QsIERhc2hib2FyZEFjdGlvbnMubG9hZE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIHdpbmRvd3M6IFsuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cy5tYXAoKHdpbk1hbmlmZXN0KSA9PiAoeyAuLi53aW5NYW5pZmVzdCwgd2lkZ2V0czogW10gfSkpXVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmNsZWFyTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICB3aW5kb3dzOiBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKChwcmV2aW91cykgPT4gKHsgLi4ucHJldmlvdXMsIHdpZGdldHM6IFtdIH0pKV0sXG4gICAgICAgIGZpbHRlcnM6IFtdXG4gICAgICB9LFxuICAgICAgY3VycmVudElkOiAnJ1xuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU9iamVjdHNEZXRhaWxzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgb2JqZWN0RGV0YWlsczoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLm9iamVjdERldGFpbHMsXG4gICAgICAgIC4uLmFjdGlvbi5saXN0XG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZXhwbG9yZSwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAgIC5tYXAoKGtleSkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW2tleV0uaXRlbXMpXG4gICAgICAgICAgLm1hcCgoa2V5Q2xhc3MpID0+IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1trZXldLml0ZW1zW2tleUNsYXNzXS5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBhY3Rpb24uaWQpKVxuICAgICAgICAgIC5maW5kKChpdCkgPT4gISFpdClcbiAgICAgIClcbiAgICAgIC5maW5kKChpdCkgPT4gISFpdCkgYXMgSXRlbTtcblxuICAgIGNvbnN0IGFjdHVhbFdpbmRvd3MgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cztcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IGFjdHVhbFdpbmRvd3MuY29uY2F0KHtcbiAgICAgICAgICAgIHdpZGdldHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCB3aWR0aDogMTIsIGhlaWdodDogMTIgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZ3JhcGgnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIGRhdGFzb3VyY2U6IEVYUExPUkVfTkFNRURfUVVFUllfSURcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHJlc3VsdFNldHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsXG4gICAgICAgICAgW0VYUExPUkVfTkFNRURfUVVFUllfSURdOiB7XG4gICAgICAgICAgICBpdGVtczogeyBbY3VycmVudEl0ZW0ub0NsYXNzXTogW2N1cnJlbnRJdGVtXSB9LFxuICAgICAgICAgICAgcmVsYXRpb25zOiBbXSBhcyBSZWxhdGlvbltdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0UmVmcmVzaFJhdGUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgcmVmcmVzaFJhdGVzOiB7IC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5yZWZyZXNoUmF0ZXMsIFthY3Rpb24uaWRdOiBhY3Rpb24ucmF0ZSB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRSZWxhdGlvbnNUb1Jlc3VsdFNldHMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZFJlc3VsdFNldHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cykpO1xuICAgIGFjdGlvbi5yZWxhdGlvbnMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZWRSZXN1bHRTZXRzKS5mb3JFYWNoKChyc0lkKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQ29uY2VybmVkID0gT2JqZWN0LmtleXModXBkYXRlZFJlc3VsdFNldHNbcnNJZF0uaXRlbXMpLm1hcCgoY2xhc3NJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5pdGVtc1tjbGFzc0lkXS5tYXAoXG4gICAgICAgICAgICAoaXRlbTogSXRlbSkgPT4gaXRlbS5pZCA9PT0gcmVsYXRpb24uc291cmNlIHx8IGl0ZW0uaWQgPT09IHJlbGF0aW9uLmRlc3RpbmF0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0NvbmNlcm5lZCkge1xuICAgICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW3JzSWRdLnJlbGF0aW9ucy5wdXNoKHJlbGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB1cGRhdGVkUmVzdWx0U2V0c1xuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmFkZEl0ZW1Ub1Jlc3VsdFNldHMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZFJlc3VsdFNldHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cykpO1xuXG4gICAgaWYgKCEhYWN0aW9uLnJlc3VsdFNldCkge1xuICAgICAgaWYgKCF1cGRhdGVkUmVzdWx0U2V0c1thY3Rpb24ucmVzdWx0U2V0XS5pdGVtc1thY3Rpb24uaXRlbS5vQ2xhc3NdKSB7XG4gICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW2FjdGlvbi5yZXN1bHRTZXRdLml0ZW1zW2FjdGlvbi5pdGVtLm9DbGFzc10gPSBbYWN0aW9uLml0ZW1dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZFJlc3VsdFNldHNbYWN0aW9uLnJlc3VsdFNldF0uaXRlbXNbYWN0aW9uLml0ZW0ub0NsYXNzXS5wdXNoKGFjdGlvbi5pdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHJlc3VsdFNldHM6IHVwZGF0ZWRSZXN1bHRTZXRzXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucXVpY2tPcmRlciwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHF1aWNrT3JkZXI6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnF1aWNrT3JkZXIsXG4gICAgICAgICAgW2FjdGlvbi5kYXRhc291cmNlSWRdOiBhY3Rpb24uYXNjID8geyBhdHRyaWJ1dGU6IGFjdGlvbi5hdHRyaWJ1dGUsIGFzYzogYWN0aW9uLmFzYyB9IDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24sIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAgIC4uLnN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgY3VycmVudDogYWN0aW9uLnByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IGFjdGlvbi52aWV3TW9kZSxcbiAgICAgICAgaW5pdGlhbDogYWN0aW9uLnByZXNlbnRhdGlvbiA/IHN0YXRlLnByZXNlbnRhdGlvbi5pbml0aWFsIDogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0SW5pdGlhbFByZXNlbnRhdGlvbiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBwcmVzZW50YXRpb246IHtcbiAgICAgICAgLi4uc3RhdGUucHJlc2VudGF0aW9uLFxuICAgICAgICBpbml0aWFsOiBhY3Rpb24uaW5pdGlhbFxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEdyaWRMYXlvdXQsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cyA/PyBbXSkpO1xuICAgIGlmICghbmV3V2luZG93c1tteVJhbmtdKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10gPSB7IHdpZGdldHM6IFtdIH07XG4gICAgfVxuICAgIGlmICghbmV3V2luZG93c1tteVJhbmtdLmdyaWQpIHtcbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkID0ge307XG4gICAgfVxuICAgIGlmICghbmV3V2luZG93c1tteVJhbmtdLndpZGdldHMpIHtcbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzID0gW107XG4gICAgfVxuICAgIG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLmxheW91dCA9IGFjdGlvbi5sYXlvdXQ7XG4gICAgaWYgKGFjdGlvbi5sYXlvdXQgIT09IERhc2hib2FyZEdyaWRMYXlvdXQuTUFOVUFMKSB7XG4gICAgICBjb25zdCBsYXlvdXQgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQoYWN0aW9uLmxheW91dCk7XG4gICAgICAvLyBSZW9yZGVyIGxheW91dHNcbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkID0ge1xuICAgICAgICAuLi5uZXdXaW5kb3dzW215UmFua10uZ3JpZCxcbiAgICAgICAgcm93czogbGF5b3V0Py5yb3dzID8/IERFRkFVTFRfUk9XU19OVU1CRVIsXG4gICAgICAgIGNvbHVtbnM6IGxheW91dD8uY29sdW1ucyA/PyBERUZBVUxUX0NPTFVNTlNfTlVNQkVSXG4gICAgICB9O1xuICAgICAgY29uc3QgcGxhY2VzID0gV2lkZ2V0UGxhY2VtZW50VXRpbHMucGxhY2VtZW50T3B0aW9ucyh7fSBhcyBXaWRnZXRNYW5pZmVzdCwgYWN0aW9uLmxheW91dCk7XG5cbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzLmZvckVhY2goKHdpZGdldDogV2lkZ2V0TWFuaWZlc3QsIGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXRMYXlvdXQgPSBwbGFjZXNbaWR4XT8ubGF5b3V0O1xuICAgICAgICBpZiAoIXRhcmdldExheW91dCkge1xuICAgICAgICAgIHRhcmdldExheW91dCA9IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9O1xuICAgICAgICAgIGNvbnNvbGUud2FybignSW5jb3JyZWN0IHBsYWNlbWVudCBjYWxjdWxhdGlvbicsIHBsYWNlcywgaWR4LCB3aWRnZXQsIGFjdGlvbi5sYXlvdXQpO1xuICAgICAgICB9XG4gICAgICAgIHdpZGdldC5sYXlvdXQgPSB7IC4uLnRhcmdldExheW91dCB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuY3JlYXRlVGFiLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbXlMYXlvdXQgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93c1tteVJhbmtdLmdyaWQ/LmxheW91dCA/PyBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTDtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3MucHVzaCh7IGdyaWQ6IHsgbGF5b3V0OiBteUxheW91dCB9LCB3aWRnZXRzOiBbXSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZXN0b3JlSW5pdGlhbE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLnByZXNlbnRhdGlvbi5pbml0aWFsKSlcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5wcm9wYWdhdGVHcmlkTGF5b3V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzKSk7XG4gICAgbmV3V2luZG93c1thY3Rpb24ucmFua10gPSBhY3Rpb24ubWFuaWZlc3Q7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRGaWx0ZXJzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgZmlsdGVyczogYWN0aW9uLmZpbHRlcnNcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGlzUHJlc2VudCA9IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5pZCA9PT0gYWN0aW9uLmZpbHRlci5pZCk7XG4gICAgbGV0IGZpbHRlcnMgPSBbXTtcbiAgICBpZiAoaXNQcmVzZW50KSB7XG4gICAgICBmaWx0ZXJzID1cbiAgICAgICAgc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnM/Lm1hcCgoZmlsdGVyKSA9PiAoZmlsdGVyLmlkID09PSBhY3Rpb24uZmlsdGVyLmlkID8gYWN0aW9uLmZpbHRlciA6IGZpbHRlcikpID8/XG4gICAgICAgIFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMpIHtcbiAgICAgICAgZmlsdGVycyA9IFsuLi4oc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMgYXMgRmlsdGVyW10pLCBhY3Rpb24uZmlsdGVyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbHRlcnMgPSBbYWN0aW9uLmZpbHRlcl07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIGZpbHRlcnM6IGZpbHRlcnNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlciwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIGZpbHRlcnM6IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlkICE9PSBhY3Rpb24uaWQpXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVycywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlclZhbHVlLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzID8/IFtdKSkgYXMgRmlsdGVyW107XG5cbiAgICBjb25zdCBmaWx0ZXJUb1VwZGF0ZSA9IGZpbHRlcnMuZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IGFjdGlvbi5pZCk7XG4gICAgaWYgKGZpbHRlclRvVXBkYXRlKSB7XG4gICAgICBpZiAoIWFjdGlvbi52YWx1ZSkge1xuICAgICAgICBkZWxldGUgZmlsdGVyVG9VcGRhdGUudmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWx0ZXJUb1VwZGF0ZS52YWx1ZSA9IGFjdGlvbi52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICBmaWx0ZXJzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5jbGVhckFsbEZpbHRlclZhbHVlcywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICBmaWx0ZXJzOiBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8ubWFwKChmaWx0ZXIpID0+ICh7IC4uLmZpbHRlciwgdmFsdWU6IHVuZGVmaW5lZCB9KSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihcbiAgICBEYXNoYm9hcmRBY3Rpb25zLmdldFdtc0ZlYXR1cmVzLFxuICAgIERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcyxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLmdldFdmc0ZlYXR1cmVzRm9yUG9pbnRTdGFja1Rvb2x0aXBzLFxuICAgIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IHsgLi4uc3RhdGUud21zRmVhdHVyZXMgfTtcbiAgICAgIGRlbGV0ZSBmZWF0dXJlc1thY3Rpb24uY29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHdtc0ZlYXR1cmVzOiBmZWF0dXJlc1xuICAgICAgfTtcbiAgICB9XG4gICksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuYWRkV21zRmVhdHVyZXMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgYWxsQ29tcG9uZW50RmVhdHVyZXMgPSBbLi4uKHN0YXRlLndtc0ZlYXR1cmVzW2FjdGlvbi5jb21wb25lbnRJZF0gPz8gW10pLCAuLi5hY3Rpb24uZmVhdHVyZXNdO1xuICAgIGNvbnN0IGRlRHVwZWRJZHMgPSBbLi4ubmV3IFNldChhbGxDb21wb25lbnRGZWF0dXJlcy5tYXAoKGZlYXQpID0+IGZlYXQuaWQpKV07XG4gICAgY29uc3QgZ2xvYmFsRmVhdHVyZXMgPSB7XG4gICAgICAuLi5zdGF0ZS53bXNGZWF0dXJlcyxcbiAgICAgIFthY3Rpb24uY29tcG9uZW50SWRdOiBkZUR1cGVkSWRzLm1hcCgoaWQpID0+IGFsbENvbXBvbmVudEZlYXR1cmVzLmZpbmQoKGZlYXQpID0+IGZlYXQuaWQgPT09IGlkKSlcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgd21zRmVhdHVyZXM6IGdsb2JhbEZlYXR1cmVzXG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZmV0Y2hTdGF0aWNNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBsb2FkaW5nOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZW5kTG9hZGluZywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURpc3BsYXlPcHRpb25zLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGRpc3BsYXk6IGFjdGlvbi5jdXN0b21EaXNwbGF5ID8gYWN0aW9uLmN1c3RvbURpc3BsYXkgOiBnZXREaXNwbGF5T3B0aW9ucyhhY3Rpb24ubW9kZSlcbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVDYXBhYmlsaXR5LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICAuLi5zdGF0ZS5jYXBhYmlsaXRpZXMsXG4gICAgICAgIFthY3Rpb24udXJsXTogYWN0aW9uLmNhcGFiaWxpdHlcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5sb2FkUHJlc2VudGF0aW9uLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBsb2FkaW5nOiB0cnVlXG4gICAgfVxuICB9KSlcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXNoYm9hcmRSZWR1Y2VyKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pIHtcbiAgcmV0dXJuIGludGVybmFsUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbn1cbiJdfQ==
|
|
659
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRy9GLE9BQU8sRUFDTCxtQkFBbUIsRUFJcEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUk3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFtQ3BELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFO1FBQ1gsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDM0I7UUFDRCxjQUFjLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLEVBQUU7UUFDYixPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsWUFBWSxFQUFFO1FBQ1osT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxPQUFPLEVBQUU7UUFDUCx3QkFBd0IsRUFBRSxFQUFFO1FBQzVCLFVBQVUsRUFBRTtZQUNWLENBQUMsc0JBQXNCLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUN0RCxDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7U0FDdkQ7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUztZQUNuQyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsU0FBUztTQUNwQztRQUNELGlCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDO1FBQzlCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFVBQVUsRUFBRSxFQUFFO0tBQ2Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUU7WUFDTixTQUFTLEVBQUUsQ0FBQztZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixVQUFVLEVBQUUscUJBQXFCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUI7WUFDekIsU0FBUyxFQUFFLENBQUM7WUFDWixVQUFVLEVBQUUsQ0FBQztZQUNiLFNBQVMsRUFBRSxDQUFDO1lBQ1osVUFBVSxFQUFFLEtBQUs7U0FDbEI7UUFDRCxXQUFXLEVBQUUsS0FBSztLQUNuQjtJQUNELFdBQVcsRUFBRSxFQUFFO0lBQ2YsWUFBWSxFQUFFLEVBQUU7Q0FDakIsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FDbkMscUJBQXFCLEVBQ3JCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRTtRQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFO0tBQzVEO0NBQ0YsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkQsR0FBRyxLQUFLO0lBQ1IsU0FBUyxFQUFFO1FBQ1QsR0FBRyxLQUFLLENBQUMsU0FBUztRQUNsQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7S0FDdkc7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQ0EsZ0JBQWdCLENBQUMsY0FBYyxFQUMvQixnQkFBZ0IsQ0FBQyw2QkFBNkIsRUFDOUMsZ0JBQWdCLENBQUMsOEJBQThCLEVBQy9DLGdCQUFnQixDQUFDLHdCQUF3QixFQUN6QyxnQkFBZ0IsQ0FBQywrQkFBK0IsRUFDaEQsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDaEIsYUFBYTtJQUNiLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUcsNERBQTREO1FBQzVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDaEUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxTQUFTLEVBQUUsTUFBTSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVM7U0FDMUQ7UUFDRCxhQUFhO1FBQ2IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVk7UUFDdkQsT0FBTyxFQUFFO1lBQ1AsR0FBRyxLQUFLLENBQUMsT0FBTztZQUNoQixhQUFhLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDakMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDN0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3ZELENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVU7U0FDN0I7UUFDRCxhQUFhO1FBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU87S0FDekMsQ0FBQztBQUNKLENBQUMsQ0FDRixFQUNELEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUN6RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVGLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTVFLE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFDM0IsT0FBTyxFQUFFLFVBQVU7YUFDcEI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDN0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBRXJDLE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFDM0IsT0FBTyxFQUFFLFVBQVU7YUFDcEI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDMUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFFaEYsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUMzQixPQUFPLEVBQUUsVUFBVTthQUNwQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELEdBQUcsS0FBSztJQUNSLE9BQU8sRUFBRTtRQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87UUFDaEIsVUFBVSxFQUFFO1lBQ1YsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDM0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUNsQixDQUFDLENBQUM7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLEdBQUcsSUFBSSxHQUFHLENBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNuRztxQkFDRjt5QkFDRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ2IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUMzRixDQUFDLENBQUM7eUJBQ0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3pDLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUs7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO29CQUM1RixtQkFBbUIsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLG1CQUFtQjtvQkFDekQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVztpQkFDMUM7U0FDTjtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDakMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU07U0FDM0I7S0FDRjtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDcEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDaEYsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHO1FBQ3RELENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixLQUFLLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTztRQUNyQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSTtLQUNwQyxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUMzQixPQUFPLEVBQUUsVUFBVTthQUNwQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEUsR0FBRyxLQUFLO0lBQ1IsT0FBTyxFQUFFO1FBQ1AsR0FBRyxLQUFLLENBQUMsT0FBTztRQUNoQix3QkFBd0IsRUFBRSxNQUFNLENBQUMsS0FBSztRQUN0QyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckc7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVELEdBQUcsS0FBSztJQUNSLE9BQU8sRUFBRTtRQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87UUFDaEIsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLEtBQUs7S0FDaEM7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUU7UUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLFFBQVEsRUFBRTtZQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZELE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUMxQyxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQztTQUNIO0tBQ0Y7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRTtRQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsTUFBTSxFQUFFO1lBQ04sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07WUFDekIsR0FBRyxNQUFNLENBQUMsTUFBTTtTQUNqQjtLQUNGO0NBQ0YsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUU7UUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLFdBQVcsRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXO0tBQzFEO0NBQ0YsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsR0FBRyxLQUFLO0lBQ1IsT0FBTyxFQUFFO1FBQ1AsR0FBRyxLQUFLLENBQUMsT0FBTztRQUNoQixhQUFhLEVBQUU7WUFDYixHQUFHLElBQUksR0FBRyxDQUNSLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQzFELENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUM5RCxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FDbEQ7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUNyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ25ELEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ1YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDNUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFXLENBQUM7U0FDdkUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN0QztTQUNBLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDbEMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFMUIsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVuRyxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsT0FBTyxFQUFFO1lBQ1AsR0FBRyxLQUFLLENBQUMsT0FBTztZQUNoQixhQUFhLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzdDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELEdBQUcsS0FBSztJQUNSLE9BQU8sRUFBRTtRQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87UUFDaEIsYUFBYSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEM7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNELEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRTtRQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTO0tBQ3ZCO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxLQUFLLENBQUMsWUFBWTtRQUNyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTztZQUNuQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNuRixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU87WUFDNUIsQ0FBQyxDQUFDLFNBQVM7S0FDZDtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsR0FBRyxLQUFLO0lBQ1IsU0FBUyxFQUFFO1FBQ1QsR0FBRyxLQUFLLENBQUMsU0FBUztRQUNsQixjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWM7S0FDdEM7Q0FDRixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RixHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUU7UUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLFFBQVEsRUFBRTtZQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdkc7S0FDRjtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRTtRQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsUUFBUSxFQUFFO1lBQ1IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDM0IsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRyxPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0QsU0FBUyxFQUFFLEVBQUU7S0FDZDtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsR0FBRyxLQUFLO0lBQ1IsT0FBTyxFQUFFO1FBQ1AsR0FBRyxLQUFLLENBQUMsT0FBTztRQUNoQixhQUFhLEVBQUU7WUFDYixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUM5QixHQUFHLE1BQU0sQ0FBQyxJQUFJO1NBQ2Y7S0FDRjtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDN0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUN0RCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQzdDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEcsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ3RCO1NBQ0EsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFTLENBQUM7SUFFOUIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBRXZELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFDM0IsT0FBTyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQzVCLE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFOzRCQUM3QyxJQUFJLEVBQUUsT0FBTzs0QkFDYixPQUFPLEVBQUUsRUFBRTs0QkFDWCxVQUFVLEVBQUUsc0JBQXNCO3lCQUNuQztxQkFDRjtpQkFDRixDQUFDO2FBQ0g7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87WUFDaEIsVUFBVSxFQUFFO2dCQUNWLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVO2dCQUMzQixDQUFDLHNCQUFzQixDQUFDLEVBQUU7b0JBQ3hCLEtBQUssRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzlDLFNBQVMsRUFBRSxFQUFnQjtpQkFDNUI7YUFDRjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDcEQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUMzQixZQUFZLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2FBQ3JGO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQzlELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMvRSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUM3RSxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQy9DLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsV0FBVyxDQUNoRixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLE9BQU8sRUFBRTtZQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87WUFDaEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDbkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdFLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FDL0MsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDOUYsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUN0QyxDQUFDLEdBQWEsRUFBRSxFQUFFLENBQ2hCLEdBQUcsQ0FBQyxZQUFZLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUNqRCxHQUFHLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDckMsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDbEQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixPQUFPLEVBQUU7WUFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO1lBQ2hCLFVBQVUsRUFBRSxpQkFBaUI7U0FDOUI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3pELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUUvRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25FLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRixDQUFDO2FBQU0sQ0FBQztZQUNOLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLE9BQU8sRUFBRTtZQUNQLEdBQUcsS0FBSyxDQUFDLE9BQU87WUFDaEIsVUFBVSxFQUFFLGlCQUFpQjtTQUM5QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ2hELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixPQUFPLEVBQUU7WUFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVTtnQkFDM0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ2pHO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3hELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixZQUFZLEVBQUU7WUFDWixHQUFHLEtBQUssQ0FBQyxZQUFZO1lBQ3JCLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWTtZQUM1QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3RFO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUM1RCxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsWUFBWSxFQUFFO1lBQ1osR0FBRyxLQUFLLENBQUMsWUFBWTtZQUNyQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUNuRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMvQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxrQkFBa0I7UUFDbEIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksR0FBRztZQUN4QixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJO1lBQzFCLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLG1CQUFtQjtZQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxzQkFBc0I7U0FDbkQsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLEVBQW9CLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFGLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBc0IsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUN6RSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RixDQUFDO1lBQ0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUMzQixPQUFPLEVBQUUsVUFBVTthQUNwQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDO0lBQ3JHLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0QsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUMzQixPQUFPLEVBQUUsVUFBVTthQUNwQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUM1RCxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsU0FBUyxFQUFFO1lBQ1QsR0FBRyxLQUFLLENBQUMsU0FBUztZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakU7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUUxQyxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsU0FBUyxFQUFFO1lBQ1QsR0FBRyxLQUFLLENBQUMsU0FBUztZQUNsQixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVE7Z0JBQzNCLE9BQU8sRUFBRSxVQUFVO2FBQ3BCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsR0FBRyxLQUFLO0lBQ1IsU0FBUyxFQUFFO1FBQ1QsR0FBRyxLQUFLLENBQUMsU0FBUztRQUNsQixRQUFRLEVBQUU7WUFDUixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEI7S0FDRjtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDbkQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JHLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTztZQUNMLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVHLEVBQUUsQ0FBQztJQUNQLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEdBQUcsQ0FBQyxHQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQW9CLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2dCQUMzQixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRTtRQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsUUFBUSxFQUFFO1lBQ1IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztTQUN2RjtLQUNGO0NBQ0YsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUU7UUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLFFBQVEsRUFBRTtZQUNSLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQzNCLE9BQU8sRUFBRSxFQUFFO1NBQ1o7S0FDRjtDQUNGLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFhLENBQUM7SUFFL0YsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekUsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLGNBQWMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFDM0IsT0FBTzthQUNSO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQzFELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUTtnQkFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzthQUM5RjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FDQSxnQkFBZ0IsQ0FBQyxjQUFjLEVBQy9CLGdCQUFnQixDQUFDLGdCQUFnQixFQUNqQyxnQkFBZ0IsQ0FBQyxtQ0FBbUMsRUFDcEQsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDaEIsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFdBQVcsRUFBRSxRQUFRO0tBQ3RCLENBQUM7QUFDSixDQUFDLENBQ0YsRUFDRCxFQUFFLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3BELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEcsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxNQUFNLGNBQWMsR0FBRztRQUNyQixHQUFHLEtBQUssQ0FBQyxXQUFXO1FBQ3BCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUNsRyxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFdBQVcsRUFBRSxjQUFjO0tBQzVCLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ2hELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQzFELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixPQUFPLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztLQUN0RixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3RELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixZQUFZLEVBQUU7WUFDWixHQUFHLEtBQUssQ0FBQyxZQUFZO1lBQ3JCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxVQUFVO1NBQ2hDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUU7UUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1FBQ2xCLE9BQU8sRUFBRSxJQUFJO0tBQ2Q7Q0FDRixDQUFDLENBQUMsQ0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsTUFBYztJQUNwRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaXNwbGF5T3B0aW9ucywgZ2V0RGlzcGxheU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2Rpc3BsYXktb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVsYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtb3JkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldHMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSUQgfSBmcm9tICcuLi8uLi9jb3JlL3N0b3JlL3NlYXJjaC9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IHNvbHZlQ29sbGlzaW9ucyB9IGZyb20gJy4uL2NvbXBvbmVudHMvc29sdmUtY29sbGlzaW9ucy5mdW5jdGlvbic7XG5pbXBvcnQgeyBXaWRnZXRQbGFjZW1lbnRVdGlscyB9IGZyb20gJy4uL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtcGxhY2VtZW50L3dpZGdldC1wbGFjZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucywgRGFzaGJvYXJkQ2VsbFBhcmFtcywgVmlld01vZGUgfSBmcm9tICcuL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7XG4gIERFRkFVTFRfQ09MVU1OU19OVU1CRVIsXG4gIERFRkFVTFRfR0FQX1BYLFxuICBERUZBVUxUX1JPV19IRUlHSFRfUFgsXG4gIERFRkFVTFRfUk9XU19OVU1CRVJcbn0gZnJvbSAnLi9kYXNoYm9hcmQuY29udGFudHMnO1xuaW1wb3J0IHsgR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfSBmcm9tICcuL3dtcy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hbmlmZXN0VXRpbHMgfSBmcm9tICcuL21hbmlmZXN0LXV0aWxzLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IGRhc2hib2FyZEZlYXR1cmVLZXkgPSAnQHByeS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZFN0YXRlIHtcbiAgbWFuaWZlc3RzOiB7XG4gICAgc2VuZGVyOiBzdHJpbmc7XG4gICAgdGVuYW50czogc3RyaW5nW107XG4gICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgIGxpc3Q6IE1hbmlmZXN0RGVzY3JpcHRpb25bXTtcbiAgICBjdXJyZW50SWQ6IHN0cmluZztcbiAgICBzdGF0aWNNYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgbG9hZGluZzogYm9vbGVhbjtcbiAgfTtcbiAgcHJlc2VudGF0aW9uOiB7XG4gICAgY3VycmVudDogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB2aWV3TW9kZT86IFZpZXdNb2RlO1xuICAgIGluaXRpYWw6IEdsb2JhbE1hbmlmZXN0IHwgdW5kZWZpbmVkO1xuICB9O1xuICByZXN1bHRzOiB7XG4gICAgcmVzdWx0U2V0czogUmVzdWx0U2V0cztcbiAgICByZXN1bHRTZXRzUGFyYW1zOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gICAgYXZhaWxhYmxlRGF0YXNvdXJjZU5hbWVzOiBzdHJpbmdbXTtcbiAgICBkZWZhdWx0RGF0YXNvdXJjZTogc3RyaW5nW107XG4gICAgc2VsZWN0ZWRJdGVtczogc3RyaW5nW107XG4gICAgb2JqZWN0RGV0YWlsczogeyBbaWQ6IHN0cmluZ106IEl0ZW0gfTtcbiAgICBxdWlja09yZGVyOiB7IFtpZDogc3RyaW5nXTogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQgfTtcbiAgfTtcbiAgZGFzaGJvYXJkOiB7XG4gICAgcGFyYW1zOiBEYXNoYm9hcmRDZWxsUGFyYW1zO1xuICAgIGVkaXRpb25Nb2RlOiBib29sZWFuO1xuICB9O1xuICB3bXNGZWF0dXJlczogeyBbY29tcG9uZW50SWQ6IHN0cmluZ106IGFueVtdIH07XG4gIGRpc3BsYXk/OiBEaXNwbGF5T3B0aW9ucztcbiAgY2FwYWJpbGl0aWVzOiB7IFt1cmw6IHN0cmluZ106IEdldENhcGFiaWxpdGllc1Jlc3BvbnNlIHwgbnVsbCB9O1xufVxuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkSW5pdGlhbFN0YXRlOiBEYXNoYm9hcmRTdGF0ZSA9IHtcbiAgbWFuaWZlc3RzOiB7XG4gICAgc2VuZGVyOiAnJyxcbiAgICB0ZW5hbnRzOiBbXSxcbiAgICBtYW5pZmVzdDoge1xuICAgICAgd2luZG93czogW3sgd2lkZ2V0czogW10gfV1cbiAgICB9LFxuICAgIHN0YXRpY01hbmlmZXN0OiB7XG4gICAgICB3aW5kb3dzOiBbeyB3aWRnZXRzOiBbXSB9XVxuICAgIH0sXG4gICAgbGlzdDogW10sXG4gICAgY3VycmVudElkOiAnJyxcbiAgICBsb2FkaW5nOiBmYWxzZVxuICB9LFxuICBwcmVzZW50YXRpb246IHtcbiAgICBjdXJyZW50OiB1bmRlZmluZWQsXG4gICAgaW5pdGlhbDogdW5kZWZpbmVkXG4gIH0sXG4gIHJlc3VsdHM6IHtcbiAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IFtdLFxuICAgIHJlc3VsdFNldHM6IHtcbiAgICAgIFtERUZBVUxUX05BTUVEX1FVRVJZX0lEXTogeyBpdGVtczoge30sIHJlbGF0aW9uczogW10gfSxcbiAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXTogeyBpdGVtczoge30sIHJlbGF0aW9uczogW10gfVxuICAgIH0sXG4gICAgcmVzdWx0U2V0c1BhcmFtczoge1xuICAgICAgW0RFRkFVTFRfTkFNRURfUVVFUllfSURdOiB1bmRlZmluZWQsXG4gICAgICBbRVhQTE9SRV9OQU1FRF9RVUVSWV9JRF06IHVuZGVmaW5lZFxuICAgIH0sXG4gICAgZGVmYXVsdERhdGFzb3VyY2U6IFsnY3VycmVudCddLFxuICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgIG9iamVjdERldGFpbHM6IHt9LFxuICAgIHF1aWNrT3JkZXI6IHt9XG4gIH0sXG4gIGRhc2hib2FyZDoge1xuICAgIHBhcmFtczoge1xuICAgICAgZ3JpZFdpZHRoOiAxLFxuICAgICAgZ3JpZEhlaWdodDogMSxcbiAgICAgIGdyaWRHYXA6IERFRkFVTFRfR0FQX1BYLFxuICAgICAgY29sdW1uczogREVGQVVMVF9DT0xVTU5TX05VTUJFUixcbiAgICAgIGNlbGxIZWlnaHQ6IERFRkFVTFRfUk9XX0hFSUdIVF9QWCxcbiAgICAgIHJvd3M6IERFRkFVTFRfUk9XU19OVU1CRVIsXG4gICAgICBjZWxsV2lkdGg6IDEsXG4gICAgICBvZmZzZXRMZWZ0OiAwLFxuICAgICAgb2Zmc2V0VG9wOiAwLFxuICAgICAgbW9iaWxlTW9kZTogZmFsc2VcbiAgICB9LFxuICAgIGVkaXRpb25Nb2RlOiBmYWxzZVxuICB9LFxuICB3bXNGZWF0dXJlczoge30sXG4gIGNhcGFiaWxpdGllczoge31cbn07XG5cbmNvbnN0IGludGVybmFsUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8RGFzaGJvYXJkU3RhdGU+KFxuICBkYXNoYm9hcmRJbml0aWFsU3RhdGUsXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuam9pbiwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICB0ZW5hbnRzOiBbLi4uc3RhdGUubWFuaWZlc3RzLnRlbmFudHMsIGFjdGlvbi5zZW5kZXJdLnNvcnQoKVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmRlY2xhcmVTZW5kZXJJZCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBzZW5kZXI6IGFjdGlvbi5zZW5kZXIsXG4gICAgICB0ZW5hbnRzOiBbLi4uKHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmxlbmd0aCA9PT0gMCA/IGFjdGlvbi50ZW5hbnRzIDogc3RhdGUubWFuaWZlc3RzLnRlbmFudHMpXS5zb3J0KClcbiAgICB9XG4gIH0pKSxcbiAgb24oXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdCxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0QWZ0ZXJUZW5hbnRKb2luLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclRlbmFudExlYXZlLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlckZldGNoLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RXaXRob3V0QWN0aXZhdGlvbixcbiAgICAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKCEhYWN0aW9uLnNlbmRlciAmJiAhc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuZmluZCgodGVuYW50KSA9PiB0ZW5hbnQgPT09IGFjdGlvbi5zZW5kZXIpICYmICFhY3Rpb24uam9pbmluZykge1xuICAgICAgICAvLyBpZ25vcmUgbWFuaWZlc3QgdXBkYXRlcyBmcm9tIHRlbmFudHMgdGhhdCBoYXZlIG5vdCBqb2luZWRcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgICB0ZW5hbnRzOiBbLi4uKGFjdGlvbi50ZW5hbnRzID8/IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzKV0uc29ydCgpLFxuICAgICAgICAgIG1hbmlmZXN0OiBNYW5pZmVzdFV0aWxzLmNsZWFudXBNYW5pZmVzdChhY3Rpb24ubWFuaWZlc3QpLFxuICAgICAgICAgIGN1cnJlbnRJZDogYWN0aW9uLm1hbmlmZXN0SWQgPz8gc3RhdGUubWFuaWZlc3RzLmN1cnJlbnRJZFxuICAgICAgICB9LFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHByZXNlbnRhdGlvbjogYWN0aW9uLnByZXNlbnRhdGlvbiA/PyBzdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IGFjdGlvbi5zZWxlY3RlZElkcyxcbiAgICAgICAgICByZXN1bHRTZXRzOiAhIWFjdGlvbi5yZXN1bHRTZXRzXG4gICAgICAgICAgICA/IHsgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLCAuLi5hY3Rpb24ucmVzdWx0U2V0cyB9XG4gICAgICAgICAgICA6IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1xuICAgICAgICB9LFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGRpc3BsYXk6IGFjdGlvbi5kaXNwbGF5ID8/IHN0YXRlLmRpc3BsYXlcbiAgICAgIH07XG4gICAgfVxuICApLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJvdXRlTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc2VuZGVyUmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2YoYWN0aW9uLnNlbmRlciA/PyBzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzXTtcbiAgICBuZXdXaW5kb3dzW3NlbmRlclJhbmtdID0geyAuLi5uZXdXaW5kb3dzW3NlbmRlclJhbmtdLCByb3V0ZTogYWN0aW9uLnJvdXRlIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXSA9IGFjdGlvbi5tYW5pZmVzdDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICAobmV3V2luZG93c1tteVJhbmtdID8/IHsgd2lkZ2V0czogW10gfSkud2lkZ2V0c1thY3Rpb24uaW5kZXhdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlUmVzdWx0U2V0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgcmVzdWx0U2V0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsXG4gICAgICAgIFthY3Rpb24uaWRdOiAhYWN0aW9uLm5leHRcbiAgICAgICAgICA/IGFjdGlvbi5yZXN1bHRTZXRcbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICAuLi5uZXcgU2V0KFxuICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoYWN0aW9uLnJlc3VsdFNldC5pdGVtcykuY29uY2F0KE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1thY3Rpb24uaWRdLml0ZW1zKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAubWFwKChrZXkpID0+ICh7XG4gICAgICAgICAgICAgICAgICBba2V5XTogWy4uLmFjdGlvbi5yZXN1bHRTZXQuaXRlbXNba2V5XSwgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW2FjdGlvbi5pZF0uaXRlbXNba2V5XV1cbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSksXG4gICAgICAgICAgICAgIGNvdW50OiBhY3Rpb24ucmVzdWx0U2V0LmNvdW50LFxuICAgICAgICAgICAgICByZWxhdGlvbnM6IFsuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNbYWN0aW9uLmlkXS5yZWxhdGlvbnMsIC4uLmFjdGlvbi5yZXN1bHRTZXQucmVsYXRpb25zXSxcbiAgICAgICAgICAgICAgYXV0b1JlZnJlc2hJbnRlcnZhbDogYWN0aW9uLnJlc3VsdFNldC5hdXRvUmVmcmVzaEludGVydmFsLFxuICAgICAgICAgICAgICBzZWFyY2hBZnRlcjogYWN0aW9uLnJlc3VsdFNldC5zZWFyY2hBZnRlclxuICAgICAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlc3VsdFNldHNQYXJhbXM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzUGFyYW1zLFxuICAgICAgICBbYWN0aW9uLmlkXTogYWN0aW9uLnBhcmFtc1xuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLm1heGltaXplV2lkZ2V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0c1thY3Rpb24ud2lkZ2V0SW5kZXhdLmxheW91dCA9IHtcbiAgICAgIHg6IDEsXG4gICAgICB5OiAxLFxuICAgICAgd2lkdGg6IHN0YXRlLmRhc2hib2FyZC5wYXJhbXMuY29sdW1ucyxcbiAgICAgIGhlaWdodDogc3RhdGUuZGFzaGJvYXJkLnBhcmFtcy5yb3dzXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEF2YWlsYWJsZU5hbWVkUXVlcmllcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIGF2YWlsYWJsZURhdGFzb3VyY2VOYW1lczogYWN0aW9uLm5hbWVzLFxuICAgICAgZGVmYXVsdERhdGFzb3VyY2U6IHN0YXRlLnJlc3VsdHMuZGVmYXVsdERhdGFzb3VyY2UuZmlsdGVyKChyc05hbWUpID0+IGFjdGlvbi5uYW1lcy5pbmNsdWRlcyhyc05hbWUpKVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldERlZmF1bHREYXRhc291cmNlLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgZGVmYXVsdERhdGFzb3VyY2U6IGFjdGlvbi5uYW1lc1xuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNvbHZlQ29sbGlzaW9ucywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIHdpbmRvd3M6IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzLm1hcCgod2luZG93KSA9PiB7XG4gICAgICAgICAgY29uc3QgW2ZpcnN0LCAuLi5vdGhlcnNdID0gd2luZG93LndpZGdldHM7XG4gICAgICAgICAgcmV0dXJuIHNvbHZlQ29sbGlzaW9ucyhmaXJzdCwgb3RoZXJzLCB3aW5kb3cpO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZFBhcmFtcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZGFzaGJvYXJkOiB7XG4gICAgICAuLi5zdGF0ZS5kYXNoYm9hcmQsXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgLi4uc3RhdGUuZGFzaGJvYXJkLnBhcmFtcyxcbiAgICAgICAgLi4uYWN0aW9uLnBhcmFtc1xuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnRvZ2dsZUVkaXRpb25Nb2RlLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBkYXNoYm9hcmQ6IHtcbiAgICAgIC4uLnN0YXRlLmRhc2hib2FyZCxcbiAgICAgIGVkaXRpb25Nb2RlOiBhY3Rpb24uZm9yY2UgPz8gIXN0YXRlLmRhc2hib2FyZC5lZGl0aW9uTW9kZVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIHNlbGVjdGVkSXRlbXM6IFtcbiAgICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgICAhYWN0aW9uLmN1bXVsYXRpdmVcbiAgICAgICAgICAgID8gW2FjdGlvbi5pZF1cbiAgICAgICAgICAgIDogc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmZpbmQoKGlkKSA9PiBpZCA9PT0gYWN0aW9uLmlkKVxuICAgICAgICAgICAgICA/IHN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gYWN0aW9uLmlkKVxuICAgICAgICAgICAgICA6IFsuLi5zdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMsIGFjdGlvbi5pZF1cbiAgICAgICAgKVxuICAgICAgXVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmludmVydFNlbGVjdGlvbiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxJdGVtcyA9IE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAgIC5tYXAoKHJzKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNbcnNdLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1tyc10uaXRlbXNbY2xhc3NJZF0gYXMgSXRlbVtdKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG5cbiAgICBjb25zdCBpbnZlcnRlZEl0ZW1zSWQgPSBhbGxJdGVtcy5maWx0ZXIoKGl0ZW1JZCkgPT4gIXN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtSWQpKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLm5ldyBTZXQoaW52ZXJ0ZWRJdGVtc0lkKV1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RNYW55LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLm5ldyBTZXQoYWN0aW9uLmlkcyldXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RzTGlzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBsaXN0OiBhY3Rpb24ubWFuaWZlc3RzXG4gICAgfSxcbiAgICBwcmVzZW50YXRpb246IHtcbiAgICAgIC4uLnN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgIGN1cnJlbnQ6ICEhc3RhdGUucHJlc2VudGF0aW9uLmN1cnJlbnRcbiAgICAgICAgPyBhY3Rpb24ubWFuaWZlc3RzLmZpbmQoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC5pZCA9PT0gc3RhdGUucHJlc2VudGF0aW9uLmN1cnJlbnQ/LmlkKSA/P1xuICAgICAgICAgIHN0YXRlLnByZXNlbnRhdGlvbi5jdXJyZW50XG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlU3RhdGljTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgc3RhdGljTWFuaWZlc3Q6IGFjdGlvbi5zdGF0aWNNYW5pZmVzdFxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmxvYWRBbmRBY3RpdmF0ZU1hbmlmZXN0LCBEYXNoYm9hcmRBY3Rpb25zLmxvYWRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICB3aW5kb3dzOiBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKCh3aW5NYW5pZmVzdCkgPT4gKHsgLi4ud2luTWFuaWZlc3QsIHdpZGdldHM6IFtdIH0pKV1cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5jbGVhck1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgd2luZG93czogWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzLm1hcCgocHJldmlvdXMpID0+ICh7IC4uLnByZXZpb3VzLCB3aWRnZXRzOiBbXSB9KSldLFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRJZDogJydcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVPYmplY3RzRGV0YWlscywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIG9iamVjdERldGFpbHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5vYmplY3REZXRhaWxzLFxuICAgICAgICAuLi5hY3Rpb24ubGlzdFxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmV4cGxvcmUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgICAubWFwKChrZXkpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1trZXldLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGtleUNsYXNzKSA9PiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNba2V5XS5pdGVtc1trZXlDbGFzc10uZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gYWN0aW9uLmlkKSlcbiAgICAgICAgICAuZmluZCgoaXQpID0+ICEhaXQpXG4gICAgICApXG4gICAgICAuZmluZCgoaXQpID0+ICEhaXQpIGFzIEl0ZW07XG5cbiAgICBjb25zdCBhY3R1YWxXaW5kb3dzID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3M7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBhY3R1YWxXaW5kb3dzLmNvbmNhdCh7XG4gICAgICAgICAgICB3aWRnZXRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEyLCBoZWlnaHQ6IDEyIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogJ2dyYXBoJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICBkYXRhc291cmNlOiBFWFBMT1JFX05BTUVEX1FVRVJZX0lEXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLFxuICAgICAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXToge1xuICAgICAgICAgICAgaXRlbXM6IHsgW2N1cnJlbnRJdGVtLm9DbGFzc106IFtjdXJyZW50SXRlbV0gfSxcbiAgICAgICAgICAgIHJlbGF0aW9uczogW10gYXMgUmVsYXRpb25bXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHJlZnJlc2hSYXRlczogeyAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QucmVmcmVzaFJhdGVzLCBbYWN0aW9uLmlkXTogYWN0aW9uLnJhdGUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuYWRkUmVsYXRpb25zVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcbiAgICBhY3Rpb24ucmVsYXRpb25zLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyh1cGRhdGVkUmVzdWx0U2V0cykuZm9yRWFjaCgocnNJZCkgPT4ge1xuICAgICAgICBjb25zdCBpc0NvbmNlcm5lZCA9IE9iamVjdC5rZXlzKHVwZGF0ZWRSZXN1bHRTZXRzW3JzSWRdLml0ZW1zKS5tYXAoKGNsYXNzSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFJlc3VsdFNldHNbcnNJZF0uaXRlbXNbY2xhc3NJZF0ubWFwKFxuICAgICAgICAgICAgKGl0ZW06IEl0ZW0pID0+IGl0ZW0uaWQgPT09IHJlbGF0aW9uLnNvdXJjZSB8fCBpdGVtLmlkID09PSByZWxhdGlvbi5kZXN0aW5hdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNDb25jZXJuZWQpIHtcbiAgICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5yZWxhdGlvbnMucHVzaChyZWxhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgcmVzdWx0U2V0czogdXBkYXRlZFJlc3VsdFNldHNcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVSZWxhdGlvbnNGcm9tUmVzdWx0U2V0cywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCB1cGRhdGVkUmVzdWx0U2V0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzKSk7XG5cbiAgICBPYmplY3Qua2V5cyh1cGRhdGVkUmVzdWx0U2V0cykuZm9yRWFjaCgocnNJZCkgPT4ge1xuICAgICAgY29uc3QgaXNDb25jZXJuZWQgPSBPYmplY3Qua2V5cyh1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5pdGVtcykubWFwKChjbGFzc0lkKSA9PiB7XG4gICAgICAgIHJldHVybiB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5pdGVtc1tjbGFzc0lkXS5tYXAoXG4gICAgICAgICAgKGl0ZW06IEl0ZW0pID0+IGl0ZW0uaWQgPT09IGFjdGlvbi5yZWxhdGlvbi5zb3VyY2UgfHwgaXRlbS5pZCA9PT0gYWN0aW9uLnJlbGF0aW9uLmRlc3RpbmF0aW9uXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGlmIChpc0NvbmNlcm5lZCkge1xuICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIChyZWw6IFJlbGF0aW9uKSA9PlxuICAgICAgICAgICAgcmVsLnJlbGF0aW9uVHlwZSAhPT0gYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uVHlwZSB8fFxuICAgICAgICAgICAgcmVsLnNvdXJjZSAhPT0gYWN0aW9uLnJlbGF0aW9uLnNvdXJjZSB8fFxuICAgICAgICAgICAgcmVsLmRlc3RpbmF0aW9uICE9PSBhY3Rpb24ucmVsYXRpb24uZGVzdGluYXRpb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHJlc3VsdFNldHM6IHVwZGF0ZWRSZXN1bHRTZXRzXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuYWRkSXRlbVRvUmVzdWx0U2V0cywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCB1cGRhdGVkUmVzdWx0U2V0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzKSk7XG5cbiAgICBpZiAoISFhY3Rpb24ucmVzdWx0U2V0KSB7XG4gICAgICBpZiAoIXVwZGF0ZWRSZXN1bHRTZXRzW2FjdGlvbi5yZXN1bHRTZXRdLml0ZW1zW2FjdGlvbi5pdGVtLm9DbGFzc10pIHtcbiAgICAgICAgdXBkYXRlZFJlc3VsdFNldHNbYWN0aW9uLnJlc3VsdFNldF0uaXRlbXNbYWN0aW9uLml0ZW0ub0NsYXNzXSA9IFthY3Rpb24uaXRlbV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1thY3Rpb24ucmVzdWx0U2V0XS5pdGVtc1thY3Rpb24uaXRlbS5vQ2xhc3NdLnB1c2goYWN0aW9uLml0ZW0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgcmVzdWx0U2V0czogdXBkYXRlZFJlc3VsdFNldHNcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5xdWlja09yZGVyLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgcXVpY2tPcmRlcjoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMucXVpY2tPcmRlcixcbiAgICAgICAgICBbYWN0aW9uLmRhdGFzb3VyY2VJZF06IGFjdGlvbi5hc2MgPyB7IGF0dHJpYnV0ZTogYWN0aW9uLmF0dHJpYnV0ZSwgYXNjOiBhY3Rpb24uYXNjIH0gOiB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBwcmVzZW50YXRpb246IHtcbiAgICAgICAgLi4uc3RhdGUucHJlc2VudGF0aW9uLFxuICAgICAgICBjdXJyZW50OiBhY3Rpb24ucHJlc2VudGF0aW9uLFxuICAgICAgICB2aWV3TW9kZTogYWN0aW9uLnZpZXdNb2RlLFxuICAgICAgICBpbml0aWFsOiBhY3Rpb24ucHJlc2VudGF0aW9uID8gc3RhdGUucHJlc2VudGF0aW9uLmluaXRpYWwgOiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRJbml0aWFsUHJlc2VudGF0aW9uLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHByZXNlbnRhdGlvbjoge1xuICAgICAgICAuLi5zdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICAgIGluaXRpYWw6IGFjdGlvbi5pbml0aWFsXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0R3JpZExheW91dCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzID8/IFtdKSk7XG4gICAgaWYgKCFuZXdXaW5kb3dzW215UmFua10pIHtcbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXSA9IHsgd2lkZ2V0czogW10gfTtcbiAgICB9XG4gICAgaWYgKCFuZXdXaW5kb3dzW215UmFua10uZ3JpZCkge1xuICAgICAgbmV3V2luZG93c1tteVJhbmtdLmdyaWQgPSB7fTtcbiAgICB9XG4gICAgaWYgKCFuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cykge1xuICAgICAgbmV3V2luZG93c1tteVJhbmtdLndpZGdldHMgPSBbXTtcbiAgICB9XG4gICAgbmV3V2luZG93c1tteVJhbmtdLmdyaWQubGF5b3V0ID0gYWN0aW9uLmxheW91dDtcbiAgICBpZiAoYWN0aW9uLmxheW91dCAhPT0gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUwpIHtcbiAgICAgIGNvbnN0IGxheW91dCA9IFdpZGdldFBsYWNlbWVudFV0aWxzLmdldExheW91dChhY3Rpb24ubGF5b3V0KTtcbiAgICAgIC8vIFJlb3JkZXIgbGF5b3V0c1xuICAgICAgbmV3V2luZG93c1tteVJhbmtdLmdyaWQgPSB7XG4gICAgICAgIC4uLm5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLFxuICAgICAgICByb3dzOiBsYXlvdXQ/LnJvd3MgPz8gREVGQVVMVF9ST1dTX05VTUJFUixcbiAgICAgICAgY29sdW1uczogbGF5b3V0Py5jb2x1bW5zID8/IERFRkFVTFRfQ09MVU1OU19OVU1CRVJcbiAgICAgIH07XG4gICAgICBjb25zdCBwbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHt9IGFzIFdpZGdldE1hbmlmZXN0LCBhY3Rpb24ubGF5b3V0KTtcblxuICAgICAgbmV3V2luZG93c1tteVJhbmtdLndpZGdldHMuZm9yRWFjaCgod2lkZ2V0OiBXaWRnZXRNYW5pZmVzdCwgaWR4OiBudW1iZXIpID0+IHtcbiAgICAgICAgbGV0IHRhcmdldExheW91dCA9IHBsYWNlc1tpZHhdPy5sYXlvdXQ7XG4gICAgICAgIGlmICghdGFyZ2V0TGF5b3V0KSB7XG4gICAgICAgICAgdGFyZ2V0TGF5b3V0ID0geyB4OiAxLCB5OiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAxIH07XG4gICAgICAgICAgY29uc29sZS53YXJuKCdJbmNvcnJlY3QgcGxhY2VtZW50IGNhbGN1bGF0aW9uJywgcGxhY2VzLCBpZHgsIHdpZGdldCwgYWN0aW9uLmxheW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgd2lkZ2V0LmxheW91dCA9IHsgLi4udGFyZ2V0TGF5b3V0IH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5jcmVhdGVUYWIsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBteUxheW91dCA9IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzW215UmFua10uZ3JpZD8ubGF5b3V0ID8/IERhc2hib2FyZEdyaWRMYXlvdXQuTUFOVUFMO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzKSk7XG4gICAgbmV3V2luZG93cy5wdXNoKHsgZ3JpZDogeyBsYXlvdXQ6IG15TGF5b3V0IH0sIHdpZGdldHM6IFtdIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnJlc3RvcmVJbml0aWFsTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUucHJlc2VudGF0aW9uLmluaXRpYWwpKVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnByb3BhZ2F0ZUdyaWRMYXlvdXQsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICBuZXdXaW5kb3dzW2FjdGlvbi5yYW5rXSA9IGFjdGlvbi5tYW5pZmVzdDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEZpbHRlcnMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICBmaWx0ZXJzOiBhY3Rpb24uZmlsdGVyc1xuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlcnMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgaXNQcmVzZW50ID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnM/LmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBhY3Rpb24uZmlsdGVyLmlkKTtcbiAgICBsZXQgZmlsdGVycyA9IFtdO1xuICAgIGlmIChpc1ByZXNlbnQpIHtcbiAgICAgIGZpbHRlcnMgPVxuICAgICAgICBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8ubWFwKChmaWx0ZXIpID0+IChmaWx0ZXIuaWQgPT09IGFjdGlvbi5maWx0ZXIuaWQgPyBhY3Rpb24uZmlsdGVyIDogZmlsdGVyKSkgPz9cbiAgICAgICAgW107XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycykge1xuICAgICAgICBmaWx0ZXJzID0gWy4uLihzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycyBhcyBGaWx0ZXJbXSksIGFjdGlvbi5maWx0ZXJdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVycyA9IFthY3Rpb24uZmlsdGVyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgZmlsdGVyczogZmlsdGVyc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVyLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgZmlsdGVyczogc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnM/LmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgIT09IGFjdGlvbi5pZClcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXJzLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIGZpbHRlcnM6IFtdXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVyVmFsdWUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMgPz8gW10pKSBhcyBGaWx0ZXJbXTtcblxuICAgIGNvbnN0IGZpbHRlclRvVXBkYXRlID0gZmlsdGVycy5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5pZCA9PT0gYWN0aW9uLmlkKTtcbiAgICBpZiAoZmlsdGVyVG9VcGRhdGUpIHtcbiAgICAgIGlmICghYWN0aW9uLnZhbHVlKSB7XG4gICAgICAgIGRlbGV0ZSBmaWx0ZXJUb1VwZGF0ZS52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbHRlclRvVXBkYXRlLnZhbHVlID0gYWN0aW9uLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIGZpbHRlcnNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmNsZWFyQWxsRmlsdGVyVmFsdWVzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIGZpbHRlcnM6IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gKHsgLi4uZmlsdGVyLCB2YWx1ZTogdW5kZWZpbmVkIH0pKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKFxuICAgIERhc2hib2FyZEFjdGlvbnMuZ2V0V21zRmVhdHVyZXMsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy5yZXNldFdtc0ZlYXR1cmVzLFxuICAgIERhc2hib2FyZEFjdGlvbnMuZ2V0V2ZzRmVhdHVyZXNGb3JQb2ludFN0YWNrVG9vbHRpcHMsXG4gICAgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0geyAuLi5zdGF0ZS53bXNGZWF0dXJlcyB9O1xuICAgICAgZGVsZXRlIGZlYXR1cmVzW2FjdGlvbi5jb21wb25lbnRJZF07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgd21zRmVhdHVyZXM6IGZlYXR1cmVzXG4gICAgICB9O1xuICAgIH1cbiAgKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxDb21wb25lbnRGZWF0dXJlcyA9IFsuLi4oc3RhdGUud21zRmVhdHVyZXNbYWN0aW9uLmNvbXBvbmVudElkXSA/PyBbXSksIC4uLmFjdGlvbi5mZWF0dXJlc107XG4gICAgY29uc3QgZGVEdXBlZElkcyA9IFsuLi5uZXcgU2V0KGFsbENvbXBvbmVudEZlYXR1cmVzLm1hcCgoZmVhdCkgPT4gZmVhdC5pZCkpXTtcbiAgICBjb25zdCBnbG9iYWxGZWF0dXJlcyA9IHtcbiAgICAgIC4uLnN0YXRlLndtc0ZlYXR1cmVzLFxuICAgICAgW2FjdGlvbi5jb21wb25lbnRJZF06IGRlRHVwZWRJZHMubWFwKChpZCkgPT4gYWxsQ29tcG9uZW50RmVhdHVyZXMuZmluZCgoZmVhdCkgPT4gZmVhdC5pZCA9PT0gaWQpKVxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB3bXNGZWF0dXJlczogZ2xvYmFsRmVhdHVyZXNcbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5mZXRjaFN0YXRpY01hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5lbmRMb2FkaW5nLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheTogYWN0aW9uLmN1c3RvbURpc3BsYXkgPyBhY3Rpb24uY3VzdG9tRGlzcGxheSA6IGdldERpc3BsYXlPcHRpb25zKGFjdGlvbi5tb2RlKVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUNhcGFiaWxpdHksIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIC4uLnN0YXRlLmNhcGFiaWxpdGllcyxcbiAgICAgICAgW2FjdGlvbi51cmxdOiBhY3Rpb24uY2FwYWJpbGl0eVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmxvYWRQcmVzZW50YXRpb24sIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIGxvYWRpbmc6IHRydWVcbiAgICB9XG4gIH0pKVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhc2hib2FyZFJlZHVjZXIoc3RhdGU6IERhc2hib2FyZFN0YXRlLCBhY3Rpb246IEFjdGlvbikge1xuICByZXR1cm4gaW50ZXJuYWxSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xufVxuIl19
|
|
@@ -102,9 +102,9 @@ export class SearchMonoClassService {
|
|
|
102
102
|
id,
|
|
103
103
|
parentId: parentId ?? null,
|
|
104
104
|
type: 'ATTRIBUTE',
|
|
105
|
-
attribute: cond
|
|
106
|
-
operator: cond
|
|
107
|
-
value: cond
|
|
105
|
+
attribute: cond?.attribute,
|
|
106
|
+
operator: cond?.operator,
|
|
107
|
+
value: cond?.value,
|
|
108
108
|
pattern: this.getPatternForField(field),
|
|
109
109
|
isDate: field.type === FieldType.INSTANT
|
|
110
110
|
}
|
|
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
157
157
|
providedIn: 'root'
|
|
158
158
|
}]
|
|
159
159
|
}] });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW1vbm8tY2xhc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtbW9uby1jbGFzcy9zdG9yZS9zZWFyY2gtbW9uby1jbGFzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUtMLFNBQVMsRUFHVCxlQUFlLEVBSWhCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3BDLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsK0JBQStCLENBQUMsUUFBdUI7UUFDckQsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLEVBQUU7WUFDRixRQUFRO1lBQ1IsSUFBSSxFQUFFLEtBQUs7U0FDVyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE9BQU87WUFDTCxFQUFFO1lBQ0YsUUFBUTtZQUNSLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1NBQ0ksQ0FBQztJQUMzQixDQUFDO0lBRUQsb0NBQW9DLENBQ2xDLE1BQWMsRUFDZCxRQUFnQixFQUNoQixtQkFBd0MsRUFDeEMsS0FBOEI7UUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFD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LENBQUM7YUFDeEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUM5QyxDQUFDOzhHQTNLVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBDbGFzcyxcbiAgQ29uZGl0aW9uLFxuICBGaWVsZCxcbiAgRmllbGRUeXBlLFxuICBNb25vQ2xhc3NDb25kaXRpb25zLFxuICBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkLFxuICBOYW1lZFF1ZXJ5VHlwZXMsXG4gIE5vcm1hbGl6ZWRDb25kaXRpb24sXG4gIE9yZGVyVmFsdWUsXG4gIFJlc3VsdE9yZGVyXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoTW9ub0NsYXNzU2VydmljZSB7XG4gIGluaXROb3JtYWxpemVkQ29uZGl0aW9uQ29tcG9zZWQocGFyZW50SWQ6IHN0cmluZyB8IG51bGwpOiBOb3JtYWxpemVkQ29uZGl0aW9uIHtcbiAgICBjb25zdCBpZCA9IHV1aWRWNCgpO1xuICAgIHJldHVybiB7XG4gICAgICBpZCxcbiAgICAgIHBhcmVudElkLFxuICAgICAgdHlwZTogJ0FORCdcbiAgICB9IGFzIE5vcm1hbGl6ZWRDb25kaXRpb247XG4gIH1cblxuICBpbml0Tm9ybWFsaXplZENvbmRpdGlvbkF0dHJpYnV0ZShwYXJlbnRJZDogc3RyaW5nLCBhdHRyaWJ1dGVJZDogc3RyaW5nKTogTm9ybWFsaXplZENvbmRpdGlvbiB7XG4gICAgaWYgKCFhdHRyaWJ1dGVJZC50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgSUQnKTtcbiAgICB9XG4gICAgY29uc3QgaWQgPSB1dWlkVjQoKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQsXG4gICAgICBwYXJlbnRJZCxcbiAgICAgIGF0dHJpYnV0ZTogYXR0cmlidXRlSWQsXG4gICAgICB0eXBlOiAnQVRUUklCVVRFJyxcbiAgICAgIG9wZXJhdG9yOiAnRVFVQUxTJ1xuICAgIH0gYXMgTm9ybWFsaXplZENvbmRpdGlvbjtcbiAgfVxuXG4gIGJ1aWxkTW9ub0NsYXNzU2VhcmNoUGF5bG9hZEZvclNlYXJjaChcbiAgICBvQ2xhc3M6IHN0cmluZyxcbiAgICBtYXN0ZXJJZDogc3RyaW5nLFxuICAgIG1vbm9DbGFzc0NvbmRpdGlvbnM6IE1vbm9DbGFzc0NvbmRpdGlvbnMsXG4gICAgb3JkZXI6IFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkXG4gICk6IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQge1xuICAgIGlmICghb0NsYXNzLnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNsYXNzIElEJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuYnVpbGRDb25kaXRpb25Gcm9tTW9ub0NsYXNzU2VhcmNoQ29uZGl0aW9uKG1vbm9DbGFzc0NvbmRpdGlvbnMsIG1hc3RlcklkKTtcbiAgICBsZXQgc29ydCA9IHVuZGVmaW5lZCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgdW5kZWZpbmVkO1xuICAgIGlmIChvcmRlcikge1xuICAgICAgc29ydCA9IHtcbiAgICAgICAgYXR0cmlidXRlOiBvcmRlci5hdHRyaWJ1dGUsXG4gICAgICAgIGRpcmVjdGlvbjogb3JkZXIuYXNjXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4geyB0eXBlOiBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUywgLi4ueyBjb25kaXRpb24gfSwgLi4ueyBzb3J0IH0sIG9DbGFzcyB9IGFzIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQ7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29uZGl0aW9uRnJvbU1vbm9DbGFzc1NlYXJjaENvbmRpdGlvbihcbiAgICBtb25vQ2xhc3NDb25kaXRpb25zOiBNb25vQ2xhc3NDb25kaXRpb25zLFxuICAgIGlkQ29uZGl0aW9uOiBzdHJpbmdcbiAgKTogQ29uZGl0aW9uIHtcbiAgICBjb25zdCBjb25kOiBOb3JtYWxpemVkQ29uZGl0aW9uID0gbW9ub0NsYXNzQ29uZGl0aW9ucy5lbnRpdGllc1tpZENvbmRpdGlvbl07XG4gICAgY29uc3Qgc3ViQ29uZDogQ29uZGl0aW9uW10gPVxuICAgICAgbW9ub0NsYXNzQ29uZGl0aW9ucy5lbnRpdGllc1tpZENvbmRpdGlvbl0uY29tcG9zZWQ/Lm1hcCgoaWQ6IHN0cmluZykgPT5cbiAgICAgICAgdGhpcy5idWlsZENvbmRpdGlvbkZyb21Nb25vQ2xhc3NTZWFyY2hDb25kaXRpb24obW9ub0NsYXNzQ29uZGl0aW9ucywgaWQpXG4gICAgICApID8/IFtdO1xuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHtcbiAgICAgIHR5cGU6IGNvbmQudHlwZSxcbiAgICAgIGF0dHJpYnV0ZTogY29uZC5hdHRyaWJ1dGUsXG4gICAgICBjb21wb3NlZDogc3ViQ29uZC5sZW5ndGggPiAwID8gc3ViQ29uZCA6IHVuZGVmaW5lZCxcbiAgICAgIG9wZXJhdG9yOiBjb25kLm9wZXJhdG9yLFxuICAgICAgdmFsdWU6IGNvbmQudmFsdWUsXG4gICAgICB1cHBlclZhbHVlOiBjb25kLnVwcGVyVmFsdWVcbiAgICB9O1xuICAgIGlmIChjb25kaXRpb24ub3BlcmF0b3IgIT09ICdJTlNJREUnICYmIGNvbmRpdGlvbi5vcGVyYXRvciAhPT0gJ09VVFNJREUnKSB7XG4gICAgICBkZWxldGUgY29uZGl0aW9uLnVwcGVyVmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb247XG4gIH1cblxuICBsb2FkTm9ybWFsaXplZENvbmRpdGlvbnMoXG4gICAgY29uZDogQ29uZGl0aW9uLFxuICAgIHBhcmVudElkOiBzdHJpbmcsXG4gICAgY2xhc3NlczogQ2xhc3NbXSxcbiAgICBmaWVsZHM6IEZpZWxkW10sXG4gICAgbWFzdGVySWQ/OiBzdHJpbmcsXG4gICAgc29ydD86IHsgYXR0cmlidXRlOiBzdHJpbmc7IGRpcmVjdGlvbjogc3RyaW5nIH1cbiAgKTogeyBpZDogc3RyaW5nOyBjb25kaXRpb25zOiBOb3JtYWxpemVkQ29uZGl0aW9uW107IHNvcnQ6IFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkIH0ge1xuICAgIGxldCByZXN1bHRTb3J0ID0gdW5kZWZpbmVkIGFzIFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkO1xuICAgIGlmIChzb3J0KSB7XG4gICAgICByZXN1bHRTb3J0ID0ge1xuICAgICAgICBhdHRyaWJ1dGU6IHNvcnQuYXR0cmlidXRlLFxuICAgICAgICBhc2M6IHNvcnQuZGlyZWN0aW9uIGFzIE9yZGVyVmFsdWVcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChjb25kPy50eXBlID09PSAnQU5EJyB8fCBjb25kPy50eXBlID09PSAnT1InKSB7XG4gICAgICBjb25zdCBpZCA9IG1hc3RlcklkID8/IHV1aWRWNCgpO1xuICAgICAgaWYgKGNvbmQ/LmNvbXBvc2VkKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY29uZC5jb21wb3NlZC5tYXAoKGNvbmQpID0+IHRoaXMubG9hZE5vcm1hbGl6ZWRDb25kaXRpb25zKGNvbmQsIGlkLCBjbGFzc2VzLCBmaWVsZHMpKTtcbiAgICAgICAgY29uc3QgaWRzID0gY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gY2hpbGQuaWQpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkQ2hpbGRyZW4gPSBjaGlsZHJlbi5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgcmVzKSA9PiBbLi4uYWNjLCAuLi5yZXMuY29uZGl0aW9uc10sXG4gICAgICAgICAgW10gYXMgTm9ybWFsaXplZENvbmRpdGlvbltdXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgICAgLi4ubm9ybWFsaXplZENoaWxkcmVuLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkID8/IG51bGwsXG4gICAgICAgICAgICAgIHR5cGU6IGNvbmQudHlwZSxcbiAgICAgICAgICAgICAgY29tcG9zZWQ6IGlkc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgc29ydDogcmVzdWx0U29ydFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmRpdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCA/PyBudWxsLFxuICAgICAgICAgICAgdHlwZTogY29uZC50eXBlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzb3J0OiByZXN1bHRTb3J0XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpZCA9IG1hc3RlcklkID8/IHV1aWRWNCgpO1xuICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkRnJvbUF0dHJpYnV0ZShjb25kPy5hdHRyaWJ1dGUsIGNsYXNzZXMpO1xuICAgICAgY29uc3QgY29uZGl0aW9uOiBOb3JtYWxpemVkQ29uZGl0aW9uID0gZmllbGRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCA/PyBudWxsLFxuICAgICAgICAgICAgdHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGNvbmQuYXR0cmlidXRlLFxuICAgICAgICAgICAgb3BlcmF0b3I6IGNvbmQub3BlcmF0b3IsXG4gICAgICAgICAgICB2YWx1ZTogY29uZC52YWx1ZSxcbiAgICAgICAgICAgIHBhdHRlcm46IHRoaXMuZ2V0UGF0dGVybkZvckZpZWxkKGZpZWxkKSxcbiAgICAgICAgICAgIGlzRGF0ZTogZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLklOU1RBTlRcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQgPz8gbnVsbCxcbiAgICAgICAgICAgIHR5cGU6ICdBVFRSSUJVVEUnLFxuICAgICAgICAgICAgYXR0cmlidXRlOiBjb25kPy5hdHRyaWJ1dGUsXG4gICAgICAgICAgICBvcGVyYXRvcjogY29uZD8ub3BlcmF0b3IsXG4gICAgICAgICAgICB2YWx1ZTogY29uZD8udmFsdWVcbiAgICAgICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmRpdGlvbnM6IFtjb25kaXRpb25dLFxuICAgICAgICBzb3J0OiByZXN1bHRTb3J0XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGdldFBhdHRlcm5Gb3JGaWVsZChmaWVsZDogRmllbGQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGUgPSBmaWVsZC50eXBlO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBGaWVsZFR5cGUuREVDSU1BTDpcbiAgICAgICAgcmV0dXJuICdeWystXT8oWzAtOV0qWy5dKT9bMC05XSskJztcbiAgICAgIGNhc2UgRmllbGRUeXBlLklOVEVHRVI6XG4gICAgICBjYXNlIEZpZWxkVHlwZS5MT05HOlxuICAgICAgICByZXR1cm4gJ15bKy1dP1swLTldKyQnO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuU1RSSU5HOlxuICAgICAgY2FzZSBGaWVsZFR5cGUuS0VZV09SRDpcbiAgICAgICAgcmV0dXJuICdeLiskJztcbiAgICAgIGNhc2UgRmllbGRUeXBlLklOU1RBTlQ6XG4gICAgICAgIHJldHVybiAnXlswLTldezR9LVswLTldezJ9LVswLTldezJ9JHxeWzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn1UWzAtOV17Mn06WzAtOV17Mn06WzAtOV17Mn0kJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnXi4rJCc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWVsZEZyb21BdHRyaWJ1dGUoYXR0cmlidXRlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgY2xhc3NlczogQ2xhc3NbXSk6IEZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWF0dHJpYnV0ZUlkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlc1xuICAgICAgLnJlZHVjZSgoYWNjLCBjbGF6eikgPT4gWy4uLmFjYywgLi4uY2xhenouYXR0cmlidXRlc10sIFtdIGFzIEF0dHJpYnV0ZVtdKVxuICAgICAgLmZpbmQoKGEpID0+IGEuaWQgPT09IGF0dHJpYnV0ZUlkKT8uZmllbGQ7XG4gIH1cbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLW1vbm8tY2xhc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtbW9uby1jbGFzcy9zdG9yZS9zZWFyY2gtbW9uby1jbGFzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUtMLFNBQVMsRUFHVCxlQUFlLEVBSWhCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3BDLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsK0JBQStCLENBQUMsUUFBdUI7UUFDckQsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLEVBQUU7WUFDRixRQUFRO1lBQ1IsSUFBSSxFQUFFLEtBQUs7U0FDVyxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLE9BQU87WUFDTCxFQUFFO1lBQ0YsUUFBUTtZQUNSLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1NBQ0ksQ0FBQztJQUMzQixDQUFDO0lBRUQsb0NBQW9DLENBQ2xDLE1BQWMsRUFDZCxRQUFnQixFQUNoQixtQkFBd0MsRUFDeEMsS0FBOEI7UUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFD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aUIsQ0FBQzthQUN4RSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQzlDLENBQUM7OEdBM0tVLHNCQUFzQjtrSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENsYXNzLFxuICBDb25kaXRpb24sXG4gIEZpZWxkLFxuICBGaWVsZFR5cGUsXG4gIE1vbm9DbGFzc0NvbmRpdGlvbnMsXG4gIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlUeXBlcyxcbiAgTm9ybWFsaXplZENvbmRpdGlvbixcbiAgT3JkZXJWYWx1ZSxcbiAgUmVzdWx0T3JkZXJcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IHY0IGFzIHV1aWRWNCB9IGZyb20gJ3V1aWQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hNb25vQ2xhc3NTZXJ2aWNlIHtcbiAgaW5pdE5vcm1hbGl6ZWRDb25kaXRpb25Db21wb3NlZChwYXJlbnRJZDogc3RyaW5nIHwgbnVsbCk6IE5vcm1hbGl6ZWRDb25kaXRpb24ge1xuICAgIGNvbnN0IGlkID0gdXVpZFY0KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkLFxuICAgICAgcGFyZW50SWQsXG4gICAgICB0eXBlOiAnQU5EJ1xuICAgIH0gYXMgTm9ybWFsaXplZENvbmRpdGlvbjtcbiAgfVxuXG4gIGluaXROb3JtYWxpemVkQ29uZGl0aW9uQXR0cmlidXRlKHBhcmVudElkOiBzdHJpbmcsIGF0dHJpYnV0ZUlkOiBzdHJpbmcpOiBOb3JtYWxpemVkQ29uZGl0aW9uIHtcbiAgICBpZiAoIWF0dHJpYnV0ZUlkLnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBJRCcpO1xuICAgIH1cbiAgICBjb25zdCBpZCA9IHV1aWRWNCgpO1xuICAgIHJldHVybiB7XG4gICAgICBpZCxcbiAgICAgIHBhcmVudElkLFxuICAgICAgYXR0cmlidXRlOiBhdHRyaWJ1dGVJZCxcbiAgICAgIHR5cGU6ICdBVFRSSUJVVEUnLFxuICAgICAgb3BlcmF0b3I6ICdFUVVBTFMnXG4gICAgfSBhcyBOb3JtYWxpemVkQ29uZGl0aW9uO1xuICB9XG5cbiAgYnVpbGRNb25vQ2xhc3NTZWFyY2hQYXlsb2FkRm9yU2VhcmNoKFxuICAgIG9DbGFzczogc3RyaW5nLFxuICAgIG1hc3RlcklkOiBzdHJpbmcsXG4gICAgbW9ub0NsYXNzQ29uZGl0aW9uczogTW9ub0NsYXNzQ29uZGl0aW9ucyxcbiAgICBvcmRlcjogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWRcbiAgKTogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB7XG4gICAgaWYgKCFvQ2xhc3MudHJpbSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2xhc3MgSUQnKTtcbiAgICB9XG4gICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy5idWlsZENvbmRpdGlvbkZyb21Nb25vQ2xhc3NTZWFyY2hDb25kaXRpb24obW9ub0NsYXNzQ29uZGl0aW9ucywgbWFzdGVySWQpO1xuICAgIGxldCBzb3J0ID0gdW5kZWZpbmVkIGFzIHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQ7XG4gICAgaWYgKG9yZGVyKSB7XG4gICAgICBzb3J0ID0ge1xuICAgICAgICBhdHRyaWJ1dGU6IG9yZGVyLmF0dHJpYnV0ZSxcbiAgICAgICAgZGlyZWN0aW9uOiBvcmRlci5hc2NcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7IHR5cGU6IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTLCAuLi57IGNvbmRpdGlvbiB9LCAuLi57IHNvcnQgfSwgb0NsYXNzIH0gYXMgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25kaXRpb25Gcm9tTW9ub0NsYXNzU2VhcmNoQ29uZGl0aW9uKFxuICAgIG1vbm9DbGFzc0NvbmRpdGlvbnM6IE1vbm9DbGFzc0NvbmRpdGlvbnMsXG4gICAgaWRDb25kaXRpb246IHN0cmluZ1xuICApOiBDb25kaXRpb24ge1xuICAgIGNvbnN0IGNvbmQ6IE5vcm1hbGl6ZWRDb25kaXRpb24gPSBtb25vQ2xhc3NDb25kaXRpb25zLmVudGl0aWVzW2lkQ29uZGl0aW9uXTtcbiAgICBjb25zdCBzdWJDb25kOiBDb25kaXRpb25bXSA9XG4gICAgICBtb25vQ2xhc3NDb25kaXRpb25zLmVudGl0aWVzW2lkQ29uZGl0aW9uXS5jb21wb3NlZD8ubWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICB0aGlzLmJ1aWxkQ29uZGl0aW9uRnJvbU1vbm9DbGFzc1NlYXJjaENvbmRpdGlvbihtb25vQ2xhc3NDb25kaXRpb25zLCBpZClcbiAgICAgICkgPz8gW107XG4gICAgY29uc3QgY29uZGl0aW9uID0ge1xuICAgICAgdHlwZTogY29uZC50eXBlLFxuICAgICAgYXR0cmlidXRlOiBjb25kLmF0dHJpYnV0ZSxcbiAgICAgIGNvbXBvc2VkOiBzdWJDb25kLmxlbmd0aCA+IDAgPyBzdWJDb25kIDogdW5kZWZpbmVkLFxuICAgICAgb3BlcmF0b3I6IGNvbmQub3BlcmF0b3IsXG4gICAgICB2YWx1ZTogY29uZC52YWx1ZSxcbiAgICAgIHVwcGVyVmFsdWU6IGNvbmQudXBwZXJWYWx1ZVxuICAgIH07XG4gICAgaWYgKGNvbmRpdGlvbi5vcGVyYXRvciAhPT0gJ0lOU0lERScgJiYgY29uZGl0aW9uLm9wZXJhdG9yICE9PSAnT1VUU0lERScpIHtcbiAgICAgIGRlbGV0ZSBjb25kaXRpb24udXBwZXJWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgfVxuXG4gIGxvYWROb3JtYWxpemVkQ29uZGl0aW9ucyhcbiAgICBjb25kOiBDb25kaXRpb24gfCB1bmRlZmluZWQsXG4gICAgcGFyZW50SWQ6IHN0cmluZyxcbiAgICBjbGFzc2VzOiBDbGFzc1tdLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBtYXN0ZXJJZD86IHN0cmluZyxcbiAgICBzb3J0PzogeyBhdHRyaWJ1dGU6IHN0cmluZzsgZGlyZWN0aW9uOiBzdHJpbmcgfVxuICApOiB7IGlkOiBzdHJpbmc7IGNvbmRpdGlvbnM6IE5vcm1hbGl6ZWRDb25kaXRpb25bXTsgc29ydDogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQgfSB7XG4gICAgbGV0IHJlc3VsdFNvcnQgPSB1bmRlZmluZWQgYXMgUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHNvcnQpIHtcbiAgICAgIHJlc3VsdFNvcnQgPSB7XG4gICAgICAgIGF0dHJpYnV0ZTogc29ydC5hdHRyaWJ1dGUsXG4gICAgICAgIGFzYzogc29ydC5kaXJlY3Rpb24gYXMgT3JkZXJWYWx1ZVxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGNvbmQ/LnR5cGUgPT09ICdBTkQnIHx8IGNvbmQ/LnR5cGUgPT09ICdPUicpIHtcbiAgICAgIGNvbnN0IGlkID0gbWFzdGVySWQgPz8gdXVpZFY0KCk7XG4gICAgICBpZiAoY29uZD8uY29tcG9zZWQpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBjb25kLmNvbXBvc2VkLm1hcCgoY29uZCkgPT4gdGhpcy5sb2FkTm9ybWFsaXplZENvbmRpdGlvbnMoY29uZCwgaWQsIGNsYXNzZXMsIGZpZWxkcykpO1xuICAgICAgICBjb25zdCBpZHMgPSBjaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiBjaGlsZC5pZCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRDaGlsZHJlbiA9IGNoaWxkcmVuLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCByZXMpID0+IFsuLi5hY2MsIC4uLnJlcy5jb25kaXRpb25zXSxcbiAgICAgICAgICBbXSBhcyBOb3JtYWxpemVkQ29uZGl0aW9uW11cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAgICAuLi5ub3JtYWxpemVkQ2hpbGRyZW4sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQgPz8gbnVsbCxcbiAgICAgICAgICAgICAgdHlwZTogY29uZC50eXBlLFxuICAgICAgICAgICAgICBjb21wb3NlZDogaWRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBzb3J0OiByZXN1bHRTb3J0XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkID8/IG51bGwsXG4gICAgICAgICAgICB0eXBlOiBjb25kLnR5cGVcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHNvcnQ6IHJlc3VsdFNvcnRcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlkID0gbWFzdGVySWQgPz8gdXVpZFY0KCk7XG4gICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRGcm9tQXR0cmlidXRlKGNvbmQ/LmF0dHJpYnV0ZSwgY2xhc3Nlcyk7XG4gICAgICBjb25zdCBjb25kaXRpb246IE5vcm1hbGl6ZWRDb25kaXRpb24gPSBmaWVsZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkID8/IG51bGwsXG4gICAgICAgICAgICB0eXBlOiAnQVRUUklCVVRFJyxcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogY29uZD8uYXR0cmlidXRlLFxuICAgICAgICAgICAgb3BlcmF0b3I6IGNvbmQ/Lm9wZXJhdG9yLFxuICAgICAgICAgICAgdmFsdWU6IGNvbmQ/LnZhbHVlLFxuICAgICAgICAgICAgcGF0dGVybjogdGhpcy5nZXRQYXR0ZXJuRm9yRmllbGQoZmllbGQpLFxuICAgICAgICAgICAgaXNEYXRlOiBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuSU5TVEFOVFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCA/PyBudWxsLFxuICAgICAgICAgICAgdHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGNvbmQ/LmF0dHJpYnV0ZSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiBjb25kPy5vcGVyYXRvcixcbiAgICAgICAgICAgIHZhbHVlOiBjb25kPy52YWx1ZVxuICAgICAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgY29uZGl0aW9uczogW2NvbmRpdGlvbl0sXG4gICAgICAgIHNvcnQ6IHJlc3VsdFNvcnRcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0UGF0dGVybkZvckZpZWxkKGZpZWxkOiBGaWVsZCk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZSA9IGZpZWxkLnR5cGU7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5ERUNJTUFMOlxuICAgICAgICByZXR1cm4gJ15bKy1dPyhbMC05XSpbLl0pP1swLTldKyQnO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuSU5URUdFUjpcbiAgICAgIGNhc2UgRmllbGRUeXBlLkxPTkc6XG4gICAgICAgIHJldHVybiAnXlsrLV0/WzAtOV0rJCc7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5TVFJJTkc6XG4gICAgICBjYXNlIEZpZWxkVHlwZS5LRVlXT1JEOlxuICAgICAgICByZXR1cm4gJ14uKyQnO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuSU5TVEFOVDpcbiAgICAgICAgcmV0dXJuICdeWzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0kfF5bMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfVRbMC05XXsyfTpbMC05XXsyfTpbMC05XXsyfSQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdeLiskJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEZpZWxkRnJvbUF0dHJpYnV0ZShhdHRyaWJ1dGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBjbGFzc2VzOiBDbGFzc1tdKTogRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGlmICghYXR0cmlidXRlSWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzXG4gICAgICAucmVkdWNlKChhY2MsIGNsYXp6KSA9PiBbLi4uYWNjLCAuLi5jbGF6ei5hdHRyaWJ1dGVzXSwgW10gYXMgQXR0cmlidXRlW10pXG4gICAgICAuZmluZCgoYSkgPT4gYS5pZCA9PT0gYXR0cmlidXRlSWQpPy5maWVsZDtcbiAgfVxufVxuIl19
|
|
@@ -84,12 +84,16 @@ export class PresentationFormComponent extends SubscriptionnerDirective {
|
|
|
84
84
|
image: this.image
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
+
onImageChanged($event) {
|
|
88
|
+
this.image = $event;
|
|
89
|
+
this.formValue.next(this.getFormValue());
|
|
90
|
+
}
|
|
87
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PresentationFormComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PresentationFormComponent, selector: "pry-presentation-form", inputs: { mode: "mode", themePrefix: "themePrefix", selectedPresentation: "selectedPresentation" }, outputs: { formValue: "formValue", isFormValid: "isFormValid" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{ '@pry.presentation.form.description' | i18n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PresentationFormComponent, selector: "pry-presentation-form", inputs: { mode: "mode", themePrefix: "themePrefix", selectedPresentation: "selectedPresentation" }, outputs: { formValue: "formValue", isFormValid: "isFormValid" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{ '@pry.presentation.form.description' | i18n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "component", type: i2.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i5.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
89
93
|
}
|
|
90
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PresentationFormComponent, decorators: [{
|
|
91
95
|
type: Component,
|
|
92
|
-
args: [{ selector: 'pry-presentation-form', template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{ '@pry.presentation.form.description' | i18n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"
|
|
96
|
+
args: [{ selector: 'pry-presentation-form', template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{ '@pry.presentation.form.description' | i18n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n" }]
|
|
93
97
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryI18nService }], propDecorators: { mode: [{
|
|
94
98
|
type: Input
|
|
95
99
|
}], themePrefix: [{
|
|
@@ -104,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
104
108
|
}], isFormValid: [{
|
|
105
109
|
type: Output
|
|
106
110
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsWUFBWSxFQUdaLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7O0FBc0JuRyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsd0JBQXdCO0lBcUJyRSxJQUFhLG9CQUFvQixDQUFDLFlBQTZDO1FBQzdFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUtELFlBQ1ksS0FBWSxFQUNkLFdBQTJCO1FBRW5DLEtBQUssRUFBRSxDQUFDO1FBSEUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQTdCckMsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFt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QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztZQUNqRixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUMvRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztZQUMvRyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7OEdBakdVLHlCQUF5QjtrR0FBekIseUJBQXlCLHlWQ2hDdEMsc29GQW9FQTs7MkZEcENhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUI7dUdBa0J4QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDYyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBSUwsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMLFxuICBMaWJyYXJ5VHlwZXMsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zLCBNZXRhZGF0YVNlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVzZW50YXRpb25Gb3JtIHtcbiAgbmFtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZGVzY3JpcHRpb246IEZvcm1Db250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+O1xuICB0aGVtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD47XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2VudGF0aW9uRm9ybVZhbHVlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdGhlbWU/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbiAgaW1hZ2U6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXByZXNlbnRhdGlvbi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXNlbnRhdGlvbi1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcmVzZW50YXRpb25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXA8UHJlc2VudGF0aW9uRm9ybT4oe1xuICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIHtcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldLFxuICAgICAgbm9uTnVsbGFibGU6IHRydWVcbiAgICB9KSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCldKSxcbiAgICB0aGVtZTogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCksXG4gICAgYWRkaXRpb25hbEluZm9ybWF0aW9uOiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkKVxuICB9KTtcblxuICBpbWFnZTogc3RyaW5nID0gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gIHR5cGU6IExpYnJhcnlUeXBlcyA9IExpYnJhcnlUeXBlcy5JTExVU1RSQVRJT047XG4gIHBvc3NpYmxlVGhlbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dCE6IEVsZW1lbnRSZWY7XG5cbiAgc2VsZWN0ZWRQcmVzZW50YXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFByZXNlbnRhdGlvbihwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHByZXNlbnRhdGlvbik7XG4gIH1cblxuICBAT3V0cHV0KCkgZm9ybVZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIEBPdXRwdXQoKSBpc0Zvcm1WYWxpZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5sb2FkTWV0YWRhdGEoKSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5wb3NzaWJsZVRoZW1lcyA9IFsuLi4obWV0YWRhdGE/LmZpbmQoKG1ldGEpID0+IG1ldGEubmFtZSA9PT0gJ190aGVtZScpPy5hbGxvd2VkVmFsdWVzID8/IFtdKV07XG4gICAgICAgIHRoaXMucG9zc2libGVUaGVtZXMuc29ydCgodGhlbWVBLCB0aGVtZUIpID0+XG4gICAgICAgICAgdGhpcy5pMThuU2VydmljZVxuICAgICAgICAgICAgLmluc3RhbnQoKHRoaXMudGhlbWVQcmVmaXggPz8gJycpICsgdGhlbWVBKVxuICAgICAgICAgICAgLmxvY2FsZUNvbXBhcmUodGhpcy5pMThuU2VydmljZS5pbnN0YW50KCh0aGlzLnRoZW1lUHJlZml4ID8/ICcnKSArIHRoZW1lQikpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkLm5leHQodGhpcy5mb3JtLnZhbGlkKTtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUubmV4dCh0aGlzLmdldEZvcm1WYWx1ZSgpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2UgPSB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8uaW1hZ2UgPz8gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnN1YnNjcmliZSgocHJlc2VudGF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gcHJlc2VudGF0aW9uPy5tZXRhZGF0YT8uZmluZCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLm1ldGFkYXRhRGVmLm5hbWUgPT09ICdfdGhlbWUnKT8udmFsdWU7XG4gICAgICAgIGlmICghIXRoZW1lKSB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHRoZW1lIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sIDEwKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSkgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ25hbWUnXTtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ107XG4gIH1cblxuICBnZXQgdGhlbWUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzWyd0aGVtZSddO1xuICB9XG5cbiAgZ2V0IGFkZGl0aW9uYWxJbmZvcm1hdGlvbigpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ2FkZGl0aW9uYWxJbmZvcm1hdGlvbiddO1xuICB9XG5cbiAgZ2V0Rm9ybVZhbHVlKCk6IFBhcnRpYWw8UHJlc2VudGF0aW9uRm9ybVZhbHVlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZS52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLnZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy5kZXNjcmlwdGlvbi52YWx1ZSxcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLnZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy50aGVtZS52YWx1ZSxcbiAgICAgIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogdGhpcy5hZGRpdGlvbmFsSW5mb3JtYXRpb24udmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiB0aGlzLmFkZGl0aW9uYWxJbmZvcm1hdGlvbi52YWx1ZSxcbiAgICAgIGltYWdlOiB0aGlzLmltYWdlXG4gICAgfTtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX25hbWVcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5uYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaWQ9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0ubmFtZScgfCBpMThuIH19XCJcbiAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgIG1heGxlbmd0aD1cIjUwXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgICAjaW5wdXRcbiAgICAvPlxuICAgIEBpZiAobmFtZS50b3VjaGVkICYmIG5hbWUuZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgQGlmIChuYW1lLnRvdWNoZWQgJiYgbmFtZS5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ubWF4TGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAnNTAnIH0gfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25fZGVzY3JpcHRpb25cIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5kZXNjcmlwdGlvbicgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8dGV4dGFyZWFcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgIGlkPVwicHJlc2VudGF0aW9uX2Rlc2NyaXB0aW9uXCJcbiAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICBjb2xzPVwiMzBcIlxuICAgICAgcm93cz1cIjVcIlxuICAgICAgbWF4bGVuZ3RoPVwiMjAwXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0uZGVzY3JpcHRpb24nIHwgaTE4biB9fVwiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgPjwvdGV4dGFyZWE+XG4gICAgQGlmIChkZXNjcmlwdGlvbi50b3VjaGVkICYmIGRlc2NyaXB0aW9uLmVycm9ycz8uWydtYXhsZW5ndGgnXSkge1xuICAgICAgPGxhYmVsIGZvcj1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ubWF4TGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAnMjAwJyB9IH19XG4gICAgICA8L2xhYmVsPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIiAqbmdJZj1cIm1vZGUgPT09ICd0aGVtZSdcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX3RoZW1lXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0udGhlbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwicHJlc2VudGF0aW9uX3RoZW1lXCJcbiAgICAgIFtpdGVtc109XCJwb3NzaWJsZVRoZW1lc1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aGVtZVwiXG4gICAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgW2kxOG5QcmVmaXhdPVwidGhlbWVQcmVmaXhcIlxuICAgID48L3ByeS1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9pbWFnZVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmltYWdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbGUtaW5wdXRcIj5cbiAgICAgIDxwcnktc2VsZWN0LWltYWdlXG4gICAgICAgIGlkPVwicHJlc2VudGF0aW9uX2ltYWdlXCJcbiAgICAgICAgKGNoYW5nZWQpPVwiaW1hZ2UgPSAkZXZlbnRcIlxuICAgICAgICBbaWNvblVybF09XCJpbWFnZVwiXG4gICAgICAgIFttb2RlXT1cInR5cGVcIlxuICAgICAgPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX2ltYWdlXCI+e3sgJ0BwcnkudG9vbGJveC5hYm91dCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8cHJ5LXRleHQtZWRpdG9yIGZvcm1Db250cm9sTmFtZT1cImFkZGl0aW9uYWxJbmZvcm1hdGlvblwiPjwvcHJ5LXRleHQtZWRpdG9yPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsWUFBWSxFQUdaLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7O0FBc0JuRyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsd0JBQXdCO0lBcUJyRSxJQUFhLG9CQUFvQixDQUFDLFlBQTZDO1FBQzdFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUtELFlBQ1ksS0FBWSxFQUNkLFdBQTJCO1FBRW5DLEtBQUssRUFBRSxDQUFDO1FBSEUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQTdCckMsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFt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QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztZQUNqRixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUMvRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztZQUMvRyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQXRHVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix5VkNoQ3RDLDhvRkFvRUE7OzJGRHBDYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UsdUJBQXVCO3VHQWtCeEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUlMLG9CQUFvQjtzQkFBaEMsS0FBSztnQkFJSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTCxcbiAgTGlicmFyeVR5cGVzLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBQcnlJMThuU2VydmljZSxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1ldGFkYXRhQWN0aW9ucywgTWV0YWRhdGFTZWxlY3RvcnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3InO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2VudGF0aW9uRm9ybSB7XG4gIG5hbWU6IEZvcm1Db250cm9sPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGRlc2NyaXB0aW9uOiBGb3JtQ29udHJvbDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPjtcbiAgdGhlbWU6IEZvcm1Db250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+O1xuICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IEZvcm1Db250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHRoZW1lPzogc3RyaW5nO1xuICBhZGRpdGlvbmFsSW5mb3JtYXRpb24/OiBzdHJpbmc7XG4gIGltYWdlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1wcmVzZW50YXRpb24tZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmVzZW50YXRpb24tZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJlc2VudGF0aW9uRm9ybUNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwPFByZXNlbnRhdGlvbkZvcm0+KHtcbiAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCB7XG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSxcbiAgICAgIG5vbk51bGxhYmxlOiB0cnVlXG4gICAgfSksXG4gICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyMDApXSksXG4gICAgdGhlbWU6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQpLFxuICAgIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZClcbiAgfSk7XG5cbiAgaW1hZ2U6IHN0cmluZyA9IERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMO1xuICB0eXBlOiBMaWJyYXJ5VHlwZXMgPSBMaWJyYXJ5VHlwZXMuSUxMVVNUUkFUSU9OO1xuICBwb3NzaWJsZVRoZW1lczogc3RyaW5nW10gPSBbXTtcblxuICBASW5wdXQoKSBtb2RlOiAndGhlbWUnIHwgJ21ldGEnID0gJ21ldGEnO1xuICBASW5wdXQoKSB0aGVtZVByZWZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gIHNlbGVjdGVkUHJlc2VudGF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQubmV4dChwcmVzZW50YXRpb24pO1xuICB9XG5cbiAgQE91dHB1dCgpIGZvcm1WYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQcmVzZW50YXRpb25Gb3JtVmFsdWU+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBAT3V0cHV0KCkgaXNGb3JtVmFsaWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZXRhZGF0YUFjdGlvbnMubG9hZE1ldGFkYXRhKCkpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLm1ldGFkYXRhKS5zdWJzY3JpYmUoKG1ldGFkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMucG9zc2libGVUaGVtZXMgPSBbLi4uKG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKT8uYWxsb3dlZFZhbHVlcyA/PyBbXSldO1xuICAgICAgICB0aGlzLnBvc3NpYmxlVGhlbWVzLnNvcnQoKHRoZW1lQSwgdGhlbWVCKSA9PlxuICAgICAgICAgIHRoaXMuaTE4blNlcnZpY2VcbiAgICAgICAgICAgIC5pbnN0YW50KCh0aGlzLnRoZW1lUHJlZml4ID8/ICcnKSArIHRoZW1lQSlcbiAgICAgICAgICAgIC5sb2NhbGVDb21wYXJlKHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgodGhpcy50aGVtZVByZWZpeCA/PyAnJykgKyB0aGVtZUIpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0Zvcm1WYWxpZC5uZXh0KHRoaXMuZm9ybS52YWxpZCk7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlLm5leHQodGhpcy5nZXRGb3JtVmFsdWUoKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmltYWdlID0gdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmltYWdlID8/IERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5zdWJzY3JpYmUoKHByZXNlbnRhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB0aGVtZSA9IHByZXNlbnRhdGlvbj8ubWV0YWRhdGE/LmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5tZXRhZGF0YURlZi5uYW1lID09PSAnX3RoZW1lJyk/LnZhbHVlO1xuICAgICAgICBpZiAoISF0aGVtZSkgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyB0aGVtZSB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9LCAxMCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUpIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBuYW1lKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzWyduYW1lJ107XG4gIH1cblxuICBnZXQgZGVzY3JpcHRpb24oKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzWydkZXNjcmlwdGlvbiddO1xuICB9XG5cbiAgZ2V0IHRoZW1lKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1sndGhlbWUnXTtcbiAgfVxuXG4gIGdldCBhZGRpdGlvbmFsSW5mb3JtYXRpb24oKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzWydhZGRpdGlvbmFsSW5mb3JtYXRpb24nXTtcbiAgfVxuXG4gIGdldEZvcm1WYWx1ZSgpOiBQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUudmFsdWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbi52YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRoaXMuZGVzY3JpcHRpb24udmFsdWUsXG4gICAgICB0aGVtZTogdGhpcy50aGVtZS52YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRoaXMudGhlbWUudmFsdWUsXG4gICAgICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IHRoaXMuYWRkaXRpb25hbEluZm9ybWF0aW9uLnZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy5hZGRpdGlvbmFsSW5mb3JtYXRpb24udmFsdWUsXG4gICAgICBpbWFnZTogdGhpcy5pbWFnZVxuICAgIH07XG4gIH1cblxuICBvbkltYWdlQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuaW1hZ2UgPSAkZXZlbnQ7XG4gICAgdGhpcy5mb3JtVmFsdWUubmV4dCh0aGlzLmdldEZvcm1WYWx1ZSgpKTtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX25hbWVcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5uYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaWQ9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0ubmFtZScgfCBpMThuIH19XCJcbiAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgIG1heGxlbmd0aD1cIjUwXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgICAjaW5wdXRcbiAgICAvPlxuICAgIEBpZiAobmFtZS50b3VjaGVkICYmIG5hbWUuZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgQGlmIChuYW1lLnRvdWNoZWQgJiYgbmFtZS5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ubWF4TGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAnNTAnIH0gfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25fZGVzY3JpcHRpb25cIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5kZXNjcmlwdGlvbicgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8dGV4dGFyZWFcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgIGlkPVwicHJlc2VudGF0aW9uX2Rlc2NyaXB0aW9uXCJcbiAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICBjb2xzPVwiMzBcIlxuICAgICAgcm93cz1cIjVcIlxuICAgICAgbWF4bGVuZ3RoPVwiMjAwXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0uZGVzY3JpcHRpb24nIHwgaTE4biB9fVwiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgPjwvdGV4dGFyZWE+XG4gICAgQGlmIChkZXNjcmlwdGlvbi50b3VjaGVkICYmIGRlc2NyaXB0aW9uLmVycm9ycz8uWydtYXhsZW5ndGgnXSkge1xuICAgICAgPGxhYmVsIGZvcj1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ubWF4TGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAnMjAwJyB9IH19XG4gICAgICA8L2xhYmVsPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIiAqbmdJZj1cIm1vZGUgPT09ICd0aGVtZSdcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX3RoZW1lXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0udGhlbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwicHJlc2VudGF0aW9uX3RoZW1lXCJcbiAgICAgIFtpdGVtc109XCJwb3NzaWJsZVRoZW1lc1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aGVtZVwiXG4gICAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgW2kxOG5QcmVmaXhdPVwidGhlbWVQcmVmaXhcIlxuICAgID48L3ByeS1zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9pbWFnZVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmltYWdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbGUtaW5wdXRcIj5cbiAgICAgIDxwcnktc2VsZWN0LWltYWdlXG4gICAgICAgIGlkPVwicHJlc2VudGF0aW9uX2ltYWdlXCJcbiAgICAgICAgKGNoYW5nZWQpPVwib25JbWFnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFtpY29uVXJsXT1cImltYWdlXCJcbiAgICAgICAgW21vZGVdPVwidHlwZVwiXG4gICAgICA+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25faW1hZ2VcIj57eyAnQHByeS50b29sYm94LmFib3V0JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxwcnktdGV4dC1lZGl0b3IgZm9ybUNvbnRyb2xOYW1lPVwiYWRkaXRpb25hbEluZm9ybWF0aW9uXCI+PC9wcnktdGV4dC1lZGl0b3I+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|