@plumile/backoffice-core 0.1.106 → 0.1.108

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 { OperationType } from 'relay-runtime';
2
- import type { BackofficeConnectionListConfig, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeEntityListConfig, BackofficeEntityManifestItem, BackofficeEntityPickerConfig, BackofficeFilterPlacement, BackofficeFilterSpec, BackofficeListDetailFacetLoaderMap, BackofficeListFacetConfig, BackofficeListQueryInput, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerFacetConfig, BackofficePickerQueryInput, BackofficeRecordListConfig, BackofficeRelationFilterSpec, BackofficeSortSpec, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeToolFacetLoaderMap, I18nLabel } from './types.js';
2
+ import type { BackofficeConnectionListConfig, BackofficeAuditBlockSpec, BackofficeContextStackBlockSpec, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeMetricGroupBlockSpec, BackofficePayloadBlockSpec, BackofficeReferenceGroupBlockSpec, BackofficeRelationGroupBlockSpec, BackofficeSemanticDetailBlockSpec, BackofficeStateGroupBlockSpec, BackofficeSummaryBlockSpec, BackofficeTechnicalFactsBlockSpec, BackofficeTimelineBlockSpec, BackofficeEntityListConfig, BackofficeEntityManifestItem, BackofficeEntityPickerConfig, BackofficeFilterPlacement, BackofficeFilterSpec, BackofficeListDetailFacetLoaderMap, BackofficeListFacetConfig, BackofficeListQueryInput, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerFacetConfig, BackofficePickerQueryInput, BackofficeRecordListConfig, BackofficeRelationFilterSpec, BackofficeSortSpec, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeToolFacetLoaderMap, I18nLabel } from './types.js';
3
3
  type FieldKeyOfType<Where, Value> = Extract<{
4
4
  [Key in keyof Where]: NonNullable<Where[Key]> extends Value ? Key : never;
5
5
  }[keyof Where], string>;
@@ -85,12 +85,30 @@ export declare const customFilter: <Where, Value>(filter: BackofficeFilterSpec<W
85
85
  export declare const defineBackofficeToolEntity: <T extends BackofficeToolEntityConfig>(config: T) => T;
86
86
  export declare const createDetailLayoutFacet: <T extends BackofficeDetailLayoutFacetConfig>(config: T) => T;
87
87
  export declare const createDetailPageFacet: <T extends BackofficeDetailPageFacetConfig>(config: T) => T;
88
+ export declare const defineDetailBlocks: <Node>() => <const Blocks extends readonly BackofficeSemanticDetailBlockSpec<Node>[]>(blocks: Blocks) => Blocks;
89
+ export declare const defineSummaryBlock: <Node>(block: BackofficeSummaryBlockSpec<Node>) => BackofficeSummaryBlockSpec<Node>;
90
+ export declare const defineMetricGroup: <Node>(block: BackofficeMetricGroupBlockSpec<Node>) => BackofficeMetricGroupBlockSpec<Node>;
91
+ export declare const defineStateGroup: <Node>(block: BackofficeStateGroupBlockSpec<Node>) => BackofficeStateGroupBlockSpec<Node>;
92
+ export declare const defineContextStack: <Node>(block: BackofficeContextStackBlockSpec<Node>) => BackofficeContextStackBlockSpec<Node>;
93
+ export declare const defineRelationGroup: <Node>(block: BackofficeRelationGroupBlockSpec<Node>) => BackofficeRelationGroupBlockSpec<Node>;
94
+ export declare const defineTimeline: <Node>(block: BackofficeTimelineBlockSpec<Node>) => BackofficeTimelineBlockSpec<Node>;
95
+ export declare const defineAudit: <Node>(block: BackofficeAuditBlockSpec<Node>) => BackofficeAuditBlockSpec<Node>;
96
+ export declare const defineReferenceGroup: <Node>(block: BackofficeReferenceGroupBlockSpec<Node>) => BackofficeReferenceGroupBlockSpec<Node>;
97
+ export declare const definePayload: <Node>(block: BackofficePayloadBlockSpec<Node>) => BackofficePayloadBlockSpec<Node>;
98
+ export declare const defineTechnicalFacts: <Node>(block: BackofficeTechnicalFactsBlockSpec<Node>) => BackofficeTechnicalFactsBlockSpec<Node>;
88
99
  export declare const createToolFacet: <T extends BackofficeToolFacetConfig>(config: T) => T;
89
- export declare const createListDetailManifest: <TFacets extends BackofficeListDetailFacetLoaderMap>(config: Omit<BackofficeEntityManifestItem, "kind" | "facets"> & {
100
+ export declare const createListDetailManifest: <TFacets extends BackofficeListDetailFacetLoaderMap, TConfig extends Omit<BackofficeEntityManifestItem, "kind" | "facets"> & {
90
101
  facets: TFacets;
91
- }) => BackofficeEntityManifestItem;
92
- export declare const createToolManifest: <TFacets extends BackofficeToolFacetLoaderMap>(config: Omit<BackofficeEntityManifestItem, "kind" | "hasList" | "detailPages" | "defaultDetailPageId" | "facets"> & {
102
+ }>(config: TConfig) => TConfig & {
103
+ kind: "list-detail";
104
+ };
105
+ export declare const createToolManifest: <TFacets extends BackofficeToolFacetLoaderMap, TConfig extends Omit<BackofficeEntityManifestItem, "kind" | "hasList" | "detailPages" | "defaultDetailPageId" | "facets"> & {
93
106
  facets: TFacets;
94
- }) => BackofficeEntityManifestItem;
107
+ }>(config: TConfig) => TConfig & {
108
+ kind: "tool";
109
+ hasList: false;
110
+ detailPages: undefined;
111
+ defaultDetailPageId: undefined;
112
+ };
95
113
  export {};
96
114
  //# sourceMappingURL=builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
@@ -213,6 +213,41 @@ export const createDetailLayoutFacet = (config) => {
213
213
  export const createDetailPageFacet = (config) => {
214
214
  return config;
215
215
  };
216
+ export const defineDetailBlocks = () => {
217
+ return (blocks) => {
218
+ return blocks;
219
+ };
220
+ };
221
+ export const defineSummaryBlock = (block) => {
222
+ return block;
223
+ };
224
+ export const defineMetricGroup = (block) => {
225
+ return block;
226
+ };
227
+ export const defineStateGroup = (block) => {
228
+ return block;
229
+ };
230
+ export const defineContextStack = (block) => {
231
+ return block;
232
+ };
233
+ export const defineRelationGroup = (block) => {
234
+ return block;
235
+ };
236
+ export const defineTimeline = (block) => {
237
+ return block;
238
+ };
239
+ export const defineAudit = (block) => {
240
+ return block;
241
+ };
242
+ export const defineReferenceGroup = (block) => {
243
+ return block;
244
+ };
245
+ export const definePayload = (block) => {
246
+ return block;
247
+ };
248
+ export const defineTechnicalFacts = (block) => {
249
+ return block;
250
+ };
216
251
  export const createToolFacet = (config) => {
217
252
  return config;
218
253
  };
@@ -231,4 +266,4 @@ export const createToolManifest = (config) => {
231
266
  defaultDetailPageId: undefined,
232
267
  };
233
268
  };
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0tBLE1BQU0sMEJBQTBCLEdBQUcsQ0FLakMsS0FBMEQsRUFDakMsRUFBRTtJQUMzQixPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFHLENBSW5DLEtBQXFELEVBQzVCLEVBQUU7SUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixLQUFLLEdBQUcsV0FBcUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLEdBQWtCLE1BQU0sQ0FBQztJQUMzQyxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPO1FBQ0wsS0FBSztRQUNMLE1BQU0sRUFBRSxj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QUFvQixDQUFDO1FBQzVDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQzFCLE1BRUMsRUFDNEIsRUFBRTtJQUMvQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUd4QyxNQUFTLEVBQ04sRUFBRTtJQUNMLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBR3JDLE1BQVMsRUFDTixFQUFFO0lBQ0wsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FHbkMsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUd0QyxNQUVDLEVBQzZCLEVBQUU7SUFDaEMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxhQUFhO0tBQ3BCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUdoQyxNQUtDLEVBQzZCLEVBQUU7SUFDaEMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsU0FBUztRQUN0QixtQkFBbUIsRUFBRSxTQUFTO0tBQy9CLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnLFxuICBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50LFxuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxpc3RRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlUmVjb3JkTGlzdENvbmZpZyxcbiAgQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVNvcnRTcGVjLFxuICBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgVmFsdWU+ID0gRXh0cmFjdDxcbiAge1xuICAgIFtLZXkgaW4ga2V5b2YgV2hlcmVdOiBOb25OdWxsYWJsZTxXaGVyZVtLZXldPiBleHRlbmRzIFZhbHVlID8gS2V5IDogbmV2ZXI7XG4gIH1ba2V5b2YgV2hlcmVdLFxuICBzdHJpbmdcbj47XG5cbnR5cGUgU3RyaW5nRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIHN0cmluZz47XG50eXBlIEJvb2xlYW5GaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgYm9vbGVhbj47XG50eXBlIE51bWJlckZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBudW1iZXI+O1xuXG50eXBlIFN0YW5kYXJkTGlzdFZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBzb3J0PzogVFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdGFuZGFyZFBpY2tlclZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+ID1cbiAgVE9wZXJhdGlvblsndmFyaWFibGVzJ10gZXh0ZW5kcyBTdGFuZGFyZExpc3RWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPiA9XG4gIFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddIGV4dGVuZHMgU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPixcbiAgJ2tpbmQnIHwgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUmVjb3JkTGlzdElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlUmVjb3JkTGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID4sXG4gICdidWlsZFF1ZXJ5VmFyaWFibGVzJ1xuPiAmIHtcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPixcbiAgJ2xpc3QnXG4+ICYge1xuICBsaXN0OiBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUGlja2VySW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPixcbiAgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oXG4gIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIHJldHVybiB7XG4gICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZFBpY2tlclZhcmlhYmxlcyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIGNvbnN0IHNlYXJjaCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gIGxldCB3aGVyZTogVFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gIGlmIChpbnB1dC5zY29wZSAhPSBudWxsKSB7XG4gICAgY29uc3Qgc2NvcGVkV2hlcmUgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhpbnB1dC5zY29wZSkuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICAgIH0pLFxuICAgICk7XG4gICAgd2hlcmUgPSBzY29wZWRXaGVyZSBhcyBUV2hlcmU7XG4gIH1cbiAgbGV0IHNlYXJjaFZhcmlhYmxlOiBzdHJpbmcgfCBudWxsID0gc2VhcmNoO1xuICBpZiAoc2VhcmNoID09PSAnJykge1xuICAgIHNlYXJjaFZhcmlhYmxlID0gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdoZXJlLFxuICAgIHNlYXJjaDogc2VhcmNoVmFyaWFibGUsXG4gICAgY291bnQ6IDIwLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgICAgY29uZmlnLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz8gYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnRcbiAgICA+ICYge1xuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydFxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVJlY29yZExpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVJlY29yZExpc3RJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVJlY29yZExpc3RDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRMaXN0VmFyaWFibGVzLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbVJlY29yZExpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VSZWNvcmRMaXN0SW5wdXQ8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmUsXG4gICAgICBUU29ydFxuICAgID4gJiB7XG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoXG4gICAgICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VSZWNvcmRMaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21MaXN0RmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZSxcbiAgICAgIFRTb3J0XG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlciA9IDxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tUGlja2VyID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlckZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21QaWNrZXJGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXIgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgcmVsYXRpb246IEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWM8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgKTogQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYzxUT3BlcmF0aW9uLCBUV2hlcmU+ID0+IHtcbiAgICByZXR1cm4gcmVsYXRpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZpbHRlcnMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgRmlsdGVycyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFRXaGVyZT5bXT4oXG4gICAgZmlsdGVyczogRmlsdGVycyxcbiAgKTogRmlsdGVycyA9PiB7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVNvcnRzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgU29ydHMgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlU29ydFNwZWM8VFNvcnQ+W10+KFxuICAgIHNvcnRzOiBTb3J0cyxcbiAgKTogU29ydHMgPT4ge1xuICAgIHJldHVybiBzb3J0cztcbiAgfTtcbn07XG5cbnR5cGUgRmlsdGVyQ29uZmlnID0ge1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBwbGFjZW1lbnQ/OiBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgY29uc3QgZW50aXR5SWRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHsgZW50aXR5OiBzdHJpbmcgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgIGVudGl0eTogY29uZmlnLmVudGl0eSxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAndGV4dCcsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZXRpbWVGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBtb2RlPzogJ2Zyb20nIHwgJ3RvJyB8ICdleGFjdCc7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2RhdGV0aW1lJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIG1vZGU6IGNvbmZpZy5tb2RlLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBudW1iZXJGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIE51bWJlckZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ251bWJlcicsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgaW5wdXRNb2RlOiBjb25maWcuaW5wdXRNb2RlLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGVudW1GaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBvcHRpb25zOiByZWFkb25seSBFeHRyYWN0PE5vbk51bGxhYmxlPFdoZXJlW0tleV0+LCBzdHJpbmc+W107XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudW0nLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBib29sZWFuRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBCb29sZWFuRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHRydWVMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBmYWxzZUxhYmVsPzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRydWVMYWJlbDogY29uZmlnLnRydWVMYWJlbCxcbiAgICBmYWxzZUxhYmVsOiBjb25maWcuZmFsc2VMYWJlbCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjdXN0b21GaWx0ZXIgPSA8V2hlcmUsIFZhbHVlPihcbiAgZmlsdGVyOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gJiB7XG4gICAgdG9HcmFwaFFMOiAodmFsdWU6IFZhbHVlKSA9PiBQYXJ0aWFsPFdoZXJlPjtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiBmaWx0ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVRvb2xFbnRpdHkgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURldGFpbExheW91dEZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsUGFnZUZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xGYWNldCA9IDxUIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldENvbmZpZz4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXAsXG4+KFxuICBjb25maWc6IE9taXQ8QmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSwgJ2tpbmQnIHwgJ2ZhY2V0cyc+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbik6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBraW5kOiAnbGlzdC1kZXRhaWwnLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VUb29sRmFjZXRMb2FkZXJNYXAsXG4+KFxuICBjb25maWc6IE9taXQ8XG4gICAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgICAna2luZCcgfCAnaGFzTGlzdCcgfCAnZGV0YWlsUGFnZXMnIHwgJ2RlZmF1bHREZXRhaWxQYWdlSWQnIHwgJ2ZhY2V0cydcbiAgPiAmIHtcbiAgICBmYWNldHM6IFRGYWNldHM7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAga2luZDogJ3Rvb2wnLFxuICAgIGhhc0xpc3Q6IGZhbHNlLFxuICAgIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdERldGFpbFBhZ2VJZDogdW5kZWZpbmVkLFxuICB9O1xufTtcbiJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNktBLE1BQU0sMEJBQTBCLEdBQUcsQ0FLakMsS0FBMEQsRUFDakMsRUFBRTtJQUMzQixPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFHLENBSW5DLEtBQXFELEVBQzVCLEVBQUU7SUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixLQUFLLEdBQUcsV0FBcUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLEdBQWtCLE1BQU0sQ0FBQztJQUMzQyxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPO1FBQ0wsS0FBSztRQUNMLE1BQU0sRUFBRSxj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Q0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ3JlbGF5LXJ1bnRpbWUnO1xuaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VBdWRpdEJsb2NrU3BlYyxcbiAgQmFja29mZmljZUNvbnRleHRTdGFja0Jsb2NrU3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlTWV0cmljR3JvdXBCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VQYXlsb2FkQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlUmVmZXJlbmNlR3JvdXBCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VSZWxhdGlvbkdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU2VtYW50aWNEZXRhaWxCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VTdGF0ZUdyb3VwQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlU3VtbWFyeUJsb2NrU3BlYyxcbiAgQmFja29mZmljZVRlY2huaWNhbEZhY3RzQmxvY2tTcGVjLFxuICBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnLFxuICBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50LFxuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxpc3RRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlUmVjb3JkTGlzdENvbmZpZyxcbiAgQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVNvcnRTcGVjLFxuICBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgVmFsdWU+ID0gRXh0cmFjdDxcbiAge1xuICAgIFtLZXkgaW4ga2V5b2YgV2hlcmVdOiBOb25OdWxsYWJsZTxXaGVyZVtLZXldPiBleHRlbmRzIFZhbHVlID8gS2V5IDogbmV2ZXI7XG4gIH1ba2V5b2YgV2hlcmVdLFxuICBzdHJpbmdcbj47XG5cbnR5cGUgU3RyaW5nRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIHN0cmluZz47XG50eXBlIEJvb2xlYW5GaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgYm9vbGVhbj47XG50eXBlIE51bWJlckZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBudW1iZXI+O1xuXG50eXBlIFN0YW5kYXJkTGlzdFZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBzb3J0PzogVFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdGFuZGFyZFBpY2tlclZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+ID1cbiAgVE9wZXJhdGlvblsndmFyaWFibGVzJ10gZXh0ZW5kcyBTdGFuZGFyZExpc3RWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPiA9XG4gIFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddIGV4dGVuZHMgU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPixcbiAgJ2tpbmQnIHwgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUmVjb3JkTGlzdElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlUmVjb3JkTGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID4sXG4gICdidWlsZFF1ZXJ5VmFyaWFibGVzJ1xuPiAmIHtcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPixcbiAgJ2xpc3QnXG4+ICYge1xuICBsaXN0OiBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUGlja2VySW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPixcbiAgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oXG4gIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIHJldHVybiB7XG4gICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZFBpY2tlclZhcmlhYmxlcyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIGNvbnN0IHNlYXJjaCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gIGxldCB3aGVyZTogVFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gIGlmIChpbnB1dC5zY29wZSAhPSBudWxsKSB7XG4gICAgY29uc3Qgc2NvcGVkV2hlcmUgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhpbnB1dC5zY29wZSkuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICAgIH0pLFxuICAgICk7XG4gICAgd2hlcmUgPSBzY29wZWRXaGVyZSBhcyBUV2hlcmU7XG4gIH1cbiAgbGV0IHNlYXJjaFZhcmlhYmxlOiBzdHJpbmcgfCBudWxsID0gc2VhcmNoO1xuICBpZiAoc2VhcmNoID09PSAnJykge1xuICAgIHNlYXJjaFZhcmlhYmxlID0gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdoZXJlLFxuICAgIHNlYXJjaDogc2VhcmNoVmFyaWFibGUsXG4gICAgY291bnQ6IDIwLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgICAgY29uZmlnLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz8gYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnRcbiAgICA+ICYge1xuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydFxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVJlY29yZExpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVJlY29yZExpc3RJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVJlY29yZExpc3RDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRMaXN0VmFyaWFibGVzLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbVJlY29yZExpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VSZWNvcmRMaXN0SW5wdXQ8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmUsXG4gICAgICBUU29ydFxuICAgID4gJiB7XG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoXG4gICAgICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VSZWNvcmRMaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21MaXN0RmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZSxcbiAgICAgIFRTb3J0XG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlciA9IDxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tUGlja2VyID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlckZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21QaWNrZXJGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXIgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgcmVsYXRpb246IEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWM8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgKTogQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYzxUT3BlcmF0aW9uLCBUV2hlcmU+ID0+IHtcbiAgICByZXR1cm4gcmVsYXRpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZpbHRlcnMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgRmlsdGVycyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFRXaGVyZT5bXT4oXG4gICAgZmlsdGVyczogRmlsdGVycyxcbiAgKTogRmlsdGVycyA9PiB7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVNvcnRzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgU29ydHMgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlU29ydFNwZWM8VFNvcnQ+W10+KFxuICAgIHNvcnRzOiBTb3J0cyxcbiAgKTogU29ydHMgPT4ge1xuICAgIHJldHVybiBzb3J0cztcbiAgfTtcbn07XG5cbnR5cGUgRmlsdGVyQ29uZmlnID0ge1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBwbGFjZW1lbnQ/OiBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgY29uc3QgZW50aXR5SWRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHsgZW50aXR5OiBzdHJpbmcgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgIGVudGl0eTogY29uZmlnLmVudGl0eSxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAndGV4dCcsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZXRpbWVGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBtb2RlPzogJ2Zyb20nIHwgJ3RvJyB8ICdleGFjdCc7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2RhdGV0aW1lJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIG1vZGU6IGNvbmZpZy5tb2RlLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBudW1iZXJGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIE51bWJlckZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ251bWJlcicsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgaW5wdXRNb2RlOiBjb25maWcuaW5wdXRNb2RlLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGVudW1GaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBvcHRpb25zOiByZWFkb25seSBFeHRyYWN0PE5vbk51bGxhYmxlPFdoZXJlW0tleV0+LCBzdHJpbmc+W107XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudW0nLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBib29sZWFuRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBCb29sZWFuRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHRydWVMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBmYWxzZUxhYmVsPzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRydWVMYWJlbDogY29uZmlnLnRydWVMYWJlbCxcbiAgICBmYWxzZUxhYmVsOiBjb25maWcuZmFsc2VMYWJlbCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjdXN0b21GaWx0ZXIgPSA8V2hlcmUsIFZhbHVlPihcbiAgZmlsdGVyOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gJiB7XG4gICAgdG9HcmFwaFFMOiAodmFsdWU6IFZhbHVlKSA9PiBQYXJ0aWFsPFdoZXJlPjtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiBmaWx0ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVRvb2xFbnRpdHkgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURldGFpbExheW91dEZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsUGFnZUZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZURldGFpbEJsb2NrcyA9IDxOb2RlPigpID0+IHtcbiAgcmV0dXJuIDxcbiAgICBjb25zdCBCbG9ja3MgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlU2VtYW50aWNEZXRhaWxCbG9ja1NwZWM8Tm9kZT5bXSxcbiAgPihcbiAgICBibG9ja3M6IEJsb2NrcyxcbiAgKTogQmxvY2tzID0+IHtcbiAgICByZXR1cm4gYmxvY2tzO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZVN1bW1hcnlCbG9jayA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VTdW1tYXJ5QmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVN1bW1hcnlCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lTWV0cmljR3JvdXAgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlTWV0cmljR3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlTWV0cmljR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lU3RhdGVHcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VTdGF0ZUdyb3VwQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVN0YXRlR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQ29udGV4dFN0YWNrID0gPE5vZGU+KFxuICBibG9jazogQmFja29mZmljZUNvbnRleHRTdGFja0Jsb2NrU3BlYzxOb2RlPixcbik6IEJhY2tvZmZpY2VDb250ZXh0U3RhY2tCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lUmVsYXRpb25Hcm91cCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VSZWxhdGlvbkdyb3VwQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVJlbGF0aW9uR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lVGltZWxpbmUgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlVGltZWxpbmVCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQXVkaXQgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlQXVkaXRCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlQXVkaXRCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lUmVmZXJlbmNlR3JvdXAgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlUmVmZXJlbmNlR3JvdXBCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlUmVmZXJlbmNlR3JvdXBCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lUGF5bG9hZCA9IDxOb2RlPihcbiAgYmxvY2s6IEJhY2tvZmZpY2VQYXlsb2FkQmxvY2tTcGVjPE5vZGU+LFxuKTogQmFja29mZmljZVBheWxvYWRCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lVGVjaG5pY2FsRmFjdHMgPSA8Tm9kZT4oXG4gIGJsb2NrOiBCYWNrb2ZmaWNlVGVjaG5pY2FsRmFjdHNCbG9ja1NwZWM8Tm9kZT4sXG4pOiBCYWNrb2ZmaWNlVGVjaG5pY2FsRmFjdHNCbG9ja1NwZWM8Tm9kZT4gPT4ge1xuICByZXR1cm4gYmxvY2s7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVG9vbEZhY2V0ID0gPFQgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTGlzdERldGFpbE1hbmlmZXN0ID0gPFxuICBURmFjZXRzIGV4dGVuZHMgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgVENvbmZpZyBleHRlbmRzIE9taXQ8QmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSwgJ2tpbmQnIHwgJ2ZhY2V0cyc+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbj4oXG4gIGNvbmZpZzogVENvbmZpZyxcbik6IFRDb25maWcgJiB7IGtpbmQ6ICdsaXN0LWRldGFpbCcgfSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGtpbmQ6ICdsaXN0LWRldGFpbCcsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlVG9vbE1hbmlmZXN0ID0gPFxuICBURmFjZXRzIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgVENvbmZpZyBleHRlbmRzIE9taXQ8XG4gICAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgICAna2luZCcgfCAnaGFzTGlzdCcgfCAnZGV0YWlsUGFnZXMnIHwgJ2RlZmF1bHREZXRhaWxQYWdlSWQnIHwgJ2ZhY2V0cydcbiAgPiAmIHtcbiAgICBmYWNldHM6IFRGYWNldHM7XG4gIH0sXG4+KFxuICBjb25maWc6IFRDb25maWcsXG4pOiBUQ29uZmlnICYge1xuICBraW5kOiAndG9vbCc7XG4gIGhhc0xpc3Q6IGZhbHNlO1xuICBkZXRhaWxQYWdlczogdW5kZWZpbmVkO1xuICBkZWZhdWx0RGV0YWlsUGFnZUlkOiB1bmRlZmluZWQ7XG59ID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAga2luZDogJ3Rvb2wnLFxuICAgIGhhc0xpc3Q6IGZhbHNlLFxuICAgIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdERldGFpbFBhZ2VJZDogdW5kZWZpbmVkLFxuICB9O1xufTtcbiJdfQ==
@@ -0,0 +1,135 @@
1
+ import type { BackofficeDetailContentSpec, BackofficeDetailFieldSpec, BackofficeDetailPageViewSpec, BackofficeFieldSetBlockSpec, BackofficeMetricGroupBlockSpec, BackofficePayloadBlockSpec, BackofficeReferenceGroupBlockSpec, BackofficeRelationGroupBlockSpec, BackofficeStateGroupBlockSpec, BackofficeSummaryBlockSpec, BackofficeTimelineBlockSpec, BackofficeAuditBlockSpec, BackofficeTechnicalFactsBlockSpec, BackofficeValueLabel } from '../types.js';
2
+ export type BackofficeValueGetter<Node, Value> = (node: Node) => Value;
3
+ type BackofficeRecordKey = string | number | symbol;
4
+ type BackofficeNodeWithKey<Key extends BackofficeRecordKey> = Readonly<Partial<Record<Key, unknown>>>;
5
+ export declare const detailValue: {
6
+ readonly key: <Key extends BackofficeRecordKey>(key: Key) => <Node extends BackofficeNodeWithKey<Key>>(node: Node) => Node[Key];
7
+ readonly text: <Key extends BackofficeRecordKey>(key: Key) => <Node extends BackofficeNodeWithKey<Key>>(node: Node) => string | number | null;
8
+ readonly number: <Key extends BackofficeRecordKey>(key: Key) => <Node extends BackofficeNodeWithKey<Key>>(node: Node) => number | null;
9
+ readonly boolean: <Key extends BackofficeRecordKey>(key: Key) => <Node extends BackofficeNodeWithKey<Key>>(node: Node) => boolean | null;
10
+ readonly dateTime: <Key extends BackofficeRecordKey>(key: Key) => <Node extends BackofficeNodeWithKey<Key>>(node: Node) => string | number | null;
11
+ readonly arrayLength: <Key extends BackofficeRecordKey>(key: Key) => <Node extends BackofficeNodeWithKey<Key>>(node: Node) => number | null;
12
+ };
13
+ export declare const detailField: {
14
+ readonly text: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
15
+ type: "text";
16
+ }>, "size"> & {
17
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
18
+ type: "text";
19
+ }>["size"];
20
+ }) => BackofficeDetailFieldSpec<Node>;
21
+ readonly badge: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
22
+ type: "badge";
23
+ }>, "size"> & {
24
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
25
+ type: "badge";
26
+ }>["size"];
27
+ }) => BackofficeDetailFieldSpec<Node>;
28
+ readonly badgeRow: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
29
+ type: "badgeRow";
30
+ }>, "size"> & {
31
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
32
+ type: "badgeRow";
33
+ }>["size"];
34
+ }) => BackofficeDetailFieldSpec<Node>;
35
+ readonly dateTime: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
36
+ type: "dateTime";
37
+ }>, "size"> & {
38
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
39
+ type: "dateTime";
40
+ }>["size"];
41
+ }) => BackofficeDetailFieldSpec<Node>;
42
+ readonly number: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
43
+ type: "number";
44
+ }>, "size"> & {
45
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
46
+ type: "number";
47
+ }>["size"];
48
+ }) => BackofficeDetailFieldSpec<Node>;
49
+ readonly money: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
50
+ type: "number";
51
+ }>, "size" | "format"> & {
52
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
53
+ type: "number";
54
+ }>["size"];
55
+ }) => BackofficeDetailFieldSpec<Node>;
56
+ readonly boolean: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
57
+ type: "flag";
58
+ }>, "size" | "variant"> & {
59
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
60
+ type: "flag";
61
+ }>["size"];
62
+ readonly variant?: Extract<BackofficeDetailFieldSpec<Node>, {
63
+ type: "flag";
64
+ }>["variant"];
65
+ }) => BackofficeDetailFieldSpec<Node>;
66
+ readonly flag: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
67
+ type: "flag";
68
+ }>, "size"> & {
69
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
70
+ type: "flag";
71
+ }>["size"];
72
+ }) => BackofficeDetailFieldSpec<Node>;
73
+ readonly entityRef: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
74
+ type: "entityRef";
75
+ }>, "size"> & {
76
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
77
+ type: "entityRef";
78
+ }>["size"];
79
+ }) => BackofficeDetailFieldSpec<Node>;
80
+ readonly link: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
81
+ type: "link";
82
+ }>, "size"> & {
83
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
84
+ type: "link";
85
+ }>["size"];
86
+ }) => BackofficeDetailFieldSpec<Node>;
87
+ readonly relation: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
88
+ type: "relation";
89
+ }>, "size"> & {
90
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
91
+ type: "relation";
92
+ }>["size"];
93
+ }) => BackofficeDetailFieldSpec<Node>;
94
+ readonly custom: <Node>(spec: Omit<Extract<BackofficeDetailFieldSpec<Node>, {
95
+ type: "custom";
96
+ }>, "size"> & {
97
+ readonly size?: Extract<BackofficeDetailFieldSpec<Node>, {
98
+ type: "custom";
99
+ }>["size"];
100
+ }) => BackofficeDetailFieldSpec<Node>;
101
+ };
102
+ export declare const detailBlocks: {
103
+ readonly summary: <Node>(spec: BackofficeSummaryBlockSpec<Node>) => BackofficeSummaryBlockSpec<Node>;
104
+ readonly fields: <Node>(spec: Omit<BackofficeFieldSetBlockSpec<Node>, "kind">) => BackofficeFieldSetBlockSpec<Node>;
105
+ readonly metrics: <Node>(spec: BackofficeMetricGroupBlockSpec<Node>) => BackofficeMetricGroupBlockSpec<Node>;
106
+ readonly states: <Node>(spec: BackofficeStateGroupBlockSpec<Node>) => BackofficeStateGroupBlockSpec<Node>;
107
+ readonly context: <Node>(spec: Extract<BackofficeDetailContentSpec<Node>, {
108
+ kind: "context";
109
+ }>) => Extract<BackofficeDetailContentSpec<Node>, {
110
+ kind: "context";
111
+ }>;
112
+ readonly relations: <Node>(spec: BackofficeRelationGroupBlockSpec<Node>) => BackofficeRelationGroupBlockSpec<Node>;
113
+ readonly timeline: <Node>(spec: BackofficeTimelineBlockSpec<Node>) => BackofficeTimelineBlockSpec<Node>;
114
+ readonly audit: <Node>(spec: BackofficeAuditBlockSpec<Node>) => BackofficeAuditBlockSpec<Node>;
115
+ readonly references: <Node>(spec: BackofficeReferenceGroupBlockSpec<Node>) => BackofficeReferenceGroupBlockSpec<Node>;
116
+ readonly payload: <Node>(spec: BackofficePayloadBlockSpec<Node>) => BackofficePayloadBlockSpec<Node>;
117
+ readonly table: <Node, Row>(spec: Extract<BackofficeDetailContentSpec<Node>, {
118
+ kind: "table";
119
+ }> & {
120
+ readonly rows: (node: Node) => readonly Row[];
121
+ }) => Extract<BackofficeDetailContentSpec<Node>, {
122
+ kind: "table";
123
+ }>;
124
+ readonly technical: <Node>(spec: BackofficeTechnicalFactsBlockSpec<Node>) => BackofficeTechnicalFactsBlockSpec<Node>;
125
+ readonly custom: <Node>(spec: Extract<BackofficeDetailContentSpec<Node>, {
126
+ kind: "custom";
127
+ }>) => Extract<BackofficeDetailContentSpec<Node>, {
128
+ kind: "custom";
129
+ }>;
130
+ };
131
+ export declare const defineBackofficeDetailPage: <Node>() => <Spec extends BackofficeDetailPageViewSpec<Node>>(spec: Spec) => Spec;
132
+ export declare const detailPage: <Node>() => <Spec extends BackofficeDetailPageViewSpec<Node>>(spec: Spec) => Spec;
133
+ export declare const valueLabel: <Node>(getter: BackofficeValueGetter<Node, BackofficeValueLabel>) => BackofficeValueGetter<Node, BackofficeValueLabel>;
134
+ export {};
135
+ //# sourceMappingURL=detail-builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detail-builders.d.ts","sourceRoot":"","sources":["../../../src/config/detail-builders.ts"],"names":[],"mappings":"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"}