tnx-shared 5.2.3 → 5.2.4
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/assets/gulpfile.js +4 -12
- package/bundles/tnx-shared.umd.js +29 -19
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/environment-schema.d.ts.map +1 -1
- package/esm2015/classes/environment-schema.js +24 -17
- package/esm2015/classes/public-function.js +2 -2
- package/esm2015/intercepters/send-access-token.interceptor.js +2 -2
- package/esm2015/services/environment.service.js +4 -1
- package/fesm2015/tnx-shared.js +29 -19
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +3 -3
- package/services/environment.service.d.ts +1 -0
- package/services/environment.service.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-schema.d.ts","sourceRoot":"../../../../projects/tnx-shared/src/lib/","sources":["classes/environment-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"environment-schema.d.ts","sourceRoot":"../../../../projects/tnx-shared/src/lib/","sources":["classes/environment-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,9 @@ export const clone = (obj) => {
|
|
|
46
46
|
return undefined;
|
|
47
47
|
};
|
|
48
48
|
export const mergeJSON = (target, source) => {
|
|
49
|
+
if (Object.keys(source).length == 0) {
|
|
50
|
+
return target;
|
|
51
|
+
}
|
|
49
52
|
if (isArray(source)) {
|
|
50
53
|
if (!isArray(target)) {
|
|
51
54
|
target = [];
|
|
@@ -132,26 +135,30 @@ export const getEnvironmentDataNew = (personalName, scopeName, customPath = '')
|
|
|
132
135
|
const commonMasterDataApi = window.commonMasterDataApi;
|
|
133
136
|
const appXhr = new XMLHttpRequest();
|
|
134
137
|
appXhr.open('GET', `${commonMasterDataApi}v5/ConfigAndSetting/GetAppConfig`, false);
|
|
135
|
-
|
|
138
|
+
// Gọi api của mình thì ko cần logic cache này, logic này do phía api quyết định xem có cache không và cache bao lâu
|
|
139
|
+
// appXhr.setRequestHeader('Cache-Control', 'no-cache, no-store, max-age=0');
|
|
136
140
|
appXhr.send(null);
|
|
137
141
|
const resGetAppConfig = appXhr.responseText;
|
|
138
142
|
let op = JSON.parse(resGetAppConfig).data;
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (op.apps) {
|
|
147
|
-
Object.keys(op.apps).forEach(appCode => {
|
|
148
|
-
op.apps[appCode].code = appCode.toLowerCase();
|
|
149
|
-
});
|
|
143
|
+
// Nếu là prod thì không cần đọc cấu hình từ json nữa
|
|
144
|
+
if (personalName != 'prod') {
|
|
145
|
+
const res = [];
|
|
146
|
+
res.push(getEnvironmentByName(personalName, scopeName, customPath));
|
|
147
|
+
while (res.length > 0) {
|
|
148
|
+
const source = JSON.parse(res.shift());
|
|
149
|
+
op = mergeJSON(op, source);
|
|
150
150
|
}
|
|
151
|
-
if (op
|
|
152
|
-
|
|
153
|
-
op.
|
|
154
|
-
|
|
151
|
+
if (op) {
|
|
152
|
+
if (op.apps) {
|
|
153
|
+
Object.keys(op.apps).forEach(appCode => {
|
|
154
|
+
op.apps[appCode].code = appCode.toLowerCase();
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
if (op.services) {
|
|
158
|
+
Object.keys(op.services).forEach(appCode => {
|
|
159
|
+
op.services[appCode].code = appCode.toLowerCase();
|
|
160
|
+
});
|
|
161
|
+
}
|
|
155
162
|
}
|
|
156
163
|
}
|
|
157
164
|
return op;
|
|
@@ -188,4 +195,4 @@ export const cloneOld = (obj) => {
|
|
|
188
195
|
return JSON.parse(JSON.stringify(obj));
|
|
189
196
|
return null;
|
|
190
197
|
};
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNsYXNzZXMvZW52aXJvbm1lbnQtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVLQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNuQyxPQUFPLENBQUMsR0FBRyxZQUFZLE1BQU0sQ0FBQztXQUN2QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7V0FDYixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7V0FDZCxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7V0FDWixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7V0FDaEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1dBQ2YsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1dBQ2YsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDNUIsT0FBTyxHQUFHLFlBQVksTUFBTSxDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQzFCLE9BQU8sR0FBRyxZQUFZLElBQUksQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUM5QixPQUFPLEdBQUcsWUFBWSxRQUFRLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDN0IsT0FBTyxHQUFHLFlBQVksT0FBTyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEs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LElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDdkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3hDLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQzVCLElBQUksR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW51bVR5cGVTcGxhc2ggfSBmcm9tICcuLi9jb21wb25lbnRzL3NwbGFzaC1jb21wb25lbnQvc3BsYXNoLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21pemVVaU1vZGVsIH0gZnJvbSAnLi4vc2VydmljZXMvY3VzdG9taXplLXVpLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudFNjaGVtYSB7XHJcbiAgICBwcm9kdWN0aW9uOiBib29sZWFuO1xyXG4gICAgYXBpVmVyc2lvbjogc3RyaW5nO1xyXG4gICAgaG1yOiBib29sZWFuO1xyXG4gICAgYXBwTWV0YWRhdGE6IHtcclxuICAgICAgICBtYWluOiB7XHJcbiAgICAgICAgICAgIGRlZmF1bHRGZW1hbGVBdmF0YXI6IHN0cmluZztcclxuICAgICAgICAgICAgZGVmYXVsdE1hbGVBdmF0YXI6IHN0cmluZztcclxuICAgICAgICAgICAgZGlhQ2hpTmdheVRoYW5nOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGZhdmljb246IHN0cmluZztcclxuICAgICAgICAgICAgbG9nbzogc3RyaW5nO1xyXG4gICAgICAgICAgICBvd25lcjogc3RyaW5nO1xyXG4gICAgICAgICAgICBzaG93RGVmYXVsdFNldHRpbmc6IGJvb2xlYW47XHJcbiAgICAgICAgICAgIHRlblRydW9uZzogc3RyaW5nO1xyXG4gICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgYmFzZUhyZWY6IGFueTtcclxuICAgICAgICBnYXRld2F5OiBzdHJpbmc7XHJcbiAgICAgICAgZ2F0ZXdheU9sZDogc3RyaW5nO1xyXG4gICAgICAgIGdhdGV3YXlTdWJwYXRoOiBzdHJpbmc7XHJcbiAgICAgICAgYXBwR2F0ZXdheTogc3RyaW5nO1xyXG4gICAgICAgIGRvY3VtZW50U2VydmVyOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgbWFqb3JBcGlWZXJzaW9uOiBzdHJpbmc7XHJcbiAgICBzZXJ2aWNlczoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IHtcclxuICAgICAgICAgICAgY29kZTogc3RyaW5nO1xyXG4gICAgICAgICAgICB1c2VMb2NhbDogYm9vbGVhbjtcclxuICAgICAgICAgICAgdXNlT2xkVmVyc2lvbjogYm9vbGVhbjtcclxuICAgICAgICAgICAgYXBpVmVyc2lvbjogc3RyaW5nO1xyXG4gICAgICAgICAgICBsb2NhbEdycGNFbmRwb2ludDogc3RyaW5nO1xyXG4gICAgICAgICAgICBsb2NhbEh0dHBFbmRwb2ludDogc3RyaW5nO1xyXG4gICAgICAgICAgICBsb2NhbEh0dHBFbmRwb2ludE9sZDogc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBhcHBzOiB7XHJcbiAgICAgICAgW2tleTogc3RyaW5nXToge1xyXG4gICAgICAgICAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGNvbHVtbjogbnVtYmVyO1xyXG4gICAgICAgICAgICBkZWZhdWx0UmVkaXJlY3Q6IHN0cmluZztcclxuICAgICAgICAgICAgdXJsOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGljb246IHN0cmluZztcclxuICAgICAgICAgICAgdXNlTG9jYWw6IGJvb2xlYW47XHJcbiAgICAgICAgICAgIGxvY2FsRW5kcG9pbnQ6IHN0cmluZztcclxuICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcclxuICAgICAgICAgICAgbG9uZ1RpdGxlOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHNob3dEZWZhdWx0U2V0dGluZzogYm9vbGVhbjtcclxuICAgICAgICAgICAgdmlzaWJpbGU6IGJvb2xlYW47XHJcbiAgICAgICAgICAgIGFsbG93QW5vbnltb3VzOiBib29sZWFuO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBkeW5hbWljQ29tcG9uZW50TWFuaWZlc3Q6IGFueTtcclxuICAgIGFwaURvbWFpbjogYW55O1xyXG4gICAgY2xpZW50RG9tYWluOiB7XHJcbiAgICAgICAgYXBwRG9tYWluOiBzdHJpbmc7XHJcbiAgICAgICAgcHVibGljQ2xpZW50RG9tYWluOiBzdHJpbmc7XHJcbiAgICAgICAgZGVmYXVsdFJlZGlyZWN0OiBzdHJpbmc7XHJcbiAgICAgICAgY29uZ1ZpZWNEb21haW46IHN0cmluZztcclxuICAgIH07XHJcblxyXG4gICAgY2xpZW50VGVtcGxhdGVQYXJhbToge1xyXG4gICAgICAgIHRyaW5oS3k6IHN0cmluZztcclxuICAgIH07XHJcblxyXG4gICAgYXV0aGVudGljYXRpb25TZXR0aW5nczoge1xyXG4gICAgICAgIGF1dGhlblR5cGU6IHN0cmluZ1tdO1xyXG4gICAgICAgIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgICAgICAgaXNzdWVyOiBzdHJpbmc7XHJcbiAgICAgICAgc2NvcGU6IHN0cmluZztcclxuICAgICAgICByZXF1aXJlSHR0cHM6IGJvb2xlYW47XHJcbiAgICAgICAgY3VzdG9tUmVkaXJlY3RVcmk6IHN0cmluZztcclxuICAgICAgICBsb2dvdXRPblVuYXV0aG9yaXplZDogYm9vbGVhbjtcclxuICAgICAgICBpc0ZvcmNlTG9nb3V0SWY0MDE6IGJvb2xlYW47XHJcbiAgICAgICAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICB9O1xyXG5cclxuICAgIHN5c3RlbUxvZ1NldHRpbmc6IHtcclxuICAgICAgICBlbmFibGVkOiBib29sZWFuXHJcbiAgICB9O1xyXG5cclxuICAgIHNpZ25hbHI6IHtcclxuICAgICAgICBjbGllbnRLZXk6IHN0cmluZztcclxuICAgICAgICBlbmRwb2ludDogc3RyaW5nO1xyXG4gICAgICAgIGVuZHBvaW50U1NMOiBzdHJpbmc7XHJcbiAgICAgICAgdXNlU1NMOiBib29sZWFuO1xyXG4gICAgICAgIHNob3dMb2c6IGJvb2xlYW47XHJcbiAgICAgICAgbGlua0Rvd25sb2FkQ2xpZW50QXBwOiBzdHJpbmc7XHJcbiAgICAgICAgdmVyc2lvbjogc3RyaW5nO1xyXG4gICAgICAgIGVuZHBvaW50VXBkYXRlOiBzdHJpbmc7XHJcbiAgICB9O1xyXG5cclxuICAgIHNpZ25hbFJDb25maWc6IHtcclxuICAgICAgICB0b3BpYzogYW55LFxyXG4gICAgICAgIGFjdGlvbjoge1xyXG4gICAgICAgICAgICBub3RpZmljYXRpb25DcmVhdGVkOiBzdHJpbmcsXHJcbiAgICAgICAgICAgIHZpZXdVcGRhdGVkOiBzdHJpbmdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVuYWJsZUh1YnM6IHtcclxuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHdvcmtmbG93OiB7XHJcbiAgICAgICAgZGVmYXVsdFdvcmtmbG93OiB7XHJcbiAgICAgICAgICAgIHRhc2s6IHN0cmluZztcclxuICAgICAgICAgICAgdmVyc2lvbjogc3RyaW5nO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGFza0NhdGVnb3J5V29ya2Zsb3dNYXBwaW5nczogYW55O1xyXG4gICAgfTtcclxuXHJcbiAgICBzdWZmaXhTZXJ2aWNlQ29kZTogc3RyaW5nO1xyXG4gICAgbW9uaXRvcmluZzoge1xyXG4gICAgICAgIGRlcGxveTogc3RyaW5nO1xyXG4gICAgICAgIG1vbml0b3I6IHN0cmluZztcclxuICAgIH07XHJcblxyXG4gICAgaGVscENvbmZpZzoge1xyXG4gICAgICAgIGV4cGVydE5hbWU6IHN0cmluZztcclxuICAgICAgICBleHBlcnRQaG9uZU51bW1iZXI6IHN0cmluZztcclxuICAgICAgICBleHBlcnRFbWFpbDogc3RyaW5nO1xyXG4gICAgICAgIGxvZ29Db21wYW55OiBzdHJpbmc7XHJcbiAgICAgICAgZG9jdW1lbnRzOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGFiZWw6IHN0cmluZztcclxuICAgICAgICAgICAgdGh1bWJuYWlsVHlwZTogc3RyaW5nO1xyXG4gICAgICAgICAgICBpY29uOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGhyZWY6IHN0cmluZztcclxuICAgICAgICB9W11cclxuICAgIH1cclxuXHJcbiAgICBkZWZhdWx0VmFsdWU6IHtcclxuICAgICAgICBsaW5rRG9jdW1lbnRTZXJ2ZXI6IHN0cmluZztcclxuICAgICAgICBreVNvU2ltOiB7XHJcbiAgICAgICAgICAgIHRzYVVybDogc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBzZXR0aW5nRGF0YURlZmF1bHQ6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcclxuICAgIH07XHJcbiAgICBlbmFibGVCYXNlSHJlZjogYm9vbGVhbjtcclxuICAgIGJhc2VIcmVmOiBzdHJpbmc7XHJcbiAgICBwb3J0YWxDb25maWc6IGFueTtcclxuICAgIHdvcmtmbG93U2V0dGluZzogYW55O1xyXG4gICAgdmJjY0NvbmZpZzoge1xyXG4gICAgICAgIHByZWZpeFRlbXBsYXRlOiBzdHJpbmdbXVxyXG4gICAgfTtcclxuICAgIGtleVByZXNzUGVybWlzc2lvblV0aWxzOiBzdHJpbmc7XHJcbiAgICBzdG9yYWdlOiBzdHJpbmc7XHJcbiAgICBjdXN0b21pemVVaTogQ3VzdG9taXplVWlNb2RlbDtcclxuICAgIHNob3dFcnJvck1lc3NhZ2VJblRvYXN0OiBib29sZWFuO1xyXG4gICAgc2hvd1dhcm5pbmdNZXNzYWdlSW5Ub2FzdDogYm9vbGVhbjtcclxuICAgIGlzSWdub3JlQWRtaW46IGJvb2xlYW47XHJcbiAgICBlbmFibGVUbkNsaWVudDogYm9vbGVhbjtcclxuICAgIGVuYWJsZVBvcHVsYXRlTG9nOiBib29sZWFuO1xyXG4gICAgZGlzYWJsZU5vdGlmaWNhdGlvbjogYm9vbGVhbjtcclxuICAgIHNwbGFzaFNjcmVlbjogRW51bVR5cGVTcGxhc2g7XHJcbiAgICB1bmRlcmNvbnN0cnVjdGlvbjogYm9vbGVhbjtcclxuICAgIGludGVybmFsRmlsZUVuZHBvaW50OiBzdHJpbmc7XHJcbiAgICBidXR0b25QZXJtaXNzaW9uczogc3RyaW5nW107XHJcbiAgICBjdXN0b21Db25maWc6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzTGl0ZXJhbE9iamVjdCA9IChvYmopID0+IHtcclxuICAgIHJldHVybiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KVxyXG4gICAgICAgICYmICFpc0FycmF5KG9iailcclxuICAgICAgICAmJiAhaXNOdW1iZXIob2JqKVxyXG4gICAgICAgICYmICFpc0RhdGUob2JqKVxyXG4gICAgICAgICYmICFpc0Z1bmN0aW9uKG9iailcclxuICAgICAgICAmJiAhaXNCb29sZWFuKG9iailcclxuICAgICAgICAmJiAhaXNSZWd1bGFyKG9iailcclxuICAgICAgICAmJiAhaXNTdHJpbmcob2JqKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc051bWJlciA9IChvYmopID0+IHtcclxuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBOdW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNEYXRlID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNGdW5jdGlvbiA9IChvYmopID0+IHtcclxuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBGdW5jdGlvbjtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0Jvb2xlYW4gPSAob2JqKSA9PiB7XHJcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgQm9vbGVhbjtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1N0cmluZyA9IChvYmopID0+IHtcclxuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBTdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNSZWd1bGFyID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFJlZ0V4cDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0FycmF5ID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIEFycmF5O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzU2ltcGxlVHlwZSA9IChvYmopID0+IHtcclxuICAgIGNvbnN0IHQgPSB0eXBlb2YgKG9iaik7XHJcbiAgICByZXR1cm4gdCA9PSAnbnVtYmVyJyB8fCB0ID09ICdib29sZWFuJyB8fCB0ID09ICdzdHJpbmcnIHx8IHQgPT0gJ3N5bWJvbCcgfHwgdCA9PSAnYmlnaW50JztcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1ZhbGlkRGF0ZSA9IChkYXRlKSA9PiB7XHJcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1ZhbGlkVGltZSA9IChkYXRlKSA9PiB7XHJcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgL14oWzAtMV1bMC05XXwyWzAtM10pOihbMC01XVswLTldKSQvLnRlc3QoYCR7ZGF0ZS5nZXRIb3VycygpfToke2RhdGUuZ2V0TWludXRlcygpfWApO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNsb25lID0gKG9iaikgPT4ge1xyXG4gICAgaWYgKG9iaiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IG1lcmdlSlNPTiA9ICh0YXJnZXQsIHNvdXJjZSkgPT4ge1xyXG4gICAgaWYgKGlzQXJyYXkoc291cmNlKSkge1xyXG4gICAgICAgIGlmICghaXNBcnJheSh0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaSA9IDA7XHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHNvdXJjZSkge1xyXG4gICAgICAgICAgICBpZiAoaSA8IHRhcmdldC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldFtpXSA9IG1lcmdlSlNPTih0YXJnZXRbaV0sIGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnB1c2goY2xvbmUoaXRlbSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0Lmxlbmd0aCA9IGk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc0xpdGVyYWxPYmplY3Qoc291cmNlKSkge1xyXG4gICAgICAgIGlmICghaXNMaXRlcmFsT2JqZWN0KHRhcmdldCkpIHRhcmdldCA9IHt9O1xyXG4gICAgICAgIGVsc2UgdGFyZ2V0ID0gY2xvbmUodGFyZ2V0KTtcclxuXHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XHJcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gbWVyZ2VKU09OKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRhcmdldCk7XHJcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRhcmdldFtrZXldO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICB0YXJnZXQgPSBzb3VyY2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjbGVhckFsbCA9IChvYmopID0+IHtcclxuICAgIGNvbnN0IG5ld09iaiA9IGNsb25lKG9iaik7XHJcbiAgICBjb25zdCByZWN1cnNpdmUgPSAob2IpID0+IHtcclxuICAgICAgICBpZiAoaXNBcnJheShvYikpIHtcclxuICAgICAgICAgICAgb2IubGVuZ3RoID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNMaXRlcmFsT2JqZWN0KG9iKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYikge1xyXG4gICAgICAgICAgICAgICAgb2Jba2V5XSA9IHJlY3Vyc2l2ZShvYltrZXldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgb2IgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9iO1xyXG4gICAgfTtcclxuICAgIHJldHVybiByZWN1cnNpdmUobmV3T2JqKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRFbnZpcm9ubWVudEJ5TmFtZSA9IChlbnZOYW1lOiBzdHJpbmcsIHNjb3BlTmFtZTogc3RyaW5nLCBjdXN0b21QYXRoOiBzdHJpbmcgPSAnJykgPT4ge1xyXG4gICAgY29uc3QgYXBwWGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICBpZiAoY3VzdG9tUGF0aCkge1xyXG4gICAgICAgIGFwcFhoci5vcGVuKCdHRVQnLCBjdXN0b21QYXRoLCBmYWxzZSk7XHJcbiAgICAgICAgYXBwWGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGFwcFhoci5vcGVuKCdHRVQnLCBgYXNzZXRzL2Vudmlyb25tZW50cy8ke3Njb3BlTmFtZX0vJHtlbnZOYW1lfS5qc29uYCwgZmFsc2UpO1xyXG4gICAgICAgIGFwcFhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wJyk7XHJcbiAgICB9XHJcbiAgICBhcHBYaHIuc2VuZChudWxsKTtcclxuICAgIHJldHVybiBhcHBYaHIucmVzcG9uc2VUZXh0O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEVudmlyb25tZW50RGF0YSA9IChsaXN0T2ZFbnZOYW1lOiBzdHJpbmdbXSwgc2NvcGVOYW1lOiBzdHJpbmcsIGN1c3RvbVBhdGg6IHN0cmluZyA9ICcnKSA9PiB7XHJcbiAgICBjb25zdCByZXMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgZW52TmFtZSBvZiBsaXN0T2ZFbnZOYW1lKSB7XHJcbiAgICAgICAgcmVzLnB1c2goZ2V0RW52aXJvbm1lbnRCeU5hbWUoZW52TmFtZSwgc2NvcGVOYW1lLCBjdXN0b21QYXRoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9wOiBFbnZpcm9ubWVudFNjaGVtYSA9IDxhbnk+e307XHJcbiAgICB3aGlsZSAocmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBKU09OLnBhcnNlKHJlcy5zaGlmdCgpKTtcclxuICAgICAgICBvcCA9IG1lcmdlSlNPTihvcCwgc291cmNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvcDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRFbnZpcm9ubWVudERhdGFOZXcgPSAocGVyc29uYWxOYW1lOiBzdHJpbmcsIHNjb3BlTmFtZTogc3RyaW5nLCBjdXN0b21QYXRoOiBzdHJpbmcgPSAnJykgPT4ge1xyXG4gICAgY29uc3QgY29tbW9uTWFzdGVyRGF0YUFwaSA9ICh3aW5kb3cgYXMgYW55KS5jb21tb25NYXN0ZXJEYXRhQXBpO1xyXG4gICAgY29uc3QgYXBwWGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICBhcHBYaHIub3BlbignR0VUJywgYCR7Y29tbW9uTWFzdGVyRGF0YUFwaX12NS9Db25maWdBbmRTZXR0aW5nL0dldEFwcENvbmZpZ2AsIGZhbHNlKTtcclxuICAgIGFwcFhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wJyk7XHJcbiAgICBhcHBYaHIuc2VuZChudWxsKTtcclxuICAgIGNvbnN0IHJlc0dldEFwcENvbmZpZyA9IGFwcFhoci5yZXNwb25zZVRleHQ7XHJcbiAgICBsZXQgb3A6IEVudmlyb25tZW50U2NoZW1hID0gSlNPTi5wYXJzZShyZXNHZXRBcHBDb25maWcpLmRhdGE7XHJcbiAgICBjb25zdCByZXMgPSBbXTtcclxuICAgIHJlcy5wdXNoKGdldEVudmlyb25tZW50QnlOYW1lKHBlcnNvbmFsTmFtZSwgc2NvcGVOYW1lLCBjdXN0b21QYXRoKSk7XHJcbiAgICB3aGlsZSAocmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBKU09OLnBhcnNlKHJlcy5zaGlmdCgpKTtcclxuICAgICAgICBvcCA9IG1lcmdlSlNPTihvcCwgc291cmNlKTtcclxuICAgIH1cclxuICAgIGlmIChvcCkge1xyXG4gICAgICAgIGlmIChvcC5hcHBzKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG9wLmFwcHMpLmZvckVhY2goYXBwQ29kZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvcC5hcHBzW2FwcENvZGVdLmNvZGUgPSBhcHBDb2RlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Auc2VydmljZXMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMob3Auc2VydmljZXMpLmZvckVhY2goYXBwQ29kZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvcC5zZXJ2aWNlc1thcHBDb2RlXS5jb2RlID0gYXBwQ29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3A7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWVyZ2VKU09OT2xkID0gKHRhcmdldCwgc291cmNlUmF3KSA9PiB7XHJcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZU9sZChzb3VyY2VSYXcpO1xyXG4gICAgaWYgKGlzT2JqZWN0T2xkKHNvdXJjZSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgICAgICAgICAgaWYgKGlzT2JqZWN0T2xkKHNvdXJjZVtrZXldKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc09iamVjdE9sZCh0YXJnZXRba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VKU09OT2xkKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc09iamVjdE9sZCA9IChvYmopID0+IHtcclxuICAgIGlmICghb2JqKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjb25zdCBzID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICAgIGlmIChzICYmIHMuc3RhcnRzV2l0aCgneycpKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiBmYWxzZTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjbG9uZU9sZCA9IChvYmopID0+IHtcclxuICAgIGlmIChvYmopIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbn07XHJcbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNsYXNzZXMvZW52aXJvbm1lbnQtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVLQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUNuQyxPQUFPLENBQUMsR0FBRyxZQUFZLE1BQU0sQ0FBQztXQUN2QixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7V0FDYixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7V0FDZCxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7V0FDWixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7V0FDaEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1dBQ2YsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1dBQ2YsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDNUIsT0FBTyxHQUFHLFlBQVksTUFBTSxDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQzFCLE9BQU8sR0FBRyxZQUFZLElBQUksQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUM5QixPQUFPLEdBQUcsWUFBWSxRQUFRLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDN0IsT0FBTyxHQUFHLFlBQVksT0FBTyxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEs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QUFDLENBQUM7YUFDN0I7U0FDSjtLQUNKO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDL0IsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN2QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDeEMsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDNUIsSUFBSSxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtVHlwZVNwbGFzaCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3BsYXNoLWNvbXBvbmVudC9zcGxhc2gtY29tcG9uZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbWl6ZVVpTW9kZWwgfSBmcm9tICcuLi9zZXJ2aWNlcy9jdXN0b21pemUtdWkuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50U2NoZW1hIHtcclxuICAgIHByb2R1Y3Rpb246IGJvb2xlYW47XHJcbiAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XHJcbiAgICBobXI6IGJvb2xlYW47XHJcbiAgICBhcHBNZXRhZGF0YToge1xyXG4gICAgICAgIG1haW46IHtcclxuICAgICAgICAgICAgZGVmYXVsdEZlbWFsZUF2YXRhcjogc3RyaW5nO1xyXG4gICAgICAgICAgICBkZWZhdWx0TWFsZUF2YXRhcjogc3RyaW5nO1xyXG4gICAgICAgICAgICBkaWFDaGlOZ2F5VGhhbmc6IHN0cmluZztcclxuICAgICAgICAgICAgZmF2aWNvbjogc3RyaW5nO1xyXG4gICAgICAgICAgICBsb2dvOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIG93bmVyOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHNob3dEZWZhdWx0U2V0dGluZzogYm9vbGVhbjtcclxuICAgICAgICAgICAgdGVuVHJ1b25nOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBiYXNlSHJlZjogYW55O1xyXG4gICAgICAgIGdhdGV3YXk6IHN0cmluZztcclxuICAgICAgICBnYXRld2F5T2xkOiBzdHJpbmc7XHJcbiAgICAgICAgZ2F0ZXdheVN1YnBhdGg6IHN0cmluZztcclxuICAgICAgICBhcHBHYXRld2F5OiBzdHJpbmc7XHJcbiAgICAgICAgZG9jdW1lbnRTZXJ2ZXI6IHN0cmluZztcclxuICAgIH07XHJcbiAgICBtYWpvckFwaVZlcnNpb246IHN0cmluZztcclxuICAgIHNlcnZpY2VzOiB7XHJcbiAgICAgICAgW2tleTogc3RyaW5nXToge1xyXG4gICAgICAgICAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHVzZUxvY2FsOiBib29sZWFuO1xyXG4gICAgICAgICAgICB1c2VPbGRWZXJzaW9uOiBib29sZWFuO1xyXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGxvY2FsR3JwY0VuZHBvaW50OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGxvY2FsSHR0cEVuZHBvaW50OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGxvY2FsSHR0cEVuZHBvaW50T2xkOiBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGFwcHM6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiB7XHJcbiAgICAgICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICAgICAgY29sdW1uOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGRlZmF1bHRSZWRpcmVjdDogc3RyaW5nO1xyXG4gICAgICAgICAgICB1cmw6IHN0cmluZztcclxuICAgICAgICAgICAgaWNvbjogc3RyaW5nO1xyXG4gICAgICAgICAgICB1c2VMb2NhbDogYm9vbGVhbjtcclxuICAgICAgICAgICAgbG9jYWxFbmRwb2ludDogc3RyaW5nO1xyXG4gICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgICAgICAgICBsb25nVGl0bGU6IHN0cmluZztcclxuICAgICAgICAgICAgc2hvd0RlZmF1bHRTZXR0aW5nOiBib29sZWFuO1xyXG4gICAgICAgICAgICB2aXNpYmlsZTogYm9vbGVhbjtcclxuICAgICAgICAgICAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGR5bmFtaWNDb21wb25lbnRNYW5pZmVzdDogYW55O1xyXG4gICAgYXBpRG9tYWluOiBhbnk7XHJcbiAgICBjbGllbnREb21haW46IHtcclxuICAgICAgICBhcHBEb21haW46IHN0cmluZztcclxuICAgICAgICBwdWJsaWNDbGllbnREb21haW46IHN0cmluZztcclxuICAgICAgICBkZWZhdWx0UmVkaXJlY3Q6IHN0cmluZztcclxuICAgICAgICBjb25nVmllY0RvbWFpbjogc3RyaW5nO1xyXG4gICAgfTtcclxuXHJcbiAgICBjbGllbnRUZW1wbGF0ZVBhcmFtOiB7XHJcbiAgICAgICAgdHJpbmhLeTogc3RyaW5nO1xyXG4gICAgfTtcclxuXHJcbiAgICBhdXRoZW50aWNhdGlvblNldHRpbmdzOiB7XHJcbiAgICAgICAgYXV0aGVuVHlwZTogc3RyaW5nW107XHJcbiAgICAgICAgY2xpZW50SWQ6IHN0cmluZztcclxuICAgICAgICBpc3N1ZXI6IHN0cmluZztcclxuICAgICAgICBzY29wZTogc3RyaW5nO1xyXG4gICAgICAgIHJlcXVpcmVIdHRwczogYm9vbGVhbjtcclxuICAgICAgICBjdXN0b21SZWRpcmVjdFVyaTogc3RyaW5nO1xyXG4gICAgICAgIGxvZ291dE9uVW5hdXRob3JpemVkOiBib29sZWFuO1xyXG4gICAgICAgIGlzRm9yY2VMb2dvdXRJZjQwMTogYm9vbGVhbjtcclxuICAgICAgICBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIH07XHJcblxyXG4gICAgc3lzdGVtTG9nU2V0dGluZzoge1xyXG4gICAgICAgIGVuYWJsZWQ6IGJvb2xlYW5cclxuICAgIH07XHJcblxyXG4gICAgc2lnbmFscjoge1xyXG4gICAgICAgIGNsaWVudEtleTogc3RyaW5nO1xyXG4gICAgICAgIGVuZHBvaW50OiBzdHJpbmc7XHJcbiAgICAgICAgZW5kcG9pbnRTU0w6IHN0cmluZztcclxuICAgICAgICB1c2VTU0w6IGJvb2xlYW47XHJcbiAgICAgICAgc2hvd0xvZzogYm9vbGVhbjtcclxuICAgICAgICBsaW5rRG93bmxvYWRDbGllbnRBcHA6IHN0cmluZztcclxuICAgICAgICB2ZXJzaW9uOiBzdHJpbmc7XHJcbiAgICAgICAgZW5kcG9pbnRVcGRhdGU6IHN0cmluZztcclxuICAgIH07XHJcblxyXG4gICAgc2lnbmFsUkNvbmZpZzoge1xyXG4gICAgICAgIHRvcGljOiBhbnksXHJcbiAgICAgICAgYWN0aW9uOiB7XHJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkNyZWF0ZWQ6IHN0cmluZyxcclxuICAgICAgICAgICAgdmlld1VwZGF0ZWQ6IHN0cmluZ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZW5hYmxlSHViczoge1xyXG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgd29ya2Zsb3c6IHtcclxuICAgICAgICBkZWZhdWx0V29ya2Zsb3c6IHtcclxuICAgICAgICAgICAgdGFzazogc3RyaW5nO1xyXG4gICAgICAgICAgICB2ZXJzaW9uOiBzdHJpbmc7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB0YXNrQ2F0ZWdvcnlXb3JrZmxvd01hcHBpbmdzOiBhbnk7XHJcbiAgICB9O1xyXG5cclxuICAgIHN1ZmZpeFNlcnZpY2VDb2RlOiBzdHJpbmc7XHJcbiAgICBtb25pdG9yaW5nOiB7XHJcbiAgICAgICAgZGVwbG95OiBzdHJpbmc7XHJcbiAgICAgICAgbW9uaXRvcjogc3RyaW5nO1xyXG4gICAgfTtcclxuXHJcbiAgICBoZWxwQ29uZmlnOiB7XHJcbiAgICAgICAgZXhwZXJ0TmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGV4cGVydFBob25lTnVtbWJlcjogc3RyaW5nO1xyXG4gICAgICAgIGV4cGVydEVtYWlsOiBzdHJpbmc7XHJcbiAgICAgICAgbG9nb0NvbXBhbnk6IHN0cmluZztcclxuICAgICAgICBkb2N1bWVudHM6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgICAgICAgICB0aHVtYm5haWxUeXBlOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGljb246IHN0cmluZztcclxuICAgICAgICAgICAgaHJlZjogc3RyaW5nO1xyXG4gICAgICAgIH1bXVxyXG4gICAgfVxyXG5cclxuICAgIGRlZmF1bHRWYWx1ZToge1xyXG4gICAgICAgIGxpbmtEb2N1bWVudFNlcnZlcjogc3RyaW5nO1xyXG4gICAgICAgIGt5U29TaW06IHtcclxuICAgICAgICAgICAgdHNhVXJsOiBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHNldHRpbmdEYXRhRGVmYXVsdDoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xyXG4gICAgfTtcclxuICAgIGVuYWJsZUJhc2VIcmVmOiBib29sZWFuO1xyXG4gICAgYmFzZUhyZWY6IHN0cmluZztcclxuICAgIHBvcnRhbENvbmZpZzogYW55O1xyXG4gICAgd29ya2Zsb3dTZXR0aW5nOiBhbnk7XHJcbiAgICB2YmNjQ29uZmlnOiB7XHJcbiAgICAgICAgcHJlZml4VGVtcGxhdGU6IHN0cmluZ1tdXHJcbiAgICB9O1xyXG4gICAga2V5UHJlc3NQZXJtaXNzaW9uVXRpbHM6IHN0cmluZztcclxuICAgIHN0b3JhZ2U6IHN0cmluZztcclxuICAgIGN1c3RvbWl6ZVVpOiBDdXN0b21pemVVaU1vZGVsO1xyXG4gICAgc2hvd0Vycm9yTWVzc2FnZUluVG9hc3Q6IGJvb2xlYW47XHJcbiAgICBzaG93V2FybmluZ01lc3NhZ2VJblRvYXN0OiBib29sZWFuO1xyXG4gICAgaXNJZ25vcmVBZG1pbjogYm9vbGVhbjtcclxuICAgIGVuYWJsZVRuQ2xpZW50OiBib29sZWFuO1xyXG4gICAgZW5hYmxlUG9wdWxhdGVMb2c6IGJvb2xlYW47XHJcbiAgICBkaXNhYmxlTm90aWZpY2F0aW9uOiBib29sZWFuO1xyXG4gICAgc3BsYXNoU2NyZWVuOiBFbnVtVHlwZVNwbGFzaDtcclxuICAgIHVuZGVyY29uc3RydWN0aW9uOiBib29sZWFuO1xyXG4gICAgaW50ZXJuYWxGaWxlRW5kcG9pbnQ6IHN0cmluZztcclxuICAgIGJ1dHRvblBlcm1pc3Npb25zOiBzdHJpbmdbXTtcclxuICAgIGN1c3RvbUNvbmZpZzoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZ1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaXNMaXRlcmFsT2JqZWN0ID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIChvYmogaW5zdGFuY2VvZiBPYmplY3QpXHJcbiAgICAgICAgJiYgIWlzQXJyYXkob2JqKVxyXG4gICAgICAgICYmICFpc051bWJlcihvYmopXHJcbiAgICAgICAgJiYgIWlzRGF0ZShvYmopXHJcbiAgICAgICAgJiYgIWlzRnVuY3Rpb24ob2JqKVxyXG4gICAgICAgICYmICFpc0Jvb2xlYW4ob2JqKVxyXG4gICAgICAgICYmICFpc1JlZ3VsYXIob2JqKVxyXG4gICAgICAgICYmICFpc1N0cmluZyhvYmopO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzTnVtYmVyID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIE51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0RhdGUgPSAob2JqKSA9PiB7XHJcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0Z1bmN0aW9uID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzQm9vbGVhbiA9IChvYmopID0+IHtcclxuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBCb29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzU3RyaW5nID0gKG9iaikgPT4ge1xyXG4gICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIFN0cmluZztcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1JlZ3VsYXIgPSAob2JqKSA9PiB7XHJcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUmVnRXhwO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzQXJyYXkgPSAob2JqKSA9PiB7XHJcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgQXJyYXk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNTaW1wbGVUeXBlID0gKG9iaikgPT4ge1xyXG4gICAgY29uc3QgdCA9IHR5cGVvZiAob2JqKTtcclxuICAgIHJldHVybiB0ID09ICdudW1iZXInIHx8IHQgPT0gJ2Jvb2xlYW4nIHx8IHQgPT0gJ3N0cmluZycgfHwgdCA9PSAnc3ltYm9sJyB8fCB0ID09ICdiaWdpbnQnO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzVmFsaWREYXRlID0gKGRhdGUpID0+IHtcclxuICAgIHJldHVybiBkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzVmFsaWRUaW1lID0gKGRhdGUpID0+IHtcclxuICAgIHJldHVybiBkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiAvXihbMC0xXVswLTldfDJbMC0zXSk6KFswLTVdWzAtOV0pJC8udGVzdChgJHtkYXRlLmdldEhvdXJzKCl9OiR7ZGF0ZS5nZXRNaW51dGVzKCl9YCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2xvbmUgPSAob2JqKSA9PiB7XHJcbiAgICBpZiAob2JqICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWVyZ2VKU09OID0gKHRhcmdldCwgc291cmNlKSA9PiB7XHJcbiAgICBpZiAoT2JqZWN0LmtleXMoc291cmNlKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNBcnJheShzb3VyY2UpKSB7XHJcbiAgICAgICAgaWYgKCFpc0FycmF5KHRhcmdldCkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0ID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBpID0gMDtcclxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygc291cmNlKSB7XHJcbiAgICAgICAgICAgIGlmIChpIDwgdGFyZ2V0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0W2ldID0gbWVyZ2VKU09OKHRhcmdldFtpXSwgaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucHVzaChjbG9uZShpdGVtKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0YXJnZXQubGVuZ3RoID0gaTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGlzTGl0ZXJhbE9iamVjdChzb3VyY2UpKSB7XHJcbiAgICAgICAgaWYgKCFpc0xpdGVyYWxPYmplY3QodGFyZ2V0KSkgdGFyZ2V0ID0ge307XHJcbiAgICAgICAgZWxzZSB0YXJnZXQgPSBjbG9uZSh0YXJnZXQpO1xyXG5cclxuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBtZXJnZUpTT04odGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGFyZ2V0KTtcclxuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHRhcmdldCA9IHNvdXJjZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNsZWFyQWxsID0gKG9iaikgPT4ge1xyXG4gICAgY29uc3QgbmV3T2JqID0gY2xvbmUob2JqKTtcclxuICAgIGNvbnN0IHJlY3Vyc2l2ZSA9IChvYikgPT4ge1xyXG4gICAgICAgIGlmIChpc0FycmF5KG9iKSkge1xyXG4gICAgICAgICAgICBvYi5sZW5ndGggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc0xpdGVyYWxPYmplY3Qob2IpKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iKSB7XHJcbiAgICAgICAgICAgICAgICBvYltrZXldID0gcmVjdXJzaXZlKG9iW2tleV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvYiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2I7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHJlY3Vyc2l2ZShuZXdPYmopO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEVudmlyb25tZW50QnlOYW1lID0gKGVudk5hbWU6IHN0cmluZywgc2NvcGVOYW1lOiBzdHJpbmcsIGN1c3RvbVBhdGg6IHN0cmluZyA9ICcnKSA9PiB7XHJcbiAgICBjb25zdCBhcHBYaHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgIGlmIChjdXN0b21QYXRoKSB7XHJcbiAgICAgICAgYXBwWGhyLm9wZW4oJ0dFVCcsIGN1c3RvbVBhdGgsIGZhbHNlKTtcclxuICAgICAgICBhcHBYaHIuc2V0UmVxdWVzdEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCcpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgYXBwWGhyLm9wZW4oJ0dFVCcsIGBhc3NldHMvZW52aXJvbm1lbnRzLyR7c2NvcGVOYW1lfS8ke2Vudk5hbWV9Lmpzb25gLCBmYWxzZSk7XHJcbiAgICAgICAgYXBwWGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAnKTtcclxuICAgIH1cclxuICAgIGFwcFhoci5zZW5kKG51bGwpO1xyXG4gICAgcmV0dXJuIGFwcFhoci5yZXNwb25zZVRleHQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RW52aXJvbm1lbnREYXRhID0gKGxpc3RPZkVudk5hbWU6IHN0cmluZ1tdLCBzY29wZU5hbWU6IHN0cmluZywgY3VzdG9tUGF0aDogc3RyaW5nID0gJycpID0+IHtcclxuICAgIGNvbnN0IHJlcyA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBlbnZOYW1lIG9mIGxpc3RPZkVudk5hbWUpIHtcclxuICAgICAgICByZXMucHVzaChnZXRFbnZpcm9ubWVudEJ5TmFtZShlbnZOYW1lLCBzY29wZU5hbWUsIGN1c3RvbVBhdGgpKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgb3A6IEVudmlyb25tZW50U2NoZW1hID0gPGFueT57fTtcclxuICAgIHdoaWxlIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IEpTT04ucGFyc2UocmVzLnNoaWZ0KCkpO1xyXG4gICAgICAgIG9wID0gbWVyZ2VKU09OKG9wLCBzb3VyY2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEVudmlyb25tZW50RGF0YU5ldyA9IChwZXJzb25hbE5hbWU6IHN0cmluZywgc2NvcGVOYW1lOiBzdHJpbmcsIGN1c3RvbVBhdGg6IHN0cmluZyA9ICcnKSA9PiB7XHJcbiAgICBjb25zdCBjb21tb25NYXN0ZXJEYXRhQXBpID0gKHdpbmRvdyBhcyBhbnkpLmNvbW1vbk1hc3RlckRhdGFBcGk7XHJcbiAgICBjb25zdCBhcHBYaHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgIGFwcFhoci5vcGVuKCdHRVQnLCBgJHtjb21tb25NYXN0ZXJEYXRhQXBpfXY1L0NvbmZpZ0FuZFNldHRpbmcvR2V0QXBwQ29uZmlnYCwgZmFsc2UpO1xyXG4gICAgLy8gR+G7jWkgYXBpIGPhu6dhIG3DrG5oIHRow6wga28gY+G6p24gbG9naWMgY2FjaGUgbsOgeSwgbG9naWMgbsOgeSBkbyBwaMOtYSBhcGkgcXV54bq/dCDEkeG7i25oIHhlbSBjw7MgY2FjaGUga2jDtG5nIHbDoCBjYWNoZSBiYW8gbMOidVxyXG4gICAgLy8gYXBwWGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAnKTtcclxuICAgIGFwcFhoci5zZW5kKG51bGwpO1xyXG4gICAgY29uc3QgcmVzR2V0QXBwQ29uZmlnID0gYXBwWGhyLnJlc3BvbnNlVGV4dDtcclxuICAgIGxldCBvcDogRW52aXJvbm1lbnRTY2hlbWEgPSBKU09OLnBhcnNlKHJlc0dldEFwcENvbmZpZykuZGF0YTtcclxuICAgIC8vIE7hur91IGzDoCBwcm9kIHRow6wga2jDtG5nIGPhuqduIMSR4buNYyBj4bqldSBow6xuaCB04burIGpzb24gbuG7r2FcclxuICAgIGlmIChwZXJzb25hbE5hbWUgIT0gJ3Byb2QnKSB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gW107XHJcbiAgICAgICAgcmVzLnB1c2goZ2V0RW52aXJvbm1lbnRCeU5hbWUocGVyc29uYWxOYW1lLCBzY29wZU5hbWUsIGN1c3RvbVBhdGgpKTtcclxuICAgICAgICB3aGlsZSAocmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gSlNPTi5wYXJzZShyZXMuc2hpZnQoKSk7XHJcbiAgICAgICAgICAgIG9wID0gbWVyZ2VKU09OKG9wLCBzb3VyY2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3ApIHtcclxuICAgICAgICAgICAgaWYgKG9wLmFwcHMpIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKG9wLmFwcHMpLmZvckVhY2goYXBwQ29kZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3AuYXBwc1thcHBDb2RlXS5jb2RlID0gYXBwQ29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKG9wLnNlcnZpY2VzKSB7XHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhvcC5zZXJ2aWNlcykuZm9yRWFjaChhcHBDb2RlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBvcC5zZXJ2aWNlc1thcHBDb2RlXS5jb2RlID0gYXBwQ29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3A7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWVyZ2VKU09OT2xkID0gKHRhcmdldCwgc291cmNlUmF3KSA9PiB7XHJcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZU9sZChzb3VyY2VSYXcpO1xyXG4gICAgaWYgKGlzT2JqZWN0T2xkKHNvdXJjZSkpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcclxuICAgICAgICAgICAgaWYgKGlzT2JqZWN0T2xkKHNvdXJjZVtrZXldKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc09iamVjdE9sZCh0YXJnZXRba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VKU09OT2xkKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc09iamVjdE9sZCA9IChvYmopID0+IHtcclxuICAgIGlmICghb2JqKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjb25zdCBzID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICAgIGlmIChzICYmIHMuc3RhcnRzV2l0aCgneycpKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiBmYWxzZTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjbG9uZU9sZCA9IChvYmopID0+IHtcclxuICAgIGlmIChvYmopIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbn07XHJcbiJdfQ==
|
|
@@ -114,7 +114,7 @@ export class PublicFunction {
|
|
|
114
114
|
NgxMaskModule.forRoot(),
|
|
115
115
|
OAuthModule.forRoot({
|
|
116
116
|
resourceServer: {
|
|
117
|
-
allowedUrls: [environment.
|
|
117
|
+
allowedUrls: [environment.appMetadata.appGateway],
|
|
118
118
|
sendAccessToken: false,
|
|
119
119
|
},
|
|
120
120
|
}),
|
|
@@ -163,4 +163,4 @@ export class PublicFunction {
|
|
|
163
163
|
];
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNsYXNzZXMvcHVibGljLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUNoSCxP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ekI7YUFDSixDQUFDO1lBQ0YsaUJBQWlCO1NBQ3BCLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXO1FBQzlCLE9BQU87WUFDSCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtZQUN6QztnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLEtBQUssRUFBRSxJQUFJO2FBQ2Q7WUFDRDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7YUFDZDtZQUNELGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsUUFBUTtZQUNSLGNBQWM7WUFDZCxlQUFlO1lBQ2YsY0FBYztZQUNkLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsV0FBVztZQUNYLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLHVCQUF1QjtTQUMxQixDQUFDO0lBQ04sQ0FBQztDQUdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUsIERlY2ltYWxQaXBlLCByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ2xpZW50TW9kdWxlLCBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IGxvY2FsZVZpIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3ZpJztcclxuaW1wb3J0IHsgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhNb2R1bGUgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgSW1nRmFsbGJhY2tNb2R1bGUgfSBmcm9tICduZ3gtaW1nLWZhbGxiYWNrJztcclxuaW1wb3J0IHsgTmd4TWFza01vZHVsZSB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FjY2Vzcy1kZW5pZWQtY29tcG9uZW50L2FjY2Vzcy1kZW5pZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21tb24tZGFzaGJvYXJkL2NvbW1vbi1kYXNoYm9hcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1wZXJtaXNzaW9uL3NlcnZpY2VzLmNzL2VudGl0eS1wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3NwbGFzaC1jb21wb25lbnQvc3BsYXNoLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbml2ZXJzYWxMaW5rUHJvY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy91bml2ZXJzYWwtbGluay1wcm9jZXNzb3IvdW5pdmVyc2FsLWxpbmstcHJvY2Vzc29yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudGl0eVdvcmtmbG93SGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL2VudGl0eS13b3JrZmxvdy1oaXN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnRpdHlXb3JrZmxvd1NldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy93b3JrZmxvdy9zZXJ2aWNlcy9lbnRpdHktd29ya2Zsb3ctc2V0dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9nSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9pbnRlcmNlcHRlcnMvbG9nLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblV0aWxzSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9pbnRlcmNlcHRlcnMvcGVybWlzc2lvbi11dGlscy5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IFNlbmRBY2Nlc3NUb2tlbkludGVyY2VwdG9yIH0gZnJvbSAnLi4vaW50ZXJjZXB0ZXJzL3NlbmQtYWNjZXNzLXRva2VuLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgVHJhY2VJbnRlcmNlcHRvciB9IGZyb20gJy4uL2ludGVyY2VwdGVycy90cmFjZS5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IEh0bWxGb3JtYXRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvaHRtbC1mb3JtYXQucGlwZSc7XHJcbmltcG9ydCB7IE1hc3RlckRhdGFQaXBlIH0gZnJvbSAnLi4vcGlwZXMvbWFzdGVyRGF0YS5waXBlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uRm9ybWF0UGlwZSB9IGZyb20gJy4uL3BpcGVzL29yZ2FuaXphdGlvbi1mb3JtYXQucGlwZSc7XHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvbnNGb3JtYXRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvb3JnYW5pemF0aW9ucy1mb3JtYXQucGlwZSc7XHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4uL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcclxuaW1wb3J0IHsgVXNlckZvcm1hdFBpcGUgfSBmcm9tICcuLi9waXBlcy91c2VyLWZvcm1hdC5waXBlJztcclxuaW1wb3J0IHsgVXNlcnNGb3JtYXRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdXNlcnMtZm9ybWF0LnBpcGUnO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcclxuLy8gVE9ETzogVXBncmFkZSBzYXVcclxuLy8gaW1wb3J0IHsgQnJvd3NlckZhdmljb25zLCBCUk9XU0VSX0ZBVklDT05TX0NPTkZJRywgRmF2aWNvbnMgfSBmcm9tICcuL2Zhdmljb24nO1xyXG5pbXBvcnQgeyBNdWx0aVRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICcuL211bHRpLXRyYW5zbGF0ZS1odHRwLWxvYWRlcic7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFB1YmxpY0Z1bmN0aW9uIHtcclxuXHJcbiAgICBzdGF0aWMgaW5pdFJvdXRlKHJvdXRlczogYW55W10pIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAuLi5QdWJsaWNGdW5jdGlvbi5jb21tb25Sb3V0ZXMoKSxcclxuICAgICAgICAgICAgLi4ucm91dGVzLFxyXG4gICAgICAgICAgICAuLi5QdWJsaWNGdW5jdGlvbi5kZWZhdWx0Um91dGVzKCksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY29tbW9uUm91dGVzKCkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBTcGxhc2hDb21wb25lbnRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdkYXNoYm9hcmQnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDb21tb25EYXNoYm9hcmRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdhY2Nlc3MtZGVuaWVkJyxcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQWNjZXNzRGVuaWVkQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAndW5pdmVyc2FsLWxpbmsnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBVbml2ZXJzYWxMaW5rUHJvY2Vzc29yQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRlZmF1bHRSb3V0ZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgeyBwYXRoOiAnKionLCBjb21wb25lbnQ6IE5vdEZvdW5kQ29tcG9uZW50IH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY3JlYXRlVHJhbnNsYXRlTG9hZGVyKGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgICAgICByZXR1cm4gbmV3IE11bHRpVHJhbnNsYXRlSHR0cExvYWRlcihodHRwLFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICB7IHByZWZpeDogJ2Fzc2V0cy9pMThuLycsIHN1ZmZpeDogJy5qc29uJyB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcmVmaXg6ICdhc3NldHMvaTE4bi9zaGFyZWQvJywgc3VmZml4OiAnLmpzb24nIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0U2lnbmFsckNvbmZpZyhlbnZpcm9ubWVudCkge1xyXG4gICAgICAgIGNvbnN0IGM6IGFueSA9IHt9O1xyXG4gICAgICAgIGMuaHViTmFtZSA9ICd0bmNsaWVudCc7XHJcbiAgICAgICAgYy5xcyA9IHsga2V5OiAnd2ViYXBwJyB9O1xyXG5cclxuICAgICAgICBpZiAoZW52aXJvbm1lbnQuc2lnbmFsUkNvbmZpZy51c2VTU0wpIHtcclxuICAgICAgICAgICAgYy51cmwgPSBgJHtlbnZpcm9ubWVudC5zaWduYWxSQ29uZmlnLmVuZHBvaW50U1NMfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjLnVybCA9IGAke2Vudmlyb25tZW50LnNpZ25hbFJDb25maWcuZW5kcG9pbnR9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGMubG9nZ2luZyA9IGVudmlyb25tZW50LnNpZ25hbFJDb25maWcuc2hvd0xvZztcclxuXHJcbiAgICAgICAgYy5leGVjdXRlRXZlbnRzSW5ab25lID0gdHJ1ZTtcclxuICAgICAgICBjLmV4ZWN1dGVFcnJvcnNJblpvbmUgPSBmYWxzZTtcclxuICAgICAgICBjLmV4ZWN1dGVTdGF0dXNDaGFuZ2VJblpvbmUgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBjO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlPywgbGFuZ3VhZ2U/KSB7XHJcbiAgICAgICAgaWYgKCFsb2NhbGUpIHtcclxuICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlVmk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghbGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2UgPSAndmknO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZSwgbGFuZ3VhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbXBvcnRSb290TW9kdWxlKGVudmlyb25tZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgQnJvd3Nlck1vZHVsZSxcclxuICAgICAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICAgICAgICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgICAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAgICAgICAgICAgICBsb2FkZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVMb2FkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogUHVibGljRnVuY3Rpb24uY3JlYXRlVHJhbnNsYXRlTG9hZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50XSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBOZ3hNYXNrTW9kdWxlLmZvclJvb3QoKSxcclxuICAgICAgICAgICAgT0F1dGhNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAgICAgICAgICAgICByZXNvdXJjZVNlcnZlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRVcmxzOiBbZW52aXJvbm1lbnQuYXBpRG9tYWluLmdhdGV3YXldLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRBY2Nlc3NUb2tlbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgSW1nRmFsbGJhY2tNb2R1bGUsXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdXNlUm9vdFByb3ZpZGVyKGVudmlyb21tZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiAndmktVk4nIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICAgICAgICAgICAgdXNlQ2xhc3M6IFNlbmRBY2Nlc3NUb2tlbkludGVyY2VwdG9yLFxyXG4gICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICAgICAgICAgICAgdXNlQ2xhc3M6IExvZ0ludGVyY2VwdG9yLFxyXG4gICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICAgICAgICAgICAgdXNlQ2xhc3M6IFBlcm1pc3Npb25VdGlsc0ludGVyY2VwdG9yLFxyXG4gICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICAgICAgICAgICAgdXNlQ2xhc3M6IFRyYWNlSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgICAgIENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgIERhdGVQaXBlLFxyXG4gICAgICAgICAgICBVc2VyRm9ybWF0UGlwZSxcclxuICAgICAgICAgICAgVXNlcnNGb3JtYXRQaXBlLFxyXG4gICAgICAgICAgICBIdG1sRm9ybWF0UGlwZSxcclxuICAgICAgICAgICAgU2FmZUh0bWxQaXBlLFxyXG4gICAgICAgICAgICBPcmdhbml6YXRpb25Gb3JtYXRQaXBlLFxyXG4gICAgICAgICAgICBPcmdhbml6YXRpb25zRm9ybWF0UGlwZSxcclxuICAgICAgICAgICAgTWFzdGVyRGF0YVBpcGUsXHJcbiAgICAgICAgICAgIE5vdGlmaWVyU2VydmljZSxcclxuICAgICAgICAgICAgRGVjaW1hbFBpcGUsXHJcbiAgICAgICAgICAgIFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgIEVudGl0eVdvcmtmbG93U2V0dGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgIEVudGl0eVdvcmtmbG93SGlzdG9yeVNlcnZpY2UsXHJcbiAgICAgICAgICAgIEVudGl0eVBlcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNsYXNzZXMvcHVibGljLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUNoSCxP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ekI7YUFDSixDQUFDO1lBQ0YsaUJBQWlCO1NBQ3BCLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXO1FBQzlCLE9BQU87WUFDSCxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtZQUN6QztnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLEtBQUssRUFBRSxJQUFJO2FBQ2Q7WUFDRDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxLQUFLLEVBQUUsSUFBSTthQUNkO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7YUFDZDtZQUNELGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsUUFBUTtZQUNSLGNBQWM7WUFDZCxlQUFlO1lBQ2YsY0FBYztZQUNkLFlBQVk7WUFDWixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsV0FBVztZQUNYLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLHVCQUF1QjtTQUMxQixDQUFDO0lBQ04sQ0FBQztDQUdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUsIERlY2ltYWxQaXBlLCByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ2xpZW50TW9kdWxlLCBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IGxvY2FsZVZpIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3ZpJztcclxuaW1wb3J0IHsgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhNb2R1bGUgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgSW1nRmFsbGJhY2tNb2R1bGUgfSBmcm9tICduZ3gtaW1nLWZhbGxiYWNrJztcclxuaW1wb3J0IHsgTmd4TWFza01vZHVsZSB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBBY2Nlc3NEZW5pZWRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2FjY2Vzcy1kZW5pZWQtY29tcG9uZW50L2FjY2Vzcy1kZW5pZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21tb24tZGFzaGJvYXJkL2NvbW1vbi1kYXNoYm9hcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1wZXJtaXNzaW9uL3NlcnZpY2VzLmNzL2VudGl0eS1wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3NwbGFzaC1jb21wb25lbnQvc3BsYXNoLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbml2ZXJzYWxMaW5rUHJvY2Vzc29yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy91bml2ZXJzYWwtbGluay1wcm9jZXNzb3IvdW5pdmVyc2FsLWxpbmstcHJvY2Vzc29yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudGl0eVdvcmtmbG93SGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3dvcmtmbG93L3NlcnZpY2VzL2VudGl0eS13b3JrZmxvdy1oaXN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnRpdHlXb3JrZmxvd1NldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy93b3JrZmxvdy9zZXJ2aWNlcy9lbnRpdHktd29ya2Zsb3ctc2V0dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9nSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9pbnRlcmNlcHRlcnMvbG9nLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblV0aWxzSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9pbnRlcmNlcHRlcnMvcGVybWlzc2lvbi11dGlscy5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IFNlbmRBY2Nlc3NUb2tlbkludGVyY2VwdG9yIH0gZnJvbSAnLi4vaW50ZXJjZXB0ZXJzL3NlbmQtYWNjZXNzLXRva2VuLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgVHJhY2VJbnRlcmNlcHRvciB9IGZyb20gJy4uL2ludGVyY2VwdGVycy90cmFjZS5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IEh0bWxGb3JtYXRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvaHRtbC1mb3JtYXQucGlwZSc7XHJcbmltcG9ydCB7IE1hc3RlckRhdGFQaXBlIH0gZnJvbSAnLi4vcGlwZXMvbWFzdGVyRGF0YS5waXBlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uRm9ybWF0UGlwZSB9IGZyb20gJy4uL3BpcGVzL29yZ2FuaXphdGlvbi1mb3JtYXQucGlwZSc7XHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvbnNGb3JtYXRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvb3JnYW5pemF0aW9ucy1mb3JtYXQucGlwZSc7XHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4uL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcclxuaW1wb3J0IHsgVXNlckZvcm1hdFBpcGUgfSBmcm9tICcuLi9waXBlcy91c2VyLWZvcm1hdC5waXBlJztcclxuaW1wb3J0IHsgVXNlcnNGb3JtYXRQaXBlIH0gZnJvbSAnLi4vcGlwZXMvdXNlcnMtZm9ybWF0LnBpcGUnO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcclxuLy8gVE9ETzogVXBncmFkZSBzYXVcclxuLy8gaW1wb3J0IHsgQnJvd3NlckZhdmljb25zLCBCUk9XU0VSX0ZBVklDT05TX0NPTkZJRywgRmF2aWNvbnMgfSBmcm9tICcuL2Zhdmljb24nO1xyXG5pbXBvcnQgeyBNdWx0aVRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICcuL211bHRpLXRyYW5zbGF0ZS1odHRwLWxvYWRlcic7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFB1YmxpY0Z1bmN0aW9uIHtcclxuXHJcbiAgICBzdGF0aWMgaW5pdFJvdXRlKHJvdXRlczogYW55W10pIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAuLi5QdWJsaWNGdW5jdGlvbi5jb21tb25Sb3V0ZXMoKSxcclxuICAgICAgICAgICAgLi4ucm91dGVzLFxyXG4gICAgICAgICAgICAuLi5QdWJsaWNGdW5jdGlvbi5kZWZhdWx0Um91dGVzKCksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY29tbW9uUm91dGVzKCkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBTcGxhc2hDb21wb25lbnRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdkYXNoYm9hcmQnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDb21tb25EYXNoYm9hcmRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdhY2Nlc3MtZGVuaWVkJyxcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQWNjZXNzRGVuaWVkQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAndW5pdmVyc2FsLWxpbmsnLFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBVbml2ZXJzYWxMaW5rUHJvY2Vzc29yQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRlZmF1bHRSb3V0ZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgeyBwYXRoOiAnKionLCBjb21wb25lbnQ6IE5vdEZvdW5kQ29tcG9uZW50IH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY3JlYXRlVHJhbnNsYXRlTG9hZGVyKGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgICAgICByZXR1cm4gbmV3IE11bHRpVHJhbnNsYXRlSHR0cExvYWRlcihodHRwLFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICB7IHByZWZpeDogJ2Fzc2V0cy9pMThuLycsIHN1ZmZpeDogJy5qc29uJyB9LFxyXG4gICAgICAgICAgICAgICAgeyBwcmVmaXg6ICdhc3NldHMvaTE4bi9zaGFyZWQvJywgc3VmZml4OiAnLmpzb24nIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0U2lnbmFsckNvbmZpZyhlbnZpcm9ubWVudCkge1xyXG4gICAgICAgIGNvbnN0IGM6IGFueSA9IHt9O1xyXG4gICAgICAgIGMuaHViTmFtZSA9ICd0bmNsaWVudCc7XHJcbiAgICAgICAgYy5xcyA9IHsga2V5OiAnd2ViYXBwJyB9O1xyXG5cclxuICAgICAgICBpZiAoZW52aXJvbm1lbnQuc2lnbmFsUkNvbmZpZy51c2VTU0wpIHtcclxuICAgICAgICAgICAgYy51cmwgPSBgJHtlbnZpcm9ubWVudC5zaWduYWxSQ29uZmlnLmVuZHBvaW50U1NMfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjLnVybCA9IGAke2Vudmlyb25tZW50LnNpZ25hbFJDb25maWcuZW5kcG9pbnR9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGMubG9nZ2luZyA9IGVudmlyb25tZW50LnNpZ25hbFJDb25maWcuc2hvd0xvZztcclxuXHJcbiAgICAgICAgYy5leGVjdXRlRXZlbnRzSW5ab25lID0gdHJ1ZTtcclxuICAgICAgICBjLmV4ZWN1dGVFcnJvcnNJblpvbmUgPSBmYWxzZTtcclxuICAgICAgICBjLmV4ZWN1dGVTdGF0dXNDaGFuZ2VJblpvbmUgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBjO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlPywgbGFuZ3VhZ2U/KSB7XHJcbiAgICAgICAgaWYgKCFsb2NhbGUpIHtcclxuICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlVmk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghbGFuZ3VhZ2UpIHtcclxuICAgICAgICAgICAgbGFuZ3VhZ2UgPSAndmknO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZSwgbGFuZ3VhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpbXBvcnRSb290TW9kdWxlKGVudmlyb25tZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgQnJvd3Nlck1vZHVsZSxcclxuICAgICAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICAgICAgICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgICAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAgICAgICAgICAgICBsb2FkZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVMb2FkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogUHVibGljRnVuY3Rpb24uY3JlYXRlVHJhbnNsYXRlTG9hZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50XSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBOZ3hNYXNrTW9kdWxlLmZvclJvb3QoKSxcclxuICAgICAgICAgICAgT0F1dGhNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAgICAgICAgICAgICByZXNvdXJjZVNlcnZlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsbG93ZWRVcmxzOiBbZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEuYXBwR2F0ZXdheV0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2VuZEFjY2Vzc1Rva2VuOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBJbWdGYWxsYmFja01vZHVsZSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB1c2VSb290UHJvdmlkZXIoZW52aXJvbW1lbnQpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7IHByb3ZpZGU6IExPQ0FMRV9JRCwgdXNlVmFsdWU6ICd2aS1WTicgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogU2VuZEFjY2Vzc1Rva2VuSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogTG9nSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogUGVybWlzc2lvblV0aWxzSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogVHJhY2VJbnRlcmNlcHRvcixcclxuICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICAgICAgQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgRGF0ZVBpcGUsXHJcbiAgICAgICAgICAgIFVzZXJGb3JtYXRQaXBlLFxyXG4gICAgICAgICAgICBVc2Vyc0Zvcm1hdFBpcGUsXHJcbiAgICAgICAgICAgIEh0bWxGb3JtYXRQaXBlLFxyXG4gICAgICAgICAgICBTYWZlSHRtbFBpcGUsXHJcbiAgICAgICAgICAgIE9yZ2FuaXphdGlvbkZvcm1hdFBpcGUsXHJcbiAgICAgICAgICAgIE9yZ2FuaXphdGlvbnNGb3JtYXRQaXBlLFxyXG4gICAgICAgICAgICBNYXN0ZXJEYXRhUGlwZSxcclxuICAgICAgICAgICAgTm90aWZpZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICBEZWNpbWFsUGlwZSxcclxuICAgICAgICAgICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgRW50aXR5V29ya2Zsb3dTZXR0aW5nU2VydmljZSxcclxuICAgICAgICAgICAgRW50aXR5V29ya2Zsb3dIaXN0b3J5U2VydmljZSxcclxuICAgICAgICAgICAgRW50aXR5UGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -10,7 +10,7 @@ export class SendAccessTokenInterceptor {
|
|
|
10
10
|
this._environmentService = _environmentService;
|
|
11
11
|
}
|
|
12
12
|
intercept(request, next) {
|
|
13
|
-
if (!this._environmentService.getDisableAuthentication) {
|
|
13
|
+
if (!this._environmentService.getDisableAuthentication()) {
|
|
14
14
|
request = request.clone({
|
|
15
15
|
setHeaders: {
|
|
16
16
|
Authorization: `Bearer ${this.authenService.getAccessToken()}`,
|
|
@@ -31,4 +31,4 @@ SendAccessTokenInterceptor.ctorParameters = () => [
|
|
|
31
31
|
{ type: AuthenService },
|
|
32
32
|
{ type: EnvironmentService }
|
|
33
33
|
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1hY2Nlc3MtdG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiaW50ZXJjZXB0ZXJzL3NlbmQtYWNjZXNzLXRva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBS3JFLE1BQU0sT0FBTywwQkFBMEI7SUFDbkMsWUFDVyxhQUE0QixFQUMzQixtQkFBdUM7UUFEeEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtJQUVuRCxDQUFDO0lBR0QsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFO1lBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNwQixVQUFVLEVBQUU7b0JBQ1IsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsRUFBRTtvQkFDOUQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxNQUFNO2lCQUMvQjthQUNKLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Ozs7WUF0QkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFMUSxhQUFhO1lBQ2Isa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhlblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW5kQWNjZXNzVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgYXV0aGVuU2VydmljZTogQXV0aGVuU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9lbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX2Vudmlyb25tZW50U2VydmljZS5nZXREaXNhYmxlQXV0aGVudGljYXRpb24oKSkge1xyXG4gICAgICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgICAgICAgICBzZXRIZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuYXV0aGVuU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgUG9ydGFsQWxpYXM6IGxvY2F0aW9uLm9yaWdpblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -220,6 +220,9 @@ export class EnvironmentService {
|
|
|
220
220
|
getSignalr_ClientKey() {
|
|
221
221
|
return this.environment.signalr.clientKey;
|
|
222
222
|
}
|
|
223
|
+
getApiGateway() {
|
|
224
|
+
return this.environment.appMetadata.gateway;
|
|
225
|
+
}
|
|
223
226
|
getGatewaySubpath() {
|
|
224
227
|
return this.environment.appMetadata.gatewaySubpath;
|
|
225
228
|
}
|
|
@@ -285,4 +288,4 @@ EnvironmentService.decorators = [
|
|
|
285
288
|
EnvironmentService.ctorParameters = () => [
|
|
286
289
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [moduleConfigFunc,] }] }
|
|
287
290
|
];
|
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTdFLE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsT0FBTyxJQUFJLGNBQWMsQ0FBZSxFQUFFLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBSUQsTUFBTSxPQUFPLGtCQUFrQjtJQUczQixZQUVJLGtCQUF1QixJQUFJO1FBRTNCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDbEIsMkJBQTJCO1lBQzNCLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2RCxJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkM7aUJBQ0k7Z0JBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0o7YUFDSTtZQUNELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7WUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7WUFDMUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQy9FO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLEtBQUssR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxJQUFJ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QUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCx3QkFBd0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7OztZQXpVSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs0Q0FLUSxRQUFRLFlBQUksTUFBTSxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTY2hlbWEgfSBmcm9tICcuLi9jbGFzc2VzL2Vudmlyb25tZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XHJcbmV4cG9ydCBmdW5jdGlvbiBtb2R1bGVDb25maWdGdW5jKCkge1xyXG4gICAgcmV0dXJuIG5ldyBJbmplY3Rpb25Ub2tlbjxNb2R1bGVDb25maWc+KCcnKTtcclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50U2VydmljZSB7XHJcbiAgICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTY2hlbWE7XHJcbiAgICBwcml2YXRlIGFwcENvZGU6IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QobW9kdWxlQ29uZmlnRnVuYylcclxuICAgICAgICBtb2R1bGVDb25maWdWYWw6IGFueSA9IG51bGxcclxuICAgICkge1xyXG4gICAgICAgIGlmICghbW9kdWxlQ29uZmlnVmFsKSB7XHJcbiAgICAgICAgICAgIC8vIGdldCBmcm9tIHNlc3Npb24gc3RvcmFnZVxyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbW9kdWxlQ29uZmlnVmFsJyk7XHJcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Nhbm5vdCBmaW5kIG1vZHVsZUNvbmZpZ1ZhbCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBvYmpNb2R1bGVDb25maWdWYWwgPSBtb2R1bGVDb25maWdWYWwoKTtcclxuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG9iak1vZHVsZUNvbmZpZ1ZhbC5lbnZpcm9ubWVudDtcclxuICAgICAgICAgICAgdGhpcy5hcHBDb2RlID0gb2JqTW9kdWxlQ29uZmlnVmFsLmFwcENvZGU7XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21vZHVsZUNvbmZpZ1ZhbCcsIEpTT04uc3RyaW5naWZ5KHRoaXMuZW52aXJvbm1lbnQpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXV0aENvbmZpZygpOiBBdXRoQ29uZmlnIHtcclxuICAgICAgICBsZXQgc2NvcGUgPSAnb3BlbmlkIHByb2ZpbGUgZW1haWwnO1xyXG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3Muc2NvcGUpIHtcclxuICAgICAgICAgICAgc2NvcGUgPSB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3Muc2NvcGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiA8QXV0aENvbmZpZz57XHJcbiAgICAgICAgICAgIGlzc3VlcjogYCR7dGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLmlzc3Vlcn1gLFxyXG4gICAgICAgICAgICBjbGllbnRJZDogYCR7dGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLmNsaWVudElkfWAsXHJcbiAgICAgICAgICAgIHJlZGlyZWN0VXJpOiB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuY3VzdG9tUmVkaXJlY3RVcmkgfHwgd2luZG93LmxvY2F0aW9uLm9yaWdpbixcclxuICAgICAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxyXG4gICAgICAgICAgICBzaWxlbnRSZWZyZXNoUmVkaXJlY3RVcmk6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3NpbGVudC1yZWZyZXNoLmh0bWwnLFxyXG4gICAgICAgICAgICByZXF1aXJlSHR0cHM6IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5yZXF1aXJlSHR0cHMgPyB0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MucmVxdWlyZUh0dHBzIDogZmFsc2UsXHJcbiAgICAgICAgICAgIHNjb3BlLFxyXG4gICAgICAgICAgICBzaG93RGVidWdJbmZvcm1hdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHJlcXVlc3RBY2Nlc3NUb2tlbjogdHJ1ZSxcclxuICAgICAgICAgICAgdXNlU2lsZW50UmVmcmVzaDogZmFsc2UsXHJcbiAgICAgICAgICAgIGNsZWFySGFzaEFmdGVyTG9naW46IHRydWVcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgZW5kcG9pbnQgPSAnJztcclxuICAgICAgICBpZiAoc2VydmljZUluZm8udXNlTG9jYWwpIHtcclxuICAgICAgICAgICAgZW5kcG9pbnQgPSBzZXJ2aWNlSW5mby5sb2NhbEh0dHBFbmRwb2ludDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdhdGV3YXkgPSB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXk7XHJcbiAgICAgICAgICAgIGVuZHBvaW50ID0gYCR7Z2F0ZXdheX0vJHtzZXJ2aWNlSW5mby5jb2RlfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlbmRwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNlcnZpY2VFbmRwb2ludFdpdGhWZXJzaW9uQnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBlbmRwb2ludCA9IHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbyk7XHJcbiAgICAgICAgbGV0IGFwaVZlcnNpb24gPSB0aGlzLmVudmlyb25tZW50Lm1ham9yQXBpVmVyc2lvbjtcclxuICAgICAgICBpZiAoc2VydmljZUluZm8uYXBpVmVyc2lvbikge1xyXG4gICAgICAgICAgICBhcGlWZXJzaW9uID0gc2VydmljZUluZm8uYXBpVmVyc2lvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYCR7ZW5kcG9pbnR9L3Yke2FwaVZlcnNpb259YDtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEh0dHBTZXJ2aWNlRW5kcG9pbnQoc2VydmljZUNvZGU6IHN0cmluZywgaW5jbHVkZVZlcnNpb246IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIHNlcnZpY2VDb2RlID0gc2VydmljZUNvZGUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zdCBzZXJ2aWNlSW5mbyA9IE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZmluZChxID0+IHEuY29kZSA9PSBzZXJ2aWNlQ29kZSk7XHJcbiAgICAgICAgaWYgKCFzZXJ2aWNlSW5mbykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBLaMO0bmcgdMOsbSB0aOG6pXkgZW5kcG9pbnQgY+G7p2Egc2VydmljZSAke3NlcnZpY2VDb2RlfSB0cm9uZyBj4bqldSBow6xuaGApO1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoIWluY2x1ZGVWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VFbmRwb2ludEJ5U2VydmljZUluZm8oc2VydmljZUluZm8pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTZXJ2aWNlRW5kcG9pbnRXaXRoVmVyc2lvbkJ5U2VydmljZUluZm8oc2VydmljZUluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEh0dHBTZXJ2aWNlRW5kcG9pbnQoc2VydmljZUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEh0dHBTZXJ2aWNlRW5kcG9pbnQoc2VydmljZUNvZGUsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIdHRwU2VydmljZUVuZHBvaW50V2l0aFZlcnNpb24oc2VydmljZUNvZGUpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRIdHRwU2VydmljZUVuZHBvaW50KHNlcnZpY2VDb2RlLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIdHRwU2VydmljZUVuZHBvaW50T2xkKHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHNlcnZpY2VDb2RlID0gc2VydmljZUNvZGUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zdCBzZXJ2aWNlSW5mbyA9IE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZmluZChxID0+IHEuY29kZSA9PSBzZXJ2aWNlQ29kZSk7XHJcbiAgICAgICAgaWYgKCFzZXJ2aWNlSW5mbykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBLaMO0bmcgdMOsbSB0aOG6pXkgZW5kcG9pbnQgY+G7p2Egc2VydmljZSAke3NlcnZpY2VDb2RlfSB0cm9uZyBj4bqldSBow6xuaGApO1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgZW5kcG9pbnQgPSAnJztcclxuICAgICAgICBpZiAoc2VydmljZUluZm8udXNlTG9jYWwpIHtcclxuICAgICAgICAgICAgZW5kcG9pbnQgPSBzZXJ2aWNlSW5mby5sb2NhbEh0dHBFbmRwb2ludE9sZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdhdGV3YXkgPSB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXlPbGQ7XHJcbiAgICAgICAgICAgIGVuZHBvaW50ID0gYCR7Z2F0ZXdheX0vJHtzZXJ2aWNlQ29kZX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZW5kcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SHR0cENsaWVudEVuZHBvaW50KHNlcnZpY2VDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpc1VzZU9sZFNlcnZpY2Uoc2VydmljZUNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbmZvID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LnNlcnZpY2VzKS5maW5kKHEgPT4gcS5jb2RlID09IHNlcnZpY2VDb2RlKTtcclxuICAgICAgICBpZiAoIXNlcnZpY2VJbmZvKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEtow7RuZyB0w6xtIHRo4bqleSBlbmRwb2ludCBj4bunYSBzZXJ2aWNlICR7c2VydmljZUNvZGV9IHRyb25nIGPhuqV1IGjDrG5oYCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBzZXJ2aWNlSW5mby51c2VPbGRWZXJzaW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEVuYWJsZUh1YigpIHtcclxuICAgICAgICBsZXQgb2JqRW5hYmxlSHVicyA9IHRoaXMuZW52aXJvbm1lbnQuc2lnbmFsUkNvbmZpZy5lbmFibGVIdWJzO1xyXG4gICAgICAgIGlmICghb2JqRW5hYmxlSHVicykgb2JqRW5hYmxlSHVicyA9IHt9O1xyXG4gICAgICAgIE9iamVjdC5rZXlzKG9iakVuYWJsZUh1YnMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaWYgKChvYmpFbmFibGVIdWJzW2tleV0gYXMgYW55KSA9PT0gJ3RydWUnIHx8IG9iakVuYWJsZUh1YnNba2V5XSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqRW5hYmxlSHVic1trZXldID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG9iakVuYWJsZUh1YnNba2V5XSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG9iakVuYWJsZUh1YnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGVmYXVsdE1hbGVBdmF0YXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5kZWZhdWx0TWFsZUF2YXRhcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXREZWZhdWx0RmVtYWxlQXZhdGFyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4uZGVmYXVsdEZlbWFsZUF2YXRhcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVHJ1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSAndHJ1ZSc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9nb3V0T25VbmF1dGhvcml6ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5sb2dvdXRPblVuYXV0aG9yaXplZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TGlzdEFwcCgpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5hcHBzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPYmplY3RBcHAobW9kdWxlOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LmFwcHMpLmZpbmQocSA9PiBxLmNvZGUgPT0gbW9kdWxlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1vZHVsZU5hbWUobW9kdWxlOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBvYmpBcHAgPSB0aGlzLmdldE9iamVjdEFwcChtb2R1bGUpO1xyXG4gICAgICAgIHJldHVybiBvYmpBcHA/LnRpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExvbmdNb2R1bGVOYW1lKG1vZHVsZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqQXBwID0gdGhpcy5nZXRPYmplY3RBcHAobW9kdWxlKTtcclxuICAgICAgICByZXR1cm4gb2JqQXBwPy5sb25nVGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2hvd1dhcm5pbmdNZXNzYWdlSW5Ub2FzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5zaG93V2FybmluZ01lc3NhZ2VJblRvYXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXNJZ25vcmVBZG1pbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5pc0lnbm9yZUFkbWluKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBcHBDb2RlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwcENvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TGlzdEFwcENvZGUoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuYXBwcykubWFwKHEgPT4gcS5jb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMaXN0QXBpRG9tYWluKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgICBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuc2VydmljZXMpLmZvckVhY2goc2VydmljZSA9PiB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdG9yYWdlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnN0b3JhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RW5hYmxlVG5DbGllbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlVG5DbGllbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldElzRm9yY2VMb2dvdXRJZjQwMSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLmlzRm9yY2VMb2dvdXRJZjQwMSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlzYWJsZUF1dGhlbnRpY2F0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuZGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEF1dGhlbnRpY2F0aW9uVHlwZSgpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5hdXRoZW5UeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEVuYWJsZVBvcHVsYXRlTG9nKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmVuYWJsZVBvcHVsYXRlTG9nKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaG93RGVmYXVsdFNldHRpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5zaG93RGVmYXVsdFNldHRpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERpc2FibGVOb3RpZmljYXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuZGlzYWJsZU5vdGlmaWNhdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SGVscENvbmZpZ19FeHBlcnROYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcuZXhwZXJ0TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIZWxwQ29uZmlnX0V4cGVydFBob25lTnVtbWJlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmV4cGVydFBob25lTnVtbWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIZWxwQ29uZmlnX0V4cGVydEVtYWlsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcuZXhwZXJ0RW1haWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SGVscENvbmZpZ19Mb2dvQ29tcGFueSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmxvZ29Db21wYW55O1xyXG4gICAgfVxyXG5cclxuICAgIGdldEhlbHBDb25maWdfRG9jdW1lbnRzKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5oZWxwQ29uZmlnLmRvY3VtZW50cztcclxuICAgIH1cclxuXHJcbiAgICBnZXRTcGxhc2hTY3JlZW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc3BsYXNoU2NyZWVuO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVuZGVyY29uc3RydWN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnVuZGVyY29uc3RydWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNpZ25hbHJfQ2xpZW50S2V5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnNpZ25hbHIuY2xpZW50S2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGdldEdhdGV3YXlTdWJwYXRoKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXlTdWJwYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERvY3VtZW50U2VydmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmRvY3VtZW50U2VydmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzaW5nSW50ZXJuYWxGaWxlRW5kcG9pbnRGb3JWaWV3KCkge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuZW52aXJvbm1lbnQuaW50ZXJuYWxGaWxlRW5kcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW50ZXJuYWxGaWxlRW5kcG9pbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaW50ZXJuYWxGaWxlRW5kcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0S3lTb1NpbV9Uc2FVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZGVmYXVsdFZhbHVlPy5reVNvU2ltPy50c2FVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnV0dG9uUGVybWlzc2lvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYnV0dG9uUGVybWlzc2lvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZ0RhdGFEZWZhdWx0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnNldHRpbmdEYXRhRGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRLZXlQcmVzc1Blcm1pc3Npb25VdGlscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5rZXlQcmVzc1Blcm1pc3Npb25VdGlscztcclxuICAgIH1cclxuXHJcbiAgICBnZXRDdXN0b21pemVVaSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5jdXN0b21pemVVaTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUaXRsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLnRpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExvZ28oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5sb2dvO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE93bmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4ub3duZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RW5hYmxlQmFzZUhyZWYoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlQmFzZUhyZWY7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGVmYXVsdFJlZGlyZWN0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmNsaWVudERvbWFpbj8uZGVmYXVsdFJlZGlyZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldElzUHJvZHVjdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5wcm9kdWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMaW5rRG93bmxvYWRDbGllbnRBcHAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc2lnbmFsci5saW5rRG93bmxvYWRDbGllbnRBcHA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VzdG9tQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudmlyb25tZW50LmN1c3RvbUNvbmZpZykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuY3VzdG9tQ29uZmlnW2tleV07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTdFLE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsT0FBTyxJQUFJLGNBQWMsQ0FBZSxFQUFFLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBSUQsTUFBTSxPQUFPLGtCQUFrQjtJQUczQixZQUVJLGtCQUF1QixJQUFJO1FBRTNCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDbEIsMkJBQTJCO1lBQzNCLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2RCxJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkM7aUJBQ0k7Z0JBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0o7YUFDSTtZQUNELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7WUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7WUFDMUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQy9FO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLEtBQUssR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxJQUFJ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Q2QsYUFBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksMENBQUUsZUFBZSxDQUFDO0lBQzFELENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELHdCQUF3QjtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDO0lBQzFELENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7O1lBN1VKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7OzRDQUtRLFFBQVEsWUFBSSxNQUFNLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0aENvbmZpZyB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNjaGVtYSB9IGZyb20gJy4uL2NsYXNzZXMvZW52aXJvbm1lbnQtc2NoZW1hJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcclxuZXhwb3J0IGZ1bmN0aW9uIG1vZHVsZUNvbmZpZ0Z1bmMoKSB7XHJcbiAgICByZXR1cm4gbmV3IEluamVjdGlvblRva2VuPE1vZHVsZUNvbmZpZz4oJycpO1xyXG59XHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRTZXJ2aWNlIHtcclxuICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNjaGVtYTtcclxuICAgIHByaXZhdGUgYXBwQ29kZTogc3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChtb2R1bGVDb25maWdGdW5jKVxyXG4gICAgICAgIG1vZHVsZUNvbmZpZ1ZhbDogYW55ID0gbnVsbFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKCFtb2R1bGVDb25maWdWYWwpIHtcclxuICAgICAgICAgICAgLy8gZ2V0IGZyb20gc2Vzc2lvbiBzdG9yYWdlXHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtb2R1bGVDb25maWdWYWwnKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignY2Fubm90IGZpbmQgbW9kdWxlQ29uZmlnVmFsJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iak1vZHVsZUNvbmZpZ1ZhbCA9IG1vZHVsZUNvbmZpZ1ZhbCgpO1xyXG4gICAgICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gb2JqTW9kdWxlQ29uZmlnVmFsLmVudmlyb25tZW50O1xyXG4gICAgICAgICAgICB0aGlzLmFwcENvZGUgPSBvYmpNb2R1bGVDb25maWdWYWwuYXBwQ29kZTtcclxuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW9kdWxlQ29uZmlnVmFsJywgSlNPTi5zdHJpbmdpZnkodGhpcy5lbnZpcm9ubWVudCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRBdXRoQ29uZmlnKCk6IEF1dGhDb25maWcge1xyXG4gICAgICAgIGxldCBzY29wZSA9ICdvcGVuaWQgcHJvZmlsZSBlbWFpbCc7XHJcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5zY29wZSkge1xyXG4gICAgICAgICAgICBzY29wZSA9IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5zY29wZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDxBdXRoQ29uZmlnPntcclxuICAgICAgICAgICAgaXNzdWVyOiBgJHt0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuaXNzdWVyfWAsXHJcbiAgICAgICAgICAgIGNsaWVudElkOiBgJHt0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuY2xpZW50SWR9YCxcclxuICAgICAgICAgICAgcmVkaXJlY3RVcmk6IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5jdXN0b21SZWRpcmVjdFVyaSB8fCB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxyXG4gICAgICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sXHJcbiAgICAgICAgICAgIHNpbGVudFJlZnJlc2hSZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvc2lsZW50LXJlZnJlc2guaHRtbCcsXHJcbiAgICAgICAgICAgIHJlcXVpcmVIdHRwczogdGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLnJlcXVpcmVIdHRwcyA/IHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5yZXF1aXJlSHR0cHMgOiBmYWxzZSxcclxuICAgICAgICAgICAgc2NvcGUsXHJcbiAgICAgICAgICAgIHNob3dEZWJ1Z0luZm9ybWF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVxdWVzdEFjY2Vzc1Rva2VuOiB0cnVlLFxyXG4gICAgICAgICAgICB1c2VTaWxlbnRSZWZyZXNoOiBmYWxzZSxcclxuICAgICAgICAgICAgY2xlYXJIYXNoQWZ0ZXJMb2dpbjogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTZXJ2aWNlRW5kcG9pbnRCeVNlcnZpY2VJbmZvKHNlcnZpY2VJbmZvOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBlbmRwb2ludCA9ICcnO1xyXG4gICAgICAgIGlmIChzZXJ2aWNlSW5mby51c2VMb2NhbCkge1xyXG4gICAgICAgICAgICBlbmRwb2ludCA9IHNlcnZpY2VJbmZvLmxvY2FsSHR0cEVuZHBvaW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZ2F0ZXdheSA9IHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEuZ2F0ZXdheTtcclxuICAgICAgICAgICAgZW5kcG9pbnQgPSBgJHtnYXRld2F5fS8ke3NlcnZpY2VJbmZvLmNvZGV9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGVuZHBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2VydmljZUVuZHBvaW50V2l0aFZlcnNpb25CeVNlcnZpY2VJbmZvKHNlcnZpY2VJbmZvOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5nZXRTZXJ2aWNlRW5kcG9pbnRCeVNlcnZpY2VJbmZvKHNlcnZpY2VJbmZvKTtcclxuICAgICAgICBsZXQgYXBpVmVyc2lvbiA9IHRoaXMuZW52aXJvbm1lbnQubWFqb3JBcGlWZXJzaW9uO1xyXG4gICAgICAgIGlmIChzZXJ2aWNlSW5mby5hcGlWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIGFwaVZlcnNpb24gPSBzZXJ2aWNlSW5mby5hcGlWZXJzaW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByZXN1bHQgPSBgJHtlbmRwb2ludH0vdiR7YXBpVmVyc2lvbn1gO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0SHR0cFNlcnZpY2VFbmRwb2ludChzZXJ2aWNlQ29kZTogc3RyaW5nLCBpbmNsdWRlVmVyc2lvbjogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgc2VydmljZUNvZGUgPSBzZXJ2aWNlQ29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbmZvID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LnNlcnZpY2VzKS5maW5kKHEgPT4gcS5jb2RlID09IHNlcnZpY2VDb2RlKTtcclxuICAgICAgICBpZiAoIXNlcnZpY2VJbmZvKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEtow7RuZyB0w6xtIHRo4bqleSBlbmRwb2ludCBj4bunYSBzZXJ2aWNlICR7c2VydmljZUNvZGV9IHRyb25nIGPhuqV1IGjDrG5oYCk7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICghaW5jbHVkZVZlcnNpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VydmljZUVuZHBvaW50QnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VFbmRwb2ludFdpdGhWZXJzaW9uQnlTZXJ2aWNlSW5mbyhzZXJ2aWNlSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SHR0cFNlcnZpY2VFbmRwb2ludChzZXJ2aWNlQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0SHR0cFNlcnZpY2VFbmRwb2ludChzZXJ2aWNlQ29kZSwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEh0dHBTZXJ2aWNlRW5kcG9pbnRXaXRoVmVyc2lvbihzZXJ2aWNlQ29kZSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEh0dHBTZXJ2aWNlRW5kcG9pbnQoc2VydmljZUNvZGUsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEh0dHBTZXJ2aWNlRW5kcG9pbnRPbGQoc2VydmljZUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc2VydmljZUNvZGUgPSBzZXJ2aWNlQ29kZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbmZvID0gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LnNlcnZpY2VzKS5maW5kKHEgPT4gcS5jb2RlID09IHNlcnZpY2VDb2RlKTtcclxuICAgICAgICBpZiAoIXNlcnZpY2VJbmZvKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEtow7RuZyB0w6xtIHRo4bqleSBlbmRwb2ludCBj4bunYSBzZXJ2aWNlICR7c2VydmljZUNvZGV9IHRyb25nIGPhuqV1IGjDrG5oYCk7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCBlbmRwb2ludCA9ICcnO1xyXG4gICAgICAgIGlmIChzZXJ2aWNlSW5mby51c2VMb2NhbCkge1xyXG4gICAgICAgICAgICBlbmRwb2ludCA9IHNlcnZpY2VJbmZvLmxvY2FsSHR0cEVuZHBvaW50T2xkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZ2F0ZXdheSA9IHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEuZ2F0ZXdheU9sZDtcclxuICAgICAgICAgICAgZW5kcG9pbnQgPSBgJHtnYXRld2F5fS8ke3NlcnZpY2VDb2RlfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlbmRwb2ludDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIdHRwQ2xpZW50RW5kcG9pbnQoc2VydmljZUNvZGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVXNlT2xkU2VydmljZShzZXJ2aWNlQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgc2VydmljZUluZm8gPSBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuc2VydmljZXMpLmZpbmQocSA9PiBxLmNvZGUgPT0gc2VydmljZUNvZGUpO1xyXG4gICAgICAgIGlmICghc2VydmljZUluZm8pIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgS2jDtG5nIHTDrG0gdGjhuqV5IGVuZHBvaW50IGPhu6dhIHNlcnZpY2UgJHtzZXJ2aWNlQ29kZX0gdHJvbmcgY+G6pXUgaMOsbmhgKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VJbmZvLnVzZU9sZFZlcnNpb247XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RW5hYmxlSHViKCkge1xyXG4gICAgICAgIGxldCBvYmpFbmFibGVIdWJzID0gdGhpcy5lbnZpcm9ubWVudC5zaWduYWxSQ29uZmlnLmVuYWJsZUh1YnM7XHJcbiAgICAgICAgaWYgKCFvYmpFbmFibGVIdWJzKSBvYmpFbmFibGVIdWJzID0ge307XHJcbiAgICAgICAgT2JqZWN0LmtleXMob2JqRW5hYmxlSHVicykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoKG9iakVuYWJsZUh1YnNba2V5XSBhcyBhbnkpID09PSAndHJ1ZScgfHwgb2JqRW5hYmxlSHVic1trZXldID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmpFbmFibGVIdWJzW2tleV0gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2JqRW5hYmxlSHVic1trZXldID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gb2JqRW5hYmxlSHVicztcclxuICAgIH1cclxuXHJcbiAgICBnZXREZWZhdWx0TWFsZUF2YXRhcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLmRlZmF1bHRNYWxlQXZhdGFyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERlZmF1bHRGZW1hbGVBdmF0YXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5kZWZhdWx0RmVtYWxlQXZhdGFyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNUcnVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09ICd0cnVlJztcclxuICAgIH1cclxuXHJcbiAgICBnZXRMb2dvdXRPblVuYXV0aG9yaXplZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLmxvZ291dE9uVW5hdXRob3JpemVkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMaXN0QXBwKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmVudmlyb25tZW50LmFwcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9iamVjdEFwcChtb2R1bGU6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuZW52aXJvbm1lbnQuYXBwcykuZmluZChxID0+IHEuY29kZSA9PSBtb2R1bGUudG9Mb3dlckNhc2UoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kdWxlTmFtZShtb2R1bGU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IG9iakFwcCA9IHRoaXMuZ2V0T2JqZWN0QXBwKG1vZHVsZSk7XHJcbiAgICAgICAgcmV0dXJuIG9iakFwcD8udGl0bGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9uZ01vZHVsZU5hbWUobW9kdWxlOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBvYmpBcHAgPSB0aGlzLmdldE9iamVjdEFwcChtb2R1bGUpO1xyXG4gICAgICAgIHJldHVybiBvYmpBcHA/LmxvbmdUaXRsZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaG93V2FybmluZ01lc3NhZ2VJblRvYXN0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LnNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNob3dFcnJvck1lc3NhZ2VJblRvYXN0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJc0lnbm9yZUFkbWluKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmlzSWdub3JlQWRtaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFwcENvZGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMaXN0QXBwQ29kZSgpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5hcHBzKS5tYXAocSA9PiBxLmNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExpc3RBcGlEb21haW4oKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5lbnZpcm9ubWVudC5zZXJ2aWNlcykuZm9yRWFjaChzZXJ2aWNlID0+IHtcclxuICAgICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5nZXRTZXJ2aWNlRW5kcG9pbnRCeVNlcnZpY2VJbmZvKHNlcnZpY2UpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0b3JhZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc3RvcmFnZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFbmFibGVUbkNsaWVudCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5lbmFibGVUbkNsaWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXNGb3JjZUxvZ291dElmNDAxKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVHJ1ZSh0aGlzLmVudmlyb25tZW50LmF1dGhlbnRpY2F0aW9uU2V0dGluZ3MuaXNGb3JjZUxvZ291dElmNDAxKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXNhYmxlQXV0aGVudGljYXRpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuYXV0aGVudGljYXRpb25TZXR0aW5ncy5kaXNhYmxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXV0aGVudGljYXRpb25UeXBlKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hdXRoZW50aWNhdGlvblNldHRpbmdzLmF1dGhlblR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RW5hYmxlUG9wdWxhdGVMb2coKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNUcnVlKHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlUG9wdWxhdGVMb2cpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNob3dEZWZhdWx0U2V0dGluZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLnNob3dEZWZhdWx0U2V0dGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlzYWJsZU5vdGlmaWNhdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5kaXNhYmxlTm90aWZpY2F0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIZWxwQ29uZmlnX0V4cGVydE5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaGVscENvbmZpZy5leHBlcnROYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEhlbHBDb25maWdfRXhwZXJ0UGhvbmVOdW1tYmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcuZXhwZXJ0UGhvbmVOdW1tYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEhlbHBDb25maWdfRXhwZXJ0RW1haWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaGVscENvbmZpZy5leHBlcnRFbWFpbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIZWxwQ29uZmlnX0xvZ29Db21wYW55KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcubG9nb0NvbXBhbnk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SGVscENvbmZpZ19Eb2N1bWVudHMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmhlbHBDb25maWcuZG9jdW1lbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNwbGFzaFNjcmVlbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5zcGxhc2hTY3JlZW47XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VW5kZXJjb25zdHJ1Y3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQudW5kZXJjb25zdHJ1Y3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2lnbmFscl9DbGllbnRLZXkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc2lnbmFsci5jbGllbnRLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXBpR2F0ZXdheSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5nYXRld2F5O1xyXG4gICAgfVxyXG5cclxuICAgIGdldEdhdGV3YXlTdWJwYXRoKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmdhdGV3YXlTdWJwYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERvY3VtZW50U2VydmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmRvY3VtZW50U2VydmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzaW5nSW50ZXJuYWxGaWxlRW5kcG9pbnRGb3JWaWV3KCkge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuZW52aXJvbm1lbnQuaW50ZXJuYWxGaWxlRW5kcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SW50ZXJuYWxGaWxlRW5kcG9pbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuaW50ZXJuYWxGaWxlRW5kcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0S3lTb1NpbV9Uc2FVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZGVmYXVsdFZhbHVlPy5reVNvU2ltPy50c2FVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnV0dG9uUGVybWlzc2lvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYnV0dG9uUGVybWlzc2lvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2V0dGluZ0RhdGFEZWZhdWx0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LnNldHRpbmdEYXRhRGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRLZXlQcmVzc1Blcm1pc3Npb25VdGlscygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5rZXlQcmVzc1Blcm1pc3Npb25VdGlscztcclxuICAgIH1cclxuXHJcbiAgICBnZXRDdXN0b21pemVVaSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5jdXN0b21pemVVaTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUaXRsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudC5hcHBNZXRhZGF0YS5tYWluLnRpdGxlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExvZ28oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBwTWV0YWRhdGEubWFpbi5sb2dvO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE93bmVyKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLm1haW4ub3duZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RW5hYmxlQmFzZUhyZWYoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZW5hYmxlQmFzZUhyZWY7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGVmYXVsdFJlZGlyZWN0KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmNsaWVudERvbWFpbj8uZGVmYXVsdFJlZGlyZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldElzUHJvZHVjdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1RydWUodGhpcy5lbnZpcm9ubWVudC5wcm9kdWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMaW5rRG93bmxvYWRDbGllbnRBcHAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuc2lnbmFsci5saW5rRG93bmxvYWRDbGllbnRBcHA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VzdG9tQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudmlyb25tZW50LmN1c3RvbUNvbmZpZykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuY3VzdG9tQ29uZmlnW2tleV07XHJcbiAgICB9XHJcbn1cclxuIl19
|
package/fesm2015/tnx-shared.js
CHANGED
|
@@ -653,6 +653,9 @@ class EnvironmentService {
|
|
|
653
653
|
getSignalr_ClientKey() {
|
|
654
654
|
return this.environment.signalr.clientKey;
|
|
655
655
|
}
|
|
656
|
+
getApiGateway() {
|
|
657
|
+
return this.environment.appMetadata.gateway;
|
|
658
|
+
}
|
|
656
659
|
getGatewaySubpath() {
|
|
657
660
|
return this.environment.appMetadata.gatewaySubpath;
|
|
658
661
|
}
|
|
@@ -2847,6 +2850,9 @@ const clone = (obj) => {
|
|
|
2847
2850
|
return undefined;
|
|
2848
2851
|
};
|
|
2849
2852
|
const mergeJSON = (target, source) => {
|
|
2853
|
+
if (Object.keys(source).length == 0) {
|
|
2854
|
+
return target;
|
|
2855
|
+
}
|
|
2850
2856
|
if (isArray(source)) {
|
|
2851
2857
|
if (!isArray(target)) {
|
|
2852
2858
|
target = [];
|
|
@@ -2933,26 +2939,30 @@ const getEnvironmentDataNew = (personalName, scopeName, customPath = '') => {
|
|
|
2933
2939
|
const commonMasterDataApi = window.commonMasterDataApi;
|
|
2934
2940
|
const appXhr = new XMLHttpRequest();
|
|
2935
2941
|
appXhr.open('GET', `${commonMasterDataApi}v5/ConfigAndSetting/GetAppConfig`, false);
|
|
2936
|
-
|
|
2942
|
+
// Gọi api của mình thì ko cần logic cache này, logic này do phía api quyết định xem có cache không và cache bao lâu
|
|
2943
|
+
// appXhr.setRequestHeader('Cache-Control', 'no-cache, no-store, max-age=0');
|
|
2937
2944
|
appXhr.send(null);
|
|
2938
2945
|
const resGetAppConfig = appXhr.responseText;
|
|
2939
2946
|
let op = JSON.parse(resGetAppConfig).data;
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2947
|
+
// Nếu là prod thì không cần đọc cấu hình từ json nữa
|
|
2948
|
+
if (personalName != 'prod') {
|
|
2949
|
+
const res = [];
|
|
2950
|
+
res.push(getEnvironmentByName(personalName, scopeName, customPath));
|
|
2951
|
+
while (res.length > 0) {
|
|
2952
|
+
const source = JSON.parse(res.shift());
|
|
2953
|
+
op = mergeJSON(op, source);
|
|
2954
|
+
}
|
|
2955
|
+
if (op) {
|
|
2956
|
+
if (op.apps) {
|
|
2957
|
+
Object.keys(op.apps).forEach(appCode => {
|
|
2958
|
+
op.apps[appCode].code = appCode.toLowerCase();
|
|
2959
|
+
});
|
|
2960
|
+
}
|
|
2961
|
+
if (op.services) {
|
|
2962
|
+
Object.keys(op.services).forEach(appCode => {
|
|
2963
|
+
op.services[appCode].code = appCode.toLowerCase();
|
|
2964
|
+
});
|
|
2965
|
+
}
|
|
2956
2966
|
}
|
|
2957
2967
|
}
|
|
2958
2968
|
return op;
|
|
@@ -21918,7 +21928,7 @@ class SendAccessTokenInterceptor {
|
|
|
21918
21928
|
this._environmentService = _environmentService;
|
|
21919
21929
|
}
|
|
21920
21930
|
intercept(request, next) {
|
|
21921
|
-
if (!this._environmentService.getDisableAuthentication) {
|
|
21931
|
+
if (!this._environmentService.getDisableAuthentication()) {
|
|
21922
21932
|
request = request.clone({
|
|
21923
21933
|
setHeaders: {
|
|
21924
21934
|
Authorization: `Bearer ${this.authenService.getAccessToken()}`,
|
|
@@ -22314,7 +22324,7 @@ class PublicFunction {
|
|
|
22314
22324
|
NgxMaskModule.forRoot(),
|
|
22315
22325
|
OAuthModule.forRoot({
|
|
22316
22326
|
resourceServer: {
|
|
22317
|
-
allowedUrls: [environment.
|
|
22327
|
+
allowedUrls: [environment.appMetadata.appGateway],
|
|
22318
22328
|
sendAccessToken: false,
|
|
22319
22329
|
},
|
|
22320
22330
|
}),
|