@qbs-origin/origin-form 0.8.2 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/action-step-handler.mjs +7 -3
- package/esm2022/lib/enums/label.keys.mjs +2 -1
- package/esm2022/lib/formly/formly-field-stepper/formly-field-stepper.component.mjs +3 -1
- package/esm2022/lib/formly/formly-paragraph/formly-paragraph.component.mjs +16 -2
- package/esm2022/lib/model-population.helper.mjs +115 -3
- package/esm2022/lib/models/application.model.mjs +1 -1
- package/esm2022/lib/models/flux.model.mjs +2 -2
- package/esm2022/lib/models/forms.model.mjs +36 -22
- package/esm2022/lib/origin-form.component.mjs +236 -141
- package/esm2022/lib/others/flux-helper.mjs +31 -1
- package/esm2022/lib/others/translations-helper.mjs +7 -1
- package/esm2022/lib/services/applicationData.service.mjs +15 -8
- package/fesm2022/qbs-origin-origin-form.mjs +456 -171
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/enums/label.keys.d.ts +1 -0
- package/lib/formly/formly-enrol-card/formly-enrol-card.component.d.ts +1 -0
- package/lib/formly/formly-paragraph/formly-paragraph.component.d.ts +1 -0
- package/lib/models/application.model.d.ts +3 -3
- package/lib/models/forms.model.d.ts +14 -2
- package/lib/origin-form.component.d.ts +6 -2
- package/lib/others/flux-helper.d.ts +1 -0
- package/lib/others/translations-helper.d.ts +1 -0
- package/lib/services/applicationData.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -147,6 +147,12 @@ export class TranslationsHelper {
|
|
|
147
147
|
];
|
|
148
148
|
return tInfo;
|
|
149
149
|
}
|
|
150
|
+
static createValidationTranslations(langs) {
|
|
151
|
+
const tInfo = [
|
|
152
|
+
this.createTranslation(langs, 'loadingMessageTranslations', 'appConfigEdit.flux.customStep.loadingMessage', 'Loading message', 'Mesaj de așteptare'),
|
|
153
|
+
];
|
|
154
|
+
return tInfo;
|
|
155
|
+
}
|
|
150
156
|
static createKycTranslations(langs) {
|
|
151
157
|
const tInfo = [
|
|
152
158
|
this.createTranslation(langs, 'name', 'common.others.name', 'KYC', 'KYC'),
|
|
@@ -255,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
255
261
|
providedIn: 'root',
|
|
256
262
|
}]
|
|
257
263
|
}] });
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29yaWdpbi1mb3JtL3NyYy9saWIvb3RoZXJzL3RyYW5zbGF0aW9ucy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsTUFBTSxDQUFDLGlDQUFpQyxDQUM3QyxLQUFpQixFQUNqQixhQUE4QjtRQUU5QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25GLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRixLQUFLLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVGLEtBQUssZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hGLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxNQUFNLENBQUMsZ0NBQWdDLENBQzdDLEtBQWlCO1FBRWpCLE1BQU0sS0FBSyxHQUF3QjtZQUNqQztnQkFDRSxJQUFJLEVBQUUsZ0JBQWdC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RUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQzdCLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQ2pDLGtCQUE4QixFQUM5QixNQUF3QztRQUV4QyxJQUFJLElBQUksR0FBZ0IsRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQixNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6RSxJQUFJLE1BQU0sSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRztvQkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0F4ckJVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0ZXBDb250cm9sVHlwZSB9IGZyb20gXCIuLi9tb2RlbHMvZmx1eC5tb2RlbFwiO1xuaW1wb3J0IHsgRXJyb3JUcmFuc2xhdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm1zLm1vZGVsXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkluZm8sIExhYmVsSW5mbyB9IGZyb20gXCIuLi9tb2RlbHMvbGFiZWwtaW5mby5tb2RlbFwiO1xuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tIFwiLi4vbW9kZWxzL2xhbmd1YWdlLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNIZWxwZXIge1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ29tcG9uZW50RXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdLFxuICAgIGNvbXBvbmVudFR5cGU6IFN0ZXBDb250cm9sVHlwZVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLk1hbnVhbElucHV0OiByZXR1cm4gdGhpcy5jcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhsYW5ncyk7XG4gICAgICBjYXNlIFN0ZXBDb250cm9sVHlwZS5DaGVja0JveDpcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLkRpY3Rpb25hcnk6IHJldHVybiB0aGlzLmNyZWF0ZURlZmF1bHRFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgICAgY2FzZSBTdGVwQ29udHJvbFR5cGUuRG93bmxvYWREb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZURvd25sb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlVwbG9hZERvY3VtZW50czogcmV0dXJuIHRoaXMuY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlZpZXdEb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVEb3dubG9hZEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2ZhaWxUb0Rvd25sb2FkJyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gZG93bmxvYWQuJywgJ051IGFtIHJldciZaXQgc2EgZGVzY2FyYy4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9Eb3dubG9hZCcsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnTm8gZG9jdW1lbnRzIHRvIGRvd25sb2FkLicsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBkZXNjxINyY2F0LicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IEVycm9yVHJhbnNsYXRpb25zW10ge1xuICAgIGNvbnN0IHRJbmZvOiBFcnJvclRyYW5zbGF0aW9uc1tdID0gW1xuICAgICAge1xuICAgICAgICBjb2RlOiAnaW52YWxpZFR5cGUnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ0ludmFsaWQgdHlwZScsICdUaXAgaW52YWxpZCcpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAnbWF4U2l6ZScsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhlIGl0ZW0gZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mIHswfS4nLCAnRmnImWllcnVsIGRlcGHImWVzdGUgZGltZW5zaXVuZWEgbWF4aW1hIGRlIHswfS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdUaGUgaXRlbSBpcyBtYW5kYXRvcnkuJywgJ0FjZXN0IGZpyJlpZXIgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3dhaXRGb3JVcGxvYWQnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1BsZWFzZSB3YWl0IGZvciB1cGxvYWQgdG8gZmluaXNoLicsICdWxIMgcnVnYW0gYciZdGVwdGHIm2kgaW5jxINyY2FyZWEgZmnImWllcmVsb3IuJylcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogRXJyb3JUcmFuc2xhdGlvbnNbXSB7XG4gICAgY29uc3QgdEluZm86IEVycm9yVHJhbnNsYXRpb25zW10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvZGU6ICdmYWlsVG9WaWV3JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gdmlldycsICdOdSBhbSByZXXImWl0IHNhIHZpenVhbGl6ZXonKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9TaG93JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdObyBkb2N1bWVudHMgdG8gc2hvdycsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBhZmnImWF0JylcbiAgICAgIH0sXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3NpbXBsZVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAndGhyb3VnaEFwaVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRGVmYXVsdEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVDaGVja0VtYWlsVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ0NoZWNrIGVtYWlsJyxcbiAgICAgICAgJ1ZlcmlmaWNhIGVtYWlsJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsTGFiZWwnLFxuICAgICAgICAnRW1haWwnLFxuICAgICAgICAnRW1haWwnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdlbWFpbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwuZW1haWxCdXR0b25MYWJlbCcsXG4gICAgICAgICdTZW5kIGNvZGUnLFxuICAgICAgICAnVHJpbWl0ZSBjb2QnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cExhYmVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhdGlvbiBjb2RlJyxcbiAgICAgICAgJ0NvZCBkZSB2ZXJpZmljYXJlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdWZXJpZnknLFxuICAgICAgICAnVmVyaWZpY8SDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxSZXF1aXJlZExhYmVsJyxcbiAgICAgICAgJ2ZsdXguY29tcG9uZW50cy5lbWFpbC5lbWFpbFJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnRW1haWwgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnRW1haWwtdWwgZXN0ZSBvYmxpZ2F0b3JpdSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2VtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdFbWFpbCBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnRW1haWwtdWwgbnUgZXN0ZSB2YWxpZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cEVycm9yTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBFcnJvckxhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIGVycm9yJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSB2ZXJpZmljYXJlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdDb2RlIHZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhcmVhIGNvZHVsdWkgYSBmb3N0IHJlYWxpemF0xIMgY3Ugc3VjY2VzJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ2hlY2tQaG9uZVRyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdDaGVjayBwaG9uZScsXG4gICAgICAgICdWZXJpZmljYSB0ZWxlZm9uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBob25lLnBob25lTGFiZWwnLFxuICAgICAgICAnUGhvbmUnLFxuICAgICAgICAnVGVsZWZvbidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Bob25lQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5waG9uZS5waG9uZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1NlbmQgY29kZScsXG4gICAgICAgICdUcmltaXRlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cExhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwTGFiZWwnLFxuICAgICAgICAnVmVyaWZpY2F0aW9uIGNvZGUnLFxuICAgICAgICAnQ29kIGRlIHZlcmlmaWNhcmUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1ZlcmlmeScsXG4gICAgICAgICdWZXJpZmljxIMnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdwaG9uZVJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnZmx1eC5jb21wb25lbnRzLnBob25lLnBob25lUmVxdWlyZWRMYWJlbCcsXG4gICAgICAgICdQaG9uZSBudW1iZXIgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBlc3RlIG9ibGlnYXRvcml1J1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGhvbmUucGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ1Bob25lIG51bWJlciBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBudSBlc3RlIHZhbGlkJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEVycm9yTGFiZWwnLFxuICAgICAgICAnQ29kZSB2ZXJpZmljYXRpb24gZXJyb3InLFxuICAgICAgICAnRXJvYXJlIGxhIHZlcmlmaWNhcmUgY29kJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIHN1Y2Nlc3NmdWwnLFxuICAgICAgICAnVmVyaWZpY2FyZWEgY29kdWx1aSBhIGZvc3QgcmVhbGl6YXTEgyBjdSBzdWNjZXMnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVJZFNjYW5UcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdJZCBzY2FuJyxcbiAgICAgICAgJ1NjYW5hcmUgYWN0IGlkZW50aXRhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1N0ZXAgdG8gc2NhbiBpZCBkb2N1bWVudCcsXG4gICAgICAgICdQYXMgcGVudHJ1IMOubmNhcmNhcmVhIGRvY3VtZW50dWx1aSBkZSBpZGVudGl0YXRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAndXBsb2FkRmlsZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuaWRTY2FuLnVwbG9hZEJ1dHRvblRleHRMYWJlbCcsXG4gICAgICAgICdVcGxvYWQgZmlsZScsXG4gICAgICAgICfDjm5jYXJjxIMgZmnImWllcidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Rha2VQaWN0dXJlQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5pZFNjYW4udGFrZVBpY3R1cmVCdXR0b25UZXh0TGFiZWwnLFxuICAgICAgICAnVGFrZSBwaWN0dXJlJyxcbiAgICAgICAgJ1JlYWxpemVhesSDIG8gZm90b2dyYWZpZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBhdXNlVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnUGF1c2UnLFxuICAgICAgICAnUGF1esSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5TWVzc2FnZScsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBhdXNlLm9mZmVyUmVhZHlNZXNzYWdlTGFiZWwnLFxuICAgICAgICAnWW91ciBvZmZlciBoYXMgYmVlbiBwcm9jZXNzZWQuIENsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHRvIGNvbnRpbnVlIHRoZSBmbG93LicsXG4gICAgICAgICdPZmVydGEgZHVtbmVhdm9hc3RyYSBhIGZvc3QgcHJvY2VzYXRhLiBDbGljayBwZSBsaW5rLXVsIGRlIG1haSBqb3MgcGVudHJ1IGEgY29udGludWEgZmx1eHVsLidcbiAgICAgICksXG5cbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2UuY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ0NvbnRpbnVlIGZsb3cnLFxuICAgICAgICAnQ29udGludWFyZSBmbHV4J1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5U21zTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2Uub2ZmZXJSZWFkeVNtc01lc3NhZ2VMYWJlbCcsXG4gICAgICAgICdZb3VyIG9mZmVyIGhhcyBiZWVuIHByb2Nlc3NlZC4gQ2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgdG8gY29udGludWUgdGhlIGZsb3cuJyxcbiAgICAgICAgJ09mZXJ0YSBkdW1uZWF2b2FzdHJhIGEgZm9zdCBwcm9jZXNhdGEuIENsaWNrIHBlIGxpbmstdWwgZGUgbWFpIGpvcyBwZW50cnUgYSBjb250aW51YSBmbHV4dWwuJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWN0aW9uVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbG9hZGluZ01lc3NhZ2VUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnYXBwQ29uZmlnRWRpdC5mbHV4LmN1c3RvbVN0ZXAubG9hZGluZ01lc3NhZ2UnLFxuICAgICAgICAnTG9hZGluZyBtZXNzYWdlJyxcbiAgICAgICAgJ01lc2FqIGRlIGHImXRlcHRhcmUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTdGF0dXNUcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIG1lc3NhZ2UnLFxuICAgICAgICAnTWVzYWogZGUgYciZdGVwdGFyZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUt5Y1RyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKGxhbmdzLCAnbmFtZScsICdjb21tb24ub3RoZXJzLm5hbWUnLCAnS1lDJywgJ0tZQycpLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJycsXG4gICAgICAgICcnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIGlkZW50aWZpY2F0aW9uIHN0ZXAuLi4nLFxuICAgICAgICAnU2Ugw65uY2FyY8SDIHBhc3VsIGRlIGlkZW50aWZpY2FyZS4uLidcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBheW1lbnRzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1BheW1lbnQnLFxuICAgICAgICAnUGxhdMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY2FyZGVucm9sQnV0dG9uTGFiZWwnLFxuICAgICAgICAnY2FyZGVucm9sLmNhcmRlbnJvbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ0Vucm9sIGNhcmQnLFxuICAgICAgICAnw45ucm9sZWF6xIMgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbEZhaWx1cmVMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sRmFpbHVyZUxhYmVsJyxcbiAgICAgICAgJ0Vycm9yIGVucm9sbGluZyBjYXJkJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSDDrm5yb2xhcmUgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ1N1Y2Nlc3MgZW5yb2xsaW5nIGNhcmQnLFxuICAgICAgICAnU3VjY2VzIGxhIMOubnJvbGFyZSBjYXJkJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlT3BlbkJhbmtpbmdUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnT3BlbiBCYW5raW5nJyxcbiAgICAgICAgJ09wZW4gQmFua2luZydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnQ29ubmVjdCB5b3VyIGJhbmsgYWNjb3VudCcsXG4gICAgICAgICdDb25lY3RhyJtpIGNvbnR1bCBiYW5jYXInXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdpbml0aWFsTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmluaXRpYWxNZXNzYWdlJyxcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB3ZSBuZWVkIHRvIHZlcmlmeSB5b3VyIGJhbmsgYWNjb3VudCBpbmZvcm1hdGlvbi4gQ2xpY2sgTmV4dCB0byBwcm9jZWVkLicsXG4gICAgICAgICdQZW50cnUgYSBjb250aW51YSwgdHJlYnVpZSBzxIMgdmVyaWZpY8SDbSBpbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGR2cy4gYmFuY2FyLiBGYWNlyJtpIGNsaWMgcGUgVXJtxIN0b3J1bCBwZW50cnUgYSBjb250aW51YS4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdNZXNzYWdlJyxcbiAgICAgICAgJ1BsZWFzZSB3YWl0IHdoaWxlIHdlIHJldHJpZXZlIHlvdXIgYWNjb3VudCBpbmZvcm1hdGlvbi4uLicsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBhyJl0ZXB0YcibaSBww6JuxIMgY8OibmQgcHJlbHXEg20gaW5mb3JtYcibaWlsZSBjb250dWx1aSBkdnMuLi4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdjb25zZW50RXJyb3JNZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29uc2VudEVycm9yTWVzc2FnZScsXG4gICAgICAgICdZb3UgbXVzdCBwcm92aWRlIGNvbnNlbnQgdG8gY29udGludWUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgJ1RyZWJ1aWUgc8SDIG9mZXJpyJtpIGNvbnNpbcibxINtw6JudHVsIHBlbnRydSBhIGNvbnRpbnVhLiBWxIMgcnVnxINtIHPEgyDDrm5jZXJjYcibaSBkaW4gbm91LidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbXBsZXRpb25NZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29tcGxldGlvbk1lc3NhZ2UnLFxuICAgICAgICAnQWNjb3VudCBpbmZvcm1hdGlvbiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLicsXG4gICAgICAgICdJbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGF1IGZvc3QgcHJlbHVhdGUgY3Ugc3VjY2VzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3JldHJ5QnV0dG9uTGFiZWxUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5yZXRyeUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1JldHJ5JyxcbiAgICAgICAgJ1Jlw65uY2VhcmPEgydcbiAgICAgICksXG4gICAgICAvLyBCdXR0b24gdHJhbnNsYXRpb25zXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25leHRCdXR0b25UcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5uZXh0QnV0dG9uJyxcbiAgICAgICAgJ05leHQnLFxuICAgICAgICAnVXJtxIN0b3J1bCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnRpbnVlQnV0dG9uVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29udGludWVCdXR0b24nLFxuICAgICAgICAnQ29udGludWUnLFxuICAgICAgICAnQ29udGludcSDJ1xuICAgICAgKSxcbiAgICAgIC8vIFVJIGxhYmVsc1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdzZWxlY3RCYW5rVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuc2VsZWN0QmFuaycsXG4gICAgICAgICdTZWxlY3QgeW91ciBiYW5rJyxcbiAgICAgICAgJ1NlbGVjdGHIm2kgYmFuY2EgZHZzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnRUaXRsZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnRUaXRsZScsXG4gICAgICAgICdCYW5rIEF1dGhvcml6YXRpb24nLFxuICAgICAgICAnQXV0b3JpemFyZSBiYW5jYXLEgydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnREZXNjcmlwdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnREZXNjcmlwdGlvbicsXG4gICAgICAgICdQbGVhc2UgY29tcGxldGUgdGhlIGF1dGhvcml6YXRpb24gcHJvY2VzcyB3aXRoIHlvdXIgYmFuaycsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBjb21wbGV0YcibaSBwcm9jZXN1bCBkZSBhdXRvcml6YXJlIGN1IGJhbmNhIGR2cy4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nRm9yQXV0aG9yaXphdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdGb3JBdXRob3JpemF0aW9uJyxcbiAgICAgICAgJ1dhaXRpbmcgZm9yIGF1dGhvcml6YXRpb24uLi4nLFxuICAgICAgICAnU2UgYciZdGVhcHTEgyBhdXRvcml6YXJlYS4uLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3BvcHVwV2luZG93TWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwV2luZG93TWVzc2FnZScsXG4gICAgICAgICdBIG5ldyB3aW5kb3cgaGFzIG9wZW5lZCBmb3IgYmFuayBhdXRob3JpemF0aW9uLiBQbGVhc2UgY29tcGxldGUgdGhlIHByb2Nlc3MgdGhlcmUuJyxcbiAgICAgICAgJ1MtYSBkZXNjaGlzIG8gZmVyZWFzdHLEgyBub3XEgyBwZW50cnUgYXV0b3JpemFyZSBiYW5jYXLEgy4gVsSDIHJ1Z8SDbSBzxIMgY29tcGxldGHIm2kgcHJvY2VzdWwgYWNvbG8uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncG9wdXBCbG9ja2VyTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwQmxvY2tlck1lc3NhZ2UnLFxuICAgICAgICAnSWYgdGhlIHdpbmRvdyBkaWRuXFwndCBvcGVuLCBwbGVhc2UgY2hlY2sgeW91ciBwb3B1cCBibG9ja2VyIHNldHRpbmdzLicsXG4gICAgICAgICdEYWPEgyBmZXJlYXN0cmEgbnUgcy1hIGRlc2NoaXMsIHbEgyBydWfEg20gc8SDIHZlcmlmaWNhyJtpIHNldMSDcmlsZSBibG9jYXRvcnVsdWkgZGUgcG9wdXAtdXJpLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzUmV0cmlldmVkVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuYWNjb3VudHNSZXRyaWV2ZWQnLFxuICAgICAgICAnQWNjb3VudHMgcmV0cmlldmVkJyxcbiAgICAgICAgJ0NvbnR1cmkgcHJlbHVhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd0cmFuc2FjdGlvbnNSZXRyaWV2ZWRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNSZXRyaWV2ZWQnLFxuICAgICAgICAnVHJhbnNhY3Rpb25zIHJldHJpZXZlZCcsXG4gICAgICAgICdUcmFuemFjyJtpaSBwcmVsdWF0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzRm91bmRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5hY2NvdW50c0ZvdW5kJyxcbiAgICAgICAgJ3swfSBhY2NvdW50KHMpIGZvdW5kJyxcbiAgICAgICAgJ3swfSBjb250KHVyaSkgZ8SDc2l0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3RyYW5zYWN0aW9uc1N1bW1hcnlUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNTdW1tYXJ5JyxcbiAgICAgICAgJ3swfSB0cmFuc2FjdGlvbihzKSByZXRyaWV2ZWQgZm9yIHRoZSBsYXN0IHsxfSBtb250aChzKScsXG4gICAgICAgICd7MH0gdHJhbnphY8ibaWUoaSkgcHJlbHVhdGUgcGVudHJ1IHVsdGltZWxlIHsxfSBsdW7EgyhpKSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUN1c3RvbVN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnQ3VzdG9tIHN0ZXAnLFxuICAgICAgICAnUGFzIGN1c3RvbSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnJyxcbiAgICAgICAgJydcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZpZXdPZmZlclN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnVmlldyBvZmZlcicsXG4gICAgICAgICdWaXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdWaWV3IG9mZmVyIHN0ZXAnLFxuICAgICAgICAnUGFzIHBlbnRydSB2aXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlU2lnblRyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1NpZ24gZG9jdW1lbnRzJyxcbiAgICAgICAgJ1NlbW5hcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdTaWduIGRvY3VtZW50cyBzdGVwJyxcbiAgICAgICAgJ1BhcyBwZW50cnUgc2VtbmFyZSBkb2N1bWVudGUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVHZW5lcmF0ZURvY3VtZW50c1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMnLFxuICAgICAgICAnR2VuZXJhcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMgc3RlcCcsXG4gICAgICAgICdQYXMgcGVudHJ1IGdlbmVyYXJlIGRvY3VtZW50ZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVUcmFuc2xhdGlvbihcbiAgICBsYW5nczogTGFuZ3VhZ2VbXSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdHJhbnNsYXRpb25LZXk6IHN0cmluZyxcbiAgICBlblZhbHVlOiBzdHJpbmcsXG4gICAgcm9WYWx1ZTogc3RyaW5nXG4gICk6IFRyYW5zbGF0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB0cmFuc2xhdGlvbktleTogdHJhbnNsYXRpb25LZXksXG4gICAgICB2YWx1ZXM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgZW5WYWx1ZSwgcm9WYWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTGFiZWxzSW5mbyhzdXBwb3J0ZWRMYW5ndWFnZXM6IExhbmd1YWdlW10sIGVuVmFsdWU6IHN0cmluZywgcm9WYWx1ZTogc3RyaW5nKTogTGFiZWxJbmZvW10ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsc0luZm9Db3JlKHN1cHBvcnRlZExhbmd1YWdlcywgW1xuICAgICAgeyBpc286ICdlbicsIHZhbHVlOiBlblZhbHVlIH0sXG4gICAgICB7IGlzbzogJ3JvJywgdmFsdWU6IHJvVmFsdWUgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUxhYmVsc0luZm9Db3JlKFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogTGFuZ3VhZ2VbXSxcbiAgICB2YWx1ZXM6IHsgaXNvOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdXG4gICk6IExhYmVsSW5mb1tdIHtcbiAgICBsZXQgbGlzdDogTGFiZWxJbmZvW10gPSBbXTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgY29uc3QgbGFuZ0lkID0gc3VwcG9ydGVkTGFuZ3VhZ2VzLmZpbmQoKGxhbmcpID0+IGxhbmcuaXNvID09PSB2Lmlzbyk/LmlkO1xuICAgICAgaWYgKGxhbmdJZCAmJiBsYW5nSWQgPiAwKSB7XG4gICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgbGFuZ3VhZ2VJZDogbGFuZ0lkLFxuICAgICAgICAgIGxhbmd1YWdlSXNvOiB2LmlzbyxcbiAgICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29yaWdpbi1mb3JtL3NyYy9saWIvb3RoZXJzL3RyYW5zbGF0aW9ucy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsTUFBTSxDQUFDLGlDQUFpQyxDQUM3QyxLQUFpQixFQUNqQixhQUE4QjtRQUU5QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25GLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRixLQUFLLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVGLEtBQUssZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hGLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxNQUFNLENBQUMsZ0NBQWdDLENBQzdDLEtBQWlCO1FBRWpCLE1BQU0sS0FBSyxHQUF3QjtZQUNqQztnQkFDRSxJQUFJLEVBQUUsZ0JBQWdC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bmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0ZXBDb250cm9sVHlwZSB9IGZyb20gXCIuLi9tb2RlbHMvZmx1eC5tb2RlbFwiO1xuaW1wb3J0IHsgRXJyb3JUcmFuc2xhdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm1zLm1vZGVsXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkluZm8sIExhYmVsSW5mbyB9IGZyb20gXCIuLi9tb2RlbHMvbGFiZWwtaW5mby5tb2RlbFwiO1xuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tIFwiLi4vbW9kZWxzL2xhbmd1YWdlLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNIZWxwZXIge1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ29tcG9uZW50RXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdLFxuICAgIGNvbXBvbmVudFR5cGU6IFN0ZXBDb250cm9sVHlwZVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLk1hbnVhbElucHV0OiByZXR1cm4gdGhpcy5jcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhsYW5ncyk7XG4gICAgICBjYXNlIFN0ZXBDb250cm9sVHlwZS5DaGVja0JveDpcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLkRpY3Rpb25hcnk6IHJldHVybiB0aGlzLmNyZWF0ZURlZmF1bHRFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgICAgY2FzZSBTdGVwQ29udHJvbFR5cGUuRG93bmxvYWREb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZURvd25sb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlVwbG9hZERvY3VtZW50czogcmV0dXJuIHRoaXMuY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlZpZXdEb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVEb3dubG9hZEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2ZhaWxUb0Rvd25sb2FkJyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gZG93bmxvYWQuJywgJ051IGFtIHJldciZaXQgc2EgZGVzY2FyYy4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9Eb3dubG9hZCcsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnTm8gZG9jdW1lbnRzIHRvIGRvd25sb2FkLicsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBkZXNjxINyY2F0LicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IEVycm9yVHJhbnNsYXRpb25zW10ge1xuICAgIGNvbnN0IHRJbmZvOiBFcnJvclRyYW5zbGF0aW9uc1tdID0gW1xuICAgICAge1xuICAgICAgICBjb2RlOiAnaW52YWxpZFR5cGUnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ0ludmFsaWQgdHlwZScsICdUaXAgaW52YWxpZCcpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAnbWF4U2l6ZScsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhlIGl0ZW0gZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mIHswfS4nLCAnRmnImWllcnVsIGRlcGHImWVzdGUgZGltZW5zaXVuZWEgbWF4aW1hIGRlIHswfS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdUaGUgaXRlbSBpcyBtYW5kYXRvcnkuJywgJ0FjZXN0IGZpyJlpZXIgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3dhaXRGb3JVcGxvYWQnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1BsZWFzZSB3YWl0IGZvciB1cGxvYWQgdG8gZmluaXNoLicsICdWxIMgcnVnYW0gYciZdGVwdGHIm2kgaW5jxINyY2FyZWEgZmnImWllcmVsb3IuJylcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogRXJyb3JUcmFuc2xhdGlvbnNbXSB7XG4gICAgY29uc3QgdEluZm86IEVycm9yVHJhbnNsYXRpb25zW10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvZGU6ICdmYWlsVG9WaWV3JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gdmlldycsICdOdSBhbSByZXXImWl0IHNhIHZpenVhbGl6ZXonKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9TaG93JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdObyBkb2N1bWVudHMgdG8gc2hvdycsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBhZmnImWF0JylcbiAgICAgIH0sXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3NpbXBsZVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAndGhyb3VnaEFwaVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRGVmYXVsdEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVDaGVja0VtYWlsVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ0NoZWNrIGVtYWlsJyxcbiAgICAgICAgJ1ZlcmlmaWNhIGVtYWlsJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsTGFiZWwnLFxuICAgICAgICAnRW1haWwnLFxuICAgICAgICAnRW1haWwnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdlbWFpbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwuZW1haWxCdXR0b25MYWJlbCcsXG4gICAgICAgICdTZW5kIGNvZGUnLFxuICAgICAgICAnVHJpbWl0ZSBjb2QnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cExhYmVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhdGlvbiBjb2RlJyxcbiAgICAgICAgJ0NvZCBkZSB2ZXJpZmljYXJlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdWZXJpZnknLFxuICAgICAgICAnVmVyaWZpY8SDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxSZXF1aXJlZExhYmVsJyxcbiAgICAgICAgJ2ZsdXguY29tcG9uZW50cy5lbWFpbC5lbWFpbFJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnRW1haWwgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnRW1haWwtdWwgZXN0ZSBvYmxpZ2F0b3JpdSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2VtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdFbWFpbCBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnRW1haWwtdWwgbnUgZXN0ZSB2YWxpZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cEVycm9yTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBFcnJvckxhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIGVycm9yJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSB2ZXJpZmljYXJlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdDb2RlIHZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhcmVhIGNvZHVsdWkgYSBmb3N0IHJlYWxpemF0xIMgY3Ugc3VjY2VzJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ2hlY2tQaG9uZVRyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdDaGVjayBwaG9uZScsXG4gICAgICAgICdWZXJpZmljYSB0ZWxlZm9uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBob25lLnBob25lTGFiZWwnLFxuICAgICAgICAnUGhvbmUnLFxuICAgICAgICAnVGVsZWZvbidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Bob25lQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5waG9uZS5waG9uZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1NlbmQgY29kZScsXG4gICAgICAgICdUcmltaXRlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cExhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwTGFiZWwnLFxuICAgICAgICAnVmVyaWZpY2F0aW9uIGNvZGUnLFxuICAgICAgICAnQ29kIGRlIHZlcmlmaWNhcmUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1ZlcmlmeScsXG4gICAgICAgICdWZXJpZmljxIMnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdwaG9uZVJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnZmx1eC5jb21wb25lbnRzLnBob25lLnBob25lUmVxdWlyZWRMYWJlbCcsXG4gICAgICAgICdQaG9uZSBudW1iZXIgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBlc3RlIG9ibGlnYXRvcml1J1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGhvbmUucGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ1Bob25lIG51bWJlciBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBudSBlc3RlIHZhbGlkJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEVycm9yTGFiZWwnLFxuICAgICAgICAnQ29kZSB2ZXJpZmljYXRpb24gZXJyb3InLFxuICAgICAgICAnRXJvYXJlIGxhIHZlcmlmaWNhcmUgY29kJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIHN1Y2Nlc3NmdWwnLFxuICAgICAgICAnVmVyaWZpY2FyZWEgY29kdWx1aSBhIGZvc3QgcmVhbGl6YXTEgyBjdSBzdWNjZXMnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVJZFNjYW5UcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdJZCBzY2FuJyxcbiAgICAgICAgJ1NjYW5hcmUgYWN0IGlkZW50aXRhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1N0ZXAgdG8gc2NhbiBpZCBkb2N1bWVudCcsXG4gICAgICAgICdQYXMgcGVudHJ1IMOubmNhcmNhcmVhIGRvY3VtZW50dWx1aSBkZSBpZGVudGl0YXRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAndXBsb2FkRmlsZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuaWRTY2FuLnVwbG9hZEJ1dHRvblRleHRMYWJlbCcsXG4gICAgICAgICdVcGxvYWQgZmlsZScsXG4gICAgICAgICfDjm5jYXJjxIMgZmnImWllcidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Rha2VQaWN0dXJlQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5pZFNjYW4udGFrZVBpY3R1cmVCdXR0b25UZXh0TGFiZWwnLFxuICAgICAgICAnVGFrZSBwaWN0dXJlJyxcbiAgICAgICAgJ1JlYWxpemVhesSDIG8gZm90b2dyYWZpZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBhdXNlVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnUGF1c2UnLFxuICAgICAgICAnUGF1esSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5TWVzc2FnZScsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBhdXNlLm9mZmVyUmVhZHlNZXNzYWdlTGFiZWwnLFxuICAgICAgICAnWW91ciBvZmZlciBoYXMgYmVlbiBwcm9jZXNzZWQuIENsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHRvIGNvbnRpbnVlIHRoZSBmbG93LicsXG4gICAgICAgICdPZmVydGEgZHVtbmVhdm9hc3RyYSBhIGZvc3QgcHJvY2VzYXRhLiBDbGljayBwZSBsaW5rLXVsIGRlIG1haSBqb3MgcGVudHJ1IGEgY29udGludWEgZmx1eHVsLidcbiAgICAgICksXG5cbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2UuY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ0NvbnRpbnVlIGZsb3cnLFxuICAgICAgICAnQ29udGludWFyZSBmbHV4J1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5U21zTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2Uub2ZmZXJSZWFkeVNtc01lc3NhZ2VMYWJlbCcsXG4gICAgICAgICdZb3VyIG9mZmVyIGhhcyBiZWVuIHByb2Nlc3NlZC4gQ2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgdG8gY29udGludWUgdGhlIGZsb3cuJyxcbiAgICAgICAgJ09mZXJ0YSBkdW1uZWF2b2FzdHJhIGEgZm9zdCBwcm9jZXNhdGEuIENsaWNrIHBlIGxpbmstdWwgZGUgbWFpIGpvcyBwZW50cnUgYSBjb250aW51YSBmbHV4dWwuJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWN0aW9uVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbG9hZGluZ01lc3NhZ2VUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnYXBwQ29uZmlnRWRpdC5mbHV4LmN1c3RvbVN0ZXAubG9hZGluZ01lc3NhZ2UnLFxuICAgICAgICAnTG9hZGluZyBtZXNzYWdlJyxcbiAgICAgICAgJ01lc2FqIGRlIGHImXRlcHRhcmUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTdGF0dXNUcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIG1lc3NhZ2UnLFxuICAgICAgICAnTWVzYWogZGUgYciZdGVwdGFyZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZhbGlkYXRpb25UcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIG1lc3NhZ2UnLFxuICAgICAgICAnTWVzYWogZGUgYciZdGVwdGFyZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUt5Y1RyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKGxhbmdzLCAnbmFtZScsICdjb21tb24ub3RoZXJzLm5hbWUnLCAnS1lDJywgJ0tZQycpLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJycsXG4gICAgICAgICcnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIGlkZW50aWZpY2F0aW9uIHN0ZXAuLi4nLFxuICAgICAgICAnU2Ugw65uY2FyY8SDIHBhc3VsIGRlIGlkZW50aWZpY2FyZS4uLidcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBheW1lbnRzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1BheW1lbnQnLFxuICAgICAgICAnUGxhdMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY2FyZGVucm9sQnV0dG9uTGFiZWwnLFxuICAgICAgICAnY2FyZGVucm9sLmNhcmRlbnJvbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ0Vucm9sIGNhcmQnLFxuICAgICAgICAnw45ucm9sZWF6xIMgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbEZhaWx1cmVMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sRmFpbHVyZUxhYmVsJyxcbiAgICAgICAgJ0Vycm9yIGVucm9sbGluZyBjYXJkJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSDDrm5yb2xhcmUgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ1N1Y2Nlc3MgZW5yb2xsaW5nIGNhcmQnLFxuICAgICAgICAnU3VjY2VzIGxhIMOubnJvbGFyZSBjYXJkJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlT3BlbkJhbmtpbmdUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnT3BlbiBCYW5raW5nJyxcbiAgICAgICAgJ09wZW4gQmFua2luZydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnQ29ubmVjdCB5b3VyIGJhbmsgYWNjb3VudCcsXG4gICAgICAgICdDb25lY3RhyJtpIGNvbnR1bCBiYW5jYXInXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdpbml0aWFsTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmluaXRpYWxNZXNzYWdlJyxcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB3ZSBuZWVkIHRvIHZlcmlmeSB5b3VyIGJhbmsgYWNjb3VudCBpbmZvcm1hdGlvbi4gQ2xpY2sgTmV4dCB0byBwcm9jZWVkLicsXG4gICAgICAgICdQZW50cnUgYSBjb250aW51YSwgdHJlYnVpZSBzxIMgdmVyaWZpY8SDbSBpbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGR2cy4gYmFuY2FyLiBGYWNlyJtpIGNsaWMgcGUgVXJtxIN0b3J1bCBwZW50cnUgYSBjb250aW51YS4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdNZXNzYWdlJyxcbiAgICAgICAgJ1BsZWFzZSB3YWl0IHdoaWxlIHdlIHJldHJpZXZlIHlvdXIgYWNjb3VudCBpbmZvcm1hdGlvbi4uLicsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBhyJl0ZXB0YcibaSBww6JuxIMgY8OibmQgcHJlbHXEg20gaW5mb3JtYcibaWlsZSBjb250dWx1aSBkdnMuLi4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdjb25zZW50RXJyb3JNZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29uc2VudEVycm9yTWVzc2FnZScsXG4gICAgICAgICdZb3UgbXVzdCBwcm92aWRlIGNvbnNlbnQgdG8gY29udGludWUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgJ1RyZWJ1aWUgc8SDIG9mZXJpyJtpIGNvbnNpbcibxINtw6JudHVsIHBlbnRydSBhIGNvbnRpbnVhLiBWxIMgcnVnxINtIHPEgyDDrm5jZXJjYcibaSBkaW4gbm91LidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbXBsZXRpb25NZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29tcGxldGlvbk1lc3NhZ2UnLFxuICAgICAgICAnQWNjb3VudCBpbmZvcm1hdGlvbiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLicsXG4gICAgICAgICdJbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGF1IGZvc3QgcHJlbHVhdGUgY3Ugc3VjY2VzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3JldHJ5QnV0dG9uTGFiZWxUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5yZXRyeUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1JldHJ5JyxcbiAgICAgICAgJ1Jlw65uY2VhcmPEgydcbiAgICAgICksXG4gICAgICAvLyBCdXR0b24gdHJhbnNsYXRpb25zXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25leHRCdXR0b25UcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5uZXh0QnV0dG9uJyxcbiAgICAgICAgJ05leHQnLFxuICAgICAgICAnVXJtxIN0b3J1bCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnRpbnVlQnV0dG9uVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29udGludWVCdXR0b24nLFxuICAgICAgICAnQ29udGludWUnLFxuICAgICAgICAnQ29udGludcSDJ1xuICAgICAgKSxcbiAgICAgIC8vIFVJIGxhYmVsc1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdzZWxlY3RCYW5rVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuc2VsZWN0QmFuaycsXG4gICAgICAgICdTZWxlY3QgeW91ciBiYW5rJyxcbiAgICAgICAgJ1NlbGVjdGHIm2kgYmFuY2EgZHZzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnRUaXRsZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnRUaXRsZScsXG4gICAgICAgICdCYW5rIEF1dGhvcml6YXRpb24nLFxuICAgICAgICAnQXV0b3JpemFyZSBiYW5jYXLEgydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnREZXNjcmlwdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnREZXNjcmlwdGlvbicsXG4gICAgICAgICdQbGVhc2UgY29tcGxldGUgdGhlIGF1dGhvcml6YXRpb24gcHJvY2VzcyB3aXRoIHlvdXIgYmFuaycsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBjb21wbGV0YcibaSBwcm9jZXN1bCBkZSBhdXRvcml6YXJlIGN1IGJhbmNhIGR2cy4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nRm9yQXV0aG9yaXphdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdGb3JBdXRob3JpemF0aW9uJyxcbiAgICAgICAgJ1dhaXRpbmcgZm9yIGF1dGhvcml6YXRpb24uLi4nLFxuICAgICAgICAnU2UgYciZdGVhcHTEgyBhdXRvcml6YXJlYS4uLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3BvcHVwV2luZG93TWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwV2luZG93TWVzc2FnZScsXG4gICAgICAgICdBIG5ldyB3aW5kb3cgaGFzIG9wZW5lZCBmb3IgYmFuayBhdXRob3JpemF0aW9uLiBQbGVhc2UgY29tcGxldGUgdGhlIHByb2Nlc3MgdGhlcmUuJyxcbiAgICAgICAgJ1MtYSBkZXNjaGlzIG8gZmVyZWFzdHLEgyBub3XEgyBwZW50cnUgYXV0b3JpemFyZSBiYW5jYXLEgy4gVsSDIHJ1Z8SDbSBzxIMgY29tcGxldGHIm2kgcHJvY2VzdWwgYWNvbG8uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncG9wdXBCbG9ja2VyTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwQmxvY2tlck1lc3NhZ2UnLFxuICAgICAgICAnSWYgdGhlIHdpbmRvdyBkaWRuXFwndCBvcGVuLCBwbGVhc2UgY2hlY2sgeW91ciBwb3B1cCBibG9ja2VyIHNldHRpbmdzLicsXG4gICAgICAgICdEYWPEgyBmZXJlYXN0cmEgbnUgcy1hIGRlc2NoaXMsIHbEgyBydWfEg20gc8SDIHZlcmlmaWNhyJtpIHNldMSDcmlsZSBibG9jYXRvcnVsdWkgZGUgcG9wdXAtdXJpLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzUmV0cmlldmVkVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuYWNjb3VudHNSZXRyaWV2ZWQnLFxuICAgICAgICAnQWNjb3VudHMgcmV0cmlldmVkJyxcbiAgICAgICAgJ0NvbnR1cmkgcHJlbHVhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd0cmFuc2FjdGlvbnNSZXRyaWV2ZWRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNSZXRyaWV2ZWQnLFxuICAgICAgICAnVHJhbnNhY3Rpb25zIHJldHJpZXZlZCcsXG4gICAgICAgICdUcmFuemFjyJtpaSBwcmVsdWF0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzRm91bmRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5hY2NvdW50c0ZvdW5kJyxcbiAgICAgICAgJ3swfSBhY2NvdW50KHMpIGZvdW5kJyxcbiAgICAgICAgJ3swfSBjb250KHVyaSkgZ8SDc2l0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3RyYW5zYWN0aW9uc1N1bW1hcnlUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNTdW1tYXJ5JyxcbiAgICAgICAgJ3swfSB0cmFuc2FjdGlvbihzKSByZXRyaWV2ZWQgZm9yIHRoZSBsYXN0IHsxfSBtb250aChzKScsXG4gICAgICAgICd7MH0gdHJhbnphY8ibaWUoaSkgcHJlbHVhdGUgcGVudHJ1IHVsdGltZWxlIHsxfSBsdW7EgyhpKSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUN1c3RvbVN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnQ3VzdG9tIHN0ZXAnLFxuICAgICAgICAnUGFzIGN1c3RvbSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnJyxcbiAgICAgICAgJydcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZpZXdPZmZlclN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnVmlldyBvZmZlcicsXG4gICAgICAgICdWaXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdWaWV3IG9mZmVyIHN0ZXAnLFxuICAgICAgICAnUGFzIHBlbnRydSB2aXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlU2lnblRyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1NpZ24gZG9jdW1lbnRzJyxcbiAgICAgICAgJ1NlbW5hcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdTaWduIGRvY3VtZW50cyBzdGVwJyxcbiAgICAgICAgJ1BhcyBwZW50cnUgc2VtbmFyZSBkb2N1bWVudGUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVHZW5lcmF0ZURvY3VtZW50c1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMnLFxuICAgICAgICAnR2VuZXJhcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMgc3RlcCcsXG4gICAgICAgICdQYXMgcGVudHJ1IGdlbmVyYXJlIGRvY3VtZW50ZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVUcmFuc2xhdGlvbihcbiAgICBsYW5nczogTGFuZ3VhZ2VbXSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdHJhbnNsYXRpb25LZXk6IHN0cmluZyxcbiAgICBlblZhbHVlOiBzdHJpbmcsXG4gICAgcm9WYWx1ZTogc3RyaW5nXG4gICk6IFRyYW5zbGF0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB0cmFuc2xhdGlvbktleTogdHJhbnNsYXRpb25LZXksXG4gICAgICB2YWx1ZXM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgZW5WYWx1ZSwgcm9WYWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTGFiZWxzSW5mbyhzdXBwb3J0ZWRMYW5ndWFnZXM6IExhbmd1YWdlW10sIGVuVmFsdWU6IHN0cmluZywgcm9WYWx1ZTogc3RyaW5nKTogTGFiZWxJbmZvW10ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsc0luZm9Db3JlKHN1cHBvcnRlZExhbmd1YWdlcywgW1xuICAgICAgeyBpc286ICdlbicsIHZhbHVlOiBlblZhbHVlIH0sXG4gICAgICB7IGlzbzogJ3JvJywgdmFsdWU6IHJvVmFsdWUgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUxhYmVsc0luZm9Db3JlKFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogTGFuZ3VhZ2VbXSxcbiAgICB2YWx1ZXM6IHsgaXNvOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdXG4gICk6IExhYmVsSW5mb1tdIHtcbiAgICBsZXQgbGlzdDogTGFiZWxJbmZvW10gPSBbXTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgY29uc3QgbGFuZ0lkID0gc3VwcG9ydGVkTGFuZ3VhZ2VzLmZpbmQoKGxhbmcpID0+IGxhbmcuaXNvID09PSB2Lmlzbyk/LmlkO1xuICAgICAgaWYgKGxhbmdJZCAmJiBsYW5nSWQgPiAwKSB7XG4gICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgbGFuZ3VhZ2VJZDogbGFuZ0lkLFxuICAgICAgICAgIGxhbmd1YWdlSXNvOiB2LmlzbyxcbiAgICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -43,7 +43,7 @@ export class ApplicationDataService {
|
|
|
43
43
|
const payload = {
|
|
44
44
|
...appData,
|
|
45
45
|
initFlowValues: appData.initFlowValues,
|
|
46
|
-
fillData: appData.fillData ? JSON.stringify(appData.fillData) : undefined
|
|
46
|
+
fillData: appData.fillData ? JSON.stringify(appData.fillData) : undefined
|
|
47
47
|
};
|
|
48
48
|
return this.http.post(saveUrl, payload);
|
|
49
49
|
}
|
|
@@ -54,7 +54,7 @@ export class ApplicationDataService {
|
|
|
54
54
|
appDataId: appDataId,
|
|
55
55
|
stepData: JSON.stringify(currentStep),
|
|
56
56
|
withNextStep: true,
|
|
57
|
-
selectedOfferId: selectedOfferId
|
|
57
|
+
selectedOfferId: selectedOfferId
|
|
58
58
|
};
|
|
59
59
|
return this.http.post(saveUrl, payload);
|
|
60
60
|
}
|
|
@@ -64,9 +64,16 @@ export class ApplicationDataService {
|
|
|
64
64
|
appDataId;
|
|
65
65
|
return this.http.get(getUrl);
|
|
66
66
|
}
|
|
67
|
-
validateApi(apiValidateRequest) {
|
|
67
|
+
async validateApi(apiValidateRequest) {
|
|
68
68
|
const url = this.configService.readConfig().baseUrlBusiness + '/ApiRequest/dorequest';
|
|
69
|
-
|
|
69
|
+
try {
|
|
70
|
+
const response = await firstValueFrom(this.http.post(url, apiValidateRequest));
|
|
71
|
+
return response === true;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.warn('API validation request failed', error);
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
78
|
doDocumentRequest(apiValidateRequest) {
|
|
72
79
|
const url = this.configService.readConfig().baseUrlBusiness +
|
|
@@ -85,7 +92,7 @@ export class ApplicationDataService {
|
|
|
85
92
|
makeProcessApiCall(appDataID) {
|
|
86
93
|
const url = this.configService.readConfig().baseUrlInfrastructure + '/Process';
|
|
87
94
|
return this.http.post(url, { appId: appDataID }).pipe(map((response) => {
|
|
88
|
-
console.log('response from makeProcessApiCall', response), response;
|
|
95
|
+
(console.log('response from makeProcessApiCall', response), response);
|
|
89
96
|
}), catchError((error) => of({ ...error, body: false })));
|
|
90
97
|
}
|
|
91
98
|
getProcessStatus(appDataID) {
|
|
@@ -105,7 +112,7 @@ export class ApplicationDataService {
|
|
|
105
112
|
return this.http.post(url, {
|
|
106
113
|
appDataId: appDataId,
|
|
107
114
|
stepId: stepId,
|
|
108
|
-
setNextStep: setNextStep
|
|
115
|
+
setNextStep: setNextStep
|
|
109
116
|
});
|
|
110
117
|
}
|
|
111
118
|
async setCurrentStep(appDataId, stepId) {
|
|
@@ -133,7 +140,7 @@ export class ApplicationDataService {
|
|
|
133
140
|
'/appdata/changeLanguage';
|
|
134
141
|
const payload = {
|
|
135
142
|
appDataId: appDataUuid,
|
|
136
|
-
languageIso: languageISOCode
|
|
143
|
+
languageIso: languageISOCode
|
|
137
144
|
};
|
|
138
145
|
return this.http.post(url, payload);
|
|
139
146
|
}
|
|
@@ -143,4 +150,4 @@ export class ApplicationDataService {
|
|
|
143
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApplicationDataService, decorators: [{
|
|
144
151
|
type: Injectable
|
|
145
152
|
}], ctorParameters: () => [{ type: i1.AuthHttpService }] });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25EYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NlcnZpY2VzL2FwcGxpY2F0aW9uRGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFrQnpELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsSUFBcUI7UUFBckIsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFFekMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFGTSxDQUFDO0lBSTdDLGVBQWUsQ0FDYixrQkFBaUQ7UUFFakQsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxlQUFlO1lBQy9DLDBCQUEwQixDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGlCQUFpQixDQUNmLHdCQUF5RDtRQUV6RCxNQUFNLEdBQUcsR0FDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLGVBQWU7WUFDL0MsNEJBQTRCLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyxHQUFHLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLFVBQStDO1FBRS9DLE1BQU0sR0FBRyxHQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsVUFB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QUc7WUFDZCxTQUFTLEVBQUUsV0FBVztZQUN0QixXQUFXLEVBQUUsZUFBZTtTQUM3QixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0FsTlUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpcnN0VmFsdWVGcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vb3RoZXJzL2NvbmZpZy1zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgQXBpRG9jdW1lbnRSZXF1ZXN0LFxuICBBcGlWYWxpZGF0ZVJlcXVlc3QsXG4gIEFwcGxpY2F0aW9uRW5yb2xDYXJkRHRvLFxuICBBcHBsaWNhdGlvbkdlbmVyYXRlRG9jdW1lbnRzRHRvLFxuICBBcHBsaWNhdGlvbkdldEdlbmVyYXRlZERvY3VtZW50c0R0byxcbiAgQXBwbGljYXRpb25VcGxvYWREb2N1bWVudHNEdG8sXG4gIENvbnZlcnREb2N1bWVudFRvUGRmUmVxdWVzdCxcbiAgQ29udmVydERvY3VtZW50VG9QZGZSZXNwb25zZSxcbiAgR2VuZXJhdGVkRG9jdW1lbnQsXG4gIE1ha2VBY3Rpb25SZXF1ZXN0LFxuICBTY2FuSWREdG8sXG59IGZyb20gJy4uL21vZGVscy9hcHBsaWNhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBcHBEYXRhIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1zLm1vZGVsJztcbmltcG9ydCB7IEF1dGhIdHRwU2VydmljZSB9IGZyb20gJy4vYXV0aC1odHRwLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25EYXRhU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogQXV0aEh0dHBTZXJ2aWNlKSB7fVxuXG4gIGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoQ29uZmlnU2VydmljZSk7XG5cbiAgdXBsb2FkRG9jdW1lbnRzKFxuICAgIHVwbG9hZERvY3VtZW50c0R0bzogQXBwbGljYXRpb25VcGxvYWREb2N1bWVudHNEdG9cbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IGNyZWF0ZVVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICAnL2FwcGRhdGEvdXBsb2FkRG9jdW1lbnRzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihjcmVhdGVVcmwsIHVwbG9hZERvY3VtZW50c0R0byk7XG4gIH1cblxuICBnZW5lcmF0ZURvY3VtZW50cyhcbiAgICBnZW5lcmF0ZURvY3VtZW50c0NvbW1hbmQ6IEFwcGxpY2F0aW9uR2VuZXJhdGVEb2N1bWVudHNEdG9cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgJy9hcHBkYXRhL0dlbmVyYXRlRG9jdW1lbnRzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8c3RyaW5nW10+KHVybCwgZ2VuZXJhdGVEb2N1bWVudHNDb21tYW5kKTtcbiAgfVxuXG4gIGdldEdlbmVyYXRlRG9jdW1lbnRzKFxuICAgIGdldENvbW1hbmQ6IEFwcGxpY2F0aW9uR2V0R2VuZXJhdGVkRG9jdW1lbnRzRHRvXG4gICk6IE9ic2VydmFibGU8R2VuZXJhdGVkRG9jdW1lbnRbXT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICAnL2FwcGRhdGEvR2V0R2VuZXJhdGVkRG9jdW1lbnRzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2VuZXJhdGVkRG9jdW1lbnRbXT4odXJsLCBnZXRDb21tYW5kKTtcbiAgfVxuXG4gIGRvd25sb2FkRmlsZShcbiAgICBhcHBEYXRhSWQ6IHN0cmluZyxcbiAgICBkb2NJZDogc3RyaW5nLFxuICAgIGZpbGVOYW1lOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgYC9GaWxlU2VydmVyL2Rvd25sb2FkP2FwcERhdGFJZD0ke2FwcERhdGFJZH0mZG9jSWQ9JHtkb2NJZH0mZmlsZU5hbWU9JHtmaWxlTmFtZX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0RXh0ZW5kZWQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xuICB9XG5cbiAgc2NhbklkKHNjYW5JZENvbW1hbmQ6IFNjYW5JZER0byk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICsgJy9hcHBkYXRhL1NjYW5JZCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4odXJsLCBzY2FuSWRDb21tYW5kKTtcbiAgfVxuXG4gIGFzeW5jIGdldFN0ZXBzKGFwcERhdGFJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBnZXRVcmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgYC9hcHBkYXRhL0dldEJ5SWQvJHthcHBEYXRhSWR9YDtcblxuICAgIHZhciBwcm9taXNlID0gdGhpcy5odHRwLmdldDxhbnk+KGdldFVybCkucGlwZShtYXAoKGFwcERhdGEpID0+IGFwcERhdGEpKTtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20ocHJvbWlzZSk7XG4gIH1cblxuICBzYXZlQXBwKGFwcERhdGE6IEFwcERhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNhdmVVcmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgKyAnL2FwcGRhdGEvU2F2ZUFwcERhdGEnO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIC4uLmFwcERhdGEsXG4gICAgICBpbml0Rmxvd1ZhbHVlczogYXBwRGF0YS5pbml0Rmxvd1ZhbHVlcyxcbiAgICAgIGZpbGxEYXRhOiBhcHBEYXRhLmZpbGxEYXRhID8gSlNPTi5zdHJpbmdpZnkoYXBwRGF0YS5maWxsRGF0YSkgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHNhdmVVcmwsIHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZVN0ZXAoXG4gICAgYXBwRGF0YUlkOiBzdHJpbmcsXG4gICAgY3VycmVudFN0ZXA6IGFueSxcbiAgICBzZWxlY3RlZE9mZmVySWQ6IGFueSA9IHVuZGVmaW5lZFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNhdmVVcmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgJy9hcHBkYXRhL1NhdmVBcHBEYXRhU3RlcCc7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYXBwRGF0YUlkOiBhcHBEYXRhSWQsXG4gICAgICBzdGVwRGF0YTogSlNPTi5zdHJpbmdpZnkoY3VycmVudFN0ZXApLFxuICAgICAgd2l0aE5leHRTdGVwOiB0cnVlLFxuICAgICAgc2VsZWN0ZWRPZmZlcklkOiBzZWxlY3RlZE9mZmVySWQsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHNhdmVVcmwsIHBheWxvYWQpO1xuICB9XG5cbiAgZ2V0UHJldmlvdXNTdGVwKGFwcERhdGFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBnZXRVcmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgJy9hcHBkYXRhL3NldFByZXZpb3VzU3RlcD9hcHBJZD0nICtcbiAgICAgIGFwcERhdGFJZDtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oZ2V0VXJsKTtcbiAgfVxuXG4gIHZhbGlkYXRlQXBpKGFwaVZhbGlkYXRlUmVxdWVzdDogQXBpVmFsaWRhdGVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgKyAnL0FwaVJlcXVlc3QvZG9yZXF1ZXN0JztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGFwaVZhbGlkYXRlUmVxdWVzdCk7XG4gIH1cblxuICBkb0RvY3VtZW50UmVxdWVzdChhcGlWYWxpZGF0ZVJlcXVlc3Q6IEFwaURvY3VtZW50UmVxdWVzdCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgJy9BcGlSZXF1ZXN0L2RvRG9jdW1lbnRSZXF1ZXN0JztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGFwaVZhbGlkYXRlUmVxdWVzdCk7XG4gIH1cblxuICBjb252ZXJ0RG9jdW1lbnRUb1BkZihcbiAgICByZXF1ZXN0OiBDb252ZXJ0RG9jdW1lbnRUb1BkZlJlcXVlc3RcbiAgKTogT2JzZXJ2YWJsZTxDb252ZXJ0RG9jdW1lbnRUb1BkZlJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICsgJy9hcHBkYXRhL2NvbnZlcnRUb1BkZic7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnZlcnREb2N1bWVudFRvUGRmUmVzcG9uc2U+KHVybCwgcmVxdWVzdCk7XG4gIH1cblxuICBtYWtlQWN0aW9uQXBpQ2FsbChhY3Rpb25SZXF1ZXN0OiBNYWtlQWN0aW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc29sZS5sb2coJ2FjdGlvblJlcXVlc3QgZnJvbSBtYWtlQWN0aW9uQXBpQ2FsbCcsIGFjdGlvblJlcXVlc3QpO1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArICcvTWFrZUFjdGlvbi9kb2FjdGlvbic7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBhY3Rpb25SZXF1ZXN0KTtcbiAgfVxuXG4gIG1ha2VQcm9jZXNzQXBpQ2FsbChhcHBEYXRhSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEluZnJhc3RydWN0dXJlICsgJy9Qcm9jZXNzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIHsgYXBwSWQ6IGFwcERhdGFJRCB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygncmVzcG9uc2UgZnJvbSBtYWtlUHJvY2Vzc0FwaUNhbGwnLCByZXNwb25zZSksIHJlc3BvbnNlO1xuICAgICAgfSksXG5cbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBvZih7IC4uLmVycm9yLCBib2R5OiBmYWxzZSB9KSlcbiAgICApO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc1N0YXR1cyhhcHBEYXRhSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEluZnJhc3RydWN0dXJlICtcbiAgICAgICcvUHJvY2Vzcy9nZXQtc3RhdHVzP2FwcElkPScgK1xuICAgICAgYXBwRGF0YUlEO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsKTtcbiAgfVxuXG4gIGdldE9mZmVycyhhcHBEYXRhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgIGAvYXBwZGF0YS9nZXRPZmZlcnMvJHthcHBEYXRhSWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XG4gIH1cblxuICBtYWtlU3RhdHVzQXBpQ2FsbChcbiAgICBhcHBEYXRhSWQ6IHN0cmluZyxcbiAgICBzdGVwSWQ6IHN0cmluZyxcbiAgICBzZXROZXh0U3RlcDogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICAnL2FwcGRhdGEvZG9TdGF0dXNBY3Rpb24nO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwge1xuICAgICAgYXBwRGF0YUlkOiBhcHBEYXRhSWQsXG4gICAgICBzdGVwSWQ6IHN0ZXBJZCxcbiAgICAgIHNldE5leHRTdGVwOiBzZXROZXh0U3RlcCxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNldEN1cnJlbnRTdGVwKGFwcERhdGFJZDogc3RyaW5nLCBzdGVwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICBgL2FwcGRhdGEvc2V0Q3VycmVudFN0ZXA/YXBwSWQ9JHthcHBEYXRhSWR9JnN0ZXBJZD0ke3N0ZXBJZH1gO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAuZ2V0RXh0ZW5kZWQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBlbnJvbENhcmQoZW5yb2xDYXJkQ29tbWFuZDogQXBwbGljYXRpb25FbnJvbENhcmREdG8pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArICcvYXBwZGF0YS9FbnJvbENhcmQnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxzdHJpbmdbXT4odXJsLCBlbnJvbENhcmRDb21tYW5kKTtcbiAgfVxuXG4gIGdldEVucm9sbWVudFN0YXR1cyhkYXRhVXJsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgIGAvYXBwZGF0YS9HZXRFbnJvbG1lbnRTdGF0dXMvJHtkYXRhVXJsSWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XG4gIH1cblxuICBnZXREYXRhVXJsKGRhdGFVcmxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgYC9EYXRhVVJML0dldEJ5SWQvJHtkYXRhVXJsSWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XG4gIH1cblxuICAgIGNoYW5nZUxhbmd1YWdlKGFwcERhdGFVdWlkOiBzdHJpbmcsIGxhbmd1YWdlSVNPQ29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgICcvYXBwZGF0YS9jaGFuZ2VMYW5ndWFnZSc7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYXBwRGF0YUlkOiBhcHBEYXRhVXVpZCxcbiAgICAgIGxhbmd1YWdlSXNvOiBsYW5ndWFnZUlTT0NvZGUsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgcGF5bG9hZCk7XG4gIH1cbn1cbiJdfQ==
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb25EYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL3NlcnZpY2VzL2FwcGxpY2F0aW9uRGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFrQnpELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsSUFBcUI7UUFBckIsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFFekMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFGTSxDQUFDO0lBSTdDLGVBQWUsQ0FDYixrQkFBaUQ7UUFFakQsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxlQUFlO1lBQy9DLDBCQUEwQixDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGlCQUFpQixDQUNmLHdCQUF5RDtRQUV6RCxNQUFNLEdBQUcsR0FDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLGVBQWU7WUFDL0MsNEJBQTRCLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyxHQUFHLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLFVBQStDO1FBRS9DLE1BQU0sR0FBRyxHQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsVUFB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QW9CLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFtQixFQUFFLGVBQXVCO1FBQ3pELE1BQU0sR0FBRyxHQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsZUFBZTtZQUMvQyx5QkFBeUIsQ0FBQztRQUU1QixNQUFNLE9BQU8sR0FBRztZQUNkLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFdBQVcsRUFBRSxlQUFlO1NBQzdCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQTVOVSxzQkFBc0I7bUhBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9vdGhlcnMvY29uZmlnLXNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBpRG9jdW1lbnRSZXF1ZXN0LFxuICBBcGlWYWxpZGF0ZVJlcXVlc3QsXG4gIEFwcGxpY2F0aW9uRW5yb2xDYXJkRHRvLFxuICBBcHBsaWNhdGlvbkdlbmVyYXRlRG9jdW1lbnRzRHRvLFxuICBBcHBsaWNhdGlvbkdldEdlbmVyYXRlZERvY3VtZW50c0R0byxcbiAgQXBwbGljYXRpb25VcGxvYWREb2N1bWVudHNEdG8sXG4gIENvbnZlcnREb2N1bWVudFRvUGRmUmVxdWVzdCxcbiAgQ29udmVydERvY3VtZW50VG9QZGZSZXNwb25zZSxcbiAgR2VuZXJhdGVkRG9jdW1lbnQsXG4gIE1ha2VBY3Rpb25SZXF1ZXN0LFxuICBTY2FuSWREdG9cbn0gZnJvbSAnLi4vbW9kZWxzL2FwcGxpY2F0aW9uLm1vZGVsJztcbmltcG9ydCB7IEFwcERhdGEgfSBmcm9tICcuLi9tb2RlbHMvZm9ybXMubW9kZWwnO1xuaW1wb3J0IHsgQXV0aEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLWh0dHAuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkRhdGFTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBBdXRoSHR0cFNlcnZpY2UpIHt9XG5cbiAgY29uZmlnU2VydmljZSA9IGluamVjdChDb25maWdTZXJ2aWNlKTtcblxuICB1cGxvYWREb2N1bWVudHMoXG4gICAgdXBsb2FkRG9jdW1lbnRzRHRvOiBBcHBsaWNhdGlvblVwbG9hZERvY3VtZW50c0R0b1xuICApOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgY3JlYXRlVXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgICcvYXBwZGF0YS91cGxvYWREb2N1bWVudHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGNyZWF0ZVVybCwgdXBsb2FkRG9jdW1lbnRzRHRvKTtcbiAgfVxuXG4gIGdlbmVyYXRlRG9jdW1lbnRzKFxuICAgIGdlbmVyYXRlRG9jdW1lbnRzQ29tbWFuZDogQXBwbGljYXRpb25HZW5lcmF0ZURvY3VtZW50c0R0b1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICAnL2FwcGRhdGEvR2VuZXJhdGVEb2N1bWVudHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxzdHJpbmdbXT4odXJsLCBnZW5lcmF0ZURvY3VtZW50c0NvbW1hbmQpO1xuICB9XG5cbiAgZ2V0R2VuZXJhdGVEb2N1bWVudHMoXG4gICAgZ2V0Q29tbWFuZDogQXBwbGljYXRpb25HZXRHZW5lcmF0ZWREb2N1bWVudHNEdG9cbiAgKTogT2JzZXJ2YWJsZTxHZW5lcmF0ZWREb2N1bWVudFtdPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgICcvYXBwZGF0YS9HZXRHZW5lcmF0ZWREb2N1bWVudHMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZW5lcmF0ZWREb2N1bWVudFtdPih1cmwsIGdldENvbW1hbmQpO1xuICB9XG5cbiAgZG93bmxvYWRGaWxlKFxuICAgIGFwcERhdGFJZDogc3RyaW5nLFxuICAgIGRvY0lkOiBzdHJpbmcsXG4gICAgZmlsZU5hbWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICBgL0ZpbGVTZXJ2ZXIvZG93bmxvYWQ/YXBwRGF0YUlkPSR7YXBwRGF0YUlkfSZkb2NJZD0ke2RvY0lkfSZmaWxlTmFtZT0ke2ZpbGVOYW1lfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXRFeHRlbmRlZCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSk7XG4gIH1cblxuICBzY2FuSWQoc2NhbklkQ29tbWFuZDogU2NhbklkRHRvKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgKyAnL2FwcGRhdGEvU2NhbklkJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVtYmVyPih1cmwsIHNjYW5JZENvbW1hbmQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3RlcHMoYXBwRGF0YUlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGdldFVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICBgL2FwcGRhdGEvR2V0QnlJZC8ke2FwcERhdGFJZH1gO1xuXG4gICAgdmFyIHByb21pc2UgPSB0aGlzLmh0dHAuZ2V0PGFueT4oZ2V0VXJsKS5waXBlKG1hcCgoYXBwRGF0YSkgPT4gYXBwRGF0YSkpO1xuICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShwcm9taXNlKTtcbiAgfVxuXG4gIHNhdmVBcHAoYXBwRGF0YTogQXBwRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2F2ZVVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArICcvYXBwZGF0YS9TYXZlQXBwRGF0YSc7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgLi4uYXBwRGF0YSxcbiAgICAgIGluaXRGbG93VmFsdWVzOiBhcHBEYXRhLmluaXRGbG93VmFsdWVzLFxuICAgICAgZmlsbERhdGE6IGFwcERhdGEuZmlsbERhdGEgPyBKU09OLnN0cmluZ2lmeShhcHBEYXRhLmZpbGxEYXRhKSA6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihzYXZlVXJsLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmVTdGVwKFxuICAgIGFwcERhdGFJZDogc3RyaW5nLFxuICAgIGN1cnJlbnRTdGVwOiBhbnksXG4gICAgc2VsZWN0ZWRPZmZlcklkOiBhbnkgPSB1bmRlZmluZWRcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzYXZlVXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgICcvYXBwZGF0YS9TYXZlQXBwRGF0YVN0ZXAnO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGFwcERhdGFJZDogYXBwRGF0YUlkLFxuICAgICAgc3RlcERhdGE6IEpTT04uc3RyaW5naWZ5KGN1cnJlbnRTdGVwKSxcbiAgICAgIHdpdGhOZXh0U3RlcDogdHJ1ZSxcbiAgICAgIHNlbGVjdGVkT2ZmZXJJZDogc2VsZWN0ZWRPZmZlcklkXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHNhdmVVcmwsIHBheWxvYWQpO1xuICB9XG5cbiAgZ2V0UHJldmlvdXNTdGVwKGFwcERhdGFJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBnZXRVcmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgJy9hcHBkYXRhL3NldFByZXZpb3VzU3RlcD9hcHBJZD0nICtcbiAgICAgIGFwcERhdGFJZDtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oZ2V0VXJsKTtcbiAgfVxuXG4gIGFzeW5jIHZhbGlkYXRlQXBpKGFwaVZhbGlkYXRlUmVxdWVzdDogQXBpVmFsaWRhdGVSZXF1ZXN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICsgJy9BcGlSZXF1ZXN0L2RvcmVxdWVzdCc7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8Ym9vbGVhbj4odXJsLCBhcGlWYWxpZGF0ZVJlcXVlc3QpXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2UgPT09IHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybignQVBJIHZhbGlkYXRpb24gcmVxdWVzdCBmYWlsZWQnLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZG9Eb2N1bWVudFJlcXVlc3QoYXBpVmFsaWRhdGVSZXF1ZXN0OiBBcGlEb2N1bWVudFJlcXVlc3QpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgICcvQXBpUmVxdWVzdC9kb0RvY3VtZW50UmVxdWVzdCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBhcGlWYWxpZGF0ZVJlcXVlc3QpO1xuICB9XG5cbiAgY29udmVydERvY3VtZW50VG9QZGYoXG4gICAgcmVxdWVzdDogQ29udmVydERvY3VtZW50VG9QZGZSZXF1ZXN0XG4gICk6IE9ic2VydmFibGU8Q29udmVydERvY3VtZW50VG9QZGZSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArICcvYXBwZGF0YS9jb252ZXJ0VG9QZGYnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb252ZXJ0RG9jdW1lbnRUb1BkZlJlc3BvbnNlPih1cmwsIHJlcXVlc3QpO1xuICB9XG5cbiAgbWFrZUFjdGlvbkFwaUNhbGwoYWN0aW9uUmVxdWVzdDogTWFrZUFjdGlvblJlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnNvbGUubG9nKCdhY3Rpb25SZXF1ZXN0IGZyb20gbWFrZUFjdGlvbkFwaUNhbGwnLCBhY3Rpb25SZXF1ZXN0KTtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgKyAnL01ha2VBY3Rpb24vZG9hY3Rpb24nO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgYWN0aW9uUmVxdWVzdCk7XG4gIH1cblxuICBtYWtlUHJvY2Vzc0FwaUNhbGwoYXBwRGF0YUlEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxJbmZyYXN0cnVjdHVyZSArICcvUHJvY2Vzcyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCB7IGFwcElkOiBhcHBEYXRhSUQgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgKGNvbnNvbGUubG9nKCdyZXNwb25zZSBmcm9tIG1ha2VQcm9jZXNzQXBpQ2FsbCcsIHJlc3BvbnNlKSwgcmVzcG9uc2UpO1xuICAgICAgfSksXG5cbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBvZih7IC4uLmVycm9yLCBib2R5OiBmYWxzZSB9KSlcbiAgICApO1xuICB9XG5cbiAgZ2V0UHJvY2Vzc1N0YXR1cyhhcHBEYXRhSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEluZnJhc3RydWN0dXJlICtcbiAgICAgICcvUHJvY2Vzcy9nZXQtc3RhdHVzP2FwcElkPScgK1xuICAgICAgYXBwRGF0YUlEO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsKTtcbiAgfVxuXG4gIGdldE9mZmVycyhhcHBEYXRhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgIGAvYXBwZGF0YS9nZXRPZmZlcnMvJHthcHBEYXRhSWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybCk7XG4gIH1cblxuICBtYWtlU3RhdHVzQXBpQ2FsbChcbiAgICBhcHBEYXRhSWQ6IHN0cmluZyxcbiAgICBzdGVwSWQ6IHN0cmluZyxcbiAgICBzZXROZXh0U3RlcDogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICAnL2FwcGRhdGEvZG9TdGF0dXNBY3Rpb24nO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwge1xuICAgICAgYXBwRGF0YUlkOiBhcHBEYXRhSWQsXG4gICAgICBzdGVwSWQ6IHN0ZXBJZCxcbiAgICAgIHNldE5leHRTdGVwOiBzZXROZXh0U3RlcFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2V0Q3VycmVudFN0ZXAoYXBwRGF0YUlkOiBzdHJpbmcsIHN0ZXBJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgIGAvYXBwZGF0YS9zZXRDdXJyZW50U3RlcD9hcHBJZD0ke2FwcERhdGFJZH0mc3RlcElkPSR7c3RlcElkfWA7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cC5nZXRFeHRlbmRlZCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSlcbiAgICApO1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGVucm9sQ2FyZChlbnJvbENhcmRDb21tYW5kOiBBcHBsaWNhdGlvbkVucm9sQ2FyZER0byk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICsgJy9hcHBkYXRhL0Vucm9sQ2FyZCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHN0cmluZ1tdPih1cmwsIGVucm9sQ2FyZENvbW1hbmQpO1xuICB9XG5cbiAgZ2V0RW5yb2xtZW50U3RhdHVzKGRhdGFVcmxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnJlYWRDb25maWcoKS5iYXNlVXJsQnVzaW5lc3MgK1xuICAgICAgYC9hcHBkYXRhL0dldEVucm9sbWVudFN0YXR1cy8ke2RhdGFVcmxJZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKTtcbiAgfVxuXG4gIGdldERhdGFVcmwoZGF0YVVybElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UucmVhZENvbmZpZygpLmJhc2VVcmxCdXNpbmVzcyArXG4gICAgICBgL0RhdGFVUkwvR2V0QnlJZC8ke2RhdGFVcmxJZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKTtcbiAgfVxuXG4gIGNoYW5nZUxhbmd1YWdlKGFwcERhdGFVdWlkOiBzdHJpbmcsIGxhbmd1YWdlSVNPQ29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5yZWFkQ29uZmlnKCkuYmFzZVVybEJ1c2luZXNzICtcbiAgICAgICcvYXBwZGF0YS9jaGFuZ2VMYW5ndWFnZSc7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYXBwRGF0YUlkOiBhcHBEYXRhVXVpZCxcbiAgICAgIGxhbmd1YWdlSXNvOiBsYW5ndWFnZUlTT0NvZGVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBwYXlsb2FkKTtcbiAgfVxufVxuIl19
|