@plumile/backoffice-core 0.1.206 → 0.2.2

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.
@@ -1,5 +1,5 @@
1
1
  import type { GraphQLTaggedNode, OperationType } from 'relay-runtime';
2
- import type { BackofficeAliasedPickerValueResponse, BackofficeColumnSpec, BackofficeConnection, BackofficeConnectionListConfig, BackofficeDetailContentSpec, BackofficeDetailLayoutProfile, BackofficeDetailPageSpec, BackofficeDetailVariables, BackofficeEntityActionSpec, BackofficeEntityDetailConfig, BackofficeEntityPickerConfig, BackofficeEntityRelationSpec, BackofficeListQueryInput, BackofficeListResponsiveProfile, BackofficeListState, BackofficeListUiConfig, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerQueryInput, BackofficePickerValueConfig, BackofficeRuntimeEntityCountConfig, BackofficeRuntimeOperation, BackofficeRowFlagSpec, I18nLabel } from '../types.js';
2
+ import type { BackofficeAliasedPickerValueResponse, BackofficeColumnSpec, BackofficeConnection, BackofficeConnectionListConfig, BackofficeDetailContentSpec, BackofficeDetailLayoutProfile, BackofficeDetailPageSpec, BackofficeDetailVariables, BackofficeEntityActionSpec, BackofficeEntityDetailConfig, BackofficeEntityPickerConfig, BackofficeEntityRelationSpec, BackofficeListQueryInput, BackofficeListResponsiveProfile, BackofficeListState, BackofficeListUiConfig, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerQueryInput, BackofficePickerValueConfig, BackofficeRuntimeEntityCountConfig, BackofficeRuntimeOperation, BackofficeRelayFragmentData, BackofficeRelayFragmentKey, BackofficeRowFlagSpec, I18nLabel } from '../types.js';
3
3
  import { type BackofficeLegacyFilterSpec } from './filters.js';
4
4
  import { type BackofficeLegacySortSpec } from './sorts.js';
5
5
  export type BackofficeWhereEntry = {
@@ -57,7 +57,7 @@ export declare const buildBackofficeConnectionListConfig: <TOperation extends Op
57
57
  }) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, Where, Sort, BackofficeRuntimeOperation, EntityId>;
58
58
  export declare function buildBackofficeDetailPageConfig<DetailView extends {
59
59
  id: string;
60
- }, DetailData = DetailView, LayoutView = DetailView, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = {
60
+ }, DetailData = DetailView, LayoutView = DetailView, DetailQueryData = unknown, DetailFragmentKey extends BackofficeRelayFragmentKey<DetailData> = BackofficeRelayFragmentKey<DetailData>, DetailQueryVariables = {
61
61
  id: string;
62
62
  }>(options: {
63
63
  id: string;
@@ -65,7 +65,7 @@ export declare function buildBackofficeDetailPageConfig<DetailView extends {
65
65
  label: I18nLabel;
66
66
  query: GraphQLTaggedNode;
67
67
  fragment: GraphQLTaggedNode;
68
- toView: (data: DetailData) => DetailView;
68
+ toView: (data: BackofficeRelayFragmentData<DetailFragmentKey>) => DetailView;
69
69
  content: readonly BackofficeDetailContentSpec<DetailView>[];
70
70
  actions?: readonly BackofficeEntityActionSpec<DetailView>[];
71
71
  resolveNode: (data: DetailQueryData, context: {
@@ -82,7 +82,7 @@ export declare const buildBackofficeEntityDetailConfig: <LayoutData extends obje
82
82
  id: string;
83
83
  }, MainData extends object = LayoutData, MainView extends {
84
84
  id: string;
85
- } = LayoutView, LayoutQueryData = unknown, MainQueryData = unknown, LayoutFragmentKey = unknown, MainFragmentKey = unknown, LayoutQueryVariables = {
85
+ } = LayoutView, LayoutQueryData = unknown, MainQueryData = unknown, LayoutFragmentKey extends BackofficeRelayFragmentKey<LayoutData> = BackofficeRelayFragmentKey<LayoutData>, MainFragmentKey extends BackofficeRelayFragmentKey<MainData> = BackofficeRelayFragmentKey<MainData>, LayoutQueryVariables = {
86
86
  id: string;
87
87
  }, MainQueryVariables = {
88
88
  id: string;
@@ -92,11 +92,11 @@ export declare const buildBackofficeEntityDetailConfig: <LayoutData extends obje
92
92
  headerSubtitle?: I18nLabel;
93
93
  query: GraphQLTaggedNode;
94
94
  fragment: GraphQLTaggedNode;
95
- toView: (data: MainData) => MainView;
95
+ toView: (data: BackofficeRelayFragmentData<MainFragmentKey>) => MainView;
96
96
  actions?: readonly BackofficeEntityActionSpec<MainView>[];
97
97
  layoutQuery?: GraphQLTaggedNode;
98
98
  layoutFragment?: GraphQLTaggedNode;
99
- layoutToView: (data: LayoutData) => LayoutView;
99
+ layoutToView: (data: BackofficeRelayFragmentData<LayoutFragmentKey>) => LayoutView;
100
100
  header?: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>['header'];
101
101
  resolveNode: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>['mainPage']['resolveNode'];
102
102
  layoutResolveNode: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>['layoutPage']['resolveNode'];
@@ -1 +1 @@
1
- {"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"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"}
@@ -208,4 +208,4 @@ export const buildBackofficeEntityPickerConfig = (options) => {
208
208
  }),
209
209
  };
210
210
  };
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEyQjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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SSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7d0JBQ3BCLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB7IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZSxcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uLFxuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGUsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYyxcbiAgQmFja29mZmljZURldGFpbFZhcmlhYmxlcyxcbiAgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlUHJvZmlsZSxcbiAgQmFja29mZmljZUxpc3RTdGF0ZSxcbiAgQmFja29mZmljZUxpc3RVaUNvbmZpZyxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVPcGVyYXRpb24sXG4gIEJhY2tvZmZpY2VSb3dGbGFnU3BlYyxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBidWlsZEdlbmVyaWNEZXRhaWxIZWFkZXIgfSBmcm9tICcuL2RldGFpbC5qcyc7XG5pbXBvcnQgeyBtYXBGaWx0ZXJzLCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjIH0gZnJvbSAnLi9maWx0ZXJzLmpzJztcbmltcG9ydCB7IGdldFJvd0lkIH0gZnJvbSAnLi9saXN0LmpzJztcbmltcG9ydCB7IG1hcFNvcnRzLCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lTb3J0U3BlYyB9IGZyb20gJy4vc29ydHMuanMnO1xuaW1wb3J0IHsgc2V0V2hlcmVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlcnMvd2hlcmUuanMnO1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlV2hlcmVFbnRyeSA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiB1bmtub3duO1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPiA9IHtcbiAgd2hlcmVLZXk6IEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VQaWNrZXJTY29wZUNvbmZpZzxXaGVyZT4gPSB7XG4gIGtleXM6IHJlYWRvbmx5IEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz5bXTtcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0tPRkZJQ0VfTElTVF9VSV9DT05GSUcgPSB7XG4gIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgZGlzcGxheU1vZGU6ICdhdXRvJyxcbiAgaW5maW5pdGVTY3JvbGw6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIHJvb3RNYXJnaW46ICc3MjBweCAwcHgnLFxuICAgIHRocmVzaG9sZDogMCxcbiAgICBzdGF0dXM6IHtcbiAgICAgIHNob3dMb2FkZWRDb3VudDogdHJ1ZSxcbiAgICAgIHNob3dUb3RhbENvdW50OiB0cnVlLFxuICAgICAgc2hvd0VuZFN0YXRlOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHRvb2xiYXI6IHtcbiAgICBkZW5zaXR5OiAnY29tcGFjdCcsXG4gICAgZGlzcGxheU1vZGU6ICdhdXRvJyxcbiAgICBtYXhQcm9tb3RlZEZpbHRlcnM6IDIsXG4gICAgc2hvd1JlZnJlc2g6IHRydWUsXG4gICAgc2hvd1NvcnQ6IHRydWUsXG4gICAgc2hvd0ZpbHRlckNoaXBzOiAnYXV0bycsXG4gIH0sXG59IHNhdGlzZmllcyBCYWNrb2ZmaWNlTGlzdFVpQ29uZmlnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRXaGVyZUZyb21FbnRyaWVzID0gKFxuICBlbnRyaWVzOiByZWFkb25seSBCYWNrb2ZmaWNlV2hlcmVFbnRyeVtdLFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsID0+IHtcbiAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuICBlbnRyaWVzLmZvckVhY2goKHsga2V5LCBwYXRoLCB2YWx1ZSB9KSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXh0V2hlcmUgPSBzZXRXaGVyZVZhbHVlKHdoZXJlLCBrZXksIHZhbHVlLCBwYXRoKTtcbiAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgIHdoZXJlID0gbmV4dFdoZXJlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB3aGVyZTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUGlja2VyU2VhcmNoRnJvbUZpbHRlcnMgPSA8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIEZpbHRlcldoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBXaGVyZSxcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPEZpbHRlcldoZXJlPltdLFxuKTogQmFja29mZmljZVBpY2tlclNlYXJjaENvbmZpZzxXaGVyZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBtYXRjaCA9IGZpbHRlcnMuZmluZCgoZmlsdGVyKSA9PiB7XG4gICAgcmV0dXJuIGZpbHRlci5raW5kID09PSAndGV4dENvbnRhaW5zJztcbiAgfSk7XG4gIGlmIChtYXRjaCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCB3aGVyZUtleSA9IChtYXRjaC53aGVyZUtleSA/PyBtYXRjaC5pZCkgYXMgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcmV0dXJuIHsgd2hlcmVLZXksIHBhdGg6IG1hdGNoLnBhdGggfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUGlja2VyU2NvcGVGcm9tRmlsdGVycyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgRmlsdGVyV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFdoZXJlLFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8RmlsdGVyV2hlcmU+W10sXG4gIHN1cHBvcnRlZEtleXM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHNjb3BlZEtleXMgPSBuZXcgU2V0PEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz4+KCk7XG4gIGZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gU3RyaW5nKGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQpO1xuICAgIGlmIChzdXBwb3J0ZWRLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIHNjb3BlZEtleXMuYWRkKFxuICAgICAgICAoZmlsdGVyLndoZXJlS2V5ID8/IGZpbHRlci5pZCkgYXMgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPixcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbiAgaWYgKHNjb3BlZEtleXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHsga2V5czogQXJyYXkuZnJvbShzY29wZWRLZXlzKSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmIGV4dGVuZHMgb2JqZWN0LFxuICBSb3dWaWV3IGV4dGVuZHMgb2JqZWN0LFxuICBMaXN0RnJhZ21lbnREYXRhID0gdW5rbm93bixcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICBFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4ob3B0aW9uczoge1xuICB0aXRsZTogSTE4bkxhYmVsO1xuICBjb2x1bW5zOiByZWFkb25seSBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PltdO1xuICByb3dGbGFncz86IHJlYWRvbmx5IEJhY2tvZmZpY2VSb3dGbGFnU3BlYzxSb3dWaWV3PltdO1xuICBzb3J0czogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjPFNvcnQ+W107XG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlLCBFbnRpdHlJZD5bXTtcbiAgZGVmYXVsdFN0YXRlOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PjtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGNvdW50OiBCYWNrb2ZmaWNlUnVudGltZUVudGl0eUNvdW50Q29uZmlnPFdoZXJlPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IExpc3RGcmFnbWVudERhdGEpID0+IEJhY2tvZmZpY2VDb25uZWN0aW9uPFJvd1JlZj47XG4gIHRvUm93OiAocm93UmVmOiBSb3dSZWYpID0+IFJvd1ZpZXc7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZSwgU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gIHJlc3BvbnNpdmU/OiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVQcm9maWxlPFJvd1ZpZXc+O1xuICB1aT86IEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG59KTogQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBTb3J0LFxuICBCYWNrb2ZmaWNlUnVudGltZU9wZXJhdGlvbixcbiAgRW50aXR5SWRcbj4gPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICBjb3VudDogb3B0aW9ucy5jb3VudCxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQsXG4gICAgY29sdW1uczogb3B0aW9ucy5jb2x1bW5zLFxuICAgIHJvd0ZsYWdzOiBvcHRpb25zLnJvd0ZsYWdzLFxuICAgIHNvcnRzOiBtYXBTb3J0cyhvcHRpb25zLnNvcnRzKSxcbiAgICBmaWx0ZXJzOiBtYXBGaWx0ZXJzKG9wdGlvbnMuZmlsdGVycyksXG4gICAgZGVmYXVsdFN0YXRlOiBvcHRpb25zLmRlZmF1bHRTdGF0ZSxcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgICAgICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgICAgICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgcmVzcG9uc2l2ZTogb3B0aW9ucy5yZXNwb25zaXZlID8/IHtcbiAgICAgIG1vZGU6ICdhdXRvJyxcbiAgICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICB9LFxuICAgIHVpOiBvcHRpb25zLnVpID8/IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyxcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmFja29mZmljZURldGFpbFBhZ2VDb25maWc8XG4gIERldGFpbFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgRGV0YWlsRGF0YSA9IERldGFpbFZpZXcsXG4gIExheW91dFZpZXcgPSBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEgPSB1bmtub3duLFxuICBEZXRhaWxGcmFnbWVudEtleSA9IHVua25vd24sXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgaWQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogRGV0YWlsRGF0YSkgPT4gRGV0YWlsVmlldztcbiAgY29udGVudDogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPERldGFpbFZpZXc+W107XG4gIGFjdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5QWN0aW9uU3BlYzxEZXRhaWxWaWV3PltdO1xuICByZXNvbHZlTm9kZTogKFxuICAgIGRhdGE6IERldGFpbFF1ZXJ5RGF0YSxcbiAgICBjb250ZXh0OiB7IGlkOiBzdHJpbmc7IGRldGFpbElkPzogc3RyaW5nIH0sXG4gICkgPT4gRGV0YWlsRnJhZ21lbnRLZXkgfCBudWxsO1xuICBidWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8RGV0YWlsUXVlcnlWYXJpYWJsZXM+O1xuICBpc1Zpc2libGU/OiAobGF5b3V0UGFnZTogTGF5b3V0VmlldykgPT4gYm9vbGVhbjtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPERldGFpbFZpZXc+O1xufSk6IEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYzxcbiAgRGV0YWlsVmlldyxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsRGF0YSxcbiAgRGV0YWlsUXVlcnlEYXRhLFxuICBEZXRhaWxGcmFnbWVudEtleSxcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbj4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLnJlc29sdmVOb2RlLFxuICAgIHRvVmlldzogb3B0aW9ucy50b1ZpZXcsXG4gICAgYnVpbGRWYXJpYWJsZXM6IG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMsXG4gICAgaWQ6IG9wdGlvbnMuaWQsXG4gICAgcGF0aDogb3B0aW9ucy5wYXRoLFxuICAgIGxhYmVsOiBvcHRpb25zLmxhYmVsLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuY29udGVudCxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgaXNWaXNpYmxlOiBvcHRpb25zLmlzVmlzaWJsZSxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcgPSA8XG4gIExheW91dERhdGEgZXh0ZW5kcyBvYmplY3QsXG4gIExheW91dFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpbkRhdGEgZXh0ZW5kcyBvYmplY3QgPSBMYXlvdXREYXRhLFxuICBNYWluVmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ID0gTGF5b3V0VmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhID0gdW5rbm93bixcbiAgTWFpblF1ZXJ5RGF0YSA9IHVua25vd24sXG4gIExheW91dEZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTWFpbkZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMgPSB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgaGVhZGVyVGl0bGU/OiBJMThuTGFiZWw7XG4gIGhlYWRlclN1YnRpdGxlPzogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogTWFpbkRhdGEpID0+IE1haW5WaWV3O1xuICBhY3Rpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWM8TWFpblZpZXc+W107XG4gIGxheW91dFF1ZXJ5PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dEZyYWdtZW50PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dFRvVmlldzogKGRhdGE6IExheW91dERhdGEpID0+IExheW91dFZpZXc7XG4gIGhlYWRlcj86IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ2hlYWRlciddO1xuICByZXNvbHZlTm9kZTogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnbWFpblBhZ2UnXVsncmVzb2x2ZU5vZGUnXTtcbiAgbGF5b3V0UmVzb2x2ZU5vZGU6IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ2xheW91dFBhZ2UnXVsncmVzb2x2ZU5vZGUnXTtcbiAgYnVpbGRWYXJpYWJsZXM/OiAoaW5wdXQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9KSA9PiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPE1haW5RdWVyeVZhcmlhYmxlcz47XG4gIGxheW91dEJ1aWxkVmFyaWFibGVzPzogKGlucHV0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxMYXlvdXRRdWVyeVZhcmlhYmxlcz47XG4gIHJlbGF0aW9ucz86IHJlYWRvbmx5IEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWM8TGF5b3V0Vmlldz5bXTtcbiAgZGV0YWlsQ29udGVudD86IHJlYWRvbmx5IEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYzxNYWluVmlldz5bXTtcbiAgbWFpblBhZ2VJZD86IHN0cmluZztcbiAgbWFpblBhZ2VQYXRoPzogc3RyaW5nO1xuICBtYWluUGFnZUxhYmVsPzogSTE4bkxhYmVsO1xuICBzdWJQYWdlcz86IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ3N1YlBhZ2VzJ107XG4gIHByb2ZpbGU/OiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZTxMYXlvdXRWaWV3PjtcbiAgbWFpblBhZ2VQcm9maWxlPzogQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGU8TWFpblZpZXc+O1xufSk6IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gIExheW91dERhdGEsXG4gIExheW91dFZpZXcsXG4gIE1haW5EYXRhLFxuICBNYWluVmlldyxcbiAgTWFpbkRhdGEsXG4gIE1haW5WaWV3LFxuICBMYXlvdXRRdWVyeURhdGEsXG4gIE1haW5RdWVyeURhdGEsXG4gIE1haW5RdWVyeURhdGEsXG4gIExheW91dEZyYWdtZW50S2V5LFxuICBNYWluRnJhZ21lbnRLZXksXG4gIE1haW5GcmFnbWVudEtleSxcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzXG4+ID0+IHtcbiAgY29uc3QgZGVmYXVsdEhlYWRlciA9IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlcih7XG4gICAgdGl0bGU6IG9wdGlvbnMuaGVhZGVyVGl0bGUgPz8gb3B0aW9ucy50aXRsZSxcbiAgICBzdWJ0aXRsZTogb3B0aW9ucy5oZWFkZXJTdWJ0aXRsZSxcbiAgfSk7XG4gIGNvbnN0IG1haW5QYWdlSWQgPSBvcHRpb25zLm1haW5QYWdlSWQgPz8gJ292ZXJ2aWV3JztcbiAgY29uc3QgbWFpblBhZ2VQYXRoID0gb3B0aW9ucy5tYWluUGFnZVBhdGggPz8gJ292ZXJ2aWV3JztcbiAgY29uc3QgbWFpblBhZ2VMYWJlbCA9IG9wdGlvbnMubWFpblBhZ2VMYWJlbCA/PyBvcHRpb25zLnRpdGxlO1xuICBjb25zdCBtYWluUGFnZSA9IGJ1aWxkQmFja29mZmljZURldGFpbFBhZ2VDb25maWc8XG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPih7XG4gICAgaWQ6IG1haW5QYWdlSWQsXG4gICAgcGF0aDogbWFpblBhZ2VQYXRoLFxuICAgIGxhYmVsOiBtYWluUGFnZUxhYmVsLFxuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLnJlc29sdmVOb2RlLFxuICAgIHRvVmlldzogb3B0aW9ucy50b1ZpZXcsXG4gICAgYnVpbGRWYXJpYWJsZXM6IG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMsXG4gICAgY29udGVudDogb3B0aW9ucy5kZXRhaWxDb250ZW50ID8/IFtdLFxuICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucyxcbiAgICBwcm9maWxlOiBvcHRpb25zLm1haW5QYWdlUHJvZmlsZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICBoZWFkZXI6IG9wdGlvbnMuaGVhZGVyID8/IGRlZmF1bHRIZWFkZXIsXG4gICAgcmVsYXRpb25zOiBvcHRpb25zLnJlbGF0aW9ucyxcbiAgICBsYXlvdXRQYWdlOiB7XG4gICAgICBxdWVyeTogb3B0aW9ucy5sYXlvdXRRdWVyeSA/PyBvcHRpb25zLnF1ZXJ5LFxuICAgICAgZnJhZ21lbnQ6IG9wdGlvbnMubGF5b3V0RnJhZ21lbnQgPz8gb3B0aW9ucy5mcmFnbWVudCxcbiAgICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLmxheW91dFJlc29sdmVOb2RlLFxuICAgICAgdG9WaWV3OiBvcHRpb25zLmxheW91dFRvVmlldyxcbiAgICAgIGJ1aWxkVmFyaWFibGVzOiBvcHRpb25zLmxheW91dEJ1aWxkVmFyaWFibGVzLFxuICAgIH0sXG4gICAgbWFpblBhZ2UsXG4gICAgc3ViUGFnZXM6IG9wdGlvbnMuc3ViUGFnZXMsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUNvbm5lY3Rpb25EZXRhaWxWYXJpYWJsZXMgPSA8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFNvcnQgZXh0ZW5kcyBzdHJpbmcsXG4+KGlucHV0OiB7XG4gIGRldGFpbElkOiBzdHJpbmc7XG4gIHdoZXJlOiBXaGVyZSB8IG51bGw7XG4gIHNvcnQ6IFNvcnQgfCBudWxsO1xufSk6IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8e1xuICB3aGVyZTogV2hlcmUgfCBudWxsO1xuICBzb3J0OiBTb3J0IHwgbnVsbDtcbiAgY291bnQ6IG51bWJlcjtcbn0+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBkZXRhaWxJZDogaW5wdXQuZGV0YWlsSWQsXG4gICAgdmFyaWFibGVzOiB7XG4gICAgICB3aGVyZTogaW5wdXQud2hlcmUsXG4gICAgICBzb3J0OiBpbnB1dC5zb3J0LFxuICAgICAgY291bnQ6IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUy5wYWdlU2l6ZSxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZiBleHRlbmRzIG9iamVjdCxcbiAgUm93VmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LFxuICBQaWNrZXJGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBWYWx1ZVF1ZXJ5RGF0YSA9IEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZTxzdHJpbmcsIFJvd1JlZj4sXG4+KG9wdGlvbnM6IHtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHZhbHVlPzogQmFja29mZmljZVBpY2tlclZhbHVlQ29uZmlnPFJvd1JlZiwgUm93VmlldywgVmFsdWVRdWVyeURhdGE+O1xuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogUGlja2VyRnJhZ21lbnREYXRhKSA9PiBCYWNrb2ZmaWNlQ29ubmVjdGlvbjxSb3dSZWY+O1xuICB0b1JvdzogKHJvd1JlZjogUm93UmVmKSA9PiBSb3dWaWV3O1xuICBnZXRSb3dJZD86IChyb3c6IFJvd1ZpZXcpID0+IHN0cmluZztcbiAgc2VhcmNoPzogQmFja29mZmljZVBpY2tlclNlYXJjaENvbmZpZzxXaGVyZT47XG4gIHNjb3BlPzogQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPjtcbiAgc2VhcmNoRW5hYmxlZD86IGJvb2xlYW47XG4gIHNlYXJjaFJlcXVpcmVkPzogYm9vbGVhbjtcbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiBJMThuTGFiZWw7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFdoZXJlPixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn0pOiBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgV2hlcmUsXG4gIFZhbHVlUXVlcnlEYXRhXG4+ID0+IHtcbiAgY29uc3Qgc2VhcmNoQ29uZmlnID0gb3B0aW9ucy5zZWFyY2g7XG4gIGNvbnN0IHNjb3BlS2V5cyA9IG9wdGlvbnMuc2NvcGU/LmtleXMgPz8gW107XG4gIGNvbnN0IHNlYXJjaFJlcXVpcmVkID0gb3B0aW9ucy5zZWFyY2hSZXF1aXJlZCA/PyBmYWxzZTtcbiAgY29uc3Qgc2VhcmNoRW5hYmxlZCA9XG4gICAgb3B0aW9ucy5zZWFyY2hFbmFibGVkID8/IChzZWFyY2hDb25maWcgIT0gbnVsbCB8fCBzZWFyY2hSZXF1aXJlZCk7XG4gIGNvbnN0IGdldFJlc29sdmVkUm93SWQgPVxuICAgIG9wdGlvbnMuZ2V0Um93SWQgPz9cbiAgICAoKHJvdzogUm93VmlldykgPT4ge1xuICAgICAgcmV0dXJuIHJvdy5pZDtcbiAgICB9KTtcblxuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHZhbHVlOiBvcHRpb25zLnZhbHVlLFxuICAgIGdldENvbm5lY3Rpb246IG9wdGlvbnMuZ2V0Q29ubmVjdGlvbixcbiAgICB0b1Jvdzogb3B0aW9ucy50b1JvdyxcbiAgICBnZXRSb3dJZDogZ2V0UmVzb2x2ZWRSb3dJZCxcbiAgICBzZWFyY2hFbmFibGVkLFxuICAgIHNlYXJjaFJlcXVpcmVkLFxuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiBvcHRpb25zLnNlYXJjaFBsYWNlaG9sZGVyLFxuICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICBvcHRpb25zLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz9cbiAgICAgICgoaW5wdXQpID0+IHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gICAgICAgIGxldCB3aGVyZTogV2hlcmUgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKHNlYXJjaENvbmZpZyAhPSBudWxsICYmIHRyaW1tZWQgIT09ICcnKSB7XG4gICAgICAgICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZShcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBzZWFyY2hDb25maWcud2hlcmVLZXksXG4gICAgICAgICAgICB0cmltbWVkLFxuICAgICAgICAgICAgc2VhcmNoQ29uZmlnLnBhdGgsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdoZXJlID0gbmV4dFdoZXJlIGFzIFdoZXJlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuc2NvcGUgIT0gbnVsbCAmJiBzY29wZUtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNjb3BlS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2NvcGU/LltTdHJpbmcoa2V5KV07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXh0V2hlcmUgPSBzZXRXaGVyZVZhbHVlKHdoZXJlLCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICB3aGVyZSA9IG5leHRXaGVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHdoZXJlLFxuICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICBjdXJzb3I6IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgfTtcbn07XG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUE2QjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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SSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7d0JBQ3BCLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB7IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZSxcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uLFxuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGUsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYyxcbiAgQmFja29mZmljZURldGFpbFZhcmlhYmxlcyxcbiAgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlUHJvZmlsZSxcbiAgQmFja29mZmljZUxpc3RTdGF0ZSxcbiAgQmFja29mZmljZUxpc3RVaUNvbmZpZyxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVPcGVyYXRpb24sXG4gIEJhY2tvZmZpY2VSZWxheUZyYWdtZW50RGF0YSxcbiAgQmFja29mZmljZVJlbGF5RnJhZ21lbnRLZXksXG4gIEJhY2tvZmZpY2VSb3dGbGFnU3BlYyxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBidWlsZEdlbmVyaWNEZXRhaWxIZWFkZXIgfSBmcm9tICcuL2RldGFpbC5qcyc7XG5pbXBvcnQgeyBtYXBGaWx0ZXJzLCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjIH0gZnJvbSAnLi9maWx0ZXJzLmpzJztcbmltcG9ydCB7IGdldFJvd0lkIH0gZnJvbSAnLi9saXN0LmpzJztcbmltcG9ydCB7IG1hcFNvcnRzLCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lTb3J0U3BlYyB9IGZyb20gJy4vc29ydHMuanMnO1xuaW1wb3J0IHsgc2V0V2hlcmVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlcnMvd2hlcmUuanMnO1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlV2hlcmVFbnRyeSA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiB1bmtub3duO1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPiA9IHtcbiAgd2hlcmVLZXk6IEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VQaWNrZXJTY29wZUNvbmZpZzxXaGVyZT4gPSB7XG4gIGtleXM6IHJlYWRvbmx5IEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz5bXTtcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0tPRkZJQ0VfTElTVF9VSV9DT05GSUcgPSB7XG4gIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgZGlzcGxheU1vZGU6ICdhdXRvJyxcbiAgaW5maW5pdGVTY3JvbGw6IHtcbiAgICBlbmFibGVkOiB0cnVlLFxuICAgIHJvb3RNYXJnaW46ICc3MjBweCAwcHgnLFxuICAgIHRocmVzaG9sZDogMCxcbiAgICBzdGF0dXM6IHtcbiAgICAgIHNob3dMb2FkZWRDb3VudDogdHJ1ZSxcbiAgICAgIHNob3dUb3RhbENvdW50OiB0cnVlLFxuICAgICAgc2hvd0VuZFN0YXRlOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHRvb2xiYXI6IHtcbiAgICBkZW5zaXR5OiAnY29tcGFjdCcsXG4gICAgZGlzcGxheU1vZGU6ICdhdXRvJyxcbiAgICBtYXhQcm9tb3RlZEZpbHRlcnM6IDIsXG4gICAgc2hvd1JlZnJlc2g6IHRydWUsXG4gICAgc2hvd1NvcnQ6IHRydWUsXG4gICAgc2hvd0ZpbHRlckNoaXBzOiAnYXV0bycsXG4gIH0sXG59IHNhdGlzZmllcyBCYWNrb2ZmaWNlTGlzdFVpQ29uZmlnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRXaGVyZUZyb21FbnRyaWVzID0gKFxuICBlbnRyaWVzOiByZWFkb25seSBCYWNrb2ZmaWNlV2hlcmVFbnRyeVtdLFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsID0+IHtcbiAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuICBlbnRyaWVzLmZvckVhY2goKHsga2V5LCBwYXRoLCB2YWx1ZSB9KSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXh0V2hlcmUgPSBzZXRXaGVyZVZhbHVlKHdoZXJlLCBrZXksIHZhbHVlLCBwYXRoKTtcbiAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgIHdoZXJlID0gbmV4dFdoZXJlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiB3aGVyZTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUGlja2VyU2VhcmNoRnJvbUZpbHRlcnMgPSA8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIEZpbHRlcldoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBXaGVyZSxcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPEZpbHRlcldoZXJlPltdLFxuKTogQmFja29mZmljZVBpY2tlclNlYXJjaENvbmZpZzxXaGVyZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBtYXRjaCA9IGZpbHRlcnMuZmluZCgoZmlsdGVyKSA9PiB7XG4gICAgcmV0dXJuIGZpbHRlci5raW5kID09PSAndGV4dENvbnRhaW5zJztcbiAgfSk7XG4gIGlmIChtYXRjaCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCB3aGVyZUtleSA9IChtYXRjaC53aGVyZUtleSA/PyBtYXRjaC5pZCkgYXMgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcmV0dXJuIHsgd2hlcmVLZXksIHBhdGg6IG1hdGNoLnBhdGggfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUGlja2VyU2NvcGVGcm9tRmlsdGVycyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgRmlsdGVyV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFdoZXJlLFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8RmlsdGVyV2hlcmU+W10sXG4gIHN1cHBvcnRlZEtleXM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHNjb3BlZEtleXMgPSBuZXcgU2V0PEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz4+KCk7XG4gIGZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gU3RyaW5nKGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQpO1xuICAgIGlmIChzdXBwb3J0ZWRLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIHNjb3BlZEtleXMuYWRkKFxuICAgICAgICAoZmlsdGVyLndoZXJlS2V5ID8/IGZpbHRlci5pZCkgYXMgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPixcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbiAgaWYgKHNjb3BlZEtleXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHsga2V5czogQXJyYXkuZnJvbShzY29wZWRLZXlzKSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmIGV4dGVuZHMgb2JqZWN0LFxuICBSb3dWaWV3IGV4dGVuZHMgb2JqZWN0LFxuICBMaXN0RnJhZ21lbnREYXRhID0gdW5rbm93bixcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICBFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4ob3B0aW9uczoge1xuICB0aXRsZTogSTE4bkxhYmVsO1xuICBjb2x1bW5zOiByZWFkb25seSBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PltdO1xuICByb3dGbGFncz86IHJlYWRvbmx5IEJhY2tvZmZpY2VSb3dGbGFnU3BlYzxSb3dWaWV3PltdO1xuICBzb3J0czogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjPFNvcnQ+W107XG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlLCBFbnRpdHlJZD5bXTtcbiAgZGVmYXVsdFN0YXRlOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PjtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGNvdW50OiBCYWNrb2ZmaWNlUnVudGltZUVudGl0eUNvdW50Q29uZmlnPFdoZXJlPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IExpc3RGcmFnbWVudERhdGEpID0+IEJhY2tvZmZpY2VDb25uZWN0aW9uPFJvd1JlZj47XG4gIHRvUm93OiAocm93UmVmOiBSb3dSZWYpID0+IFJvd1ZpZXc7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZSwgU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gIHJlc3BvbnNpdmU/OiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVQcm9maWxlPFJvd1ZpZXc+O1xuICB1aT86IEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG59KTogQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBTb3J0LFxuICBCYWNrb2ZmaWNlUnVudGltZU9wZXJhdGlvbixcbiAgRW50aXR5SWRcbj4gPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICBjb3VudDogb3B0aW9ucy5jb3VudCxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQsXG4gICAgY29sdW1uczogb3B0aW9ucy5jb2x1bW5zLFxuICAgIHJvd0ZsYWdzOiBvcHRpb25zLnJvd0ZsYWdzLFxuICAgIHNvcnRzOiBtYXBTb3J0cyhvcHRpb25zLnNvcnRzKSxcbiAgICBmaWx0ZXJzOiBtYXBGaWx0ZXJzKG9wdGlvbnMuZmlsdGVycyksXG4gICAgZGVmYXVsdFN0YXRlOiBvcHRpb25zLmRlZmF1bHRTdGF0ZSxcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgICAgICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgICAgICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgcmVzcG9uc2l2ZTogb3B0aW9ucy5yZXNwb25zaXZlID8/IHtcbiAgICAgIG1vZGU6ICdhdXRvJyxcbiAgICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICB9LFxuICAgIHVpOiBvcHRpb25zLnVpID8/IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyxcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmFja29mZmljZURldGFpbFBhZ2VDb25maWc8XG4gIERldGFpbFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgRGV0YWlsRGF0YSA9IERldGFpbFZpZXcsXG4gIExheW91dFZpZXcgPSBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEgPSB1bmtub3duLFxuICBEZXRhaWxGcmFnbWVudEtleSBleHRlbmRzIEJhY2tvZmZpY2VSZWxheUZyYWdtZW50S2V5PERldGFpbERhdGE+ID1cbiAgICBCYWNrb2ZmaWNlUmVsYXlGcmFnbWVudEtleTxEZXRhaWxEYXRhPixcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXMgPSB7IGlkOiBzdHJpbmcgfSxcbj4ob3B0aW9uczoge1xuICBpZDogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGxhYmVsOiBJMThuTGFiZWw7XG4gIHF1ZXJ5OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgZnJhZ21lbnQ6IEdyYXBoUUxUYWdnZWROb2RlO1xuICB0b1ZpZXc6IChkYXRhOiBCYWNrb2ZmaWNlUmVsYXlGcmFnbWVudERhdGE8RGV0YWlsRnJhZ21lbnRLZXk+KSA9PiBEZXRhaWxWaWV3O1xuICBjb250ZW50OiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsQ29udGVudFNwZWM8RGV0YWlsVmlldz5bXTtcbiAgYWN0aW9ucz86IHJlYWRvbmx5IEJhY2tvZmZpY2VFbnRpdHlBY3Rpb25TcGVjPERldGFpbFZpZXc+W107XG4gIHJlc29sdmVOb2RlOiAoXG4gICAgZGF0YTogRGV0YWlsUXVlcnlEYXRhLFxuICAgIGNvbnRleHQ6IHsgaWQ6IHN0cmluZzsgZGV0YWlsSWQ/OiBzdHJpbmcgfSxcbiAgKSA9PiBEZXRhaWxGcmFnbWVudEtleSB8IG51bGw7XG4gIGJ1aWxkVmFyaWFibGVzPzogKGlucHV0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxEZXRhaWxRdWVyeVZhcmlhYmxlcz47XG4gIGlzVmlzaWJsZT86IChsYXlvdXRQYWdlOiBMYXlvdXRWaWV3KSA9PiBib29sZWFuO1xuICBwcm9maWxlPzogQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGU8RGV0YWlsVmlldz47XG59KTogQmFja29mZmljZURldGFpbFBhZ2VTcGVjPFxuICBEZXRhaWxWaWV3LFxuICBMYXlvdXRWaWV3LFxuICBEZXRhaWxEYXRhLFxuICBEZXRhaWxRdWVyeURhdGEsXG4gIERldGFpbEZyYWdtZW50S2V5LFxuICBEZXRhaWxRdWVyeVZhcmlhYmxlc1xuPiB7XG4gIHJldHVybiB7XG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgcmVzb2x2ZU5vZGU6IG9wdGlvbnMucmVzb2x2ZU5vZGUsXG4gICAgdG9WaWV3OiBvcHRpb25zLnRvVmlldyxcbiAgICBidWlsZFZhcmlhYmxlczogb3B0aW9ucy5idWlsZFZhcmlhYmxlcyxcbiAgICBpZDogb3B0aW9ucy5pZCxcbiAgICBwYXRoOiBvcHRpb25zLnBhdGgsXG4gICAgbGFiZWw6IG9wdGlvbnMubGFiZWwsXG4gICAgY29udGVudDogb3B0aW9ucy5jb250ZW50LFxuICAgIGFjdGlvbnM6IG9wdGlvbnMuYWN0aW9ucyxcbiAgICBpc1Zpc2libGU6IG9wdGlvbnMuaXNWaXNpYmxlLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZyA9IDxcbiAgTGF5b3V0RGF0YSBleHRlbmRzIG9iamVjdCxcbiAgTGF5b3V0VmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LFxuICBNYWluRGF0YSBleHRlbmRzIG9iamVjdCA9IExheW91dERhdGEsXG4gIE1haW5WaWV3IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0gPSBMYXlvdXRWaWV3LFxuICBMYXlvdXRRdWVyeURhdGEgPSB1bmtub3duLFxuICBNYWluUXVlcnlEYXRhID0gdW5rbm93bixcbiAgTGF5b3V0RnJhZ21lbnRLZXkgZXh0ZW5kcyBCYWNrb2ZmaWNlUmVsYXlGcmFnbWVudEtleTxMYXlvdXREYXRhPiA9XG4gICAgQmFja29mZmljZVJlbGF5RnJhZ21lbnRLZXk8TGF5b3V0RGF0YT4sXG4gIE1haW5GcmFnbWVudEtleSBleHRlbmRzIEJhY2tvZmZpY2VSZWxheUZyYWdtZW50S2V5PE1haW5EYXRhPiA9XG4gICAgQmFja29mZmljZVJlbGF5RnJhZ21lbnRLZXk8TWFpbkRhdGE+LFxuICBMYXlvdXRRdWVyeVZhcmlhYmxlcyA9IHsgaWQ6IHN0cmluZyB9LFxuICBNYWluUXVlcnlWYXJpYWJsZXMgPSB7IGlkOiBzdHJpbmcgfSxcbj4ob3B0aW9uczoge1xuICB0aXRsZTogSTE4bkxhYmVsO1xuICBoZWFkZXJUaXRsZT86IEkxOG5MYWJlbDtcbiAgaGVhZGVyU3VidGl0bGU/OiBJMThuTGFiZWw7XG4gIHF1ZXJ5OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgZnJhZ21lbnQ6IEdyYXBoUUxUYWdnZWROb2RlO1xuICB0b1ZpZXc6IChkYXRhOiBCYWNrb2ZmaWNlUmVsYXlGcmFnbWVudERhdGE8TWFpbkZyYWdtZW50S2V5PikgPT4gTWFpblZpZXc7XG4gIGFjdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5QWN0aW9uU3BlYzxNYWluVmlldz5bXTtcbiAgbGF5b3V0UXVlcnk/OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgbGF5b3V0RnJhZ21lbnQ/OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgbGF5b3V0VG9WaWV3OiAoXG4gICAgZGF0YTogQmFja29mZmljZVJlbGF5RnJhZ21lbnREYXRhPExheW91dEZyYWdtZW50S2V5PixcbiAgKSA9PiBMYXlvdXRWaWV3O1xuICBoZWFkZXI/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydoZWFkZXInXTtcbiAgcmVzb2x2ZU5vZGU6IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ21haW5QYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGxheW91dFJlc29sdmVOb2RlOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydsYXlvdXRQYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGJ1aWxkVmFyaWFibGVzPzogKGlucHV0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxNYWluUXVlcnlWYXJpYWJsZXM+O1xuICBsYXlvdXRCdWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TGF5b3V0UXVlcnlWYXJpYWJsZXM+O1xuICByZWxhdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5UmVsYXRpb25TcGVjPExheW91dFZpZXc+W107XG4gIGRldGFpbENvbnRlbnQ/OiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsQ29udGVudFNwZWM8TWFpblZpZXc+W107XG4gIG1haW5QYWdlSWQ/OiBzdHJpbmc7XG4gIG1haW5QYWdlUGF0aD86IHN0cmluZztcbiAgbWFpblBhZ2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgc3ViUGFnZXM/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydzdWJQYWdlcyddO1xuICBwcm9maWxlPzogQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGU8TGF5b3V0Vmlldz47XG4gIG1haW5QYWdlUHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPE1haW5WaWV3Pjtcbn0pOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICBMYXlvdXREYXRhLFxuICBMYXlvdXRWaWV3LFxuICBNYWluRGF0YSxcbiAgTWFpblZpZXcsXG4gIE1haW5EYXRhLFxuICBNYWluVmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhLFxuICBNYWluUXVlcnlEYXRhLFxuICBNYWluUXVlcnlEYXRhLFxuICBMYXlvdXRGcmFnbWVudEtleSxcbiAgTWFpbkZyYWdtZW50S2V5LFxuICBNYWluRnJhZ21lbnRLZXksXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gIE1haW5RdWVyeVZhcmlhYmxlc1xuPiA9PiB7XG4gIGNvbnN0IGRlZmF1bHRIZWFkZXIgPSBidWlsZEdlbmVyaWNEZXRhaWxIZWFkZXIoe1xuICAgIHRpdGxlOiBvcHRpb25zLmhlYWRlclRpdGxlID8/IG9wdGlvbnMudGl0bGUsXG4gICAgc3VidGl0bGU6IG9wdGlvbnMuaGVhZGVyU3VidGl0bGUsXG4gIH0pO1xuICBjb25zdCBtYWluUGFnZUlkID0gb3B0aW9ucy5tYWluUGFnZUlkID8/ICdvdmVydmlldyc7XG4gIGNvbnN0IG1haW5QYWdlUGF0aCA9IG9wdGlvbnMubWFpblBhZ2VQYXRoID8/ICdvdmVydmlldyc7XG4gIGNvbnN0IG1haW5QYWdlTGFiZWwgPSBvcHRpb25zLm1haW5QYWdlTGFiZWwgPz8gb3B0aW9ucy50aXRsZTtcbiAgY29uc3QgbWFpblBhZ2UgPSBidWlsZEJhY2tvZmZpY2VEZXRhaWxQYWdlQ29uZmlnPFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID4oe1xuICAgIGlkOiBtYWluUGFnZUlkLFxuICAgIHBhdGg6IG1haW5QYWdlUGF0aCxcbiAgICBsYWJlbDogbWFpblBhZ2VMYWJlbCxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5yZXNvbHZlTm9kZSxcbiAgICB0b1ZpZXc6IG9wdGlvbnMudG9WaWV3LFxuICAgIGJ1aWxkVmFyaWFibGVzOiBvcHRpb25zLmJ1aWxkVmFyaWFibGVzLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuZGV0YWlsQ29udGVudCA/PyBbXSxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5tYWluUGFnZVByb2ZpbGUsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgaGVhZGVyOiBvcHRpb25zLmhlYWRlciA/PyBkZWZhdWx0SGVhZGVyLFxuICAgIHJlbGF0aW9uczogb3B0aW9ucy5yZWxhdGlvbnMsXG4gICAgbGF5b3V0UGFnZToge1xuICAgICAgcXVlcnk6IG9wdGlvbnMubGF5b3V0UXVlcnkgPz8gb3B0aW9ucy5xdWVyeSxcbiAgICAgIGZyYWdtZW50OiBvcHRpb25zLmxheW91dEZyYWdtZW50ID8/IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5sYXlvdXRSZXNvbHZlTm9kZSxcbiAgICAgIHRvVmlldzogb3B0aW9ucy5sYXlvdXRUb1ZpZXcsXG4gICAgICBidWlsZFZhcmlhYmxlczogb3B0aW9ucy5sYXlvdXRCdWlsZFZhcmlhYmxlcyxcbiAgICB9LFxuICAgIG1haW5QYWdlLFxuICAgIHN1YlBhZ2VzOiBvcHRpb25zLnN1YlBhZ2VzLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VDb25uZWN0aW9uRGV0YWlsVmFyaWFibGVzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nLFxuPihpbnB1dDoge1xuICBkZXRhaWxJZDogc3RyaW5nO1xuICB3aGVyZTogV2hlcmUgfCBudWxsO1xuICBzb3J0OiBTb3J0IHwgbnVsbDtcbn0pOiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPHtcbiAgd2hlcmU6IFdoZXJlIHwgbnVsbDtcbiAgc29ydDogU29ydCB8IG51bGw7XG4gIGNvdW50OiBudW1iZXI7XG59PiA9PiB7XG4gIHJldHVybiB7XG4gICAgZGV0YWlsSWQ6IGlucHV0LmRldGFpbElkLFxuICAgIHZhcmlhYmxlczoge1xuICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgc29ydDogaW5wdXQuc29ydCxcbiAgICAgIGNvdW50OiBCQUNLT0ZGSUNFX0xJU1RfREVGQVVMVFMucGFnZVNpemUsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgUGlja2VyRnJhZ21lbnREYXRhID0gdW5rbm93bixcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVmFsdWVRdWVyeURhdGEgPSBCYWNrb2ZmaWNlQWxpYXNlZFBpY2tlclZhbHVlUmVzcG9uc2U8c3RyaW5nLCBSb3dSZWY+LFxuPihvcHRpb25zOiB7XG4gIHF1ZXJ5OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgZnJhZ21lbnQ6IEdyYXBoUUxUYWdnZWROb2RlO1xuICB2YWx1ZT86IEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZzxSb3dSZWYsIFJvd1ZpZXcsIFZhbHVlUXVlcnlEYXRhPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IFBpY2tlckZyYWdtZW50RGF0YSkgPT4gQmFja29mZmljZUNvbm5lY3Rpb248Um93UmVmPjtcbiAgdG9Sb3c6IChyb3dSZWY6IFJvd1JlZikgPT4gUm93VmlldztcbiAgZ2V0Um93SWQ/OiAocm93OiBSb3dWaWV3KSA9PiBzdHJpbmc7XG4gIHNlYXJjaD86IEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+O1xuICBzY29wZT86IEJhY2tvZmZpY2VQaWNrZXJTY29wZUNvbmZpZzxXaGVyZT47XG4gIHNlYXJjaEVuYWJsZWQ/OiBib29sZWFuO1xuICBzZWFyY2hSZXF1aXJlZD86IGJvb2xlYW47XG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogSTE4bkxhYmVsO1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZT4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59KTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBWYWx1ZVF1ZXJ5RGF0YVxuPiA9PiB7XG4gIGNvbnN0IHNlYXJjaENvbmZpZyA9IG9wdGlvbnMuc2VhcmNoO1xuICBjb25zdCBzY29wZUtleXMgPSBvcHRpb25zLnNjb3BlPy5rZXlzID8/IFtdO1xuICBjb25zdCBzZWFyY2hSZXF1aXJlZCA9IG9wdGlvbnMuc2VhcmNoUmVxdWlyZWQgPz8gZmFsc2U7XG4gIGNvbnN0IHNlYXJjaEVuYWJsZWQgPVxuICAgIG9wdGlvbnMuc2VhcmNoRW5hYmxlZCA/PyAoc2VhcmNoQ29uZmlnICE9IG51bGwgfHwgc2VhcmNoUmVxdWlyZWQpO1xuICBjb25zdCBnZXRSZXNvbHZlZFJvd0lkID1cbiAgICBvcHRpb25zLmdldFJvd0lkID8/XG4gICAgKChyb3c6IFJvd1ZpZXcpID0+IHtcbiAgICAgIHJldHVybiByb3cuaWQ7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICB2YWx1ZTogb3B0aW9ucy52YWx1ZSxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQ6IGdldFJlc29sdmVkUm93SWQsXG4gICAgc2VhcmNoRW5hYmxlZCxcbiAgICBzZWFyY2hSZXF1aXJlZCxcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogb3B0aW9ucy5zZWFyY2hQbGFjZWhvbGRlcixcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBpbnB1dC5zZWFyY2gudHJpbSgpO1xuICAgICAgICBsZXQgd2hlcmU6IFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChzZWFyY2hDb25maWcgIT0gbnVsbCAmJiB0cmltbWVkICE9PSAnJykge1xuICAgICAgICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgc2VhcmNoQ29uZmlnLndoZXJlS2V5LFxuICAgICAgICAgICAgdHJpbW1lZCxcbiAgICAgICAgICAgIHNlYXJjaENvbmZpZy5wYXRoLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5leHRXaGVyZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB3aGVyZSA9IG5leHRXaGVyZSBhcyBXaGVyZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0LnNjb3BlICE9IG51bGwgJiYgc2NvcGVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzY29wZUtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnNjb3BlPy5bU3RyaW5nKGtleSldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZSh3aGVyZSwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgICBjb3VudDogMjAsXG4gICAgICAgICAgY3Vyc29yOiBudWxsLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gIH07XG59O1xuIl19
@@ -1,4 +1,4 @@
1
- import type { BackofficeOperationSort, BackofficeOperationWhere, BackofficeEntityManifestItem, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeListFacetConfig, BackofficeLoadedEntityFacetModule, BackofficePickerFacetConfig, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeResolvedToolFacetConfig, BackofficeResolvedDetailLayoutFacetConfig, BackofficeResolvedDetailPageFacetConfig, BackofficeResolvedEntityFacetModule, BackofficeResolvedListFacetConfig, BackofficeResolvedPickerFacetConfig } from './types.js';
1
+ import type { BackofficeOperationSort, BackofficeOperationWhere, BackofficeEntityManifestItem, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeListFacetConfig, BackofficeLoadedEntityFacetModule, BackofficePickerFacetConfig, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeResolvedToolFacetConfig, BackofficeResolvedDetailLayoutFacetConfig, BackofficeResolvedDetailPageFacetConfig, BackofficeResolvedEntityFacetModule, BackofficeResolvedListFacetConfig, BackofficeResolvedPickerFacetConfig, BackofficeRelayFragmentKey } from './types.js';
2
2
  import type { OperationType } from 'relay-runtime';
3
3
  import type { BackofficeErasedValue } from './runtimeErasure.js';
4
4
  export type ResolveBackofficeEntityOptions = {
@@ -8,8 +8,8 @@ export declare const resolveBackofficeToolRoute: (basePath: string, toolId: stri
8
8
  export declare function extractBackofficeToolFacetConfig(config: BackofficeToolEntityConfig): BackofficeToolFacetConfig;
9
9
  export declare function resolveBackofficeListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = BackofficeErasedValue>(config: BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>, manifest: BackofficeEntityManifestItem<TWhere, TSort>, _options: ResolveBackofficeEntityOptions): BackofficeResolvedListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>;
10
10
  export declare function resolveBackofficePickerFacetConfig<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>>(config: BackofficePickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedPickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>;
11
- export declare function resolveBackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>(config: BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>;
12
- export declare function resolveBackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>(config: BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>;
11
+ export declare function resolveBackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef extends BackofficeRelayFragmentKey<LayoutRef>, LayoutQueryVariables>(config: BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>;
12
+ export declare function resolveBackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef extends BackofficeRelayFragmentKey<DetailRef>, DetailQueryVariables>(config: BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>;
13
13
  export declare function resolveBackofficeToolFacetConfig(config: BackofficeToolFacetConfig, manifest: BackofficeEntityManifestItem, options: ResolveBackofficeEntityOptions): BackofficeResolvedToolFacetConfig;
14
14
  export declare function resolveBackofficeLoadedFacetModule(manifest: BackofficeEntityManifestItem, module: BackofficeLoadedEntityFacetModule, options: ResolveBackofficeEntityOptions): BackofficeResolvedEntityFacetModule;
15
15
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -150,4 +150,4 @@ export function resolveBackofficeLoadedFacetModule(manifest, module, options) {
150
150
  throw new Error(`Unsupported backoffice facet kind: ${String(module)}`);
151
151
  }
152
152
  }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU9uRSxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQztBQUNqRCxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQztBQUU3QyxNQUFNLG9CQUFvQixHQUFHLENBQzNCLE1BQWUsRUFDZixRQUFzQyxFQUN3QixFQUFFO0lBQ2hFLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUtGLFNBQVMsaUJBQWlCLENBQUMsUUFBZ0I7SUFDekMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsS0FBZSxFQUFVLEVBQUU7SUFDOUMsTUFBTSxVQUFVLEdBQUcsS0FBSztTQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDZixPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7SUFD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SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbixcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxvYWRlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRUb29sRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWREZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRMaXN0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZFBpY2tlckZhY2V0Q29uZmlnLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ3JlbGF5LXJ1bnRpbWUnO1xuaW1wb3J0IHsgY3JlYXRlQmFja29mZmljZUxpc3RVcmxDb2RlYyB9IGZyb20gJy4vc3RhdGUvdXJsU3RhdGUuanMnO1xuaW1wb3J0IHR5cGUgeyBCYWNrb2ZmaWNlRXJhc2VkVmFsdWUgfSBmcm9tICcuL3J1bnRpbWVFcmFzdXJlLmpzJztcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zID0ge1xuICBiYXNlUGF0aDogc3RyaW5nO1xufTtcblxuY29uc3QgREVUQUlMX0xBWU9VVF9GQUNFVF9LSU5EID0gJ2RldGFpbC1sYXlvdXQnO1xuY29uc3QgREVUQUlMX1BBR0VfRkFDRVRfS0lORCA9ICdkZXRhaWwtcGFnZSc7XG5cbmNvbnN0IGF0dGFjaFJlc29sdmVkUm91dGVzID0gPFRDb25maWcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4oXG4gIGNvbmZpZzogVENvbmZpZyxcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4pOiBUQ29uZmlnICYgeyByb3V0ZXM6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW1bJ3JvdXRlcyddIH0gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICByb3V0ZXM6IG1hbmlmZXN0LnJvdXRlcyxcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQmFzZVBhdGgoYmFzZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChiYXNlUGF0aC50cmltKCkgPT09ICcnIHx8IGJhc2VQYXRoID09PSAnLycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKGJhc2VQYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gYmFzZVBhdGguc2xpY2UoMCwgLTEpO1xuICB9XG4gIHJldHVybiBiYXNlUGF0aDtcbn1cblxuY29uc3Qgam9pblBhdGggPSAoLi4ucGFydHM6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhcnRzXG4gICAgLm1hcCgocGFydCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQudHJpbSgpLnJlcGxhY2UoL15cXC8rfFxcLyskL2csICcnKTtcbiAgICB9KVxuICAgIC5maWx0ZXIoKHBhcnQpID0+IHtcbiAgICAgIHJldHVybiBwYXJ0ICE9PSAnJztcbiAgICB9KTtcbiAgcmV0dXJuIGAvJHtub3JtYWxpemVkLmpvaW4oJy8nKX1gO1xufTtcblxuY29uc3Qgbm9ybWFsaXplUm91dGUgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG4gIGlmICh0cmltbWVkID09PSAnJyB8fCB0cmltbWVkID09PSAnLycpIHtcbiAgICByZXR1cm4gJy8nO1xuICB9XG4gIGlmICghdHJpbW1lZC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gYC8ke3RyaW1tZWR9YDtcbiAgfVxuICBpZiAodHJpbW1lZC5lbmRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHRyaW1tZWQuc2xpY2UoMCwgLTEpO1xuICB9XG4gIHJldHVybiB0cmltbWVkO1xufTtcblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgY2Fub25pY2FsIHRvb2wgcm91dGUuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlQmFja29mZmljZVRvb2xSb3V0ZSA9IChcbiAgYmFzZVBhdGg6IHN0cmluZyxcbiAgdG9vbElkOiBzdHJpbmcsXG4gIHJvdXRlT3ZlcnJpZGU/OiBzdHJpbmcsXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAocm91dGVPdmVycmlkZSAhPSBudWxsICYmIHJvdXRlT3ZlcnJpZGUudHJpbSgpICE9PSAnJykge1xuICAgIHJldHVybiBub3JtYWxpemVSb3V0ZShyb3V0ZU92ZXJyaWRlKTtcbiAgfVxuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQmFzZVBhdGgoYmFzZVBhdGgpO1xuICBpZiAobm9ybWFsaXplZCA9PT0gJycpIHtcbiAgICByZXR1cm4gYC90b29scy8ke3Rvb2xJZH1gO1xuICB9XG4gIHJldHVybiBgJHtub3JtYWxpemVkfS90b29scy8ke3Rvb2xJZH1gO1xufTtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcoXG4gIGNvbmZpZzogQmFja29mZmljZVRvb2xFbnRpdHlDb25maWcsXG4pOiBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAndG9vbCcsXG4gICAgaWQ6IGNvbmZpZy5pZCxcbiAgICBsYWJlbDpcbiAgICAgIGNvbmZpZy5sYWJlbCA/P1xuICAgICAgKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5pZDtcbiAgICAgIH0pLFxuICAgIHRvb2w6IGNvbmZpZyxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWc8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICBUQ291bnRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlID0gQmFja29mZmljZUVyYXNlZFZhbHVlLFxuPihcbiAgY29uZmlnOiBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnQsXG4gICAgVENvdW50T3BlcmF0aW9uXG4gID4sXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtPFRXaGVyZSwgVFNvcnQ+LFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9vcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWRMaXN0RmFjZXRDb25maWc8XG4gIFRPcGVyYXRpb24sXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlLFxuICBUU29ydCxcbiAgVENvdW50T3BlcmF0aW9uXG4+IHtcbiAgY29uc3Qgcm91dGVzID0ge1xuICAgIC4uLm1hbmlmZXN0LnJvdXRlcyxcbiAgfTtcblxuICBpZiAoIW1hbmlmZXN0Lmhhc0xpc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBlbnRpdHkgJHttYW5pZmVzdC5pZH0gZG9lcyBub3QgZXhwb3NlIGxpc3QgbmF2aWdhdGlvbi5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbGlzdE5hdmlnYXRpb24sXG4gIH06IHtcbiAgICBsaXN0TmF2aWdhdGlvbjogQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uPFRXaGVyZSwgVFNvcnQ+O1xuICB9ID0gbWFuaWZlc3Q7XG4gIGNvbnN0IGxpc3REZWZhdWx0cyA9IGxpc3ROYXZpZ2F0aW9uLmRlZmF1bHRzO1xuICBjb25zdCBsaXN0VXJsQ29kZWMgPSBjcmVhdGVCYWNrb2ZmaWNlTGlzdFVybENvZGVjKHtcbiAgICBsaXN0TmF2aWdhdGlvbixcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgcm91dGVzLFxuICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgIGxpc3REZWZhdWx0cyxcbiAgICBsaXN0VXJsQ29kZWMsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZFBpY2tlckZhY2V0Q29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgVFdoZXJlXG4+IHtcbiAgcmV0dXJuIGF0dGFjaFJlc29sdmVkUm91dGVzKGNvbmZpZywgbWFuaWZlc3QpO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnPFxuICBMYXlvdXRSZWYsXG4gIExheW91dFZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSxcbiAgTGF5b3V0RnJhZ21lbnRSZWYsXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuPihcbiAgY29uZmlnOiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWc8XG4gICAgTGF5b3V0UmVmLFxuICAgIExheW91dFZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50UmVmLFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzXG4gID4sXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9vcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWREZXRhaWxMYXlvdXRGYWNldENvbmZpZzxcbiAgTGF5b3V0UmVmLFxuICBMYXlvdXRWaWV3LFxuICBMYXlvdXRRdWVyeURhdGEsXG4gIExheW91dEZyYWdtZW50UmVmLFxuICBMYXlvdXRRdWVyeVZhcmlhYmxlc1xuPiB7XG4gIHJldHVybiBhdHRhY2hSZXNvbHZlZFJvdXRlcyhjb25maWcsIG1hbmlmZXN0KTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWc8XG4gIExheW91dFZpZXcsXG4gIERldGFpbFJlZixcbiAgRGV0YWlsVmlldyxcbiAgRGV0YWlsUXVlcnlEYXRhLFxuICBEZXRhaWxGcmFnbWVudFJlZixcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXMsXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWc8XG4gICAgTGF5b3V0VmlldyxcbiAgICBEZXRhaWxSZWYsXG4gICAgRGV0YWlsVmlldyxcbiAgICBEZXRhaWxRdWVyeURhdGEsXG4gICAgRGV0YWlsRnJhZ21lbnRSZWYsXG4gICAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbFBhZ2VGYWNldENvbmZpZzxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsUmVmLFxuICBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEsXG4gIERldGFpbEZyYWdtZW50UmVmLFxuICBEZXRhaWxRdWVyeVZhcmlhYmxlc1xuPiB7XG4gIHJldHVybiBhdHRhY2hSZXNvbHZlZFJvdXRlcyhjb25maWcsIG1hbmlmZXN0KTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcoXG4gIGNvbmZpZzogQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIG9wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZFRvb2xGYWNldENvbmZpZyB7XG4gIGNvbnN0IHJvdXRlID0gcmVzb2x2ZUJhY2tvZmZpY2VUb29sUm91dGUoXG4gICAgb3B0aW9ucy5iYXNlUGF0aCxcbiAgICBjb25maWcuaWQsXG4gICAgbWFuaWZlc3Qucm91dGVzLmxpc3QsXG4gICk7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHJvdXRlLFxuICAgIHJvdXRlczoge1xuICAgICAgbGlzdDogcm91dGUsXG4gICAgICBkZXRhaWw6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBqb2luUGF0aChyb3V0ZSwgaWQpO1xuICAgICAgfSxcbiAgICAgIGRldGFpbFBhZ2U6IChpZDogc3RyaW5nLCBwYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gam9pblBhdGgocm91dGUsIGlkLCBwYWdlSWQpO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZUxvYWRlZEZhY2V0TW9kdWxlKFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgbW9kdWxlOiBCYWNrb2ZmaWNlTG9hZGVkRW50aXR5RmFjZXRNb2R1bGUsXG4gIG9wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZEVudGl0eUZhY2V0TW9kdWxlIHtcbiAgaWYgKG1hbmlmZXN0LmlkICE9PSBtb2R1bGUuaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBlbnRpdHkgbWFuaWZlc3QvbW9kdWxlIGlkIG1pc21hdGNoOiAke21hbmlmZXN0LmlkfSAhPT0gJHttb2R1bGUuaWR9YCxcbiAgICApO1xuICB9XG5cbiAgc3dpdGNoIChtb2R1bGUua2luZCkge1xuICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ2xpc3QnLFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZUxpc3RGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tlcic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAncGlja2VyJyxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIGNvbmZpZzogcmVzb2x2ZUJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgREVUQUlMX0xBWU9VVF9GQUNFVF9LSU5EOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogREVUQUlMX0xBWU9VVF9GQUNFVF9LSU5ELFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnKFxuICAgICAgICAgIG1vZHVsZS5jb25maWcsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSBERVRBSUxfUEFHRV9GQUNFVF9LSU5EOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogREVUQUlMX1BBR0VfRkFDRVRfS0lORCxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgcGFnZUlkOiBtb2R1bGUucGFnZUlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgJ3Rvb2wnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ3Rvb2wnLFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZVRvb2xGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGJhY2tvZmZpY2UgZmFjZXQga2luZDogJHtTdHJpbmcobW9kdWxlKX1gKTtcbiAgfVxufVxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU9uRSxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQztBQUNqRCxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQztBQUU3QyxNQUFNLG9CQUFvQixHQUFHLENBQzNCLE1BQWUsRUFDZixRQUFzQyxFQUN3QixFQUFFO0lBQ2hFLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUtGLFNBQVMsaUJBQWlCLENBQUMsUUFBZ0I7SUFDekMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsS0FBZSxFQUFVLEVBQUU7SUFDOUMsTUFBTSxVQUFVLEdBQUcsS0FBSztTQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDZixPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7SUFD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SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbixcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxvYWRlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRUb29sRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWREZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRMaXN0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZFBpY2tlckZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVsYXlGcmFnbWVudEtleSxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcbmltcG9ydCB7IGNyZWF0ZUJhY2tvZmZpY2VMaXN0VXJsQ29kZWMgfSBmcm9tICcuL3N0YXRlL3VybFN0YXRlLmpzJztcbmltcG9ydCB0eXBlIHsgQmFja29mZmljZUVyYXNlZFZhbHVlIH0gZnJvbSAnLi9ydW50aW1lRXJhc3VyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyA9IHtcbiAgYmFzZVBhdGg6IHN0cmluZztcbn07XG5cbmNvbnN0IERFVEFJTF9MQVlPVVRfRkFDRVRfS0lORCA9ICdkZXRhaWwtbGF5b3V0JztcbmNvbnN0IERFVEFJTF9QQUdFX0ZBQ0VUX0tJTkQgPSAnZGV0YWlsLXBhZ2UnO1xuXG5jb25zdCBhdHRhY2hSZXNvbHZlZFJvdXRlcyA9IDxUQ29uZmlnIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0+KFxuICBjb25maWc6IFRDb25maWcsXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuKTogVENvbmZpZyAmIHsgcm91dGVzOiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtWydyb3V0ZXMnXSB9ID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgcm91dGVzOiBtYW5pZmVzdC5yb3V0ZXMsXG4gIH07XG59O1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUJhc2VQYXRoKGJhc2VQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYmFzZVBhdGgudHJpbSgpID09PSAnJyB8fCBiYXNlUGF0aCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChiYXNlUGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIGJhc2VQYXRoLnNsaWNlKDAsIC0xKTtcbiAgfVxuICByZXR1cm4gYmFzZVBhdGg7XG59XG5cbmNvbnN0IGpvaW5QYXRoID0gKC4uLnBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBwYXJ0c1xuICAgIC5tYXAoKHBhcnQpID0+IHtcbiAgICAgIHJldHVybiBwYXJ0LnRyaW0oKS5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJyk7XG4gICAgfSlcbiAgICAuZmlsdGVyKChwYXJ0KSA9PiB7XG4gICAgICByZXR1cm4gcGFydCAhPT0gJyc7XG4gICAgfSk7XG4gIHJldHVybiBgLyR7bm9ybWFsaXplZC5qb2luKCcvJyl9YDtcbn07XG5cbmNvbnN0IG5vcm1hbGl6ZVJvdXRlID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpO1xuICBpZiAodHJpbW1lZCA9PT0gJycgfHwgdHJpbW1lZCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuICcvJztcbiAgfVxuICBpZiAoIXRyaW1tZWQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIGAvJHt0cmltbWVkfWA7XG4gIH1cbiAgaWYgKHRyaW1tZWQuZW5kc1dpdGgoJy8nKSkge1xuICAgIHJldHVybiB0cmltbWVkLnNsaWNlKDAsIC0xKTtcbiAgfVxuICByZXR1cm4gdHJpbW1lZDtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGNhbm9uaWNhbCB0b29sIHJvdXRlLlxuICovXG5leHBvcnQgY29uc3QgcmVzb2x2ZUJhY2tvZmZpY2VUb29sUm91dGUgPSAoXG4gIGJhc2VQYXRoOiBzdHJpbmcsXG4gIHRvb2xJZDogc3RyaW5nLFxuICByb3V0ZU92ZXJyaWRlPzogc3RyaW5nLFxuKTogc3RyaW5nID0+IHtcbiAgaWYgKHJvdXRlT3ZlcnJpZGUgIT0gbnVsbCAmJiByb3V0ZU92ZXJyaWRlLnRyaW0oKSAhPT0gJycpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplUm91dGUocm91dGVPdmVycmlkZSk7XG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUJhc2VQYXRoKGJhc2VQYXRoKTtcbiAgaWYgKG5vcm1hbGl6ZWQgPT09ICcnKSB7XG4gICAgcmV0dXJuIGAvdG9vbHMvJHt0b29sSWR9YDtcbiAgfVxuICByZXR1cm4gYCR7bm9ybWFsaXplZH0vdG9vbHMvJHt0b29sSWR9YDtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnKFxuICBjb25maWc6IEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuKTogQmFja29mZmljZVRvb2xGYWNldENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAga2luZDogJ3Rvb2wnLFxuICAgIGlkOiBjb25maWcuaWQsXG4gICAgbGFiZWw6XG4gICAgICBjb25maWcubGFiZWwgPz9cbiAgICAgICgoKSA9PiB7XG4gICAgICAgIHJldHVybiBjb25maWcuaWQ7XG4gICAgICB9KSxcbiAgICB0b29sOiBjb25maWcsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbiAgVENvdW50T3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSA9IEJhY2tvZmZpY2VFcmFzZWRWYWx1ZSxcbj4oXG4gIGNvbmZpZzogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+LFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbTxUV2hlcmUsIFRTb3J0PixcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBfb3B0aW9uczogUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zLFxuKTogQmFja29mZmljZVJlc29sdmVkTGlzdEZhY2V0Q29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFRXaGVyZSxcbiAgVFNvcnQsXG4gIFRDb3VudE9wZXJhdGlvblxuPiB7XG4gIGNvbnN0IHJvdXRlcyA9IHtcbiAgICAuLi5tYW5pZmVzdC5yb3V0ZXMsXG4gIH07XG5cbiAgaWYgKCFtYW5pZmVzdC5oYXNMaXN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEJhY2tvZmZpY2UgZW50aXR5ICR7bWFuaWZlc3QuaWR9IGRvZXMgbm90IGV4cG9zZSBsaXN0IG5hdmlnYXRpb24uYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGxpc3ROYXZpZ2F0aW9uLFxuICB9OiB7XG4gICAgbGlzdE5hdmlnYXRpb246IEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbjxUV2hlcmUsIFRTb3J0PjtcbiAgfSA9IG1hbmlmZXN0O1xuICBjb25zdCBsaXN0RGVmYXVsdHMgPSBsaXN0TmF2aWdhdGlvbi5kZWZhdWx0cztcbiAgY29uc3QgbGlzdFVybENvZGVjID0gY3JlYXRlQmFja29mZmljZUxpc3RVcmxDb2RlYyh7XG4gICAgbGlzdE5hdmlnYXRpb24sXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHJvdXRlcyxcbiAgICBsaXN0TmF2aWdhdGlvbixcbiAgICBsaXN0RGVmYXVsdHMsXG4gICAgbGlzdFVybENvZGVjLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4sXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9vcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWRQaWNrZXJGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFRXaGVyZVxuPiB7XG4gIHJldHVybiBhdHRhY2hSZXNvbHZlZFJvdXRlcyhjb25maWcsIG1hbmlmZXN0KTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZzxcbiAgTGF5b3V0UmVmLFxuICBMYXlvdXRWaWV3LFxuICBMYXlvdXRRdWVyeURhdGEsXG4gIExheW91dEZyYWdtZW50UmVmIGV4dGVuZHMgQmFja29mZmljZVJlbGF5RnJhZ21lbnRLZXk8TGF5b3V0UmVmPixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZzxcbiAgICBMYXlvdXRSZWYsXG4gICAgTGF5b3V0VmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRSZWYsXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXNcbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbExheW91dEZhY2V0Q29uZmlnPFxuICBMYXlvdXRSZWYsXG4gIExheW91dFZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSxcbiAgTGF5b3V0RnJhZ21lbnRSZWYsXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzXG4+IHtcbiAgcmV0dXJuIGF0dGFjaFJlc29sdmVkUm91dGVzKGNvbmZpZywgbWFuaWZlc3QpO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZzxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsUmVmLFxuICBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEsXG4gIERldGFpbEZyYWdtZW50UmVmIGV4dGVuZHMgQmFja29mZmljZVJlbGF5RnJhZ21lbnRLZXk8RGV0YWlsUmVmPixcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXMsXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWc8XG4gICAgTGF5b3V0VmlldyxcbiAgICBEZXRhaWxSZWYsXG4gICAgRGV0YWlsVmlldyxcbiAgICBEZXRhaWxRdWVyeURhdGEsXG4gICAgRGV0YWlsRnJhZ21lbnRSZWYsXG4gICAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbFBhZ2VGYWNldENvbmZpZzxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsUmVmLFxuICBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEsXG4gIERldGFpbEZyYWdtZW50UmVmLFxuICBEZXRhaWxRdWVyeVZhcmlhYmxlc1xuPiB7XG4gIHJldHVybiBhdHRhY2hSZXNvbHZlZFJvdXRlcyhjb25maWcsIG1hbmlmZXN0KTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcoXG4gIGNvbmZpZzogQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIG9wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZFRvb2xGYWNldENvbmZpZyB7XG4gIGNvbnN0IHJvdXRlID0gcmVzb2x2ZUJhY2tvZmZpY2VUb29sUm91dGUoXG4gICAgb3B0aW9ucy5iYXNlUGF0aCxcbiAgICBjb25maWcuaWQsXG4gICAgbWFuaWZlc3Qucm91dGVzLmxpc3QsXG4gICk7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHJvdXRlLFxuICAgIHJvdXRlczoge1xuICAgICAgbGlzdDogcm91dGUsXG4gICAgICBkZXRhaWw6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBqb2luUGF0aChyb3V0ZSwgaWQpO1xuICAgICAgfSxcbiAgICAgIGRldGFpbFBhZ2U6IChpZDogc3RyaW5nLCBwYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gam9pblBhdGgocm91dGUsIGlkLCBwYWdlSWQpO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZUxvYWRlZEZhY2V0TW9kdWxlKFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgbW9kdWxlOiBCYWNrb2ZmaWNlTG9hZGVkRW50aXR5RmFjZXRNb2R1bGUsXG4gIG9wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZEVudGl0eUZhY2V0TW9kdWxlIHtcbiAgaWYgKG1hbmlmZXN0LmlkICE9PSBtb2R1bGUuaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQmFja29mZmljZSBlbnRpdHkgbWFuaWZlc3QvbW9kdWxlIGlkIG1pc21hdGNoOiAke21hbmlmZXN0LmlkfSAhPT0gJHttb2R1bGUuaWR9YCxcbiAgICApO1xuICB9XG5cbiAgc3dpdGNoIChtb2R1bGUua2luZCkge1xuICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ2xpc3QnLFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZUxpc3RGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgJ3BpY2tlcic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAncGlja2VyJyxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIGNvbmZpZzogcmVzb2x2ZUJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgREVUQUlMX0xBWU9VVF9GQUNFVF9LSU5EOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogREVUQUlMX0xBWU9VVF9GQUNFVF9LSU5ELFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnKFxuICAgICAgICAgIG1vZHVsZS5jb25maWcsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSBERVRBSUxfUEFHRV9GQUNFVF9LSU5EOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogREVUQUlMX1BBR0VfRkFDRVRfS0lORCxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgcGFnZUlkOiBtb2R1bGUucGFnZUlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgJ3Rvb2wnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ3Rvb2wnLFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZVRvb2xGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGJhY2tvZmZpY2UgZmFjZXQga2luZDogJHtTdHJpbmcobW9kdWxlKX1gKTtcbiAgfVxufVxuIl19
@@ -1143,11 +1143,16 @@ export type BackofficeAliasedNodeQueryResponse<Alias extends string, NodeRef> =
1143
1143
  }) | null;
1144
1144
  };
1145
1145
  export type BackofficeAliasedPickerValueResponse<Alias extends string, RowRef> = BackofficeAliasedNodeQueryResponse<Alias, RowRef>;
1146
- export type BackofficeDetailPageDataSpec<DetailView, DetailData = DetailView, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = Record<string, unknown>> = {
1146
+ export type BackofficeRelayFragmentKey<TData = unknown> = Readonly<{
1147
+ ' $data'?: TData;
1148
+ ' $fragmentSpreads': unknown;
1149
+ }>;
1150
+ export type BackofficeRelayFragmentData<TKey extends BackofficeRelayFragmentKey> = Required<TKey>[' $data'];
1151
+ export type BackofficeDetailPageDataSpec<DetailView, DetailData = DetailView, DetailQueryData = unknown, DetailFragmentKey extends BackofficeRelayFragmentKey<DetailData> = BackofficeRelayFragmentKey<DetailData>, DetailQueryVariables = Record<string, unknown>> = {
1147
1152
  query: GraphQLTaggedNode;
1148
1153
  fragment: GraphQLTaggedNode;
1149
1154
  resolveNode: (data: DetailQueryData, context: BackofficeDetailPageDataContext) => DetailFragmentKey | null;
1150
- toView: BivariantCallback<(data: DetailData) => DetailView>;
1155
+ toView: BivariantCallback<(data: BackofficeRelayFragmentData<DetailFragmentKey>) => DetailView>;
1151
1156
  buildVariables?: (input: {
1152
1157
  id: string;
1153
1158
  }) => BackofficeDetailPageVariablesResult<DetailQueryVariables>;
@@ -1172,8 +1177,8 @@ export type BackofficeDetailLayoutProfile<DetailView = unknown> = {
1172
1177
  };
1173
1178
  titleMeta?: BivariantCallback<(node: DetailView) => readonly BackofficeDetailTitleMetaItem[]>;
1174
1179
  };
1175
- export type BackofficeDetailLayoutSpec<LayoutView, LayoutData = LayoutView, LayoutQueryData = unknown, LayoutFragmentKey = unknown, LayoutQueryVariables = Record<string, unknown>> = BackofficeDetailPageDataSpec<LayoutView, LayoutData, LayoutQueryData, LayoutFragmentKey, LayoutQueryVariables>;
1176
- export type BackofficeDetailPageSpec<DetailView, LayoutView = DetailView, DetailData = DetailView, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = Record<string, unknown>> = BackofficeDetailPageDataSpec<DetailView, DetailData, DetailQueryData, DetailFragmentKey, DetailQueryVariables> & {
1180
+ export type BackofficeDetailLayoutSpec<LayoutView, LayoutData = LayoutView, LayoutQueryData = unknown, LayoutFragmentKey extends BackofficeRelayFragmentKey<LayoutData> = BackofficeRelayFragmentKey<LayoutData>, LayoutQueryVariables = Record<string, unknown>> = BackofficeDetailPageDataSpec<LayoutView, LayoutData, LayoutQueryData, LayoutFragmentKey, LayoutQueryVariables>;
1181
+ export type BackofficeDetailPageSpec<DetailView, LayoutView = DetailView, DetailData = DetailView, DetailQueryData = unknown, DetailFragmentKey extends BackofficeRelayFragmentKey<DetailData> = BackofficeRelayFragmentKey<DetailData>, DetailQueryVariables = Record<string, unknown>> = BackofficeDetailPageDataSpec<DetailView, DetailData, DetailQueryData, DetailFragmentKey, DetailQueryVariables> & {
1177
1182
  id: string;
1178
1183
  path: string;
1179
1184
  label: I18nLabel;
@@ -1187,7 +1192,7 @@ export type BackofficePickerValueConfig<RowRef, RowView, ValueQueryData = unknow
1187
1192
  resolveRow: (data: ValueQueryData) => RowRef | null;
1188
1193
  toRow: BivariantCallback<(rowRef: RowRef) => RowView>;
1189
1194
  };
1190
- export type BackofficeEntityDetailConfig<LayoutData = unknown, LayoutView = unknown, MainData = LayoutData, MainView = LayoutView, SubData = MainData, SubView = MainView, LayoutQueryData = unknown, MainQueryData = unknown, SubQueryData = MainQueryData, LayoutFragmentKey = unknown, MainFragmentKey = unknown, SubFragmentKey = MainFragmentKey, LayoutQueryVariables = Record<string, unknown>, MainQueryVariables = Record<string, unknown>, SubQueryVariables = MainQueryVariables> = {
1195
+ export type BackofficeEntityDetailConfig<LayoutData = unknown, LayoutView = unknown, MainData = LayoutData, MainView = LayoutView, SubData = MainData, SubView = MainView, LayoutQueryData = unknown, MainQueryData = unknown, SubQueryData = MainQueryData, LayoutFragmentKey extends BackofficeRelayFragmentKey<LayoutData> = BackofficeRelayFragmentKey<LayoutData>, MainFragmentKey extends BackofficeRelayFragmentKey<MainData> = BackofficeRelayFragmentKey<MainData>, SubFragmentKey extends BackofficeRelayFragmentKey<SubData> = MainFragmentKey & BackofficeRelayFragmentKey<SubData>, LayoutQueryVariables = Record<string, unknown>, MainQueryVariables = Record<string, unknown>, SubQueryVariables = MainQueryVariables> = {
1191
1196
  title: I18nLabel;
1192
1197
  header: BackofficeDetailHeaderConfig<LayoutView>;
1193
1198
  relations?: readonly BackofficeEntityRelationSpec<LayoutView>[];
@@ -1239,7 +1244,7 @@ export type BackofficeDetailPagesSpec<LayoutView = unknown, Page extends Backoff
1239
1244
  subPages?: readonly Page[];
1240
1245
  defaultPageId: string;
1241
1246
  };
1242
- export type BackofficeDetailLayoutFacetConfig<LayoutData = unknown, LayoutView = unknown, LayoutQueryData = unknown, LayoutFragmentKey = unknown, LayoutQueryVariables = Record<string, unknown>> = {
1247
+ export type BackofficeDetailLayoutFacetConfig<LayoutData = unknown, LayoutView = unknown, LayoutQueryData = unknown, LayoutFragmentKey extends BackofficeRelayFragmentKey<LayoutData> = BackofficeRelayFragmentKey<LayoutData>, LayoutQueryVariables = Record<string, unknown>> = {
1243
1248
  kind: 'detail-layout';
1244
1249
  id: string;
1245
1250
  label: I18nLabel;
@@ -1249,7 +1254,7 @@ export type BackofficeDetailLayoutFacetConfig<LayoutData = unknown, LayoutView =
1249
1254
  layoutPage: BackofficeDetailLayoutSpec<LayoutView, LayoutData, LayoutQueryData, LayoutFragmentKey, LayoutQueryVariables>;
1250
1255
  pages: BackofficeDetailPagesSpec<LayoutView>;
1251
1256
  };
1252
- export type BackofficeDetailPageFacetConfig<LayoutView = unknown, DetailData = unknown, DetailView = unknown, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = Record<string, unknown>> = {
1257
+ export type BackofficeDetailPageFacetConfig<LayoutView = unknown, DetailData = unknown, DetailView = unknown, DetailQueryData = unknown, DetailFragmentKey extends BackofficeRelayFragmentKey<DetailData> = BackofficeRelayFragmentKey<DetailData>, DetailQueryVariables = Record<string, unknown>> = {
1253
1258
  kind: 'detail-page';
1254
1259
  id: string;
1255
1260
  label: I18nLabel;
@@ -1393,10 +1398,10 @@ export type BackofficeResolvedListFacetConfig<TOperation extends OperationType,
1393
1398
  export type BackofficeResolvedPickerFacetConfig<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>> = BackofficePickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere> & {
1394
1399
  routes: BackofficeEntityRoutes;
1395
1400
  };
1396
- export type BackofficeResolvedDetailLayoutFacetConfig<LayoutRef = unknown, LayoutView = unknown, LayoutQueryData = unknown, LayoutFragmentRef = unknown, LayoutQueryVariables = Record<string, unknown>> = BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables> & {
1401
+ export type BackofficeResolvedDetailLayoutFacetConfig<LayoutRef = unknown, LayoutView = unknown, LayoutQueryData = unknown, LayoutFragmentRef extends BackofficeRelayFragmentKey<LayoutRef> = BackofficeRelayFragmentKey<LayoutRef>, LayoutQueryVariables = Record<string, unknown>> = BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables> & {
1397
1402
  routes: BackofficeEntityRoutes;
1398
1403
  };
1399
- export type BackofficeResolvedDetailPageFacetConfig<LayoutView = unknown, DetailRef = unknown, DetailView = unknown, DetailQueryData = unknown, DetailFragmentRef = unknown, DetailQueryVariables = Record<string, unknown>> = BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables> & {
1404
+ export type BackofficeResolvedDetailPageFacetConfig<LayoutView = unknown, DetailRef = unknown, DetailView = unknown, DetailQueryData = unknown, DetailFragmentRef extends BackofficeRelayFragmentKey<DetailRef> = BackofficeRelayFragmentKey<DetailRef>, DetailQueryVariables = Record<string, unknown>> = BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables> & {
1400
1405
  routes: BackofficeEntityRoutes;
1401
1406
  };
1402
1407
  export type BackofficeResolvedToolFacetConfig = BackofficeToolFacetConfig & {