@envive-ai/react-hooks 0.3.61 → 0.3.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/utils/elementObserver.d.cts +2 -2
- package/dist/application/utils/widgetTextRequestToApiRequest.cjs +1 -0
- package/dist/application/utils/widgetTextRequestToApiRequest.js +1 -1
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +19 -19
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.d.cts +2 -2
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +6 -6
- package/dist/atoms/chat/messageQueue.d.ts +7 -7
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/replies.d.ts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.d.cts +14 -14
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/search/utils.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.d.cts +1 -1
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/enviveConfigService/enviveConfigService.cjs +49 -3
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +16 -2
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +16 -2
- package/dist/services/enviveConfigService/enviveConfigService.js +49 -3
- package/dist/services/enviveConfigService/fetchBootstrapConfig.cjs +102 -0
- package/dist/services/enviveConfigService/fetchBootstrapConfig.js +102 -0
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +2 -1
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +2 -2
- package/dist/services/hardcopyService/hardcopyService.cjs +20 -4
- package/dist/services/hardcopyService/hardcopyService.d.cts +3 -2
- package/dist/services/hardcopyService/hardcopyService.d.ts +3 -2
- package/dist/services/hardcopyService/hardcopyService.js +20 -5
- package/dist/services/hardcopyService/index.cjs +1 -0
- package/dist/services/hardcopyService/index.d.cts +2 -2
- package/dist/services/hardcopyService/index.d.ts +2 -2
- package/dist/services/hardcopyService/index.js +2 -2
- package/dist/services/urlResolverWarmupService/index.cjs +3 -3
- package/dist/services/urlResolverWarmupService/index.d.cts +8 -2
- package/dist/services/urlResolverWarmupService/index.d.ts +8 -2
- package/dist/services/urlResolverWarmupService/index.js +3 -3
- package/package.json +1 -1
- package/src/hooks/Intersection/__tests__/useIntersection.test.ts +1 -3
- package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +226 -0
- package/src/services/enviveConfigService/__tests__/fetchBootstrapConfig.test.ts +271 -0
- package/src/services/enviveConfigService/enviveConfigService.ts +124 -5
- package/src/services/enviveConfigService/fetchBootstrapConfig.ts +276 -0
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +7 -4
- package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +60 -1
- package/src/services/hardcopyService/hardcopyService.ts +45 -3
- package/src/services/urlResolverWarmupService/__tests__/urlResolverWarmupService.test.ts +55 -0
- package/src/services/urlResolverWarmupService/index.ts +18 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
const require_logger = require('../../application/logging/logger.cjs');
|
|
2
|
+
const require_config_versions = require('../../types/config-versions.cjs');
|
|
3
|
+
const require_fetchGraphQLConfig = require('./fetchGraphQLConfig.cjs');
|
|
4
|
+
|
|
5
|
+
//#region src/services/enviveConfigService/fetchBootstrapConfig.ts
|
|
6
|
+
const logger = new require_logger.default("fetchBootstrapConfig");
|
|
7
|
+
const toBootstrapGates = (raw) => (raw ?? []).map((g) => ({
|
|
8
|
+
name: g.name,
|
|
9
|
+
value: g.value,
|
|
10
|
+
groupName: g.group_name ?? void 0
|
|
11
|
+
}));
|
|
12
|
+
const toBootstrapAssignments = (raw) => (raw ?? []).map((a) => ({
|
|
13
|
+
layer_name: a.layer_name,
|
|
14
|
+
namespace: a.namespace,
|
|
15
|
+
allocated_experiment_name: a.allocated_experiment_name,
|
|
16
|
+
group_name: a.group_name
|
|
17
|
+
}));
|
|
18
|
+
const toResolution = (raw) => raw ? {
|
|
19
|
+
baseVersion: raw.base_version,
|
|
20
|
+
baseVersionSource: raw.base_version_source
|
|
21
|
+
} : void 0;
|
|
22
|
+
const BOOTSTRAP_TIMEOUT_MS = 1500;
|
|
23
|
+
const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace, gateNames, url, orgId, orgShortName, contextSource, env, chatId, featureGates }) => {
|
|
24
|
+
const version = require_config_versions.configVersionOverride();
|
|
25
|
+
const controller = new AbortController();
|
|
26
|
+
const timeoutId = setTimeout(() => controller.abort(), BOOTSTRAP_TIMEOUT_MS);
|
|
27
|
+
let result;
|
|
28
|
+
try {
|
|
29
|
+
const response = await fetch(`${baseUrl}/v1/session/bootstrap`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: {
|
|
32
|
+
"Content-Type": "application/json",
|
|
33
|
+
Authorization: `Bearer ${apiKey}`
|
|
34
|
+
},
|
|
35
|
+
body: JSON.stringify({
|
|
36
|
+
user_id: userId,
|
|
37
|
+
source,
|
|
38
|
+
namespace,
|
|
39
|
+
include_feature_gates: gateNames,
|
|
40
|
+
version,
|
|
41
|
+
url_resolving: {
|
|
42
|
+
url,
|
|
43
|
+
context: {
|
|
44
|
+
user_id: userId,
|
|
45
|
+
org_id: orgId,
|
|
46
|
+
org_short_name: orgShortName,
|
|
47
|
+
chat_id: chatId ?? "",
|
|
48
|
+
source: contextSource,
|
|
49
|
+
env
|
|
50
|
+
},
|
|
51
|
+
feature_gates: featureGates,
|
|
52
|
+
override_config_version: version
|
|
53
|
+
}
|
|
54
|
+
}),
|
|
55
|
+
signal: controller.signal
|
|
56
|
+
});
|
|
57
|
+
if (!response.ok) throw new Error(`Bootstrap config request failed: ${response.statusText}`);
|
|
58
|
+
result = await response.json();
|
|
59
|
+
} finally {
|
|
60
|
+
clearTimeout(timeoutId);
|
|
61
|
+
}
|
|
62
|
+
if (!result.org_config?.org?.org || !result.org_config?.gates?.length || !result.widget_config) throw new Error("Bootstrap config response missing required sections (org_config.org.org / org_config.gates / widget_config)");
|
|
63
|
+
const orgConfig = result.org_config;
|
|
64
|
+
const widgetConfig = result.widget_config;
|
|
65
|
+
const orgOrg = orgConfig.org?.org ?? {};
|
|
66
|
+
const resolution = toResolution(widgetConfig.resolution);
|
|
67
|
+
let orgConfigValues;
|
|
68
|
+
try {
|
|
69
|
+
orgConfigValues = {
|
|
70
|
+
...require_fetchGraphQLConfig.transformV3ProductsConfig(widgetConfig.products_config),
|
|
71
|
+
resolution
|
|
72
|
+
};
|
|
73
|
+
} catch (err) {
|
|
74
|
+
logger.logError("fetchBootstrapConfig | Error transforming products config", err);
|
|
75
|
+
orgConfigValues = {
|
|
76
|
+
colorsConfig: void 0,
|
|
77
|
+
frontendConfig: void 0,
|
|
78
|
+
resolution
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
config: {
|
|
83
|
+
org: { org: {
|
|
84
|
+
id: orgOrg.id ?? "",
|
|
85
|
+
short_name: orgOrg.short_name ?? "",
|
|
86
|
+
display_name: orgOrg.display_name ?? "",
|
|
87
|
+
domain: orgOrg.domain ?? "",
|
|
88
|
+
status: orgOrg.status ?? "",
|
|
89
|
+
created_at: orgOrg.created_at ?? "",
|
|
90
|
+
updated_at: orgOrg.updated_at ?? ""
|
|
91
|
+
} },
|
|
92
|
+
gates: toBootstrapGates(orgConfig.gates),
|
|
93
|
+
experiment_assignments: toBootstrapAssignments(widgetConfig.experiment_assignments),
|
|
94
|
+
orgConfig: orgConfigValues
|
|
95
|
+
},
|
|
96
|
+
urlResolving: result.url_resolving ?? null
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
exports.fetchBootstrapConfig = fetchBootstrapConfig;
|
|
102
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hCb290c3RyYXBDb25maWcuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiY29uZmlnVmVyc2lvbk92ZXJyaWRlIiwicmVzdWx0OiBSYXdCb290c3RyYXBSZXNwb25zZSIsIm9yZ0NvbmZpZ1ZhbHVlczogR3JhcGhRbENvbmZpZ1ZhbHVlcyIsInRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEJvb3RzdHJhcENvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IFVybFJlc29sdmVyUmVzcG9uc2UgfSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHtcbiAgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSxcbiAgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnQsXG4gIE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7IHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfSBmcm9tICcuL2ZldGNoR3JhcGhRTENvbmZpZyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hCb290c3RyYXBDb25maWcpLlxuaW1wb3J0IHR5cGUgeyBFbnZpdmVTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9lbnZpdmVDb25maWdTZXJ2aWNlJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmV0Y2hCb290c3RyYXBDb25maWcnKTtcblxuLy8gVGhlIHVybC1yZXNvbHZpbmcgY29udGV4dCBiaXRzIHRoZSBob29rcyBsYXllciBjYW4ndCBkZXJpdmUgb24gaXRzIG93biDigJQgdGhlXG4vLyBpbmplY3Rpb24gYnVuZGxlIHN1cHBsaWVzIGVudiAoYSBidWlsZC10aW1lIHZhcikgYW5kIGNvbnRleHRTb3VyY2UuIG9yZ1xuLy8gaWRlbnRpdHkgaXMgdGhyZWFkZWQgZnJvbSB0aGUgZ2V0V2lkZ2V0Q29uZmlnIHJlc3BvbnNlIGZldGNoZWQgbW9tZW50cyBlYXJsaWVyXG4vLyAoc2VlIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGJvb3RzdHJhcCBvbmx5IHJ1bnMgb24gdGhlIGdhdGUtT04gcGF0aCwgd2hpY2ggcmVhZHNcbi8vIHRoZSBnYXRlIG9mZiBnZXRXaWRnZXRDb25maWcgZmlyc3QsIHNvIG9yZyBpZC9zaG9ydF9uYW1lIGFyZSBhbHJlYWR5IGluIGhhbmQpLlxuZXhwb3J0IGludGVyZmFjZSBGZXRjaEJvb3RzdHJhcENvbmZpZ1BhcmFtcyB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXBpS2V5OiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICAvLyBDb25maWcgYHNvdXJjZWAgKFN0YXRzaWcgdXNlciBwcm9wZXJ0eSksICdhcHAnIGluIHRoZSBpbmplY3Rpb24gYnVuZGxlLlxuICBzb3VyY2U6IHN0cmluZztcbiAgLy8gU2NvcGVzIG9yZ19jb25maWcuY29uZmlncyB0byB0aGlzIG5hbWVzcGFjZS4gUkVRVUlSRUQ6IHdpdGhvdXQgaXQgcHltb25vXG4gIC8vIHJldHVybnMgRVZFUlkgbmFtZXNwYWNlIG9uIHRoZSBvcmcg4oCUIGluY2x1ZGluZyBpbnRlcm5hbC1vbmx5IGNvbmZpZ3MgKHRoZSBBSVxuICAvLyBzeXN0ZW0gcHJvbXB0LCBicmFuZC12b2ljZSBpbnN0cnVjdGlvbnMsIGV0Yy4pIOKAlCBpbiB0aGUgcmVzcG9uc2UgdGhlIHB1YmxpY1xuICAvLyBidW5kbGUgcmVjZWl2ZXMuIFRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcgY2FsbCBzY29wZWQgaXQgdGhlIHNhbWUgd2F5LlxuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgZ2F0ZU5hbWVzOiBzdHJpbmdbXTtcbiAgLy8gdXJsX3Jlc29sdmluZyBpbnB1dHM6XG4gIHVybDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU6IHN0cmluZztcbiAgLy8gQ29udGV4dCBgc291cmNlYCBmb3IgdXJsX3Jlc29sdmluZyAoJ2FwcCcgfCAncGxheWdyb3VuZCcpOyBtYXkgZGlmZmVyIGZyb21cbiAgLy8gdGhlIGNvbmZpZyBgc291cmNlYCBhYm92ZSAocGxheWdyb3VuZCA9IEVudml2ZSBIdWIpLlxuICBjb250ZXh0U291cmNlOiBzdHJpbmc7XG4gIGVudjogc3RyaW5nO1xuICBjaGF0SWQ/OiBzdHJpbmc7XG4gIC8vIFRoZSBvdmVycmlkZS1hd2FyZSBmZWF0dXJlIGdhdGVzIChGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdzKCkpLCBzb1xuICAvLyBjbGllbnQtc2lkZSBnYXRlIG92ZXJyaWRlcyAocXVlcnkvd2luZG93L2xvY2FsU3RvcmFnZSkgcmVhY2ggcGFnZS12YXJpYW50XG4gIC8vIHJlc29sdXRpb24g4oCUIHNhbWUgYXMgdGhlIGxlZ2FjeSAvdjEvdXJsX3Jlc29sdmluZyByZXF1ZXN0LiBCb290c3RyYXAgbWVyZ2VzXG4gIC8vIHRoZXNlIE9WRVIgaXRzIG93biBzZXJ2ZXItcmVzb2x2ZWQgZ2F0ZXMuIEhhcm1sZXNzbHkgaWdub3JlZCBieSBweW1vbm8gdW50aWxcbiAgLy8gU2Vzc2lvbkJvb3RzdHJhcFVybFJlc29sdmluZ1JlcXVlc3QgZ2FpbnMgdGhlIGBmZWF0dXJlX2dhdGVzYCBmaWVsZCAodGhlXG4gIC8vIHNjaGVtYSBhbGxvd3MgdW5rbm93biBmaWVsZHM7IHRoZSBtb2RlbCBpcyBgZXh0cmE9J2lnbm9yZSdgKSwgc28gdGhlIEZFIGNhblxuICAvLyBzaGlwIGFoZWFkIG9mIHRoZSBiYWNrZW5kLlxuICBmZWF0dXJlR2F0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBjb25maWc6IEVudml2ZVNlcnZpY2VDb25maWc7XG4gIC8vIFRoZSBpbml0aWFsIHBhZ2UtdmFyaWFudCByZXN1bHQsIHJlYWR5IHRvIHNlZWQgdXJsUmVzb2x2ZXJBdG9tIHNvIHRoZVxuICAvLyB3YXJtLXVwIHNraXBzIGl0cyBvd24gL3YxL3VybF9yZXNvbHZpbmcgY2FsbC4gbnVsbCB3aGVuIGJvb3RzdHJhcCdzXG4gIC8vIChiZXN0LWVmZm9ydCkgdXJsLXJlc29sdmluZyBicmFuY2ggcmV0dXJuZWQgbm90aGluZy5cbiAgdXJsUmVzb2x2aW5nOiBVcmxSZXNvbHZlclJlc3BvbnNlIHwgbnVsbDtcbn1cblxuLy8gLS0tIHJhdyB3aXJlIHNoYXBlcyAoUE9TVCAvdjEvc2Vzc2lvbi9ib290c3RyYXAgaXMgUkVTVCBzbmFrZV9jYXNlKSAtLS0tLS0tLS1cblxuaW50ZXJmYWNlIFJhd0ZlYXR1cmVHYXRlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBib29sZWFuO1xuICBncm91cF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgcnVsZV9pZD86IHN0cmluZyB8IG51bGw7XG59XG5cbmludGVyZmFjZSBSYXdFeHBlcmltZW50QXNzaWdubWVudCB7XG4gIGxheWVyX25hbWU/OiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50WyduYW1lc3BhY2UnXTtcbiAgYWxsb2NhdGVkX2V4cGVyaW1lbnRfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIGdyb3VwX25hbWU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgUmF3UmVzb2x1dGlvbiB7XG4gIGJhc2VfdmVyc2lvbj86IHN0cmluZztcbiAgYmFzZV92ZXJzaW9uX3NvdXJjZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJhd0Jvb3RzdHJhcFJlc3BvbnNlIHtcbiAgb3JnX2NvbmZpZz86IHtcbiAgICBvcmc/OiB7IG9yZz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfTtcbiAgICBnYXRlcz86IFJhd0ZlYXR1cmVHYXRlW107XG4gIH07XG4gIHdpZGdldF9jb25maWc/OiB7XG4gICAgcHJvZHVjdHNfY29uZmlnPzogUGFyYW1ldGVyczx0eXBlb2YgdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZz5bMF07XG4gICAgLy8gUmVhZCBmcm9tIHdpZGdldF9jb25maWcgKG5vdCBvcmdfY29uZmlnKSB0byBtYXRjaCBnZXRXaWRnZXRDb25maWcg4oCUIHNlZSB0aGVcbiAgICAvLyBtYXBwaW5nIGJlbG93LlxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM/OiBSYXdFeHBlcmltZW50QXNzaWdubWVudFtdO1xuICAgIHJlc29sdXRpb24/OiBSYXdSZXNvbHV0aW9uO1xuICB9O1xuICB1cmxfcmVzb2x2aW5nPzogVXJsUmVzb2x2ZXJSZXNwb25zZSB8IG51bGw7XG59XG5cbi8vIGdhdGVzIGFycml2ZSBzbmFrZSAoYGdyb3VwX25hbWVgKTsgZ2V0V2lkZ2V0Q29uZmlnJ3MgYXJyaXZlIGNhbWVsLiBPbmx5IHRoZVxuLy8gbmFtZS92YWx1ZSBhcmUgdXNlZCBmb3IgZ2F0ZSBjaGVja3Mg4oCUIGdyb3VwTmFtZSBpcyBjYXJyaWVkIGZvciBhbXBsaXR1ZGUuXG5jb25zdCB0b0Jvb3RzdHJhcEdhdGVzID0gKHJhdzogUmF3RmVhdHVyZUdhdGVbXSB8IHVuZGVmaW5lZCk6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGcgPT4gKHtcbiAgICBuYW1lOiBnLm5hbWUsXG4gICAgdmFsdWU6IGcudmFsdWUsXG4gICAgZ3JvdXBOYW1lOiBnLmdyb3VwX25hbWUgPz8gdW5kZWZpbmVkLFxuICB9KSk7XG5cbi8vIGV4cGVyaW1lbnRfYXNzaWdubWVudHMgYWxyZWFkeSBtYXRjaCB0aGUgc25ha2UgT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRcbi8vIHdpcmUgc2hhcGUgKHVubGlrZSBnZXRXaWRnZXRDb25maWcncyBjYW1lbCwgd2hpY2ggbmVlZHMgdG9FeHBlcmltZW50QXNzaWdubWVudHMpLlxuY29uc3QgdG9Cb290c3RyYXBBc3NpZ25tZW50cyA9IChcbiAgcmF3OiBSYXdFeHBlcmltZW50QXNzaWdubWVudFtdIHwgdW5kZWZpbmVkLFxuKTogT3JnQ29uZmlnRXhwZXJpbWVudEFzc2lnbm1lbnRbXSA9PlxuICAocmF3ID8/IFtdKS5tYXAoYSA9PiAoe1xuICAgIGxheWVyX25hbWU6IGEubGF5ZXJfbmFtZSxcbiAgICBuYW1lc3BhY2U6IGEubmFtZXNwYWNlLFxuICAgIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU6IGEuYWxsb2NhdGVkX2V4cGVyaW1lbnRfbmFtZSxcbiAgICBncm91cF9uYW1lOiBhLmdyb3VwX25hbWUsXG4gIH0pKTtcblxuLy8gcmVzb2x1dGlvbiBpcyBzbmFrZSBoZXJlIChSRVNUKTsgZ2V0V2lkZ2V0Q29uZmlnJ3MgaXMgY2FtZWwgKEFyaWFkbmUpLlxuY29uc3QgdG9SZXNvbHV0aW9uID0gKFxuICByYXc6IFJhd1Jlc29sdXRpb24gfCB1bmRlZmluZWQsXG4pOiBFeHBlcmltZW50Q29uZmlnUmVzb2x1dGlvbk1ldGFkYXRhIHwgdW5kZWZpbmVkID0+XG4gIHJhdyA/IHsgYmFzZVZlcnNpb246IHJhdy5iYXNlX3ZlcnNpb24sIGJhc2VWZXJzaW9uU291cmNlOiByYXcuYmFzZV92ZXJzaW9uX3NvdXJjZSB9IDogdW5kZWZpbmVkO1xuXG4vLyBPbmUgcm91bmQgdHJpcCBmb3IgdGhlIGNvbmZpZyB0aGUgd2lkZ2V0IGNsaWVudCBuZWVkcyBhdCBpbml0OiBvcmcgaWRlbnRpdHkgK1xuLy8gZ2F0ZXMgKyBleHBlcmltZW50IGFzc2lnbm1lbnRzICsgcHJvZHVjdHNDb25maWcvcmVzb2x1dGlvbiwgUExVUyB0aGUgaW5pdGlhbFxuLy8gdXJsLXJlc29sdmluZyByZXN1bHQg4oCUIHRoZSBjb25zb2xpZGF0aW9uIG9mIGBHRVQgL3YxL29yZy9jb25maWdgLCBHcmFwaFFMXG4vLyBgbWUuZ2V0V2lkZ2V0Q29uZmlnYCwgYW5kIGBQT1NUIC92MS91cmxfcmVzb2x2aW5nYCBiZWhpbmQgTWF0dCdzIGVuZHBvaW50LlxuLy9cbi8vIFJhdyBmZXRjaCAodGhlIG5wbSBjbGllbnQgYEBzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudGAgaGFzIG5vIGJvb3RzdHJhcFxuLy8gbWV0aG9kLCBzYW1lIGFzIGdldFdpZGdldENvbmZpZykuIFRocm93cyBvbiBuZXR3b3JrL0hUVFAgZmFpbHVyZS90aW1lb3V0IOKAlCB0aGVcbi8vIGNhbGxlciAoZW52aXZlQ29uZmlnU2VydmljZSkgZmFsbHMgYmFjayB0byB0aGUgZ2V0V2lkZ2V0Q29uZmlnIGNvbmZpZyBpdCBhbHJlYWR5XG4vLyBob2xkcywgc28gYSBib290c3RyYXAgcHJvYmxlbSBkZWdyYWRlcyB0byB0aGUgcHJvdmVuIHBhdGggcmF0aGVyIHRoYW4gYWJvcnRpbmdcbi8vIGluamVjdGlvbi5cbi8vXG4vLyBCb290c3RyYXAgaXMgYW4gT1BUSU9OQUwgdXBncmFkZSB0aGF0IEJMT0NLUyB0aGUgcHJlLWZpcnN0LXBhaW50IGNyaXRpY2FsIHBhdGhcbi8vIChhIHNlY29uZCBjYWxsIGFmdGVyIGdldFdpZGdldENvbmZpZyBhbHJlYWR5IHN1Y2NlZWRlZCksIGFuZCB3ZSBhbHJlYWR5IGhvbGQgYVxuLy8gdXNhYmxlIGdldFdpZGdldENvbmZpZyBjb25maWcgdG8gZmFsbCBiYWNrIHRvIOKAlCBzbyBpdCBpcyB0aWdodGx5IGJvdW5kZWQuIEtlcHRcbi8vIGxvdyBzbyBhIHNsb3cvaHVuZyBlbmRwb2ludCBhZGRzIGF0IG1vc3QgdGhpcyBtdWNoIHRvIGZpcnN0IHBhaW50OyBvbiB0aW1lb3V0XG4vLyB0aGUgZmV0Y2ggYWJvcnRzIGFuZCB3ZSBmYWxsIGJhY2sgdG8gZ2V0V2lkZ2V0Q29uZmlnLiBDQUxJQlJBVEUgYWdhaW5zdCB0aGVcbi8vIGVuZHBvaW50J3MgcmVhbCBwOTkgYmVmb3JlIHJhbXBpbmcgdGhlIGdhdGUgKGEgdmFsdWUgYmVsb3cgcDk5IHdpbGwgbWFrZSBub3JtYWxcbi8vIGJvb3RzdHJhcHMgZmFsc2UtYWJvcnQgaW50byB0aGUgZmFsbGJhY2ssIGRlZmVhdGluZyB0aGUgY29uc29saWRhdGlvbikuXG5jb25zdCBCT09UU1RSQVBfVElNRU9VVF9NUyA9IDE1MDA7XG5cbmV4cG9ydCBjb25zdCBmZXRjaEJvb3RzdHJhcENvbmZpZyA9IGFzeW5jICh7XG4gIGJhc2VVcmwsXG4gIGFwaUtleSxcbiAgdXNlcklkLFxuICBzb3VyY2UsXG4gIG5hbWVzcGFjZSxcbiAgZ2F0ZU5hbWVzLFxuICB1cmwsXG4gIG9yZ0lkLFxuICBvcmdTaG9ydE5hbWUsXG4gIGNvbnRleHRTb3VyY2UsXG4gIGVudixcbiAgY2hhdElkLFxuICBmZWF0dXJlR2F0ZXMsXG59OiBGZXRjaEJvb3RzdHJhcENvbmZpZ1BhcmFtcyk6IFByb21pc2U8Qm9vdHN0cmFwUmVzdWx0PiA9PiB7XG4gIGNvbnN0IHZlcnNpb24gPSBjb25maWdWZXJzaW9uT3ZlcnJpZGUoKTtcblxuICAvLyBBcm1lZCBiZWZvcmUgZmV0Y2ggYW5kIGtlcHQgbGl2ZSBhY3Jvc3MgcmVzcG9uc2UuanNvbigpIChhIHN0YWxsZWQgYm9keSByZWFkXG4gIC8vIG11c3QgYWxzbyBiZSBpbnRlcnJ1cHRpYmxlKSwgY2xlYXJlZCBpbiBmaW5hbGx5LiBPbiB0aW1lb3V0IHRoZSBmZXRjaCByZWplY3RzXG4gIC8vIHdpdGggYW4gQWJvcnRFcnJvciDihpIgbWF5YmVVcGdyYWRlVG9Cb290c3RyYXAncyBjYXRjaCBmYWxscyBiYWNrIHRvIGdldFdpZGdldENvbmZpZy5cbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiBjb250cm9sbGVyLmFib3J0KCksIEJPT1RTVFJBUF9USU1FT1VUX01TKTtcbiAgbGV0IHJlc3VsdDogUmF3Qm9vdHN0cmFwUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9zZXNzaW9uL2Jvb3RzdHJhcGAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgLy8gU2NvcGUgb3JnX2NvbmZpZy5jb25maWdzIHRvIHRoZSB3aWRnZXQgbmFtZXNwYWNlIOKAlCBXSVRIT1VUIHRoaXMsIHB5bW9ub1xuICAgICAgICAvLyByZXR1cm5zIGV2ZXJ5IG5hbWVzcGFjZSdzIGNvbmZpZ3MgKGludGVybmFsIG9uZXMgaW5jbHVkZWQpIHRvIHRoZSBicm93c2VyLlxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGluY2x1ZGVfZmVhdHVyZV9nYXRlczogZ2F0ZU5hbWVzLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICB1cmxfcmVzb2x2aW5nOiB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIHVzZXJfaWQ6IHVzZXJJZCxcbiAgICAgICAgICAgIG9yZ19pZDogb3JnSWQsXG4gICAgICAgICAgICBvcmdfc2hvcnRfbmFtZTogb3JnU2hvcnROYW1lLFxuICAgICAgICAgICAgY2hhdF9pZDogY2hhdElkID8/ICcnLFxuICAgICAgICAgICAgc291cmNlOiBjb250ZXh0U291cmNlLFxuICAgICAgICAgICAgZW52LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gT3ZlcnJpZGUtYXdhcmUgZ2F0ZXMgc28gY2xpZW50IGdhdGUgb3ZlcnJpZGVzIHJlYWNoIHBhZ2UtdmFyaWFudFxuICAgICAgICAgIC8vIHJlc29sdXRpb24gKGJvb3RzdHJhcCBtZXJnZXMgdGhlc2Ugb3ZlciBpdHMgc2VydmVyLXJlc29sdmVkIGdhdGVzKS5cbiAgICAgICAgICAvLyBJZ25vcmVkIGJ5IHB5bW9ubyB1bnRpbCB0aGUgZW5kcG9pbnQgZ2FpbnMgdGhlIGZpZWxkIOKAlCBzYWZlIHRvIHNoaXAgZWFybHkuXG4gICAgICAgICAgZmVhdHVyZV9nYXRlczogZmVhdHVyZUdhdGVzLFxuICAgICAgICAgIC8vIFRoZSBjb25maWctdmVyc2lvbiBvdmVycmlkZSBjb21lcyBPTkxZIGZyb20gdGhlIFVSTCBxdWVyeSBwYXJhbVxuICAgICAgICAgIC8vIChjb25maWdWZXJzaW9uT3ZlcnJpZGUpIOKAlCB0aGUgc2FtZSBzb3VyY2UgZ2V0V2lkZ2V0Q29uZmlnIHVzZXMuIEl0IG11c3RcbiAgICAgICAgICAvLyBOT1QgY29tZSBmcm9tIGdldFdpZGdldENvbmZpZydzIHJlc29sdmVkIHZlcnNpb246IG9uIHRoZSBnYXRlLU9OIHBhdGhcbiAgICAgICAgICAvLyB0aGF0IHJlc3BvbnNlIGlzIGRpc2NhcmRlZCwgYW5kIGJvb3RzdHJhcCByZXNvbHZlcyB0aGUgY29uZmlnIHZlcnNpb25cbiAgICAgICAgICAvLyBzZXJ2ZXItc2lkZSAoc2NvcGluZyB1cmxfcmVzb2x2aW5nIHRvIHRoYXQgcmVzb2x2ZWQgdmVyc2lvbiwgaWYgZGVzaXJlZCxcbiAgICAgICAgICAvLyBiZWxvbmdzIG9uIHRoZSBzZXJ2ZXIg4oCUIG5vdCBhIGdldFdpZGdldENvbmZpZyBkZXBlbmRlbmN5IGhlcmUpLlxuICAgICAgICAgIG92ZXJyaWRlX2NvbmZpZ192ZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCb290c3RyYXAgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgfVxuICAgIHJlc3VsdCA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFJhd0Jvb3RzdHJhcFJlc3BvbnNlO1xuICB9IGZpbmFsbHkge1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9XG5cbiAgLy8gQSAyeHggd2l0aCBhIG1pc3NpbmcvcGFydGlhbCBwYXlsb2FkIG11c3QgTk9UIHNpbGVudGx5IHJlcGxhY2UgdGhlIGtub3duLWdvb2RcbiAgLy8gZ2V0V2lkZ2V0Q29uZmlnIGNvbmZpZyB3aXRoIGVtcHR5IGdhdGVzIC8gbW9jayBwcm9kdWN0cyDigJQgdGhhdCB3b3VsZCBkaXNhYmxlIHRoZVxuICAvLyBjbGllbnQgc2Vzc2lvbiBvciBkcm9wIGV4cGVyaW1lbnRzLiBUaHJvdyBpbnN0ZWFkLCBzbyBtYXliZVVwZ3JhZGVUb0Jvb3RzdHJhcCdzXG4gIC8vIGNhdGNoIGZhbGxzIGJhY2sgdG8gdGhlIGdldFdpZGdldENvbmZpZyByZXN1bHQgaXQgYWxyZWFkeSBob2xkcy4gYGdhdGVzYCBpc1xuICAvLyByZXF1aXJlZCBhcyBhIE5PTi1FTVBUWSBhcnJheTogd2UgYWx3YXlzIHJlcXVlc3QgdGhlIGZ1bGwgZ2F0ZU5hbWVzIGxpc3QgYW5kXG4gIC8vIG9ubHkgcmVhY2ggYm9vdHN0cmFwIGJlY2F1c2UgZ2V0V2lkZ2V0Q29uZmlnIHJldHVybmVkIHJlYWwgZ2F0ZXMsIHNvIGFuXG4gIC8vIGVtcHR5L2Fic2VudCBnYXRlcyByZXNwb25zZSBpcyBkZWdyYWRlZCDihpIgZmFsbCBiYWNrLiAoQSBwcm9kdWN0cyBjb25maWcgdGhhdCBpc1xuICAvLyBwcmVzZW50LWJ1dC1tYWxmb3JtZWQgc3RpbGwgZGVncmFkZXMgdG8gbW9jayBiZWxvdyDigJQgb25seSB0aGUgdG9wLWxldmVsXG4gIC8vIHNlY3Rpb25zIGFyZSByZXF1aXJlZCBoZXJlLilcbiAgaWYgKCFyZXN1bHQub3JnX2NvbmZpZz8ub3JnPy5vcmcgfHwgIXJlc3VsdC5vcmdfY29uZmlnPy5nYXRlcz8ubGVuZ3RoIHx8ICFyZXN1bHQud2lkZ2V0X2NvbmZpZykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdCb290c3RyYXAgY29uZmlnIHJlc3BvbnNlIG1pc3NpbmcgcmVxdWlyZWQgc2VjdGlvbnMgKG9yZ19jb25maWcub3JnLm9yZyAvIG9yZ19jb25maWcuZ2F0ZXMgLyB3aWRnZXRfY29uZmlnKScsXG4gICAgKTtcbiAgfVxuICBjb25zdCBvcmdDb25maWcgPSByZXN1bHQub3JnX2NvbmZpZztcbiAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gcmVzdWx0LndpZGdldF9jb25maWc7XG4gIC8vIFRoZSBndWFyZCBhYm92ZSBndWFyYW50ZWVzIG9yZy5vcmcgYXQgcnVudGltZTsgdGhlIGA/PyB7fWAgb25seSBzYXRpc2ZpZXMgdGhlXG4gIC8vIHR5cGUtbmFycm93aW5nIChUUyBkb2Vzbid0IGNhcnJ5IHRoZSBvcHRpb25hbC1jaGFpbiBuYXJyb3dpbmcgdGhyb3VnaCB0aGUgYWxpYXMpLlxuICBjb25zdCBvcmdPcmcgPSBvcmdDb25maWcub3JnPy5vcmcgPz8ge307XG4gIGNvbnN0IHJlc29sdXRpb24gPSB0b1Jlc29sdXRpb24od2lkZ2V0Q29uZmlnLnJlc29sdXRpb24pO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyBkZWdyYWRlcyB0byBtb2NrIGRlZmF1bHRzIFdJVEhPVVQgbG9zaW5nIHRoZVxuICAvLyBvcmcgLyBnYXRlcyAvIGV4cGVyaW1lbnRzIHRoYXQgY2FtZSBiYWNrIGZpbmUg4oCUIG1pcnJvcnMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZy5cbiAgbGV0IG9yZ0NvbmZpZ1ZhbHVlczogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWdWYWx1ZXMgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnLnByb2R1Y3RzX2NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaEJvb3RzdHJhcENvbmZpZyB8IEVycm9yIHRyYW5zZm9ybWluZyBwcm9kdWN0cyBjb25maWcnLCBlcnIpO1xuICAgIG9yZ0NvbmZpZ1ZhbHVlcyA9IHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQsIHJlc29sdXRpb24gfTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZzogRW52aXZlU2VydmljZUNvbmZpZyA9IHtcbiAgICAvLyBvcmdfY29uZmlnIGlzIGJ5dGUtaWRlbnRpY2FsIHRvIHRoZSBsZWdhY3kgL3YxL29yZy9jb25maWcgKHNuYWtlKSwgdGhlXG4gICAgLy8gZXhhY3Qgc2hhcGUgRW52aXZlU2VydmljZUNvbmZpZy5vcmcgd2FzIGJ1aWx0IHRvIGhvbGQuIENvbnN0cnVjdGVkXG4gICAgLy8gZGVmZW5zaXZlbHkgKGxpa2UgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykgcmF0aGVyIHRoYW4gcGFzc2VkIHRocm91Z2guXG4gICAgb3JnOiB7XG4gICAgICBvcmc6IHtcbiAgICAgICAgaWQ6IG9yZ09yZy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnT3JnLnNob3J0X25hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnT3JnLmRpc3BsYXlfbmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmdPcmcuZG9tYWluID8/ICcnLFxuICAgICAgICBzdGF0dXM6IG9yZ09yZy5zdGF0dXMgPz8gJycsXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG9yZ09yZy5jcmVhdGVkX2F0ID8/ICcnLFxuICAgICAgICB1cGRhdGVkX2F0OiBvcmdPcmcudXBkYXRlZF9hdCA/PyAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnYXRlczogdG9Cb290c3RyYXBHYXRlcyhvcmdDb25maWcuZ2F0ZXMpLFxuICAgIC8vIEZyb20gd2lkZ2V0X2NvbmZpZywgTk9UIG9yZ19jb25maWc6IGdldFdpZGdldENvbmZpZyBzb3VyY2VzIGFzc2lnbm1lbnRzIGZyb21cbiAgICAvLyBpdHMgd2lkZ2V0IGNvbmZpZyAodW5nYXRlZCksIHdoZXJlYXMgYm9vdHN0cmFwJ3MgYG9yZ19jb25maWcuZXhwZXJpbWVudF9hc3NpZ25tZW50c2BcbiAgICAvLyBpcyBwb3B1bGF0ZWQgT05MWSB3aGVuIHRoZSBgdXNlX3VuaWZpZWRfY29uZmlnYCBnYXRlIGV2YWx1YXRlcyB0cnVlIFNFUlZFUi1TSURFXG4gICAgLy8gKHB5bW9ubyBgdW5pZmllZF9jb25maWdfYWN0aXZlYCkuIFJlYWRpbmcgb3JnX2NvbmZpZyB3b3VsZCBkcm9wIGFzc2lnbm1lbnRzIOKAlFxuICAgIC8vIGFuZCB0aGUgYW1wbGl0dWRlIGBleHBlcmltZW50Lntuc30uKmAgZW5yaWNobWVudCDigJQgb24gdGhlIGNsaWVudC1vdmVycmlkZSB0ZXN0XG4gICAgLy8gcGF0aCAoZ2F0ZSBPTiB2aWEgYD91c2VfdW5pZmllZF9jb25maWc9dHJ1ZWAgYnV0IDAlIHNlcnZlci1zaWRlKS4gd2lkZ2V0X2NvbmZpZ1xuICAgIC8vIG1hdGNoZXMgZ2V0V2lkZ2V0Q29uZmlnIGluIGV2ZXJ5IGNhc2UgKGVxdWFsIHdoZW4gdGhlIGdhdGUgaXMgb247IHZlcnNpb24gcGluXG4gICAgLy8gZW1wdGllcyBib3RoKS5cbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzOiB0b0Jvb3RzdHJhcEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZy5leHBlcmltZW50X2Fzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWc6IG9yZ0NvbmZpZ1ZhbHVlcyxcbiAgfTtcblxuICByZXR1cm4geyBjb25maWcsIHVybFJlc29sdmluZzogcmVzdWx0LnVybF9yZXNvbHZpbmcgPz8gbnVsbCB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFjQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8sdUJBQXVCO0FBb0ZqRCxNQUFNLG9CQUFvQixTQUN2QixPQUFPLEVBQUUsRUFBRSxLQUFJLE9BQU07Q0FDcEIsTUFBTSxFQUFFO0NBQ1IsT0FBTyxFQUFFO0NBQ1QsV0FBVyxFQUFFLGNBQWM7Q0FDNUIsRUFBRTtBQUlMLE1BQU0sMEJBQ0osU0FFQyxPQUFPLEVBQUUsRUFBRSxLQUFJLE9BQU07Q0FDcEIsWUFBWSxFQUFFO0NBQ2QsV0FBVyxFQUFFO0NBQ2IsMkJBQTJCLEVBQUU7Q0FDN0IsWUFBWSxFQUFFO0NBQ2YsRUFBRTtBQUdMLE1BQU0sZ0JBQ0osUUFFQSxNQUFNO0NBQUUsYUFBYSxJQUFJO0NBQWMsbUJBQW1CLElBQUk7Q0FBcUIsR0FBRztBQW9CeEYsTUFBTSx1QkFBdUI7QUFFN0IsTUFBYSx1QkFBdUIsT0FBTyxFQUN6QyxTQUNBLFFBQ0EsUUFDQSxRQUNBLFdBQ0EsV0FDQSxLQUNBLE9BQ0EsY0FDQSxlQUNBLEtBQ0EsUUFDQSxtQkFDMEQ7Q0FDMUQsTUFBTSxVQUFVQywrQ0FBdUI7Q0FLdkMsTUFBTSxhQUFhLElBQUksaUJBQWlCO0NBQ3hDLE1BQU0sWUFBWSxpQkFBaUIsV0FBVyxPQUFPLEVBQUUscUJBQXFCO0NBQzVFLElBQUlDO0FBQ0osS0FBSTtFQUNGLE1BQU0sV0FBVyxNQUFNLE1BQU0sR0FBRyxRQUFRLHdCQUF3QjtHQUM5RCxRQUFRO0dBQ1IsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixlQUFlLFVBQVU7SUFDMUI7R0FDRCxNQUFNLEtBQUssVUFBVTtJQUNuQixTQUFTO0lBQ1Q7SUFHQTtJQUNBLHVCQUF1QjtJQUN2QjtJQUNBLGVBQWU7S0FDYjtLQUNBLFNBQVM7TUFDUCxTQUFTO01BQ1QsUUFBUTtNQUNSLGdCQUFnQjtNQUNoQixTQUFTLFVBQVU7TUFDbkIsUUFBUTtNQUNSO01BQ0Q7S0FJRCxlQUFlO0tBT2YseUJBQXlCO0tBQzFCO0lBQ0YsQ0FBQztHQUNGLFFBQVEsV0FBVztHQUNwQixDQUFDO0FBRUYsTUFBSSxDQUFDLFNBQVMsR0FDWixPQUFNLElBQUksTUFBTSxvQ0FBb0MsU0FBUyxhQUFhO0FBRTVFLFdBQVUsTUFBTSxTQUFTLE1BQU07V0FDdkI7QUFDUixlQUFhLFVBQVU7O0FBWXpCLEtBQUksQ0FBQyxPQUFPLFlBQVksS0FBSyxPQUFPLENBQUMsT0FBTyxZQUFZLE9BQU8sVUFBVSxDQUFDLE9BQU8sY0FDL0UsT0FBTSxJQUFJLE1BQ1IsOEdBQ0Q7Q0FFSCxNQUFNLFlBQVksT0FBTztDQUN6QixNQUFNLGVBQWUsT0FBTztDQUc1QixNQUFNLFNBQVMsVUFBVSxLQUFLLE9BQU8sRUFBRTtDQUN2QyxNQUFNLGFBQWEsYUFBYSxhQUFhLFdBQVc7Q0FJeEQsSUFBSUM7QUFDSixLQUFJO0FBQ0Ysb0JBQWtCO0dBQUUsR0FBR0MscURBQTBCLGFBQWEsZ0JBQWdCO0dBQUU7R0FBWTtVQUNyRixLQUFLO0FBQ1osU0FBTyxTQUFTLDZEQUE2RCxJQUFJO0FBQ2pGLG9CQUFrQjtHQUFFLGNBQWM7R0FBVyxnQkFBZ0I7R0FBVztHQUFZOztBQStCdEYsUUFBTztFQUFFLFFBNUIyQjtHQUlsQyxLQUFLLEVBQ0gsS0FBSztJQUNILElBQUksT0FBTyxNQUFNO0lBQ2pCLFlBQVksT0FBTyxjQUFjO0lBQ2pDLGNBQWMsT0FBTyxnQkFBZ0I7SUFDckMsUUFBUSxPQUFPLFVBQVU7SUFDekIsUUFBUSxPQUFPLFVBQVU7SUFDekIsWUFBWSxPQUFPLGNBQWM7SUFDakMsWUFBWSxPQUFPLGNBQWM7SUFDbEMsRUFDRjtHQUNELE9BQU8saUJBQWlCLFVBQVUsTUFBTTtHQVN4Qyx3QkFBd0IsdUJBQXVCLGFBQWEsdUJBQXVCO0dBQ25GLFdBQVc7R0FDWjtFQUVnQixjQUFjLE9BQU8saUJBQWlCO0VBQU0ifQ==
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import logger_default from "../../application/logging/logger.js";
|
|
2
|
+
import { configVersionOverride } from "../../types/config-versions.js";
|
|
3
|
+
import { transformV3ProductsConfig } from "./fetchGraphQLConfig.js";
|
|
4
|
+
|
|
5
|
+
//#region src/services/enviveConfigService/fetchBootstrapConfig.ts
|
|
6
|
+
const logger = new logger_default("fetchBootstrapConfig");
|
|
7
|
+
const toBootstrapGates = (raw) => (raw ?? []).map((g) => ({
|
|
8
|
+
name: g.name,
|
|
9
|
+
value: g.value,
|
|
10
|
+
groupName: g.group_name ?? void 0
|
|
11
|
+
}));
|
|
12
|
+
const toBootstrapAssignments = (raw) => (raw ?? []).map((a) => ({
|
|
13
|
+
layer_name: a.layer_name,
|
|
14
|
+
namespace: a.namespace,
|
|
15
|
+
allocated_experiment_name: a.allocated_experiment_name,
|
|
16
|
+
group_name: a.group_name
|
|
17
|
+
}));
|
|
18
|
+
const toResolution = (raw) => raw ? {
|
|
19
|
+
baseVersion: raw.base_version,
|
|
20
|
+
baseVersionSource: raw.base_version_source
|
|
21
|
+
} : void 0;
|
|
22
|
+
const BOOTSTRAP_TIMEOUT_MS = 1500;
|
|
23
|
+
const fetchBootstrapConfig = async ({ baseUrl, apiKey, userId, source, namespace, gateNames, url, orgId, orgShortName, contextSource, env, chatId, featureGates }) => {
|
|
24
|
+
const version = configVersionOverride();
|
|
25
|
+
const controller = new AbortController();
|
|
26
|
+
const timeoutId = setTimeout(() => controller.abort(), BOOTSTRAP_TIMEOUT_MS);
|
|
27
|
+
let result;
|
|
28
|
+
try {
|
|
29
|
+
const response = await fetch(`${baseUrl}/v1/session/bootstrap`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: {
|
|
32
|
+
"Content-Type": "application/json",
|
|
33
|
+
Authorization: `Bearer ${apiKey}`
|
|
34
|
+
},
|
|
35
|
+
body: JSON.stringify({
|
|
36
|
+
user_id: userId,
|
|
37
|
+
source,
|
|
38
|
+
namespace,
|
|
39
|
+
include_feature_gates: gateNames,
|
|
40
|
+
version,
|
|
41
|
+
url_resolving: {
|
|
42
|
+
url,
|
|
43
|
+
context: {
|
|
44
|
+
user_id: userId,
|
|
45
|
+
org_id: orgId,
|
|
46
|
+
org_short_name: orgShortName,
|
|
47
|
+
chat_id: chatId ?? "",
|
|
48
|
+
source: contextSource,
|
|
49
|
+
env
|
|
50
|
+
},
|
|
51
|
+
feature_gates: featureGates,
|
|
52
|
+
override_config_version: version
|
|
53
|
+
}
|
|
54
|
+
}),
|
|
55
|
+
signal: controller.signal
|
|
56
|
+
});
|
|
57
|
+
if (!response.ok) throw new Error(`Bootstrap config request failed: ${response.statusText}`);
|
|
58
|
+
result = await response.json();
|
|
59
|
+
} finally {
|
|
60
|
+
clearTimeout(timeoutId);
|
|
61
|
+
}
|
|
62
|
+
if (!result.org_config?.org?.org || !result.org_config?.gates?.length || !result.widget_config) throw new Error("Bootstrap config response missing required sections (org_config.org.org / org_config.gates / widget_config)");
|
|
63
|
+
const orgConfig = result.org_config;
|
|
64
|
+
const widgetConfig = result.widget_config;
|
|
65
|
+
const orgOrg = orgConfig.org?.org ?? {};
|
|
66
|
+
const resolution = toResolution(widgetConfig.resolution);
|
|
67
|
+
let orgConfigValues;
|
|
68
|
+
try {
|
|
69
|
+
orgConfigValues = {
|
|
70
|
+
...transformV3ProductsConfig(widgetConfig.products_config),
|
|
71
|
+
resolution
|
|
72
|
+
};
|
|
73
|
+
} catch (err) {
|
|
74
|
+
logger.logError("fetchBootstrapConfig | Error transforming products config", err);
|
|
75
|
+
orgConfigValues = {
|
|
76
|
+
colorsConfig: void 0,
|
|
77
|
+
frontendConfig: void 0,
|
|
78
|
+
resolution
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
config: {
|
|
83
|
+
org: { org: {
|
|
84
|
+
id: orgOrg.id ?? "",
|
|
85
|
+
short_name: orgOrg.short_name ?? "",
|
|
86
|
+
display_name: orgOrg.display_name ?? "",
|
|
87
|
+
domain: orgOrg.domain ?? "",
|
|
88
|
+
status: orgOrg.status ?? "",
|
|
89
|
+
created_at: orgOrg.created_at ?? "",
|
|
90
|
+
updated_at: orgOrg.updated_at ?? ""
|
|
91
|
+
} },
|
|
92
|
+
gates: toBootstrapGates(orgConfig.gates),
|
|
93
|
+
experiment_assignments: toBootstrapAssignments(widgetConfig.experiment_assignments),
|
|
94
|
+
orgConfig: orgConfigValues
|
|
95
|
+
},
|
|
96
|
+
urlResolving: result.url_resolving ?? null
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
export { fetchBootstrapConfig };
|
|
102
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hCb290c3RyYXBDb25maWcuanMiLCJuYW1lcyI6WyJMb2dnZXIiLCJyZXN1bHQ6IFJhd0Jvb3RzdHJhcFJlc3BvbnNlIiwib3JnQ29uZmlnVmFsdWVzOiBHcmFwaFFsQ29uZmlnVmFsdWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Vudml2ZUNvbmZpZ1NlcnZpY2UvZmV0Y2hCb290c3RyYXBDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBVcmxSZXNvbHZlclJlc3BvbnNlIH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgY29uZmlnVmVyc2lvbk92ZXJyaWRlIH0gZnJvbSAnc3JjL3R5cGVzL2NvbmZpZy12ZXJzaW9ucyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIH0gZnJvbSAnLi9mZXRjaEdyYXBoUUxDb25maWcnO1xuLy8gVHlwZS1vbmx5IGltcG9ydCDigJQgZXJhc2VkIGF0IGNvbXBpbGUgdGltZSwgc28gdGhpcyBkb2VzIG5vdCBjcmVhdGUgYSBydW50aW1lXG4vLyBpbXBvcnQgY3ljbGUgd2l0aCBlbnZpdmVDb25maWdTZXJ2aWNlICh3aGljaCBpbXBvcnRzIGZldGNoQm9vdHN0cmFwQ29uZmlnKS5cbmltcG9ydCB0eXBlIHsgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJy4vZW52aXZlQ29uZmlnU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZldGNoQm9vdHN0cmFwQ29uZmlnJyk7XG5cbi8vIFRoZSB1cmwtcmVzb2x2aW5nIGNvbnRleHQgYml0cyB0aGUgaG9va3MgbGF5ZXIgY2FuJ3QgZGVyaXZlIG9uIGl0cyBvd24g4oCUIHRoZVxuLy8gaW5qZWN0aW9uIGJ1bmRsZSBzdXBwbGllcyBlbnYgKGEgYnVpbGQtdGltZSB2YXIpIGFuZCBjb250ZXh0U291cmNlLiBvcmdcbi8vIGlkZW50aXR5IGlzIHRocmVhZGVkIGZyb20gdGhlIGdldFdpZGdldENvbmZpZyByZXNwb25zZSBmZXRjaGVkIG1vbWVudHMgZWFybGllclxuLy8gKHNlZSBlbnZpdmVDb25maWdTZXJ2aWNlOiBib290c3RyYXAgb25seSBydW5zIG9uIHRoZSBnYXRlLU9OIHBhdGgsIHdoaWNoIHJlYWRzXG4vLyB0aGUgZ2F0ZSBvZmYgZ2V0V2lkZ2V0Q29uZmlnIGZpcnN0LCBzbyBvcmcgaWQvc2hvcnRfbmFtZSBhcmUgYWxyZWFkeSBpbiBoYW5kKS5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hCb290c3RyYXBDb25maWdQYXJhbXMge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbiAgLy8gQ29uZmlnIGBzb3VyY2VgIChTdGF0c2lnIHVzZXIgcHJvcGVydHkpLCAnYXBwJyBpbiB0aGUgaW5qZWN0aW9uIGJ1bmRsZS5cbiAgc291cmNlOiBzdHJpbmc7XG4gIC8vIFNjb3BlcyBvcmdfY29uZmlnLmNvbmZpZ3MgdG8gdGhpcyBuYW1lc3BhY2UuIFJFUVVJUkVEOiB3aXRob3V0IGl0IHB5bW9ub1xuICAvLyByZXR1cm5zIEVWRVJZIG5hbWVzcGFjZSBvbiB0aGUgb3JnIOKAlCBpbmNsdWRpbmcgaW50ZXJuYWwtb25seSBjb25maWdzICh0aGUgQUlcbiAgLy8gc3lzdGVtIHByb21wdCwgYnJhbmQtdm9pY2UgaW5zdHJ1Y3Rpb25zLCBldGMuKSDigJQgaW4gdGhlIHJlc3BvbnNlIHRoZSBwdWJsaWNcbiAgLy8gYnVuZGxlIHJlY2VpdmVzLiBUaGUgbGVnYWN5IC92MS9vcmcvY29uZmlnIGNhbGwgc2NvcGVkIGl0IHRoZSBzYW1lIHdheS5cbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGdhdGVOYW1lczogc3RyaW5nW107XG4gIC8vIHVybF9yZXNvbHZpbmcgaW5wdXRzOlxuICB1cmw6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgb3JnU2hvcnROYW1lOiBzdHJpbmc7XG4gIC8vIENvbnRleHQgYHNvdXJjZWAgZm9yIHVybF9yZXNvbHZpbmcgKCdhcHAnIHwgJ3BsYXlncm91bmQnKTsgbWF5IGRpZmZlciBmcm9tXG4gIC8vIHRoZSBjb25maWcgYHNvdXJjZWAgYWJvdmUgKHBsYXlncm91bmQgPSBFbnZpdmUgSHViKS5cbiAgY29udGV4dFNvdXJjZTogc3RyaW5nO1xuICBlbnY6IHN0cmluZztcbiAgY2hhdElkPzogc3RyaW5nO1xuICAvLyBUaGUgb3ZlcnJpZGUtYXdhcmUgZmVhdHVyZSBnYXRlcyAoRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFncygpKSwgc29cbiAgLy8gY2xpZW50LXNpZGUgZ2F0ZSBvdmVycmlkZXMgKHF1ZXJ5L3dpbmRvdy9sb2NhbFN0b3JhZ2UpIHJlYWNoIHBhZ2UtdmFyaWFudFxuICAvLyByZXNvbHV0aW9uIOKAlCBzYW1lIGFzIHRoZSBsZWdhY3kgL3YxL3VybF9yZXNvbHZpbmcgcmVxdWVzdC4gQm9vdHN0cmFwIG1lcmdlc1xuICAvLyB0aGVzZSBPVkVSIGl0cyBvd24gc2VydmVyLXJlc29sdmVkIGdhdGVzLiBIYXJtbGVzc2x5IGlnbm9yZWQgYnkgcHltb25vIHVudGlsXG4gIC8vIFNlc3Npb25Cb290c3RyYXBVcmxSZXNvbHZpbmdSZXF1ZXN0IGdhaW5zIHRoZSBgZmVhdHVyZV9nYXRlc2AgZmllbGQgKHRoZVxuICAvLyBzY2hlbWEgYWxsb3dzIHVua25vd24gZmllbGRzOyB0aGUgbW9kZWwgaXMgYGV4dHJhPSdpZ25vcmUnYCksIHNvIHRoZSBGRSBjYW5cbiAgLy8gc2hpcCBhaGVhZCBvZiB0aGUgYmFja2VuZC5cbiAgZmVhdHVyZUdhdGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUmVzdWx0IHtcbiAgY29uZmlnOiBFbnZpdmVTZXJ2aWNlQ29uZmlnO1xuICAvLyBUaGUgaW5pdGlhbCBwYWdlLXZhcmlhbnQgcmVzdWx0LCByZWFkeSB0byBzZWVkIHVybFJlc29sdmVyQXRvbSBzbyB0aGVcbiAgLy8gd2FybS11cCBza2lwcyBpdHMgb3duIC92MS91cmxfcmVzb2x2aW5nIGNhbGwuIG51bGwgd2hlbiBib290c3RyYXAnc1xuICAvLyAoYmVzdC1lZmZvcnQpIHVybC1yZXNvbHZpbmcgYnJhbmNoIHJldHVybmVkIG5vdGhpbmcuXG4gIHVybFJlc29sdmluZzogVXJsUmVzb2x2ZXJSZXNwb25zZSB8IG51bGw7XG59XG5cbi8vIC0tLSByYXcgd2lyZSBzaGFwZXMgKFBPU1QgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIGlzIFJFU1Qgc25ha2VfY2FzZSkgLS0tLS0tLS0tXG5cbmludGVyZmFjZSBSYXdGZWF0dXJlR2F0ZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHZhbHVlPzogYm9vbGVhbjtcbiAgZ3JvdXBfbmFtZT86IHN0cmluZyB8IG51bGw7XG4gIHJ1bGVfaWQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgUmF3RXhwZXJpbWVudEFzc2lnbm1lbnQge1xuICBsYXllcl9uYW1lPzogc3RyaW5nO1xuICBuYW1lc3BhY2U/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFsnbmFtZXNwYWNlJ107XG4gIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU/OiBzdHJpbmcgfCBudWxsO1xuICBncm91cF9uYW1lPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFJhd1Jlc29sdXRpb24ge1xuICBiYXNlX3ZlcnNpb24/OiBzdHJpbmc7XG4gIGJhc2VfdmVyc2lvbl9zb3VyY2U/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSYXdCb290c3RyYXBSZXNwb25zZSB7XG4gIG9yZ19jb25maWc/OiB7XG4gICAgb3JnPzogeyBvcmc/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IH07XG4gICAgZ2F0ZXM/OiBSYXdGZWF0dXJlR2F0ZVtdO1xuICB9O1xuICB3aWRnZXRfY29uZmlnPzoge1xuICAgIHByb2R1Y3RzX2NvbmZpZz86IFBhcmFtZXRlcnM8dHlwZW9mIHRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWc+WzBdO1xuICAgIC8vIFJlYWQgZnJvbSB3aWRnZXRfY29uZmlnIChub3Qgb3JnX2NvbmZpZykgdG8gbWF0Y2ggZ2V0V2lkZ2V0Q29uZmlnIOKAlCBzZWUgdGhlXG4gICAgLy8gbWFwcGluZyBiZWxvdy5cbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzPzogUmF3RXhwZXJpbWVudEFzc2lnbm1lbnRbXTtcbiAgICByZXNvbHV0aW9uPzogUmF3UmVzb2x1dGlvbjtcbiAgfTtcbiAgdXJsX3Jlc29sdmluZz86IFVybFJlc29sdmVyUmVzcG9uc2UgfCBudWxsO1xufVxuXG4vLyBnYXRlcyBhcnJpdmUgc25ha2UgKGBncm91cF9uYW1lYCk7IGdldFdpZGdldENvbmZpZydzIGFycml2ZSBjYW1lbC4gT25seSB0aGVcbi8vIG5hbWUvdmFsdWUgYXJlIHVzZWQgZm9yIGdhdGUgY2hlY2tzIOKAlCBncm91cE5hbWUgaXMgY2FycmllZCBmb3IgYW1wbGl0dWRlLlxuY29uc3QgdG9Cb290c3RyYXBHYXRlcyA9IChyYXc6IFJhd0ZlYXR1cmVHYXRlW10gfCB1bmRlZmluZWQpOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdID0+XG4gIChyYXcgPz8gW10pLm1hcChnID0+ICh7XG4gICAgbmFtZTogZy5uYW1lLFxuICAgIHZhbHVlOiBnLnZhbHVlLFxuICAgIGdyb3VwTmFtZTogZy5ncm91cF9uYW1lID8/IHVuZGVmaW5lZCxcbiAgfSkpO1xuXG4vLyBleHBlcmltZW50X2Fzc2lnbm1lbnRzIGFscmVhZHkgbWF0Y2ggdGhlIHNuYWtlIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50XG4vLyB3aXJlIHNoYXBlICh1bmxpa2UgZ2V0V2lkZ2V0Q29uZmlnJ3MgY2FtZWwsIHdoaWNoIG5lZWRzIHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKS5cbmNvbnN0IHRvQm9vdHN0cmFwQXNzaWdubWVudHMgPSAoXG4gIHJhdzogUmF3RXhwZXJpbWVudEFzc2lnbm1lbnRbXSB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyX25hbWUsXG4gICAgbmFtZXNwYWNlOiBhLm5hbWVzcGFjZSxcbiAgICBhbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lOiBhLmFsbG9jYXRlZF9leHBlcmltZW50X25hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cF9uYW1lLFxuICB9KSk7XG5cbi8vIHJlc29sdXRpb24gaXMgc25ha2UgaGVyZSAoUkVTVCk7IGdldFdpZGdldENvbmZpZydzIGlzIGNhbWVsIChBcmlhZG5lKS5cbmNvbnN0IHRvUmVzb2x1dGlvbiA9IChcbiAgcmF3OiBSYXdSZXNvbHV0aW9uIHwgdW5kZWZpbmVkLFxuKTogRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZCA9PlxuICByYXcgPyB7IGJhc2VWZXJzaW9uOiByYXcuYmFzZV92ZXJzaW9uLCBiYXNlVmVyc2lvblNvdXJjZTogcmF3LmJhc2VfdmVyc2lvbl9zb3VyY2UgfSA6IHVuZGVmaW5lZDtcblxuLy8gT25lIHJvdW5kIHRyaXAgZm9yIHRoZSBjb25maWcgdGhlIHdpZGdldCBjbGllbnQgbmVlZHMgYXQgaW5pdDogb3JnIGlkZW50aXR5ICtcbi8vIGdhdGVzICsgZXhwZXJpbWVudCBhc3NpZ25tZW50cyArIHByb2R1Y3RzQ29uZmlnL3Jlc29sdXRpb24sIFBMVVMgdGhlIGluaXRpYWxcbi8vIHVybC1yZXNvbHZpbmcgcmVzdWx0IOKAlCB0aGUgY29uc29saWRhdGlvbiBvZiBgR0VUIC92MS9vcmcvY29uZmlnYCwgR3JhcGhRTFxuLy8gYG1lLmdldFdpZGdldENvbmZpZ2AsIGFuZCBgUE9TVCAvdjEvdXJsX3Jlc29sdmluZ2AgYmVoaW5kIE1hdHQncyBlbmRwb2ludC5cbi8vXG4vLyBSYXcgZmV0Y2ggKHRoZSBucG0gY2xpZW50IGBAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRgIGhhcyBubyBib290c3RyYXBcbi8vIG1ldGhvZCwgc2FtZSBhcyBnZXRXaWRnZXRDb25maWcpLiBUaHJvd3Mgb24gbmV0d29yay9IVFRQIGZhaWx1cmUvdGltZW91dCDigJQgdGhlXG4vLyBjYWxsZXIgKGVudml2ZUNvbmZpZ1NlcnZpY2UpIGZhbGxzIGJhY2sgdG8gdGhlIGdldFdpZGdldENvbmZpZyBjb25maWcgaXQgYWxyZWFkeVxuLy8gaG9sZHMsIHNvIGEgYm9vdHN0cmFwIHByb2JsZW0gZGVncmFkZXMgdG8gdGhlIHByb3ZlbiBwYXRoIHJhdGhlciB0aGFuIGFib3J0aW5nXG4vLyBpbmplY3Rpb24uXG4vL1xuLy8gQm9vdHN0cmFwIGlzIGFuIE9QVElPTkFMIHVwZ3JhZGUgdGhhdCBCTE9DS1MgdGhlIHByZS1maXJzdC1wYWludCBjcml0aWNhbCBwYXRoXG4vLyAoYSBzZWNvbmQgY2FsbCBhZnRlciBnZXRXaWRnZXRDb25maWcgYWxyZWFkeSBzdWNjZWVkZWQpLCBhbmQgd2UgYWxyZWFkeSBob2xkIGFcbi8vIHVzYWJsZSBnZXRXaWRnZXRDb25maWcgY29uZmlnIHRvIGZhbGwgYmFjayB0byDigJQgc28gaXQgaXMgdGlnaHRseSBib3VuZGVkLiBLZXB0XG4vLyBsb3cgc28gYSBzbG93L2h1bmcgZW5kcG9pbnQgYWRkcyBhdCBtb3N0IHRoaXMgbXVjaCB0byBmaXJzdCBwYWludDsgb24gdGltZW91dFxuLy8gdGhlIGZldGNoIGFib3J0cyBhbmQgd2UgZmFsbCBiYWNrIHRvIGdldFdpZGdldENvbmZpZy4gQ0FMSUJSQVRFIGFnYWluc3QgdGhlXG4vLyBlbmRwb2ludCdzIHJlYWwgcDk5IGJlZm9yZSByYW1waW5nIHRoZSBnYXRlIChhIHZhbHVlIGJlbG93IHA5OSB3aWxsIG1ha2Ugbm9ybWFsXG4vLyBib290c3RyYXBzIGZhbHNlLWFib3J0IGludG8gdGhlIGZhbGxiYWNrLCBkZWZlYXRpbmcgdGhlIGNvbnNvbGlkYXRpb24pLlxuY29uc3QgQk9PVFNUUkFQX1RJTUVPVVRfTVMgPSAxNTAwO1xuXG5leHBvcnQgY29uc3QgZmV0Y2hCb290c3RyYXBDb25maWcgPSBhc3luYyAoe1xuICBiYXNlVXJsLFxuICBhcGlLZXksXG4gIHVzZXJJZCxcbiAgc291cmNlLFxuICBuYW1lc3BhY2UsXG4gIGdhdGVOYW1lcyxcbiAgdXJsLFxuICBvcmdJZCxcbiAgb3JnU2hvcnROYW1lLFxuICBjb250ZXh0U291cmNlLFxuICBlbnYsXG4gIGNoYXRJZCxcbiAgZmVhdHVyZUdhdGVzLFxufTogRmV0Y2hCb290c3RyYXBDb25maWdQYXJhbXMpOiBQcm9taXNlPEJvb3RzdHJhcFJlc3VsdD4gPT4ge1xuICBjb25zdCB2ZXJzaW9uID0gY29uZmlnVmVyc2lvbk92ZXJyaWRlKCk7XG5cbiAgLy8gQXJtZWQgYmVmb3JlIGZldGNoIGFuZCBrZXB0IGxpdmUgYWNyb3NzIHJlc3BvbnNlLmpzb24oKSAoYSBzdGFsbGVkIGJvZHkgcmVhZFxuICAvLyBtdXN0IGFsc28gYmUgaW50ZXJydXB0aWJsZSksIGNsZWFyZWQgaW4gZmluYWxseS4gT24gdGltZW91dCB0aGUgZmV0Y2ggcmVqZWN0c1xuICAvLyB3aXRoIGFuIEFib3J0RXJyb3Ig4oaSIG1heWJlVXBncmFkZVRvQm9vdHN0cmFwJ3MgY2F0Y2ggZmFsbHMgYmFjayB0byBnZXRXaWRnZXRDb25maWcuXG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCBCT09UU1RSQVBfVElNRU9VVF9NUyk7XG4gIGxldCByZXN1bHQ6IFJhd0Jvb3RzdHJhcFJlc3BvbnNlO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YmFzZVVybH0vdjEvc2Vzc2lvbi9ib290c3RyYXBgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIC8vIFNjb3BlIG9yZ19jb25maWcuY29uZmlncyB0byB0aGUgd2lkZ2V0IG5hbWVzcGFjZSDigJQgV0lUSE9VVCB0aGlzLCBweW1vbm9cbiAgICAgICAgLy8gcmV0dXJucyBldmVyeSBuYW1lc3BhY2UncyBjb25maWdzIChpbnRlcm5hbCBvbmVzIGluY2x1ZGVkKSB0byB0aGUgYnJvd3Nlci5cbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBpbmNsdWRlX2ZlYXR1cmVfZ2F0ZXM6IGdhdGVOYW1lcyxcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgdXJsX3Jlc29sdmluZzoge1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICAgICAgICBvcmdfaWQ6IG9yZ0lkLFxuICAgICAgICAgICAgb3JnX3Nob3J0X25hbWU6IG9yZ1Nob3J0TmFtZSxcbiAgICAgICAgICAgIGNoYXRfaWQ6IGNoYXRJZCA/PyAnJyxcbiAgICAgICAgICAgIHNvdXJjZTogY29udGV4dFNvdXJjZSxcbiAgICAgICAgICAgIGVudixcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIE92ZXJyaWRlLWF3YXJlIGdhdGVzIHNvIGNsaWVudCBnYXRlIG92ZXJyaWRlcyByZWFjaCBwYWdlLXZhcmlhbnRcbiAgICAgICAgICAvLyByZXNvbHV0aW9uIChib290c3RyYXAgbWVyZ2VzIHRoZXNlIG92ZXIgaXRzIHNlcnZlci1yZXNvbHZlZCBnYXRlcykuXG4gICAgICAgICAgLy8gSWdub3JlZCBieSBweW1vbm8gdW50aWwgdGhlIGVuZHBvaW50IGdhaW5zIHRoZSBmaWVsZCDigJQgc2FmZSB0byBzaGlwIGVhcmx5LlxuICAgICAgICAgIGZlYXR1cmVfZ2F0ZXM6IGZlYXR1cmVHYXRlcyxcbiAgICAgICAgICAvLyBUaGUgY29uZmlnLXZlcnNpb24gb3ZlcnJpZGUgY29tZXMgT05MWSBmcm9tIHRoZSBVUkwgcXVlcnkgcGFyYW1cbiAgICAgICAgICAvLyAoY29uZmlnVmVyc2lvbk92ZXJyaWRlKSDigJQgdGhlIHNhbWUgc291cmNlIGdldFdpZGdldENvbmZpZyB1c2VzLiBJdCBtdXN0XG4gICAgICAgICAgLy8gTk9UIGNvbWUgZnJvbSBnZXRXaWRnZXRDb25maWcncyByZXNvbHZlZCB2ZXJzaW9uOiBvbiB0aGUgZ2F0ZS1PTiBwYXRoXG4gICAgICAgICAgLy8gdGhhdCByZXNwb25zZSBpcyBkaXNjYXJkZWQsIGFuZCBib290c3RyYXAgcmVzb2x2ZXMgdGhlIGNvbmZpZyB2ZXJzaW9uXG4gICAgICAgICAgLy8gc2VydmVyLXNpZGUgKHNjb3BpbmcgdXJsX3Jlc29sdmluZyB0byB0aGF0IHJlc29sdmVkIHZlcnNpb24sIGlmIGRlc2lyZWQsXG4gICAgICAgICAgLy8gYmVsb25ncyBvbiB0aGUgc2VydmVyIOKAlCBub3QgYSBnZXRXaWRnZXRDb25maWcgZGVwZW5kZW5jeSBoZXJlKS5cbiAgICAgICAgICBvdmVycmlkZV9jb25maWdfdmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQm9vdHN0cmFwIGNvbmZpZyByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICAgIH1cbiAgICByZXN1bHQgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBSYXdCb290c3RyYXBSZXNwb25zZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxuXG4gIC8vIEEgMnh4IHdpdGggYSBtaXNzaW5nL3BhcnRpYWwgcGF5bG9hZCBtdXN0IE5PVCBzaWxlbnRseSByZXBsYWNlIHRoZSBrbm93bi1nb29kXG4gIC8vIGdldFdpZGdldENvbmZpZyBjb25maWcgd2l0aCBlbXB0eSBnYXRlcyAvIG1vY2sgcHJvZHVjdHMg4oCUIHRoYXQgd291bGQgZGlzYWJsZSB0aGVcbiAgLy8gY2xpZW50IHNlc3Npb24gb3IgZHJvcCBleHBlcmltZW50cy4gVGhyb3cgaW5zdGVhZCwgc28gbWF5YmVVcGdyYWRlVG9Cb290c3RyYXAnc1xuICAvLyBjYXRjaCBmYWxscyBiYWNrIHRvIHRoZSBnZXRXaWRnZXRDb25maWcgcmVzdWx0IGl0IGFscmVhZHkgaG9sZHMuIGBnYXRlc2AgaXNcbiAgLy8gcmVxdWlyZWQgYXMgYSBOT04tRU1QVFkgYXJyYXk6IHdlIGFsd2F5cyByZXF1ZXN0IHRoZSBmdWxsIGdhdGVOYW1lcyBsaXN0IGFuZFxuICAvLyBvbmx5IHJlYWNoIGJvb3RzdHJhcCBiZWNhdXNlIGdldFdpZGdldENvbmZpZyByZXR1cm5lZCByZWFsIGdhdGVzLCBzbyBhblxuICAvLyBlbXB0eS9hYnNlbnQgZ2F0ZXMgcmVzcG9uc2UgaXMgZGVncmFkZWQg4oaSIGZhbGwgYmFjay4gKEEgcHJvZHVjdHMgY29uZmlnIHRoYXQgaXNcbiAgLy8gcHJlc2VudC1idXQtbWFsZm9ybWVkIHN0aWxsIGRlZ3JhZGVzIHRvIG1vY2sgYmVsb3cg4oCUIG9ubHkgdGhlIHRvcC1sZXZlbFxuICAvLyBzZWN0aW9ucyBhcmUgcmVxdWlyZWQgaGVyZS4pXG4gIGlmICghcmVzdWx0Lm9yZ19jb25maWc/Lm9yZz8ub3JnIHx8ICFyZXN1bHQub3JnX2NvbmZpZz8uZ2F0ZXM/Lmxlbmd0aCB8fCAhcmVzdWx0LndpZGdldF9jb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQm9vdHN0cmFwIGNvbmZpZyByZXNwb25zZSBtaXNzaW5nIHJlcXVpcmVkIHNlY3Rpb25zIChvcmdfY29uZmlnLm9yZy5vcmcgLyBvcmdfY29uZmlnLmdhdGVzIC8gd2lkZ2V0X2NvbmZpZyknLFxuICAgICk7XG4gIH1cbiAgY29uc3Qgb3JnQ29uZmlnID0gcmVzdWx0Lm9yZ19jb25maWc7XG4gIGNvbnN0IHdpZGdldENvbmZpZyA9IHJlc3VsdC53aWRnZXRfY29uZmlnO1xuICAvLyBUaGUgZ3VhcmQgYWJvdmUgZ3VhcmFudGVlcyBvcmcub3JnIGF0IHJ1bnRpbWU7IHRoZSBgPz8ge31gIG9ubHkgc2F0aXNmaWVzIHRoZVxuICAvLyB0eXBlLW5hcnJvd2luZyAoVFMgZG9lc24ndCBjYXJyeSB0aGUgb3B0aW9uYWwtY2hhaW4gbmFycm93aW5nIHRocm91Z2ggdGhlIGFsaWFzKS5cbiAgY29uc3Qgb3JnT3JnID0gb3JnQ29uZmlnLm9yZz8ub3JnID8/IHt9O1xuICBjb25zdCByZXNvbHV0aW9uID0gdG9SZXNvbHV0aW9uKHdpZGdldENvbmZpZy5yZXNvbHV0aW9uKTtcblxuICAvLyBBIG1hbGZvcm1lZCBwcm9kdWN0cyBjb25maWcgZGVncmFkZXMgdG8gbW9jayBkZWZhdWx0cyBXSVRIT1VUIGxvc2luZyB0aGVcbiAgLy8gb3JnIC8gZ2F0ZXMgLyBleHBlcmltZW50cyB0aGF0IGNhbWUgYmFjayBmaW5lIOKAlCBtaXJyb3JzIGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcuXG4gIGxldCBvcmdDb25maWdWYWx1ZXM6IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gIHRyeSB7XG4gICAgb3JnQ29uZmlnVmFsdWVzID0geyAuLi50cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHdpZGdldENvbmZpZy5wcm9kdWN0c19jb25maWcpLCByZXNvbHV0aW9uIH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5sb2dFcnJvcignZmV0Y2hCb290c3RyYXBDb25maWcgfCBFcnJvciB0cmFuc2Zvcm1pbmcgcHJvZHVjdHMgY29uZmlnJywgZXJyKTtcbiAgICBvcmdDb25maWdWYWx1ZXMgPSB7IGNvbG9yc0NvbmZpZzogdW5kZWZpbmVkLCBmcm9udGVuZENvbmZpZzogdW5kZWZpbmVkLCByZXNvbHV0aW9uIH07XG4gIH1cblxuICBjb25zdCBjb25maWc6IEVudml2ZVNlcnZpY2VDb25maWcgPSB7XG4gICAgLy8gb3JnX2NvbmZpZyBpcyBieXRlLWlkZW50aWNhbCB0byB0aGUgbGVnYWN5IC92MS9vcmcvY29uZmlnIChzbmFrZSksIHRoZVxuICAgIC8vIGV4YWN0IHNoYXBlIEVudml2ZVNlcnZpY2VDb25maWcub3JnIHdhcyBidWlsdCB0byBob2xkLiBDb25zdHJ1Y3RlZFxuICAgIC8vIGRlZmVuc2l2ZWx5IChsaWtlIGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcpIHJhdGhlciB0aGFuIHBhc3NlZCB0aHJvdWdoLlxuICAgIG9yZzoge1xuICAgICAgb3JnOiB7XG4gICAgICAgIGlkOiBvcmdPcmcuaWQgPz8gJycsXG4gICAgICAgIHNob3J0X25hbWU6IG9yZ09yZy5zaG9ydF9uYW1lID8/ICcnLFxuICAgICAgICBkaXNwbGF5X25hbWU6IG9yZ09yZy5kaXNwbGF5X25hbWUgPz8gJycsXG4gICAgICAgIGRvbWFpbjogb3JnT3JnLmRvbWFpbiA/PyAnJyxcbiAgICAgICAgc3RhdHVzOiBvcmdPcmcuc3RhdHVzID8/ICcnLFxuICAgICAgICBjcmVhdGVkX2F0OiBvcmdPcmcuY3JlYXRlZF9hdCA/PyAnJyxcbiAgICAgICAgdXBkYXRlZF9hdDogb3JnT3JnLnVwZGF0ZWRfYXQgPz8gJycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZ2F0ZXM6IHRvQm9vdHN0cmFwR2F0ZXMob3JnQ29uZmlnLmdhdGVzKSxcbiAgICAvLyBGcm9tIHdpZGdldF9jb25maWcsIE5PVCBvcmdfY29uZmlnOiBnZXRXaWRnZXRDb25maWcgc291cmNlcyBhc3NpZ25tZW50cyBmcm9tXG4gICAgLy8gaXRzIHdpZGdldCBjb25maWcgKHVuZ2F0ZWQpLCB3aGVyZWFzIGJvb3RzdHJhcCdzIGBvcmdfY29uZmlnLmV4cGVyaW1lbnRfYXNzaWdubWVudHNgXG4gICAgLy8gaXMgcG9wdWxhdGVkIE9OTFkgd2hlbiB0aGUgYHVzZV91bmlmaWVkX2NvbmZpZ2AgZ2F0ZSBldmFsdWF0ZXMgdHJ1ZSBTRVJWRVItU0lERVxuICAgIC8vIChweW1vbm8gYHVuaWZpZWRfY29uZmlnX2FjdGl2ZWApLiBSZWFkaW5nIG9yZ19jb25maWcgd291bGQgZHJvcCBhc3NpZ25tZW50cyDigJRcbiAgICAvLyBhbmQgdGhlIGFtcGxpdHVkZSBgZXhwZXJpbWVudC57bnN9LipgIGVucmljaG1lbnQg4oCUIG9uIHRoZSBjbGllbnQtb3ZlcnJpZGUgdGVzdFxuICAgIC8vIHBhdGggKGdhdGUgT04gdmlhIGA/dXNlX3VuaWZpZWRfY29uZmlnPXRydWVgIGJ1dCAwJSBzZXJ2ZXItc2lkZSkuIHdpZGdldF9jb25maWdcbiAgICAvLyBtYXRjaGVzIGdldFdpZGdldENvbmZpZyBpbiBldmVyeSBjYXNlIChlcXVhbCB3aGVuIHRoZSBnYXRlIGlzIG9uOyB2ZXJzaW9uIHBpblxuICAgIC8vIGVtcHRpZXMgYm90aCkuXG4gICAgZXhwZXJpbWVudF9hc3NpZ25tZW50czogdG9Cb290c3RyYXBBc3NpZ25tZW50cyh3aWRnZXRDb25maWcuZXhwZXJpbWVudF9hc3NpZ25tZW50cyksXG4gICAgb3JnQ29uZmlnOiBvcmdDb25maWdWYWx1ZXMsXG4gIH07XG5cbiAgcmV0dXJuIHsgY29uZmln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
|
|
@@ -234,4 +234,5 @@ const fetchUnifiedGraphQLConfig = async (baseUrl, apiKey, userId, gateNames, sou
|
|
|
234
234
|
|
|
235
235
|
//#endregion
|
|
236
236
|
exports.fetchUnifiedGraphQLConfig = fetchUnifiedGraphQLConfig;
|
|
237
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIkRFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSIsIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJtb2NrVjNDb2xvcnNDb25maWciLCJtb2NrVjNGcm9udGVuZENvbmZpZyIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIiwiZ2V0V2lkZ2V0Q29uZmlnUXVlcnkiLCJjb25maWdWZXJzaW9uT3ZlcnJpZGUiLCJvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykuXG5pbXBvcnQgdHlwZSB7IEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL2Vudml2ZUNvbmZpZ1NlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uIG9yXG4vLyBnZXRXaWRnZXRDb25maWcpIGludG8gdGhlIGNhbWVsQ2FzZSBHcmFwaFFsQ29uZmlnVmFsdWVzIHNoYXBlIHRoZSByZXN0IG9mXG4vLyB0aGUgdG9vbGtpdCBjb25zdW1lcy4gUmV0dXJucyBtb2NrIGNvbmZpZyB3aGVuIGNvbG9ycyBhcmUgYWJzZW50LlxuY29uc3QgdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyA9IChcbiAgcHJvZHVjdHNDb25maWc6XG4gICAgfCB7XG4gICAgICAgIGZyb250ZW5kPzogeyB2YWx1ZXM/OiB7IG1lcmNoYW50X292ZXJyaWRlX2Nzcz86IHN0cmluZyB9IH07XG4gICAgICAgIHZfdGhyZWVfY29uZmlnPzogeyB2YWx1ZXM/OiBhbnkgfTtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZCxcbik6IEdyYXBoUWxDb25maWdWYWx1ZXMgPT4ge1xuICBjb25zdCB2M1Jvb3RDb25maWcgPSBwcm9kdWN0c0NvbmZpZz8udl90aHJlZV9jb25maWc/LnZhbHVlcztcbiAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSBwcm9kdWN0c0NvbmZpZz8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICBpZiAoIXYzUm9vdENvbmZpZz8uY29sb3JzKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCd0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIHwgTm8gY29sb3JzIGZvdW5kLCByZXR1cm5pbmcgbW9jayBjb25maWcnKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3JzQ29uZmlnOiBtb2NrVjNDb2xvcnNDb25maWcsXG4gICAgICBmcm9udGVuZENvbmZpZzogbW9ja1YzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICBwYWdlVmFyaWFudHM6IERFRkFVTFRfUEFHRV9WQVJJQU5UUyxcbiAgICAgICAgd2lkZ2V0Q29uZmlnczoge30sXG4gICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZykgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICApO1xuXG4gIGNvbnN0IG1lcmNoYW50T3ZlcnJpZGVDc3MgPVxuICAgIHYzRnJvbnRlbmRDb25maWcudWlDb25maWdzPy5tZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kVmFsdWVzPy5tZXJjaGFudF9vdmVycmlkZV9jc3M7XG5cbiAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIHsga2V5OiBzdHJpbmc7IGNvbmZpZzogV2lkZ2V0TW91bnRpbmdDb25maWcgfVtdO1xuICBjb25zdCB2M01vdW50aW5nQ29uZmlncyA9IHYzTW91bnRpbmdDb25maWdzQXJyYXkucmVkdWNlKFxuICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIG1vdW50aW5nIGNvbmZpZywgc2tpcHBpbmcnLCBlcnJvciwgeyBrZXkgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICApO1xuXG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LndpZGdldF9jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICB2M1dpZGdldENvbmZpZ3NBcnJheT8ubWFwKCh7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH06IFdpZGdldENvbmZpZ1YzKSA9PiBbXG4gICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICBdKSxcbiAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG5cbiAgY29uc3QgdjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBBcnJheS5pc0FycmF5KHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cylcbiAgICA/IHYzUm9vdENvbmZpZy5wYWdlX3ZhcmlhbnRzLnJlZHVjZSgoYWNjOiBQYWdlVmFyaWFudENvbmZpZ1tdLCB2YXJpYW50OiB1bmtub3duKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYWNjLnB1c2godmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHModmFyaWFudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIHBhZ2UgdmFyaWFudCwgc2tpcHBpbmcnLCBlcnJvciwgeyB2YXJpYW50IH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSlcbiAgICA6IERFRkFVTFRfUEFHRV9WQVJJQU5UUztcblxuICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICByZXR1cm4ge1xuICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgLi4uKHYzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgIG1lcmNoYW50T3ZlcnJpZGVDc3MsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgfSxcbiAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgbW91bnRpbmdDb25maWdzOiB2M01vdW50aW5nQ29uZmlncyxcbiAgICB9LFxuICB9O1xufTtcblxuLy8gVGhlIGNhbWVsQ2FzZSBgZXhwZXJpbWVudEFzc2lnbm1lbnRzYCBHcmFwaFFMIHNoYXBlIOKGkiB0aGUgc25ha2VfY2FzZSB3aXJlXG4vLyBzaGFwZSBhbXBsaXR1ZGVTZXJ2aWNlIHJlYWRzIChpdCBwcmV2aW91c2x5IGFycml2ZWQgZnJvbSBSRVNUIC92MS9vcmcvY29uZmlnKS5cbmNvbnN0IHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzID0gKFxuICByYXc6XG4gICAgfCBSZWFkb25seUFycmF5PHtcbiAgICAgICAgbGF5ZXJOYW1lPzogc3RyaW5nO1xuICAgICAgICBuYW1lc3BhY2U/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFsnbmFtZXNwYWNlJ107XG4gICAgICAgIGFsbG9jYXRlZEV4cGVyaW1lbnROYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgZ3JvdXBOYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0+XG4gICAgfCB1bmRlZmluZWQsXG4pOiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdID0+XG4gIChyYXcgPz8gW10pLm1hcChhID0+ICh7XG4gICAgbGF5ZXJfbmFtZTogYS5sYXllck5hbWUsXG4gICAgbmFtZXNwYWNlOiBhLm5hbWVzcGFjZSxcbiAgICBhbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lOiBhLmFsbG9jYXRlZEV4cGVyaW1lbnROYW1lLFxuICAgIGdyb3VwX25hbWU6IGEuZ3JvdXBOYW1lLFxuICB9KSk7XG5cbi8vIFRoZSB1bmlmaWVkIGBnZXRXaWRnZXRDb25maWdgIGNvbmZpZyBwYXRoIOKAlCBub3cgdGhlIHNpbmdsZSBzb3VyY2Ugb2Ygc2Vzc2lvblxuLy8gY29uZmlnLiBSZXR1cm5zIGV2ZXJ5dGhpbmcgdGhlIGNsaWVudCBuZWVkcyBpbiBvbmUgY2FsbDogb3JnIGlkZW50aXR5LFxuLy8gZmVhdHVyZSBnYXRlcywgYW5kIGV4cGVyaW1lbnQgYXNzaWdubWVudHMgKHdoaWNoIHVzZWQgdG8gY29tZSBmcm9tIFJFU1Rcbi8vIGAvdjEvb3JnL2NvbmZpZ2ApLCBwbHVzIHRoZSBwcm9kdWN0c0NvbmZpZyBhbmQgdGhlIHJlc29sdXRpb24gbWV0YWRhdGEgcHltb25vXG4vLyB1c2VkIHRvIHBpY2sgdGhlIHZlcnNpb24gKGNhbGxlcnMgdGhyZWFkIGByZXNvbHV0aW9uLmJhc2VWZXJzaW9uYCBpbnRvXG4vLyBkb3duc3RyZWFtIGluZmVyZW5jZSBzbyBpdCdzIHNjb3BlZCB0byB0aGUgdmVyc2lvbiB0aGF0IHByb2R1Y2VkIHRoZSByZW5kZXJlZFxuLy8gd2lkZ2V0cykuIGBnYXRlTmFtZXNgIHNlbGVjdHMgd2hpY2ggZ2F0ZXMgdG8gZXZhbHVhdGU7IGBzb3VyY2VgIGZlZWRzIFN0YXRzaWdcbi8vIHVzZXIgcHJvcGVydGllcy4gQSBgc3BpZmZ5X2NvbmZpZ192ZXJzaW9uYCAvIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIFVSTFxuLy8gcGFyYW0sIHdoZW4gcHJlc2VudCwgaXMgdGhyZWFkZWQgdGhyb3VnaCBhcyB0aGUgYHZlcnNpb25gIHZhcmlhYmxlIHRvIHBpbiBhXG4vLyBzcGVjaWZpYyB2ZXJzaW9uIChieXBhc3NlcyB0aGUgbWVyY2hhbnQgZXhwZXJpbWVudCDigJQgUUEgLyByb2xsYmFjaykuXG4vL1xuLy8gVGhyb3dzIG9uIG5ldHdvcmsvR3JhcGhRTCBmYWlsdXJlOiB3aXRoIG9yZyArIGdhdGVzIHNvdXJjZWQgaGVyZSwgdGhlcmUgaXMgbm9cbi8vIHBhcnRpYWwtcmVuZGVyIGZhbGxiYWNrIChpbmplY3QudHMgYWJvcnRzIGluamVjdGlvbiBvbiB0aGUgdGhyb3cpLCBtYXRjaGluZ1xuLy8gaG93IHRoZSBvbGQgL3YxL29yZy9jb25maWcgY2FsbCBiZWhhdmVkLlxuZXhwb3J0IGNvbnN0IGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcgPSBhc3luYyAoXG4gIGJhc2VVcmw6IHN0cmluZyxcbiAgYXBpS2V5OiBzdHJpbmcsXG4gIHVzZXJJZDogc3RyaW5nLFxuICBnYXRlTmFtZXM6IHN0cmluZ1tdLFxuICBzb3VyY2U6IHN0cmluZyxcbik6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4gPT4ge1xuICBjb25zdCBxdWVyeSA9IGdldFdpZGdldENvbmZpZ1F1ZXJ5KCk7XG4gIGNvbnN0IHZlcnNpb24gPSBjb25maWdWZXJzaW9uT3ZlcnJpZGUoKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXM6IHsgdXNlcklkLCB2ZXJzaW9uLCBnYXRlTmFtZXMsIHNvdXJjZSB9IH0pLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmlmaWVkIGNvbmZpZyByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICBpZiAocmVzdWx0LmVycm9ycykge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5pZmllZCBjb25maWcgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gIH1cblxuICBjb25zdCBtZSA9IHJlc3VsdC5kYXRhPy5tZTtcbiAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gbWU/LmdldFdpZGdldENvbmZpZztcbiAgY29uc3Qgb3JnID0gbWU/Lm9yZztcblxuICAvLyBBIG1hbGZvcm1lZCBwcm9kdWN0cyBjb25maWcgKGUuZy4gYW4gaW52YWxpZCBmbG9hdGluZy1idXR0b24gcG9zaXRpb24pXG4gIC8vIGRlZ3JhZGVzIHRvIG5vIGNvbmZpZyDigJQgd2lkZ2V0cyBmYWxsIGJhY2sgdG8gdGhlaXIgbW9jayBkZWZhdWx0cyDigJQgV0lUSE9VVFxuICAvLyBsb3NpbmcgdGhlIG9yZyAvIGdhdGVzIC8gZXhwZXJpbWVudHMgdGhhdCBjYW1lIGJhY2sgZmluZS4gVGhlIGZldGNoIGl0c2VsZlxuICAvLyBzdGlsbCB0aHJvd3MgYWJvdmU7IG9ubHkgdGhlIHByb2R1Y3RzLWNvbmZpZyB0cmFuc2Zvcm0gaXMgZ3VhcmRlZCBoZXJlLlxuICBjb25zdCByZXNvbHV0aW9uID0gd2lkZ2V0Q29uZmlnPy5yZXNvbHV0aW9uIGFzIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIGxldCBvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gIHRyeSB7XG4gICAgb3JnQ29uZmlnID0geyAuLi50cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHdpZGdldENvbmZpZz8ucHJvZHVjdHNDb25maWcpLCByZXNvbHV0aW9uIH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5sb2dFcnJvcignZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyB8IEVycm9yIHRyYW5zZm9ybWluZyBwcm9kdWN0cyBjb25maWcnLCBlcnIpO1xuICAgIG9yZ0NvbmZpZyA9IHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQsIHJlc29sdXRpb24gfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gR3JhcGhRTCBPcmdhbml6YXRpb24gaXMgY2FtZWxDYXNlOyB0aGUgcmVzdCBvZiB0aGUgYXBwIHJlYWRzIHRoZVxuICAgIC8vIHNuYWtlX2Nhc2Ugc2hhcGUgL3YxL29yZy9jb25maWcgdXNlZCB0byByZXR1cm4uIGBzdGF0dXNgIGlzbid0IGV4cG9zZWQgYnlcbiAgICAvLyB0aGUgR3JhcGhRTCB0eXBlIChhbmQgaXNuJ3QgY29uc3VtZWQgZG93bnN0cmVhbSkg4oCUIGRlZmF1bHQgaXQuXG4gICAgb3JnOiB7XG4gICAgICBvcmc6IHtcbiAgICAgICAgaWQ6IG9yZz8uaWQgPz8gJycsXG4gICAgICAgIHNob3J0X25hbWU6IG9yZz8uc2hvcnROYW1lID8/ICcnLFxuICAgICAgICBkaXNwbGF5X25hbWU6IG9yZz8uZGlzcGxheU5hbWUgPz8gJycsXG4gICAgICAgIGRvbWFpbjogb3JnPy5kb21haW4gPz8gJycsXG4gICAgICAgIHN0YXR1czogJycsXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG9yZz8uY3JlYXRlZEF0ID8/ICcnLFxuICAgICAgICB1cGRhdGVkX2F0OiBvcmc/LnVwZGF0ZWRBdCA/PyAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnYXRlczogKFxuICAgICAgKHdpZGdldENvbmZpZz8uZ2F0ZXMgPz8gW10pIGFzIEFycmF5PHtcbiAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgdmFsdWU/OiBib29sZWFuO1xuICAgICAgICBncm91cE5hbWU/OiBzdHJpbmc7XG4gICAgICB9PlxuICAgICkubWFwKFxuICAgICAgKGcpOiBPcmdDb25maWdGZWF0dXJlR2F0ZSA9PiAoe1xuICAgICAgICBuYW1lOiBnLm5hbWUsXG4gICAgICAgIHZhbHVlOiBnLnZhbHVlLFxuICAgICAgICBncm91cE5hbWU6IGcuZ3JvdXBOYW1lLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzOiB0b0V4cGVyaW1lbnRBc3NpZ25tZW50cyh3aWRnZXRDb25maWc/LmV4cGVyaW1lbnRBc3NpZ25tZW50cyksXG4gICAgb3JnQ29uZmlnLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQTRCQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8scUJBQXFCO0FBSy9DLE1BQWFDLHdCQUE2QyxDQUN4RDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2IsZ0JBQWdCO0NBQ2hCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FBQyxFQUFFLFVBQVVDLDJDQUFvQixhQUFhLENBQUM7Q0FDOUQsRUFDRDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FBQyxFQUFFLFVBQVVBLDJDQUFvQixhQUFhLENBQUM7Q0FDOUQsQ0FDRjtBQUlELE1BQU0sNEJBQTRCO0NBQ2hDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxNQUFNLDBCQUEwQixhQUE2QztBQUMzRSxLQUFLLDBCQUFnRCxTQUFTLFNBQVMsQ0FDckUsUUFBTztBQUVULE9BQU0sSUFBSSxNQUFNLHFCQUFxQixXQUFXOztBQUdsRCxNQUFNLDJCQUNKLGlCQUM2QjtDQUM3QixNQUFNLEVBQUUsY0FBYztBQUN0QixLQUFJLENBQUMsVUFBVyxRQUFPO0NBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0IsZ0JBQWdCO0FBQ3hDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFhLFFBQU87Q0FDNUMsTUFBTSxFQUFFLFVBQVUsWUFBWSxrQkFBa0IsWUFBWTtBQUM1RCxRQUFPO0VBQ0wsR0FBRztFQUNILFdBQVc7R0FDVCxHQUFHO0dBQ0gsZ0JBQWdCO0lBQ2QsR0FBRztJQUNILFVBQVUsdUJBQ1IsYUFBYSxXQUFXLGdCQUFnQixTQUN6QztJQUNGO0dBQ0QsYUFBYTtJQUNYLEdBQUc7SUFDSCx1QkFBdUIsWUFBWSx5QkFBeUIsWUFBWTtJQUN4RSx3QkFBd0IsWUFBWSwwQkFBMEIsWUFBWTtJQUMxRSxZQUFZO0tBQ1YsR0FBRyxZQUFZO0tBQ2YsVUFBVTtNQUNSLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDOUIsSUFBSSxVQUFVLE1BQU0sVUFBVTtNQUM5QixJQUFJLFVBQVUsTUFBTSxVQUFVO01BQzlCLElBQUksVUFBVSxNQUFNLFVBQVU7TUFDL0I7S0FDRCxlQUFlO01BQ2IsR0FBRyxZQUFZLFdBQVc7TUFDMUIsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN4QyxJQUFJLGVBQWUsTUFBTSxlQUFlO01BQ3hDLElBQUksZUFBZSxNQUFNLGVBQWU7TUFDeEMsSUFBSSxlQUFlLE1BQU0sZUFBZTtNQUN6QztLQUNELFlBQVk7TUFDVixHQUFHLFlBQVksV0FBVztNQUMxQixPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLE9BQU8sWUFBWSxVQUFVLGFBQWE7TUFDMUMsT0FBTyxZQUFZLFVBQVUsYUFBYTtNQUMxQyxPQUFPLFlBQVksVUFBVSxhQUFhO01BQzFDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbEMsSUFBSSxZQUFZLE1BQU0sWUFBWTtNQUNsQyxJQUFJLFlBQVksTUFBTSxZQUFZO01BQ2xDLElBQUksWUFBWSxNQUFNLFlBQVk7TUFDbkM7S0FDRjtJQUNGO0dBQ0Y7RUFDRjs7QUFNSCxNQUFNLDZCQUNKLG1CQU13QjtDQUN4QixNQUFNLGVBQWUsZ0JBQWdCLGdCQUFnQjtDQUNyRCxNQUFNLGlCQUFpQixnQkFBZ0IsVUFBVTtBQUVqRCxLQUFJLENBQUMsY0FBYyxRQUFRO0FBQ3pCLFNBQU8sU0FBUyxxRUFBcUU7QUFDckYsU0FBTztHQUNMLGNBQWNDO0dBQ2QsZ0JBQWdCQztHQUNoQixlQUFlO0lBQ2IsY0FBYztJQUNkLGVBQWUsRUFBRTtJQUNqQixpQkFBaUIsRUFBRTtJQUNwQjtHQUNGOztDQUdILE1BQU0sbUJBQW1CLHdCQUN2QkMsc0RBQXNCLGFBQWEsQ0FDcEM7Q0FFRCxNQUFNLHNCQUNKLGlCQUFpQixXQUFXLHVCQUF1QixnQkFBZ0I7Q0FJckUsTUFBTSxxQkFGMEJBLHNEQUFzQixjQUFjLGlCQUFpQixJQUNuRixFQUFFLEVBQzZDLFFBQzlDLEtBQUssRUFBRSxLQUFLLGFBQWE7QUFDeEIsTUFBSTtBQUNGLE9BQUksT0FBT0MseUVBQW1DLFFBQVEsSUFBSTtXQUNuRCxPQUFPO0FBQ2QsVUFBTyxRQUFRLHFDQUFxQyxPQUFPLEVBQUUsS0FBSyxDQUFDOztBQUVyRSxTQUFPO0lBRVQsRUFBRSxDQUNIO0NBRUQsTUFBTSx1QkFBd0JELHNEQUFzQixjQUFjLGVBQWUsSUFDL0UsRUFBRTtDQUNKLE1BQU0sa0JBQWtCLE9BQU8sWUFDN0Isc0JBQXNCLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxXQUEyQixDQUN6RSxnQkFDQTtFQUFFO0VBQWdCLEdBQUc7RUFBTSxDQUM1QixDQUFDLENBQ0g7Q0FFRCxNQUFNRSxpQkFBc0MsTUFBTSxRQUFRLGNBQWMsY0FBYyxHQUNsRixhQUFhLGNBQWMsUUFBUSxLQUEwQixZQUFxQjtBQUNoRixNQUFJO0FBQ0YsT0FBSSxLQUFLQyx1RUFBaUMsUUFBbUMsQ0FBQztXQUN2RSxPQUFPO0FBQ2QsVUFBTyxRQUFRLGtDQUFrQyxPQUFPLEVBQUUsU0FBUyxDQUFDOztBQUV0RSxTQUFPO0lBQ04sRUFBRSxDQUFDLEdBQ047QUFJSixRQUFPO0VBQ0wsY0FIcUJILHNEQUFzQixjQUFjLFFBQVEsT0FBTztFQUl4RSxnQkFBZ0I7R0FDZCxHQUFJO0dBQ0o7R0FDQSxlQUFlO0dBQ2hCO0VBQ0QsZUFBZTtHQUNiLGNBQWM7R0FDZCxlQUFlO0dBQ2YsaUJBQWlCO0dBQ2xCO0VBQ0Y7O0FBS0gsTUFBTSwyQkFDSixTQVNDLE9BQU8sRUFBRSxFQUFFLEtBQUksT0FBTTtDQUNwQixZQUFZLEVBQUU7Q0FDZCxXQUFXLEVBQUU7Q0FDYiwyQkFBMkIsRUFBRTtDQUM3QixZQUFZLEVBQUU7Q0FDZixFQUFFO0FBZ0JMLE1BQWEsNEJBQTRCLE9BQ3ZDLFNBQ0EsUUFDQSxRQUNBLFdBQ0EsV0FDaUM7Q0FDakMsTUFBTSxRQUFRSSxtREFBc0I7Q0FDcEMsTUFBTSxVQUFVQywrQ0FBdUI7Q0FDdkMsTUFBTSxXQUFXLE1BQU0sTUFBTSxHQUFHLFFBQVEsY0FBYztFQUNwRCxRQUFRO0VBQ1IsU0FBUztHQUNQLGdCQUFnQjtHQUNoQixlQUFlLFVBQVU7R0FDMUI7RUFDRCxNQUFNLEtBQUssVUFBVTtHQUFFO0dBQU8sV0FBVztJQUFFO0lBQVE7SUFBUztJQUFXO0lBQVE7R0FBRSxDQUFDO0VBQ25GLENBQUM7QUFFRixLQUFJLENBQUMsU0FBUyxHQUNaLE9BQU0sSUFBSSxNQUFNLGtDQUFrQyxTQUFTLGFBQWE7Q0FHMUUsTUFBTSxTQUFTLE1BQU0sU0FBUyxNQUFNO0FBQ3BDLEtBQUksT0FBTyxPQUNULE9BQU0sSUFBSSxNQUFNLGtDQUFrQyxLQUFLLFVBQVUsT0FBTyxPQUFPLEdBQUc7Q0FHcEYsTUFBTSxLQUFLLE9BQU8sTUFBTTtDQUN4QixNQUFNLGVBQWUsSUFBSTtDQUN6QixNQUFNLE1BQU0sSUFBSTtDQU1oQixNQUFNLGFBQWEsY0FBYztDQUNqQyxJQUFJQztBQUNKLEtBQUk7QUFDRixjQUFZO0dBQUUsR0FBRywwQkFBMEIsY0FBYyxlQUFlO0dBQUU7R0FBWTtVQUMvRSxLQUFLO0FBQ1osU0FBTyxTQUFTLGtFQUFrRSxJQUFJO0FBQ3RGLGNBQVk7R0FBRSxjQUFjO0dBQVcsZ0JBQWdCO0dBQVc7R0FBWTs7QUFHaEYsUUFBTztFQUlMLEtBQUssRUFDSCxLQUFLO0dBQ0gsSUFBSSxLQUFLLE1BQU07R0FDZixZQUFZLEtBQUssYUFBYTtHQUM5QixjQUFjLEtBQUssZUFBZTtHQUNsQyxRQUFRLEtBQUssVUFBVTtHQUN2QixRQUFRO0dBQ1IsWUFBWSxLQUFLLGFBQWE7R0FDOUIsWUFBWSxLQUFLLGFBQWE7R0FDL0IsRUFDRjtFQUNELFFBQ0csY0FBYyxTQUFTLEVBQUUsRUFLMUIsS0FDQyxPQUE2QjtHQUM1QixNQUFNLEVBQUU7R0FDUixPQUFPLEVBQUU7R0FDVCxXQUFXLEVBQUU7R0FDZCxFQUNGO0VBQ0Qsd0JBQXdCLHdCQUF3QixjQUFjLHNCQUFzQjtFQUNwRjtFQUNEIn0=
|
|
237
|
+
exports.transformV3ProductsConfig = transformV3ProductsConfig;
|
|
238
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIkRFRkFVTFRfUEFHRV9WQVJJQU5UUzogUGFnZVZhcmlhbnRDb25maWdbXSIsIlBhZ2VWYXJpYW50VGVzdFR5cGUiLCJtb2NrVjNDb2xvcnNDb25maWciLCJtb2NrVjNGcm9udGVuZENvbmZpZyIsInRyYW5zZm9ybVNuYWtlVG9DYW1lbCIsInZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWciLCJ2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSIsInZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzIiwiZ2V0V2lkZ2V0Q29uZmlnUXVlcnkiLCJjb25maWdWZXJzaW9uT3ZlcnJpZGUiLCJvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykuXG5pbXBvcnQgdHlwZSB7IEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL2Vudml2ZUNvbmZpZ1NlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uLFxuLy8gZ2V0V2lkZ2V0Q29uZmlnLCBvciB0aGUgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIHdpZGdldF9jb25maWcpIGludG8gdGhlXG4vLyBjYW1lbENhc2UgR3JhcGhRbENvbmZpZ1ZhbHVlcyBzaGFwZSB0aGUgcmVzdCBvZiB0aGUgdG9vbGtpdCBjb25zdW1lcy5cbi8vIFJldHVybnMgbW9jayBjb25maWcgd2hlbiBjb2xvcnMgYXJlIGFic2VudC4gRXhwb3J0ZWQgc28gZmV0Y2hCb290c3RyYXBDb25maWdcbi8vIHJldXNlcyB0aGUgZXhhY3Qgc2FtZSB0cmFuc2Zvcm0gKGJvb3RzdHJhcCdzIHByb2R1Y3RzX2NvbmZpZyBjYXJyaWVzIHRoZSBzYW1lXG4vLyBgLntzZWN0aW9ufS52YWx1ZXNgIHNoYXBlIGFzIGdldFdpZGdldENvbmZpZydzIHByb2R1Y3RzQ29uZmlnKS5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUaGUgY2FtZWxDYXNlIGBleHBlcmltZW50QXNzaWdubWVudHNgIEdyYXBoUUwgc2hhcGUg4oaSIHRoZSBzbmFrZV9jYXNlIHdpcmVcbi8vIHNoYXBlIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgKGl0IHByZXZpb3VzbHkgYXJyaXZlZCBmcm9tIFJFU1QgL3YxL29yZy9jb25maWcpLlxuY29uc3QgdG9FeHBlcmltZW50QXNzaWdubWVudHMgPSAoXG4gIHJhdzpcbiAgICB8IFJlYWRvbmx5QXJyYXk8e1xuICAgICAgICBsYXllck5hbWU/OiBzdHJpbmc7XG4gICAgICAgIG5hbWVzcGFjZT86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50WyduYW1lc3BhY2UnXTtcbiAgICAgICAgYWxsb2NhdGVkRXhwZXJpbWVudE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICBncm91cE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfT5cbiAgICB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyTmFtZSxcbiAgICBuYW1lc3BhY2U6IGEubmFtZXNwYWNlLFxuICAgIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU6IGEuYWxsb2NhdGVkRXhwZXJpbWVudE5hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cE5hbWUsXG4gIH0pKTtcblxuLy8gVGhlIHVuaWZpZWQgYGdldFdpZGdldENvbmZpZ2AgY29uZmlnIHBhdGgg4oCUIG5vdyB0aGUgc2luZ2xlIHNvdXJjZSBvZiBzZXNzaW9uXG4vLyBjb25maWcuIFJldHVybnMgZXZlcnl0aGluZyB0aGUgY2xpZW50IG5lZWRzIGluIG9uZSBjYWxsOiBvcmcgaWRlbnRpdHksXG4vLyBmZWF0dXJlIGdhdGVzLCBhbmQgZXhwZXJpbWVudCBhc3NpZ25tZW50cyAod2hpY2ggdXNlZCB0byBjb21lIGZyb20gUkVTVFxuLy8gYC92MS9vcmcvY29uZmlnYCksIHBsdXMgdGhlIHByb2R1Y3RzQ29uZmlnIGFuZCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm9cbi8vIHVzZWQgdG8gcGljayB0aGUgdmVyc2lvbiAoY2FsbGVycyB0aHJlYWQgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG9cbi8vIGRvd25zdHJlYW0gaW5mZXJlbmNlIHNvIGl0J3Mgc2NvcGVkIHRvIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlIHJlbmRlcmVkXG4vLyB3aWRnZXRzKS4gYGdhdGVOYW1lc2Agc2VsZWN0cyB3aGljaCBnYXRlcyB0byBldmFsdWF0ZTsgYHNvdXJjZWAgZmVlZHMgU3RhdHNpZ1xuLy8gdXNlciBwcm9wZXJ0aWVzLiBBIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgVVJMXG4vLyBwYXJhbSwgd2hlbiBwcmVzZW50LCBpcyB0aHJlYWRlZCB0aHJvdWdoIGFzIHRoZSBgdmVyc2lvbmAgdmFyaWFibGUgdG8gcGluIGFcbi8vIHNwZWNpZmljIHZlcnNpb24gKGJ5cGFzc2VzIHRoZSBtZXJjaGFudCBleHBlcmltZW50IOKAlCBRQSAvIHJvbGxiYWNrKS5cbi8vXG4vLyBUaHJvd3Mgb24gbmV0d29yay9HcmFwaFFMIGZhaWx1cmU6IHdpdGggb3JnICsgZ2F0ZXMgc291cmNlZCBoZXJlLCB0aGVyZSBpcyBub1xuLy8gcGFydGlhbC1yZW5kZXIgZmFsbGJhY2sgKGluamVjdC50cyBhYm9ydHMgaW5qZWN0aW9uIG9uIHRoZSB0aHJvdyksIG1hdGNoaW5nXG4vLyBob3cgdGhlIG9sZCAvdjEvb3JnL2NvbmZpZyBjYWxsIGJlaGF2ZWQuXG5leHBvcnQgY29uc3QgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyA9IGFzeW5jIChcbiAgYmFzZVVybDogc3RyaW5nLFxuICBhcGlLZXk6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGdhdGVOYW1lczogc3RyaW5nW10sXG4gIHNvdXJjZTogc3RyaW5nLFxuKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gZ2V0V2lkZ2V0Q29uZmlnUXVlcnkoKTtcbiAgY29uc3QgdmVyc2lvbiA9IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSgpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnksIHZhcmlhYmxlczogeyB1c2VySWQsIHZlcnNpb24sIGdhdGVOYW1lcywgc291cmNlIH0gfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaWZpZWQgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmlmaWVkIGNvbmZpZyBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgfVxuXG4gIGNvbnN0IG1lID0gcmVzdWx0LmRhdGE/Lm1lO1xuICBjb25zdCB3aWRnZXRDb25maWcgPSBtZT8uZ2V0V2lkZ2V0Q29uZmlnO1xuICBjb25zdCBvcmcgPSBtZT8ub3JnO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyAoZS5nLiBhbiBpbnZhbGlkIGZsb2F0aW5nLWJ1dHRvbiBwb3NpdGlvbilcbiAgLy8gZGVncmFkZXMgdG8gbm8gY29uZmlnIOKAlCB3aWRnZXRzIGZhbGwgYmFjayB0byB0aGVpciBtb2NrIGRlZmF1bHRzIOKAlCBXSVRIT1VUXG4gIC8vIGxvc2luZyB0aGUgb3JnIC8gZ2F0ZXMgLyBleHBlcmltZW50cyB0aGF0IGNhbWUgYmFjayBmaW5lLiBUaGUgZmV0Y2ggaXRzZWxmXG4gIC8vIHN0aWxsIHRocm93cyBhYm92ZTsgb25seSB0aGUgcHJvZHVjdHMtY29uZmlnIHRyYW5zZm9ybSBpcyBndWFyZGVkIGhlcmUuXG4gIGNvbnN0IHJlc29sdXRpb24gPSB3aWRnZXRDb25maWc/LnJlc29sdXRpb24gYXMgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgbGV0IG9yZ0NvbmZpZzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWcgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnPy5wcm9kdWN0c0NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIHwgRXJyb3IgdHJhbnNmb3JtaW5nIHByb2R1Y3RzIGNvbmZpZycsIGVycik7XG4gICAgb3JnQ29uZmlnID0geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCwgcmVzb2x1dGlvbiB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBHcmFwaFFMIE9yZ2FuaXphdGlvbiBpcyBjYW1lbENhc2U7IHRoZSByZXN0IG9mIHRoZSBhcHAgcmVhZHMgdGhlXG4gICAgLy8gc25ha2VfY2FzZSBzaGFwZSAvdjEvb3JnL2NvbmZpZyB1c2VkIHRvIHJldHVybi4gYHN0YXR1c2AgaXNuJ3QgZXhwb3NlZCBieVxuICAgIC8vIHRoZSBHcmFwaFFMIHR5cGUgKGFuZCBpc24ndCBjb25zdW1lZCBkb3duc3RyZWFtKSDigJQgZGVmYXVsdCBpdC5cbiAgICBvcmc6IHtcbiAgICAgIG9yZzoge1xuICAgICAgICBpZDogb3JnPy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnPy5zaG9ydE5hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnPy5kaXNwbGF5TmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmc/LmRvbWFpbiA/PyAnJyxcbiAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgY3JlYXRlZF9hdDogb3JnPy5jcmVhdGVkQXQgPz8gJycsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IG9yZz8udXBkYXRlZEF0ID8/ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdhdGVzOiAoXG4gICAgICAod2lkZ2V0Q29uZmlnPy5nYXRlcyA/PyBbXSkgYXMgQXJyYXk8e1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICB2YWx1ZT86IGJvb2xlYW47XG4gICAgICAgIGdyb3VwTmFtZT86IHN0cmluZztcbiAgICAgIH0+XG4gICAgKS5tYXAoXG4gICAgICAoZyk6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlID0+ICh7XG4gICAgICAgIG5hbWU6IGcubmFtZSxcbiAgICAgICAgdmFsdWU6IGcudmFsdWUsXG4gICAgICAgIGdyb3VwTmFtZTogZy5ncm91cE5hbWUsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM6IHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZz8uZXhwZXJpbWVudEFzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWcsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBNEJBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxxQkFBcUI7QUFLL0MsTUFBYUMsd0JBQTZDLENBQ3hEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVUMsMkNBQW9CLGFBQWEsQ0FBQztDQUM5RCxFQUNEO0NBQ0UsV0FBVztDQUNYLGFBQWE7Q0FDYixvQkFBb0I7Q0FDcEIsZ0JBQWdCLEVBQUU7Q0FDbEIsY0FBYyxDQUFDLEVBQUUsVUFBVUEsMkNBQW9CLGFBQWEsQ0FBQztDQUM5RCxDQUNGO0FBSUQsTUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDRDtBQUVELE1BQU0sMEJBQTBCLGFBQTZDO0FBQzNFLEtBQUssMEJBQWdELFNBQVMsU0FBUyxDQUNyRSxRQUFPO0FBRVQsT0FBTSxJQUFJLE1BQU0scUJBQXFCLFdBQVc7O0FBR2xELE1BQU0sMkJBQ0osaUJBQzZCO0NBQzdCLE1BQU0sRUFBRSxjQUFjO0FBQ3RCLEtBQUksQ0FBQyxVQUFX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
|
|
@@ -233,5 +233,5 @@ const fetchUnifiedGraphQLConfig = async (baseUrl, apiKey, userId, gateNames, sou
|
|
|
233
233
|
};
|
|
234
234
|
|
|
235
235
|
//#endregion
|
|
236
|
-
export { fetchUnifiedGraphQLConfig };
|
|
237
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykuXG5pbXBvcnQgdHlwZSB7IEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL2Vudml2ZUNvbmZpZ1NlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uIG9yXG4vLyBnZXRXaWRnZXRDb25maWcpIGludG8gdGhlIGNhbWVsQ2FzZSBHcmFwaFFsQ29uZmlnVmFsdWVzIHNoYXBlIHRoZSByZXN0IG9mXG4vLyB0aGUgdG9vbGtpdCBjb25zdW1lcy4gUmV0dXJucyBtb2NrIGNvbmZpZyB3aGVuIGNvbG9ycyBhcmUgYWJzZW50LlxuY29uc3QgdHJhbnNmb3JtVjNQcm9kdWN0c0NvbmZpZyA9IChcbiAgcHJvZHVjdHNDb25maWc6XG4gICAgfCB7XG4gICAgICAgIGZyb250ZW5kPzogeyB2YWx1ZXM/OiB7IG1lcmNoYW50X292ZXJyaWRlX2Nzcz86IHN0cmluZyB9IH07XG4gICAgICAgIHZfdGhyZWVfY29uZmlnPzogeyB2YWx1ZXM/OiBhbnkgfTtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZCxcbik6IEdyYXBoUWxDb25maWdWYWx1ZXMgPT4ge1xuICBjb25zdCB2M1Jvb3RDb25maWcgPSBwcm9kdWN0c0NvbmZpZz8udl90aHJlZV9jb25maWc/LnZhbHVlcztcbiAgY29uc3QgZnJvbnRlbmRWYWx1ZXMgPSBwcm9kdWN0c0NvbmZpZz8uZnJvbnRlbmQ/LnZhbHVlcztcblxuICBpZiAoIXYzUm9vdENvbmZpZz8uY29sb3JzKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCd0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnIHwgTm8gY29sb3JzIGZvdW5kLCByZXR1cm5pbmcgbW9jayBjb25maWcnKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3JzQ29uZmlnOiBtb2NrVjNDb2xvcnNDb25maWcsXG4gICAgICBmcm9udGVuZENvbmZpZzogbW9ja1YzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICAgICAgb3JnUGFnZUNvbmZpZzoge1xuICAgICAgICBwYWdlVmFyaWFudHM6IERFRkFVTFRfUEFHRV9WQVJJQU5UUyxcbiAgICAgICAgd2lkZ2V0Q29uZmlnczoge30sXG4gICAgICAgIG1vdW50aW5nQ29uZmlnczoge30sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdCB2M0Zyb250ZW5kQ29uZmlnID0gdjNGcm9udGVuZENvbmZpZ0NsZWFudXAoXG4gICAgdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZykgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuICApO1xuXG4gIGNvbnN0IG1lcmNoYW50T3ZlcnJpZGVDc3MgPVxuICAgIHYzRnJvbnRlbmRDb25maWcudWlDb25maWdzPy5tZXJjaGFudE92ZXJyaWRlQ3NzIHx8IGZyb250ZW5kVmFsdWVzPy5tZXJjaGFudF9vdmVycmlkZV9jc3M7XG5cbiAgY29uc3QgdjNNb3VudGluZ0NvbmZpZ3NBcnJheSA9ICh0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnPy5tb3VudGluZ19jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIHsga2V5OiBzdHJpbmc7IGNvbmZpZzogV2lkZ2V0TW91bnRpbmdDb25maWcgfVtdO1xuICBjb25zdCB2M01vdW50aW5nQ29uZmlncyA9IHYzTW91bnRpbmdDb25maWdzQXJyYXkucmVkdWNlKFxuICAgIChhY2MsIHsga2V5LCBjb25maWcgfSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnKGNvbmZpZywga2V5KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIG1vdW50aW5nIGNvbmZpZywgc2tpcHBpbmcnLCBlcnJvciwgeyBrZXkgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAge30gYXMgUmVjb3JkPHN0cmluZywgV2lkZ2V0TW91bnRpbmdDb25maWc+LFxuICApO1xuXG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LndpZGdldF9jb25maWdzKSA/P1xuICAgIFtdKSBhcyB1bmtub3duIGFzIFdpZGdldENvbmZpZ1YzW107XG4gIGNvbnN0IHYzV2lkZ2V0Q29uZmlncyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICB2M1dpZGdldENvbmZpZ3NBcnJheT8ubWFwKCh7IHdpZGdldENvbmZpZ0lkLCAuLi5yZXN0IH06IFdpZGdldENvbmZpZ1YzKSA9PiBbXG4gICAgICB3aWRnZXRDb25maWdJZCxcbiAgICAgIHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfSBhcyBXaWRnZXRDb25maWdWMyxcbiAgICBdKSxcbiAgKSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRDb25maWdWMz47XG5cbiAgY29uc3QgdjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10gPSBBcnJheS5pc0FycmF5KHYzUm9vdENvbmZpZz8ucGFnZV92YXJpYW50cylcbiAgICA/IHYzUm9vdENvbmZpZy5wYWdlX3ZhcmlhbnRzLnJlZHVjZSgoYWNjOiBQYWdlVmFyaWFudENvbmZpZ1tdLCB2YXJpYW50OiB1bmtub3duKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYWNjLnB1c2godmFsaWRhdGVBbmRUcmFuc2Zvcm1QYWdlVmFyaWFudHModmFyaWFudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGxvZ2dlci5sb2dXYXJuKCdJbnZhbGlkIHBhZ2UgdmFyaWFudCwgc2tpcHBpbmcnLCBlcnJvciwgeyB2YXJpYW50IH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSlcbiAgICA6IERFRkFVTFRfUEFHRV9WQVJJQU5UUztcblxuICBjb25zdCB2M0NvbG9yc0NvbmZpZyA9IHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/LmNvbG9ycz8udmFsdWVzKTtcblxuICByZXR1cm4ge1xuICAgIGNvbG9yc0NvbmZpZzogdjNDb2xvcnNDb25maWcgYXMgQ29sb3JzQ29uZmlnVjNSZXNwb25zZSxcbiAgICBmcm9udGVuZENvbmZpZzoge1xuICAgICAgLi4uKHYzRnJvbnRlbmRDb25maWcgYXMgRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlKSxcbiAgICAgIG1lcmNoYW50T3ZlcnJpZGVDc3MsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgfSxcbiAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICBwYWdlVmFyaWFudHM6IHYzcGFnZVZhcmlhbnRzLFxuICAgICAgd2lkZ2V0Q29uZmlnczogdjNXaWRnZXRDb25maWdzLFxuICAgICAgbW91bnRpbmdDb25maWdzOiB2M01vdW50aW5nQ29uZmlncyxcbiAgICB9LFxuICB9O1xufTtcblxuLy8gVGhlIGNhbWVsQ2FzZSBgZXhwZXJpbWVudEFzc2lnbm1lbnRzYCBHcmFwaFFMIHNoYXBlIOKGkiB0aGUgc25ha2VfY2FzZSB3aXJlXG4vLyBzaGFwZSBhbXBsaXR1ZGVTZXJ2aWNlIHJlYWRzIChpdCBwcmV2aW91c2x5IGFycml2ZWQgZnJvbSBSRVNUIC92MS9vcmcvY29uZmlnKS5cbmNvbnN0IHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzID0gKFxuICByYXc6XG4gICAgfCBSZWFkb25seUFycmF5PHtcbiAgICAgICAgbGF5ZXJOYW1lPzogc3RyaW5nO1xuICAgICAgICBuYW1lc3BhY2U/OiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFsnbmFtZXNwYWNlJ107XG4gICAgICAgIGFsbG9jYXRlZEV4cGVyaW1lbnROYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgZ3JvdXBOYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0+XG4gICAgfCB1bmRlZmluZWQsXG4pOiBPcmdDb25maWdFeHBlcmltZW50QXNzaWdubWVudFtdID0+XG4gIChyYXcgPz8gW10pLm1hcChhID0+ICh7XG4gICAgbGF5ZXJfbmFtZTogYS5sYXllck5hbWUsXG4gICAgbmFtZXNwYWNlOiBhLm5hbWVzcGFjZSxcbiAgICBhbGxvY2F0ZWRfZXhwZXJpbWVudF9uYW1lOiBhLmFsbG9jYXRlZEV4cGVyaW1lbnROYW1lLFxuICAgIGdyb3VwX25hbWU6IGEuZ3JvdXBOYW1lLFxuICB9KSk7XG5cbi8vIFRoZSB1bmlmaWVkIGBnZXRXaWRnZXRDb25maWdgIGNvbmZpZyBwYXRoIOKAlCBub3cgdGhlIHNpbmdsZSBzb3VyY2Ugb2Ygc2Vzc2lvblxuLy8gY29uZmlnLiBSZXR1cm5zIGV2ZXJ5dGhpbmcgdGhlIGNsaWVudCBuZWVkcyBpbiBvbmUgY2FsbDogb3JnIGlkZW50aXR5LFxuLy8gZmVhdHVyZSBnYXRlcywgYW5kIGV4cGVyaW1lbnQgYXNzaWdubWVudHMgKHdoaWNoIHVzZWQgdG8gY29tZSBmcm9tIFJFU1Rcbi8vIGAvdjEvb3JnL2NvbmZpZ2ApLCBwbHVzIHRoZSBwcm9kdWN0c0NvbmZpZyBhbmQgdGhlIHJlc29sdXRpb24gbWV0YWRhdGEgcHltb25vXG4vLyB1c2VkIHRvIHBpY2sgdGhlIHZlcnNpb24gKGNhbGxlcnMgdGhyZWFkIGByZXNvbHV0aW9uLmJhc2VWZXJzaW9uYCBpbnRvXG4vLyBkb3duc3RyZWFtIGluZmVyZW5jZSBzbyBpdCdzIHNjb3BlZCB0byB0aGUgdmVyc2lvbiB0aGF0IHByb2R1Y2VkIHRoZSByZW5kZXJlZFxuLy8gd2lkZ2V0cykuIGBnYXRlTmFtZXNgIHNlbGVjdHMgd2hpY2ggZ2F0ZXMgdG8gZXZhbHVhdGU7IGBzb3VyY2VgIGZlZWRzIFN0YXRzaWdcbi8vIHVzZXIgcHJvcGVydGllcy4gQSBgc3BpZmZ5X2NvbmZpZ192ZXJzaW9uYCAvIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIFVSTFxuLy8gcGFyYW0sIHdoZW4gcHJlc2VudCwgaXMgdGhyZWFkZWQgdGhyb3VnaCBhcyB0aGUgYHZlcnNpb25gIHZhcmlhYmxlIHRvIHBpbiBhXG4vLyBzcGVjaWZpYyB2ZXJzaW9uIChieXBhc3NlcyB0aGUgbWVyY2hhbnQgZXhwZXJpbWVudCDigJQgUUEgLyByb2xsYmFjaykuXG4vL1xuLy8gVGhyb3dzIG9uIG5ldHdvcmsvR3JhcGhRTCBmYWlsdXJlOiB3aXRoIG9yZyArIGdhdGVzIHNvdXJjZWQgaGVyZSwgdGhlcmUgaXMgbm9cbi8vIHBhcnRpYWwtcmVuZGVyIGZhbGxiYWNrIChpbmplY3QudHMgYWJvcnRzIGluamVjdGlvbiBvbiB0aGUgdGhyb3cpLCBtYXRjaGluZ1xuLy8gaG93IHRoZSBvbGQgL3YxL29yZy9jb25maWcgY2FsbCBiZWhhdmVkLlxuZXhwb3J0IGNvbnN0IGZldGNoVW5pZmllZEdyYXBoUUxDb25maWcgPSBhc3luYyAoXG4gIGJhc2VVcmw6IHN0cmluZyxcbiAgYXBpS2V5OiBzdHJpbmcsXG4gIHVzZXJJZDogc3RyaW5nLFxuICBnYXRlTmFtZXM6IHN0cmluZ1tdLFxuICBzb3VyY2U6IHN0cmluZyxcbik6IFByb21pc2U8RW52aXZlU2VydmljZUNvbmZpZz4gPT4ge1xuICBjb25zdCBxdWVyeSA9IGdldFdpZGdldENvbmZpZ1F1ZXJ5KCk7XG4gIGNvbnN0IHZlcnNpb24gPSBjb25maWdWZXJzaW9uT3ZlcnJpZGUoKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXBpS2V5fWAsXG4gICAgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHF1ZXJ5LCB2YXJpYWJsZXM6IHsgdXNlcklkLCB2ZXJzaW9uLCBnYXRlTmFtZXMsIHNvdXJjZSB9IH0pLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmlmaWVkIGNvbmZpZyByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICBpZiAocmVzdWx0LmVycm9ycykge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5pZmllZCBjb25maWcgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gIH1cblxuICBjb25zdCBtZSA9IHJlc3VsdC5kYXRhPy5tZTtcbiAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gbWU/LmdldFdpZGdldENvbmZpZztcbiAgY29uc3Qgb3JnID0gbWU/Lm9yZztcblxuICAvLyBBIG1hbGZvcm1lZCBwcm9kdWN0cyBjb25maWcgKGUuZy4gYW4gaW52YWxpZCBmbG9hdGluZy1idXR0b24gcG9zaXRpb24pXG4gIC8vIGRlZ3JhZGVzIHRvIG5vIGNvbmZpZyDigJQgd2lkZ2V0cyBmYWxsIGJhY2sgdG8gdGhlaXIgbW9jayBkZWZhdWx0cyDigJQgV0lUSE9VVFxuICAvLyBsb3NpbmcgdGhlIG9yZyAvIGdhdGVzIC8gZXhwZXJpbWVudHMgdGhhdCBjYW1lIGJhY2sgZmluZS4gVGhlIGZldGNoIGl0c2VsZlxuICAvLyBzdGlsbCB0aHJvd3MgYWJvdmU7IG9ubHkgdGhlIHByb2R1Y3RzLWNvbmZpZyB0cmFuc2Zvcm0gaXMgZ3VhcmRlZCBoZXJlLlxuICBjb25zdCByZXNvbHV0aW9uID0gd2lkZ2V0Q29uZmlnPy5yZXNvbHV0aW9uIGFzIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIGxldCBvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gIHRyeSB7XG4gICAgb3JnQ29uZmlnID0geyAuLi50cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnKHdpZGdldENvbmZpZz8ucHJvZHVjdHNDb25maWcpLCByZXNvbHV0aW9uIH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5sb2dFcnJvcignZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyB8IEVycm9yIHRyYW5zZm9ybWluZyBwcm9kdWN0cyBjb25maWcnLCBlcnIpO1xuICAgIG9yZ0NvbmZpZyA9IHsgY29sb3JzQ29uZmlnOiB1bmRlZmluZWQsIGZyb250ZW5kQ29uZmlnOiB1bmRlZmluZWQsIHJlc29sdXRpb24gfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gR3JhcGhRTCBPcmdhbml6YXRpb24gaXMgY2FtZWxDYXNlOyB0aGUgcmVzdCBvZiB0aGUgYXBwIHJlYWRzIHRoZVxuICAgIC8vIHNuYWtlX2Nhc2Ugc2hhcGUgL3YxL29yZy9jb25maWcgdXNlZCB0byByZXR1cm4uIGBzdGF0dXNgIGlzbid0IGV4cG9zZWQgYnlcbiAgICAvLyB0aGUgR3JhcGhRTCB0eXBlIChhbmQgaXNuJ3QgY29uc3VtZWQgZG93bnN0cmVhbSkg4oCUIGRlZmF1bHQgaXQuXG4gICAgb3JnOiB7XG4gICAgICBvcmc6IHtcbiAgICAgICAgaWQ6IG9yZz8uaWQgPz8gJycsXG4gICAgICAgIHNob3J0X25hbWU6IG9yZz8uc2hvcnROYW1lID8/ICcnLFxuICAgICAgICBkaXNwbGF5X25hbWU6IG9yZz8uZGlzcGxheU5hbWUgPz8gJycsXG4gICAgICAgIGRvbWFpbjogb3JnPy5kb21haW4gPz8gJycsXG4gICAgICAgIHN0YXR1czogJycsXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG9yZz8uY3JlYXRlZEF0ID8/ICcnLFxuICAgICAgICB1cGRhdGVkX2F0OiBvcmc/LnVwZGF0ZWRBdCA/PyAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnYXRlczogKFxuICAgICAgKHdpZGdldENvbmZpZz8uZ2F0ZXMgPz8gW10pIGFzIEFycmF5PHtcbiAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgdmFsdWU/OiBib29sZWFuO1xuICAgICAgICBncm91cE5hbWU/OiBzdHJpbmc7XG4gICAgICB9PlxuICAgICkubWFwKFxuICAgICAgKGcpOiBPcmdDb25maWdGZWF0dXJlR2F0ZSA9PiAoe1xuICAgICAgICBuYW1lOiBnLm5hbWUsXG4gICAgICAgIHZhbHVlOiBnLnZhbHVlLFxuICAgICAgICBncm91cE5hbWU6IGcuZ3JvdXBOYW1lLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBleHBlcmltZW50X2Fzc2lnbm1lbnRzOiB0b0V4cGVyaW1lbnRBc3NpZ25tZW50cyh3aWRnZXRDb25maWc/LmV4cGVyaW1lbnRBc3NpZ25tZW50cyksXG4gICAgb3JnQ29uZmlnLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQTRCQSxNQUFNLFNBQVMsSUFB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
|
|
236
|
+
export { fetchUnifiedGraphQLConfig, transformV3ProductsConfig };
|
|
237
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hHcmFwaFFMQ29uZmlnLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdIiwidjNwYWdlVmFyaWFudHM6IFBhZ2VWYXJpYW50Q29uZmlnW10iLCJvcmdDb25maWc6IEdyYXBoUWxDb25maWdWYWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZS9mZXRjaEdyYXBoUUxDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwLFxuICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcsXG4gIHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzLFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEZyb250ZW5kQ29uZmlnVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnVjMnO1xuaW1wb3J0IHsgQ29sb3JNYXBwaW5nVjMgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1YzJztcbi8vIFR5cGUtb25seTogYSB2YWx1ZSBpbXBvcnQgd291bGQgcHVsbCB0aGUgRmxvYXRpbmdCdXR0b24gY29tcG9uZW50IChhbmRcbi8vIFJlYWN0KSB0aHJvdWdoIHRoZSBwYWNrYWdlJ3MgY29tcG9uZW50IGluZGV4IGludG8gdGhlIGluamVjdGlvbiBidW5kbGUnc1xuLy8gcHJlLWNvbmZpZyBjaHVuay5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiB9IGZyb20gJ0BlbnZpdmUtYWkvcmVhY3QtdG9vbGtpdC12My9GbG9hdGluZ0J1dHRvbic7XG5pbXBvcnQgeyBnZXRXaWRnZXRDb25maWdRdWVyeSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5JztcbmltcG9ydCB7IG1vY2tWM0NvbG9yc0NvbmZpZywgbW9ja1YzRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvY29udGV4dHMvZ3JhcGhxbENvbnRleHQvbW9ja1YzQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZ1YzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgUGFnZVZhcmlhbnRDb25maWcsIFBhZ2VWYXJpYW50VGVzdFR5cGUsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhRbENvbmZpZ1ZhbHVlcyB9IGZyb20gJ3NyYy9jb250ZXh0cy9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBjb25maWdWZXJzaW9uT3ZlcnJpZGUgfSBmcm9tICdzcmMvdHlwZXMvY29uZmlnLXZlcnNpb25zJztcbmltcG9ydCB7XG4gIEV4cGVyaW1lbnRDb25maWdSZXNvbHV0aW9uTWV0YWRhdGEsXG4gIE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50LFxuICBPcmdDb25maWdGZWF0dXJlR2F0ZSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG4vLyBUeXBlLW9ubHkgaW1wb3J0IOKAlCBlcmFzZWQgYXQgY29tcGlsZSB0aW1lLCBzbyB0aGlzIGRvZXMgbm90IGNyZWF0ZSBhIHJ1bnRpbWVcbi8vIGltcG9ydCBjeWNsZSB3aXRoIGVudml2ZUNvbmZpZ1NlcnZpY2UgKHdoaWNoIGltcG9ydHMgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZykuXG5pbXBvcnQgdHlwZSB7IEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL2Vudml2ZUNvbmZpZ1NlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdmZXRjaEdyYXBoUUxDb25maWcnKTtcblxudHlwZSBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8RnJvbnRlbmRDb25maWdWMz47XG50eXBlIENvbG9yc0NvbmZpZ1YzUmVzcG9uc2UgPSBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8Q29sb3JNYXBwaW5nVjM+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQUdFX1ZBUklBTlRTOiBQYWdlVmFyaWFudENvbmZpZ1tdID0gW1xuICB7XG4gICAgdmFyaWFudElkOiAncGxwJyxcbiAgICB2YXJpYW50VHlwZTogJ3BscCcsXG4gICAgcGxwSWRFeHRyYWN0b3I6ICd1cmwtcmVzb2x2ZXItcGxwLWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnRJZDogJ3BkcCcsXG4gICAgdmFyaWFudFR5cGU6ICdwZHAnLFxuICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogJ3VybC1yZXNvbHZlci1wcm9kdWN0LWlkJyxcbiAgICB3aWRnZXRNb3VudGluZzogW10sXG4gICAgdmFyaWFudFRlc3RzOiBbeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5VcmxSZXNvbHZlciB9XSxcbiAgfSxcbl07XG5cbi8vIFN0cmluZy1saXRlcmFsIHZhbHVlcyBvZiB0aGUgRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiBlbnVtOyBrZWVwIGluIHN5bmNcbi8vIHdpdGggQGVudml2ZS1haS9yZWFjdC10b29sa2l0LXYzL0Zsb2F0aW5nQnV0dG9uL3R5cGVzL3R5cGVzLnRzLlxuY29uc3QgRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyA9IFtcbiAgJ2JvdHRvbS1sZWZ0JyxcbiAgJ21pZGRsZS1sZWZ0JyxcbiAgJ21pZGRsZS1yaWdodCcsXG4gICdib3R0b20tcmlnaHQnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgbWFwUG9zaXRpb25Ub0NhbWVsQ2FzZSA9IChwb3NpdGlvbjogc3RyaW5nKTogRmxvYXRpbmdCdXR0b25Mb2NhdGlvbiA9PiB7XG4gIGlmICgoRkxPQVRJTkdfQlVUVE9OX1BPU0lUSU9OUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMocG9zaXRpb24pKSB7XG4gICAgcmV0dXJuIHBvc2l0aW9uIGFzIEZsb2F0aW5nQnV0dG9uTG9jYXRpb247XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBvc2l0aW9uOiAke3Bvc2l0aW9ufWApO1xufTtcblxuY29uc3QgdjNGcm9udGVuZENvbmZpZ0NsZWFudXAgPSAoXG4gIHYzUm9vdENvbmZpZzogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlLFxuKTogRnJvbnRlbmRDb25maWdWM1Jlc3BvbnNlID0+IHtcbiAgY29uc3QgeyB1aUNvbmZpZ3MgfSA9IHYzUm9vdENvbmZpZztcbiAgaWYgKCF1aUNvbmZpZ3MpIHJldHVybiB2M1Jvb3RDb25maWc7XG4gIGNvbnN0IHsgZmxvYXRpbmdCdXR0b24sIGxvb2tBbmRGZWVsIH0gPSB1aUNvbmZpZ3MgYXMgYW55O1xuICBpZiAoIWZsb2F0aW5nQnV0dG9uIHx8ICFsb29rQW5kRmVlbCkgcmV0dXJuIHYzUm9vdENvbmZpZztcbiAgY29uc3QgeyBmb250U2l6ZSwgbGluZUhlaWdodCwgbGV0dGVyU3BhY2luZyB9ID0gbG9va0FuZEZlZWwudHlwb2dyYXBoeSBhcyBhbnk7XG4gIHJldHVybiB7XG4gICAgLi4udjNSb290Q29uZmlnLFxuICAgIHVpQ29uZmlnczoge1xuICAgICAgLi4udWlDb25maWdzLFxuICAgICAgZmxvYXRpbmdCdXR0b246IHtcbiAgICAgICAgLi4uZmxvYXRpbmdCdXR0b24sXG4gICAgICAgIHBvc2l0aW9uOiBtYXBQb3NpdGlvblRvQ2FtZWxDYXNlKFxuICAgICAgICAgIHYzUm9vdENvbmZpZy51aUNvbmZpZ3M/LmZsb2F0aW5nQnV0dG9uPy5wb3NpdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgbG9va0FuZEZlZWw6IHtcbiAgICAgICAgLi4ubG9va0FuZEZlZWwsXG4gICAgICAgIGNoYXRIZWFkZXJMb2dvRGFya1NyYzogbG9va0FuZEZlZWwuY2hhdEhlYWRlckxvZ29EYXJrU3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICBjaGF0SGVhZGVyTG9nb0xpZ2h0U3JjOiBsb29rQW5kRmVlbC5jaGF0SGVhZGVyTG9nb0xpZ2h0U3JjIHx8IGxvb2tBbmRGZWVsLmNoYXRIZWFkZXJMb2dvU3JjLFxuICAgICAgICB0eXBvZ3JhcGh5OiB7XG4gICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeSxcbiAgICAgICAgICBmb250U2l6ZToge1xuICAgICAgICAgICAgYjE6IGZvbnRTaXplPy5iMSB8fCBmb250U2l6ZT8uYl8xLFxuICAgICAgICAgICAgYjI6IGZvbnRTaXplPy5iMiB8fCBmb250U2l6ZT8uYl8yLFxuICAgICAgICAgICAgYjM6IGZvbnRTaXplPy5iMyB8fCBmb250U2l6ZT8uYl8zLFxuICAgICAgICAgICAgYjQ6IGZvbnRTaXplPy5iNCB8fCBmb250U2l6ZT8uYl80LFxuICAgICAgICAgICAgYjU6IGZvbnRTaXplPy5iNSB8fCBmb250U2l6ZT8uYl81LFxuICAgICAgICAgICAgaDE6IGZvbnRTaXplPy5oMSB8fCBmb250U2l6ZT8uaF8xLFxuICAgICAgICAgICAgaDI6IGZvbnRTaXplPy5oMiB8fCBmb250U2l6ZT8uaF8yLFxuICAgICAgICAgICAgaDM6IGZvbnRTaXplPy5oMyB8fCBmb250U2l6ZT8uaF8zLFxuICAgICAgICAgICAgbDE6IGZvbnRTaXplPy5sMSB8fCBmb250U2l6ZT8ubF8xLFxuICAgICAgICAgICAgbDI6IGZvbnRTaXplPy5sMiB8fCBmb250U2l6ZT8ubF8yLFxuICAgICAgICAgICAgdDE6IGZvbnRTaXplPy50MSB8fCBmb250U2l6ZT8udF8xLFxuICAgICAgICAgICAgdDI6IGZvbnRTaXplPy50MiB8fCBmb250U2l6ZT8udF8yLFxuICAgICAgICAgICAgdDM6IGZvbnRTaXplPy50MyB8fCBmb250U2l6ZT8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGV0dGVyU3BhY2luZzoge1xuICAgICAgICAgICAgLi4ubG9va0FuZEZlZWwudHlwb2dyYXBoeS5sZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgYjE6IGxldHRlclNwYWNpbmc/LmIxIHx8IGxldHRlclNwYWNpbmc/LmJfMSxcbiAgICAgICAgICAgIGIyOiBsZXR0ZXJTcGFjaW5nPy5iMiB8fCBsZXR0ZXJTcGFjaW5nPy5iXzIsXG4gICAgICAgICAgICBiMzogbGV0dGVyU3BhY2luZz8uYjMgfHwgbGV0dGVyU3BhY2luZz8uYl8zLFxuICAgICAgICAgICAgYjQ6IGxldHRlclNwYWNpbmc/LmI0IHx8IGxldHRlclNwYWNpbmc/LmJfNCxcbiAgICAgICAgICAgIGI1OiBsZXR0ZXJTcGFjaW5nPy5iNSB8fCBsZXR0ZXJTcGFjaW5nPy5iXzUsXG4gICAgICAgICAgICBoMTogbGV0dGVyU3BhY2luZz8uaDEgfHwgbGV0dGVyU3BhY2luZz8uaF8xLFxuICAgICAgICAgICAgaDI6IGxldHRlclNwYWNpbmc/LmgyIHx8IGxldHRlclNwYWNpbmc/LmhfMixcbiAgICAgICAgICAgIGgzOiBsZXR0ZXJTcGFjaW5nPy5oMyB8fCBsZXR0ZXJTcGFjaW5nPy5oXzMsXG4gICAgICAgICAgICBsMTogbGV0dGVyU3BhY2luZz8ubDEgfHwgbGV0dGVyU3BhY2luZz8ubF8xLFxuICAgICAgICAgICAgbDI6IGxldHRlclNwYWNpbmc/LmwyIHx8IGxldHRlclNwYWNpbmc/LmxfMixcbiAgICAgICAgICAgIHQxOiBsZXR0ZXJTcGFjaW5nPy50MSB8fCBsZXR0ZXJTcGFjaW5nPy50XzEsXG4gICAgICAgICAgICB0MjogbGV0dGVyU3BhY2luZz8udDIgfHwgbGV0dGVyU3BhY2luZz8udF8yLFxuICAgICAgICAgICAgdDM6IGxldHRlclNwYWNpbmc/LnQzIHx8IGxldHRlclNwYWNpbmc/LnRfMyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxpbmVIZWlnaHQ6IHtcbiAgICAgICAgICAgIC4uLmxvb2tBbmRGZWVsLnR5cG9ncmFwaHkubGluZUhlaWdodCxcbiAgICAgICAgICAgICcxMTQnOiBsaW5lSGVpZ2h0Py5saF8xMTQgfHwgbGluZUhlaWdodD8uWzExNF0sXG4gICAgICAgICAgICAnMTE2JzogbGluZUhlaWdodD8ubGhfMTE2IHx8IGxpbmVIZWlnaHQ/LlsxMTZdLFxuICAgICAgICAgICAgJzExOCc6IGxpbmVIZWlnaHQ/LmxoXzExOCB8fCBsaW5lSGVpZ2h0Py5bMTE4XSxcbiAgICAgICAgICAgICcxMjAnOiBsaW5lSGVpZ2h0Py5saF8xMjAgfHwgbGluZUhlaWdodD8uWzEyMF0sXG4gICAgICAgICAgICAnMTI0JzogbGluZUhlaWdodD8ubGhfMTI0IHx8IGxpbmVIZWlnaHQ/LlsxMjRdLFxuICAgICAgICAgICAgJzEyOCc6IGxpbmVIZWlnaHQ/LmxoXzEyOCB8fCBsaW5lSGVpZ2h0Py5bMTI4XSxcbiAgICAgICAgICAgICcxMzAnOiBsaW5lSGVpZ2h0Py5saF8xMzAgfHwgbGluZUhlaWdodD8uWzEzMF0sXG4gICAgICAgICAgICAnMTMzJzogbGluZUhlaWdodD8ubGhfMTMzIHx8IGxpbmVIZWlnaHQ/LlsxMzNdLFxuICAgICAgICAgICAgJzE0MCc6IGxpbmVIZWlnaHQ/LmxoXzE0MCB8fCBsaW5lSGVpZ2h0Py5bMTQwXSxcbiAgICAgICAgICAgICcxNDgnOiBsaW5lSGVpZ2h0Py5saF8xNDggfHwgbGluZUhlaWdodD8uWzE0OF0sXG4gICAgICAgICAgICBiMTogbGluZUhlaWdodD8uYjEgfHwgbGluZUhlaWdodD8uYl8xLFxuICAgICAgICAgICAgYjI6IGxpbmVIZWlnaHQ/LmIyIHx8IGxpbmVIZWlnaHQ/LmJfMixcbiAgICAgICAgICAgIGIzOiBsaW5lSGVpZ2h0Py5iMyB8fCBsaW5lSGVpZ2h0Py5iXzMsXG4gICAgICAgICAgICBiNDogbGluZUhlaWdodD8uYjQgfHwgbGluZUhlaWdodD8uYl80LFxuICAgICAgICAgICAgYjU6IGxpbmVIZWlnaHQ/LmI1IHx8IGxpbmVIZWlnaHQ/LmJfNSxcbiAgICAgICAgICAgIGgxOiBsaW5lSGVpZ2h0Py5oMSB8fCBsaW5lSGVpZ2h0Py5oXzEsXG4gICAgICAgICAgICBoMjogbGluZUhlaWdodD8uaDIgfHwgbGluZUhlaWdodD8uaF8yLFxuICAgICAgICAgICAgaDM6IGxpbmVIZWlnaHQ/LmgzIHx8IGxpbmVIZWlnaHQ/LmhfMyxcbiAgICAgICAgICAgIGwxOiBsaW5lSGVpZ2h0Py5sMSB8fCBsaW5lSGVpZ2h0Py5sXzEsXG4gICAgICAgICAgICBsMjogbGluZUhlaWdodD8ubDIgfHwgbGluZUhlaWdodD8ubF8yLFxuICAgICAgICAgICAgdDE6IGxpbmVIZWlnaHQ/LnQxIHx8IGxpbmVIZWlnaHQ/LnRfMSxcbiAgICAgICAgICAgIHQyOiBsaW5lSGVpZ2h0Py50MiB8fCBsaW5lSGVpZ2h0Py50XzIsXG4gICAgICAgICAgICB0MzogbGluZUhlaWdodD8udDMgfHwgbGluZUhlaWdodD8udF8zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUdXJucyBhIHJhdyBwcm9kdWN0c0NvbmZpZyBwYXlsb2FkIChmcm9tIGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uLFxuLy8gZ2V0V2lkZ2V0Q29uZmlnLCBvciB0aGUgL3YxL3Nlc3Npb24vYm9vdHN0cmFwIHdpZGdldF9jb25maWcpIGludG8gdGhlXG4vLyBjYW1lbENhc2UgR3JhcGhRbENvbmZpZ1ZhbHVlcyBzaGFwZSB0aGUgcmVzdCBvZiB0aGUgdG9vbGtpdCBjb25zdW1lcy5cbi8vIFJldHVybnMgbW9jayBjb25maWcgd2hlbiBjb2xvcnMgYXJlIGFic2VudC4gRXhwb3J0ZWQgc28gZmV0Y2hCb290c3RyYXBDb25maWdcbi8vIHJldXNlcyB0aGUgZXhhY3Qgc2FtZSB0cmFuc2Zvcm0gKGJvb3RzdHJhcCdzIHByb2R1Y3RzX2NvbmZpZyBjYXJyaWVzIHRoZSBzYW1lXG4vLyBgLntzZWN0aW9ufS52YWx1ZXNgIHNoYXBlIGFzIGdldFdpZGdldENvbmZpZydzIHByb2R1Y3RzQ29uZmlnKS5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WM1Byb2R1Y3RzQ29uZmlnID0gKFxuICBwcm9kdWN0c0NvbmZpZzpcbiAgICB8IHtcbiAgICAgICAgZnJvbnRlbmQ/OiB7IHZhbHVlcz86IHsgbWVyY2hhbnRfb3ZlcnJpZGVfY3NzPzogc3RyaW5nIH0gfTtcbiAgICAgICAgdl90aHJlZV9jb25maWc/OiB7IHZhbHVlcz86IGFueSB9O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkLFxuKTogR3JhcGhRbENvbmZpZ1ZhbHVlcyA9PiB7XG4gIGNvbnN0IHYzUm9vdENvbmZpZyA9IHByb2R1Y3RzQ29uZmlnPy52X3RocmVlX2NvbmZpZz8udmFsdWVzO1xuICBjb25zdCBmcm9udGVuZFZhbHVlcyA9IHByb2R1Y3RzQ29uZmlnPy5mcm9udGVuZD8udmFsdWVzO1xuXG4gIGlmICghdjNSb290Q29uZmlnPy5jb2xvcnMpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ3RyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcgfCBObyBjb2xvcnMgZm91bmQsIHJldHVybmluZyBtb2NrIGNvbmZpZycpO1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcnNDb25maWc6IG1vY2tWM0NvbG9yc0NvbmZpZyxcbiAgICAgIGZyb250ZW5kQ29uZmlnOiBtb2NrVjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICAgICBvcmdQYWdlQ29uZmlnOiB7XG4gICAgICAgIHBhZ2VWYXJpYW50czogREVGQVVMVF9QQUdFX1ZBUklBTlRTLFxuICAgICAgICB3aWRnZXRDb25maWdzOiB7fSxcbiAgICAgICAgbW91bnRpbmdDb25maWdzOiB7fSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHYzRnJvbnRlbmRDb25maWcgPSB2M0Zyb250ZW5kQ29uZmlnQ2xlYW51cChcbiAgICB0cmFuc2Zvcm1TbmFrZVRvQ2FtZWwodjNSb290Q29uZmlnKSBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UsXG4gICk7XG5cbiAgY29uc3QgbWVyY2hhbnRPdmVycmlkZUNzcyA9XG4gICAgdjNGcm9udGVuZENvbmZpZy51aUNvbmZpZ3M/Lm1lcmNoYW50T3ZlcnJpZGVDc3MgfHwgZnJvbnRlbmRWYWx1ZXM/Lm1lcmNoYW50X292ZXJyaWRlX2NzcztcblxuICBjb25zdCB2M01vdW50aW5nQ29uZmlnc0FycmF5ID0gKHRyYW5zZm9ybVNuYWtlVG9DYW1lbCh2M1Jvb3RDb25maWc/Lm1vdW50aW5nX2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgeyBrZXk6IHN0cmluZzsgY29uZmlnOiBXaWRnZXRNb3VudGluZ0NvbmZpZyB9W107XG4gIGNvbnN0IHYzTW91bnRpbmdDb25maWdzID0gdjNNb3VudGluZ0NvbmZpZ3NBcnJheS5yZWR1Y2UoXG4gICAgKGFjYywgeyBrZXksIGNvbmZpZyB9KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbGlkYXRlQW5kVHJhbnNmb3JtTW91bnRpbmdDb25maWcoY29uZmlnLCBrZXkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgbW91bnRpbmcgY29uZmlnLCBza2lwcGluZycsIGVycm9yLCB7IGtleSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSxcbiAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBXaWRnZXRNb3VudGluZ0NvbmZpZz4sXG4gICk7XG5cbiAgY29uc3QgdjNXaWRnZXRDb25maWdzQXJyYXkgPSAodHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8ud2lkZ2V0X2NvbmZpZ3MpID8/XG4gICAgW10pIGFzIHVua25vd24gYXMgV2lkZ2V0Q29uZmlnVjNbXTtcbiAgY29uc3QgdjNXaWRnZXRDb25maWdzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHYzV2lkZ2V0Q29uZmlnc0FycmF5Py5tYXAoKHsgd2lkZ2V0Q29uZmlnSWQsIC4uLnJlc3QgfTogV2lkZ2V0Q29uZmlnVjMpID0+IFtcbiAgICAgIHdpZGdldENvbmZpZ0lkLFxuICAgICAgeyB3aWRnZXRDb25maWdJZCwgLi4ucmVzdCB9IGFzIFdpZGdldENvbmZpZ1YzLFxuICAgIF0pLFxuICApIGFzIFJlY29yZDxzdHJpbmcsIFdpZGdldENvbmZpZ1YzPjtcblxuICBjb25zdCB2M3BhZ2VWYXJpYW50czogUGFnZVZhcmlhbnRDb25maWdbXSA9IEFycmF5LmlzQXJyYXkodjNSb290Q29uZmlnPy5wYWdlX3ZhcmlhbnRzKVxuICAgID8gdjNSb290Q29uZmlnLnBhZ2VfdmFyaWFudHMucmVkdWNlKChhY2M6IFBhZ2VWYXJpYW50Q29uZmlnW10sIHZhcmlhbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhY2MucHVzaCh2YWxpZGF0ZUFuZFRyYW5zZm9ybVBhZ2VWYXJpYW50cyh2YXJpYW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ1dhcm4oJ0ludmFsaWQgcGFnZSB2YXJpYW50LCBza2lwcGluZycsIGVycm9yLCB7IHZhcmlhbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKVxuICAgIDogREVGQVVMVF9QQUdFX1ZBUklBTlRTO1xuXG4gIGNvbnN0IHYzQ29sb3JzQ29uZmlnID0gdHJhbnNmb3JtU25ha2VUb0NhbWVsKHYzUm9vdENvbmZpZz8uY29sb3JzPy52YWx1ZXMpO1xuXG4gIHJldHVybiB7XG4gICAgY29sb3JzQ29uZmlnOiB2M0NvbG9yc0NvbmZpZyBhcyBDb2xvcnNDb25maWdWM1Jlc3BvbnNlLFxuICAgIGZyb250ZW5kQ29uZmlnOiB7XG4gICAgICAuLi4odjNGcm9udGVuZENvbmZpZyBhcyBGcm9udGVuZENvbmZpZ1YzUmVzcG9uc2UpLFxuICAgICAgbWVyY2hhbnRPdmVycmlkZUNzcyxcbiAgICAgIHdpZGdldENvbmZpZ3M6IHYzV2lkZ2V0Q29uZmlncyxcbiAgICB9LFxuICAgIG9yZ1BhZ2VDb25maWc6IHtcbiAgICAgIHBhZ2VWYXJpYW50czogdjNwYWdlVmFyaWFudHMsXG4gICAgICB3aWRnZXRDb25maWdzOiB2M1dpZGdldENvbmZpZ3MsXG4gICAgICBtb3VudGluZ0NvbmZpZ3M6IHYzTW91bnRpbmdDb25maWdzLFxuICAgIH0sXG4gIH07XG59O1xuXG4vLyBUaGUgY2FtZWxDYXNlIGBleHBlcmltZW50QXNzaWdubWVudHNgIEdyYXBoUUwgc2hhcGUg4oaSIHRoZSBzbmFrZV9jYXNlIHdpcmVcbi8vIHNoYXBlIGFtcGxpdHVkZVNlcnZpY2UgcmVhZHMgKGl0IHByZXZpb3VzbHkgYXJyaXZlZCBmcm9tIFJFU1QgL3YxL29yZy9jb25maWcpLlxuY29uc3QgdG9FeHBlcmltZW50QXNzaWdubWVudHMgPSAoXG4gIHJhdzpcbiAgICB8IFJlYWRvbmx5QXJyYXk8e1xuICAgICAgICBsYXllck5hbWU/OiBzdHJpbmc7XG4gICAgICAgIG5hbWVzcGFjZT86IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50WyduYW1lc3BhY2UnXTtcbiAgICAgICAgYWxsb2NhdGVkRXhwZXJpbWVudE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICBncm91cE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgfT5cbiAgICB8IHVuZGVmaW5lZCxcbik6IE9yZ0NvbmZpZ0V4cGVyaW1lbnRBc3NpZ25tZW50W10gPT5cbiAgKHJhdyA/PyBbXSkubWFwKGEgPT4gKHtcbiAgICBsYXllcl9uYW1lOiBhLmxheWVyTmFtZSxcbiAgICBuYW1lc3BhY2U6IGEubmFtZXNwYWNlLFxuICAgIGFsbG9jYXRlZF9leHBlcmltZW50X25hbWU6IGEuYWxsb2NhdGVkRXhwZXJpbWVudE5hbWUsXG4gICAgZ3JvdXBfbmFtZTogYS5ncm91cE5hbWUsXG4gIH0pKTtcblxuLy8gVGhlIHVuaWZpZWQgYGdldFdpZGdldENvbmZpZ2AgY29uZmlnIHBhdGgg4oCUIG5vdyB0aGUgc2luZ2xlIHNvdXJjZSBvZiBzZXNzaW9uXG4vLyBjb25maWcuIFJldHVybnMgZXZlcnl0aGluZyB0aGUgY2xpZW50IG5lZWRzIGluIG9uZSBjYWxsOiBvcmcgaWRlbnRpdHksXG4vLyBmZWF0dXJlIGdhdGVzLCBhbmQgZXhwZXJpbWVudCBhc3NpZ25tZW50cyAod2hpY2ggdXNlZCB0byBjb21lIGZyb20gUkVTVFxuLy8gYC92MS9vcmcvY29uZmlnYCksIHBsdXMgdGhlIHByb2R1Y3RzQ29uZmlnIGFuZCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm9cbi8vIHVzZWQgdG8gcGljayB0aGUgdmVyc2lvbiAoY2FsbGVycyB0aHJlYWQgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG9cbi8vIGRvd25zdHJlYW0gaW5mZXJlbmNlIHNvIGl0J3Mgc2NvcGVkIHRvIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWQgdGhlIHJlbmRlcmVkXG4vLyB3aWRnZXRzKS4gYGdhdGVOYW1lc2Agc2VsZWN0cyB3aGljaCBnYXRlcyB0byBldmFsdWF0ZTsgYHNvdXJjZWAgZmVlZHMgU3RhdHNpZ1xuLy8gdXNlciBwcm9wZXJ0aWVzLiBBIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgVVJMXG4vLyBwYXJhbSwgd2hlbiBwcmVzZW50LCBpcyB0aHJlYWRlZCB0aHJvdWdoIGFzIHRoZSBgdmVyc2lvbmAgdmFyaWFibGUgdG8gcGluIGFcbi8vIHNwZWNpZmljIHZlcnNpb24gKGJ5cGFzc2VzIHRoZSBtZXJjaGFudCBleHBlcmltZW50IOKAlCBRQSAvIHJvbGxiYWNrKS5cbi8vXG4vLyBUaHJvd3Mgb24gbmV0d29yay9HcmFwaFFMIGZhaWx1cmU6IHdpdGggb3JnICsgZ2F0ZXMgc291cmNlZCBoZXJlLCB0aGVyZSBpcyBub1xuLy8gcGFydGlhbC1yZW5kZXIgZmFsbGJhY2sgKGluamVjdC50cyBhYm9ydHMgaW5qZWN0aW9uIG9uIHRoZSB0aHJvdyksIG1hdGNoaW5nXG4vLyBob3cgdGhlIG9sZCAvdjEvb3JnL2NvbmZpZyBjYWxsIGJlaGF2ZWQuXG5leHBvcnQgY29uc3QgZmV0Y2hVbmlmaWVkR3JhcGhRTENvbmZpZyA9IGFzeW5jIChcbiAgYmFzZVVybDogc3RyaW5nLFxuICBhcGlLZXk6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGdhdGVOYW1lczogc3RyaW5nW10sXG4gIHNvdXJjZTogc3RyaW5nLFxuKTogUHJvbWlzZTxFbnZpdmVTZXJ2aWNlQ29uZmlnPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gZ2V0V2lkZ2V0Q29uZmlnUXVlcnkoKTtcbiAgY29uc3QgdmVyc2lvbiA9IGNvbmZpZ1ZlcnNpb25PdmVycmlkZSgpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2Jhc2VVcmx9L3YxL2dyYXBocWxgLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthcGlLZXl9YCxcbiAgICB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcXVlcnksIHZhcmlhYmxlczogeyB1c2VySWQsIHZlcnNpb24sIGdhdGVOYW1lcywgc291cmNlIH0gfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaWZpZWQgY29uZmlnIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmlmaWVkIGNvbmZpZyBHcmFwaFFMIGVycm9yczogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKX1gKTtcbiAgfVxuXG4gIGNvbnN0IG1lID0gcmVzdWx0LmRhdGE/Lm1lO1xuICBjb25zdCB3aWRnZXRDb25maWcgPSBtZT8uZ2V0V2lkZ2V0Q29uZmlnO1xuICBjb25zdCBvcmcgPSBtZT8ub3JnO1xuXG4gIC8vIEEgbWFsZm9ybWVkIHByb2R1Y3RzIGNvbmZpZyAoZS5nLiBhbiBpbnZhbGlkIGZsb2F0aW5nLWJ1dHRvbiBwb3NpdGlvbilcbiAgLy8gZGVncmFkZXMgdG8gbm8gY29uZmlnIOKAlCB3aWRnZXRzIGZhbGwgYmFjayB0byB0aGVpciBtb2NrIGRlZmF1bHRzIOKAlCBXSVRIT1VUXG4gIC8vIGxvc2luZyB0aGUgb3JnIC8gZ2F0ZXMgLyBleHBlcmltZW50cyB0aGF0IGNhbWUgYmFjayBmaW5lLiBUaGUgZmV0Y2ggaXRzZWxmXG4gIC8vIHN0aWxsIHRocm93cyBhYm92ZTsgb25seSB0aGUgcHJvZHVjdHMtY29uZmlnIHRyYW5zZm9ybSBpcyBndWFyZGVkIGhlcmUuXG4gIGNvbnN0IHJlc29sdXRpb24gPSB3aWRnZXRDb25maWc/LnJlc29sdXRpb24gYXMgRXhwZXJpbWVudENvbmZpZ1Jlc29sdXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgbGV0IG9yZ0NvbmZpZzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgdHJ5IHtcbiAgICBvcmdDb25maWcgPSB7IC4uLnRyYW5zZm9ybVYzUHJvZHVjdHNDb25maWcod2lkZ2V0Q29uZmlnPy5wcm9kdWN0c0NvbmZpZyksIHJlc29sdXRpb24gfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdmZXRjaFVuaWZpZWRHcmFwaFFMQ29uZmlnIHwgRXJyb3IgdHJhbnNmb3JtaW5nIHByb2R1Y3RzIGNvbmZpZycsIGVycik7XG4gICAgb3JnQ29uZmlnID0geyBjb2xvcnNDb25maWc6IHVuZGVmaW5lZCwgZnJvbnRlbmRDb25maWc6IHVuZGVmaW5lZCwgcmVzb2x1dGlvbiB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBHcmFwaFFMIE9yZ2FuaXphdGlvbiBpcyBjYW1lbENhc2U7IHRoZSByZXN0IG9mIHRoZSBhcHAgcmVhZHMgdGhlXG4gICAgLy8gc25ha2VfY2FzZSBzaGFwZSAvdjEvb3JnL2NvbmZpZyB1c2VkIHRvIHJldHVybi4gYHN0YXR1c2AgaXNuJ3QgZXhwb3NlZCBieVxuICAgIC8vIHRoZSBHcmFwaFFMIHR5cGUgKGFuZCBpc24ndCBjb25zdW1lZCBkb3duc3RyZWFtKSDigJQgZGVmYXVsdCBpdC5cbiAgICBvcmc6IHtcbiAgICAgIG9yZzoge1xuICAgICAgICBpZDogb3JnPy5pZCA/PyAnJyxcbiAgICAgICAgc2hvcnRfbmFtZTogb3JnPy5zaG9ydE5hbWUgPz8gJycsXG4gICAgICAgIGRpc3BsYXlfbmFtZTogb3JnPy5kaXNwbGF5TmFtZSA/PyAnJyxcbiAgICAgICAgZG9tYWluOiBvcmc/LmRvbWFpbiA/PyAnJyxcbiAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgY3JlYXRlZF9hdDogb3JnPy5jcmVhdGVkQXQgPz8gJycsXG4gICAgICAgIHVwZGF0ZWRfYXQ6IG9yZz8udXBkYXRlZEF0ID8/ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGdhdGVzOiAoXG4gICAgICAod2lkZ2V0Q29uZmlnPy5nYXRlcyA/PyBbXSkgYXMgQXJyYXk8e1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICB2YWx1ZT86IGJvb2xlYW47XG4gICAgICAgIGdyb3VwTmFtZT86IHN0cmluZztcbiAgICAgIH0+XG4gICAgKS5tYXAoXG4gICAgICAoZyk6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlID0+ICh7XG4gICAgICAgIG5hbWU6IGcubmFtZSxcbiAgICAgICAgdmFsdWU6IGcudmFsdWUsXG4gICAgICAgIGdyb3VwTmFtZTogZy5ncm91cE5hbWUsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGV4cGVyaW1lbnRfYXNzaWdubWVudHM6IHRvRXhwZXJpbWVudEFzc2lnbm1lbnRzKHdpZGdldENvbmZpZz8uZXhwZXJpbWVudEFzc2lnbm1lbnRzKSxcbiAgICBvcmdDb25maWcsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBNEJBLE1BQU0sU0FBUyxJQUFJQSxlQUFPLHFCQUFxQjtBQUsvQyxNQUFhQyx3QkFBNkMsQ0FDeEQ7Q0FDRSxXQUFXO0NBQ1gsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixnQkFBZ0IsRUFBRTtDQUNsQixjQUFjLENBQUMsRUFBRSxVQUFVLG9CQUFvQixhQUFhLENBQUM7Q0FDOUQsRUFDRDtDQUNFLFdBQVc7Q0FDWCxhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCLGdCQUFnQixFQUFFO0NBQ2xCLGNBQWMsQ0FBQyxFQUFFLFVBQVUsb0JBQW9CLGFBQWEsQ0FBQztDQUM5RCxDQUNGO0FBSUQsTUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDRDtBQUVELE1BQU0sMEJBQTBCLGFBQTZDO0FBQzNFLEtBQUssMEJBQWdELFNBQVMsU0FBUyxDQUNyRSxRQUFPO0FBRVQsT0FBTSxJQUFJLE1BQU0scUJBQXFCLFdBQVc7O0FBR2xELE1BQU0sMkJBQ0osaUJBQzZCO0NBQzdCLE1BQU0sRUFBRSxjQUFjO0FBQ3RCLEtBQUksQ0FBQyxVQUFXLFFBQU87Q0FDdkIsTUFBTSxFQUFFLGdCQUFnQixnQkFBZ0I7QUFDeEMsS0FBSSxDQUFDLGtCQUFrQixDQUFDLFlBQWEsUUFBTztDQUM1QyxNQUFNLEVBQUUsVUFBVSxZQUFZLGtCQUFrQixZQUFZO0FBQzVELFFBQU87RUFDTCxHQUFHO0VBQ0gsV0FBVztHQUNULEdBQUc7R0FDSCxnQkFBZ0I7SUFDZCxHQUFHO0lBQ0gsVUFBVSx1QkFDUixhQUFhLFdBQVcsZ0JBQWdCLFNBQ3pD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
|