@rededor/site-front-end-lib 1.3.67 → 1.3.69
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/services/seo/seo.service.mjs +4 -4
- package/esm2022/lib/services/site-back-end/site-back-end.service.mjs +4 -1
- package/fesm2022/rededor-site-front-end-lib.mjs +6 -3
- package/fesm2022/rededor-site-front-end-lib.mjs.map +1 -1
- package/lib/services/site-back-end/site-back-end.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -299,8 +299,8 @@ export class SeoService {
|
|
|
299
299
|
getOrgJson() {
|
|
300
300
|
const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
|
|
301
301
|
return {
|
|
302
|
-
'@type': '
|
|
303
|
-
'@id': `${siteurl}#
|
|
302
|
+
'@type': 'MedicalOrganization',
|
|
303
|
+
'@id': `${siteurl}#medicalorganization`,
|
|
304
304
|
name: this.defaultTitle,
|
|
305
305
|
keywords: this.libConfig?.keywords,
|
|
306
306
|
url: `${siteurl}`,
|
|
@@ -332,7 +332,7 @@ export class SeoService {
|
|
|
332
332
|
inLanguage: 'pt-BR',
|
|
333
333
|
name: this.getTitle(),
|
|
334
334
|
isPartOf: { '@id': `${siteURL}${unidadePath}#website` },
|
|
335
|
-
about: { '@id': `${siteURL}#
|
|
335
|
+
about: { '@id': `${siteURL}#medicalorganization` },
|
|
336
336
|
description: desc,
|
|
337
337
|
};
|
|
338
338
|
}
|
|
@@ -486,4 +486,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
486
486
|
type: Inject,
|
|
487
487
|
args: [DOCUMENT]
|
|
488
488
|
}] }] });
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXlCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLG1CQUFjLEdBQVUsRUFBRSxDQUFDO0lBUS9CLENBQUM7SUFFRyxVQUFVLENBQUMsSUFBYTtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjLENBQUMsT0FBZTtRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxVQUFVLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxJQUFJLEdBQUcsTUFBTTtRQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUc7WUFDakIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHO1lBQ1gsT0FBTztTQUNSLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxJQUFZLEVBQUUsSUFBSSxHQUFHLE1BQU07UUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZUFBZSxDQUFDLEtBQWEsRUFBRSxXQUFtQixFQUFFLEdBQVcsRUFBRSxNQUFxQixJQUFJO1FBQy9GLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWMsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxHQUFXLEVBQUUsTUFBcUIsSUFBSTtRQUM5RixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxVQUFpQztRQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLElBQUksaUJBQWlCLEdBQXlCO1lBQzVDLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRTtZQUN6QyxHQUFHLEVBQUUsR0FBRyxPQUFPLEdBQUcsUUFBUSxFQUFFO1lBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMscUVBQXFFO1NBQ2pKLENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsaUJBQWlCLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDO2FBQ3pFLFVBQVUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUM7YUFDdkUsVUFBVSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQzthQUMvRCxVQUFVLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDO2FBQ2pFLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQzthQUM3RSxVQUFVLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsVUFBVSxDQUFDO2FBQzdELFVBQVUsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLEtBQWEsRUFBRSxHQUFHLEdBQUcsS0FBSztRQUN4QyxJQUFJLEtBQUssSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxtQ0FBbUM7SUFDNUIsUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sV0FBVyxDQUFDLFlBQW9CLG1CQUFtQjtRQUN4RCxJQUFJLFNBQVMsSUFBSSxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDbEMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckIsU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM1RSxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLGNBQWMsU0FBUyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNoRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXLENBQUMsWUFBb0IsbUJBQW1CO1FBQ3hELElBQUksU0FBUyxJQUFJLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsY0FBYyxTQUFTLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELCtDQUErQztJQUN2Qyx3QkFBd0I7UUFDOUIsTUFBTSxHQUFHLEdBQXNCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQ25DLEdBQUcsQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQseUVBQXlFO0lBQ2pFLHFCQUFxQjtRQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFTLENBQUM7UUFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO1lBQzlDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ2xELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCw2Q0FBNkM7SUFDdEMsa0JBQWtCLENBQUMsS0FBeUI7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHO1lBQ1gsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLGVBQWUsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO1NBQ3BELENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0RBQW9EO0lBQzVDLHNCQUFzQixDQUFDLEtBQXlCO1FBQ3RELE1BQU0sU0FBUyxHQUFHO1lBQ2hCO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO2FBQzlEO1NBQ3pCLENBQUM7UUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sUUFBUSxHQUF3QjtnQkFDcEMsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDZixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2FBQ3pGLENBQUM7WUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLG9CQUFvQixDQUFDLEdBQWE7UUFDeEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsT0FBTyxHQUFHLE9BQU8sR0FBRyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsV0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sR0FBRyxPQUFPLEdBQUcsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQseUNBQXlDO0lBQ2pDLGFBQWE7UUFDbkIsTUFBTSxHQUFHLEdBQXNCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN4QixHQUFHLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNuQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCx5RUFBeUU7SUFDakUsVUFBVTtRQUNoQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFTLENBQUM7UUFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO1lBQzlDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHNEQUFzRDtJQUMvQyxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWpDLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVwRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXRHLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXpCLE1BQU0sSUFBSSxHQUFHO1lBQ1gsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixRQUFRLEVBQUUsYUFBYTtTQUN4QixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQ0FBZ0M7SUFDeEIsVUFBVTtRQUNoQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRSxPQUFPO1lBQ0wsT0FBTyxFQUFFLGNBQWM7WUFDdkIsS0FBSyxFQUFFLEdBQUcsT0FBTyxlQUFlO1lBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRO1lBQ2xDLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRTtZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRCxvREFBb0Q7SUFDNUMsY0FBYztRQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0UsT0FBTztZQUNMLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxHQUFHLE9BQU8sR0FBRyxXQUFXLFVBQVU7WUFDekMsR0FBRyxFQUFFLEdBQUcsT0FBTyxHQUFHLFdBQVcsRUFBRTtZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDdEIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUTtTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVELDJCQUEyQjtJQUNuQixjQUFjO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRSxNQUFNLFFBQVEsR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPO1lBQ0wsT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLEdBQUcsUUFBUSxVQUFVO1lBQzVCLEdBQUcsRUFBRSxRQUFRO1lBQ2IsVUFBVSxFQUFFLE9BQU87WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxHQUFHLFdBQVcsVUFBVSxFQUFFO1lBQ3ZELEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sZUFBZSxFQUFFO1lBQzNDLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsa0JBQWtCO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELG9FQUFvRTtJQUM1RCxlQUFlO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQVMsQ0FBQztRQUNkLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQW9CLENBQUM7WUFDNUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDaEUsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLEdBQVk7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDMUUsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUUzSSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksaUJBQWlCLENBQUMsR0FBVztRQUNsQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRSxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsWUFBb0I7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsSUFBSSxXQUFXLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxXQUFXLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEosT0FBTyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFVBQWtCO1FBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1lBQ3pELENBQUMsQ0FBQztnQkFDRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsR0FBRztnQkFDNUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2hELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxNQUFNO2FBQ25EO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVULE1BQU0sY0FBYyxHQUFHO1lBQ3JCLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsZ0JBQWdCLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVHLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVE7WUFDOUIsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQzVCLFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsY0FBYztnQkFDdkIsSUFBSSxFQUFFLFdBQVc7YUFDbEI7WUFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRO1lBQ2pDLFdBQVcsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNuRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixHQUFHLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksRUFBRTtnQkFDM0QsTUFBTSxFQUFFLGVBQWUsRUFBRSxNQUFNLElBQUksRUFBRTtnQkFDckMsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLElBQUksRUFBRTthQUNwQztZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsY0FBYztnQkFDdkIsSUFBSSxFQUFFLFdBQVc7YUFDbEI7WUFDRCxTQUFTLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNO1NBQ3pDLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyRCxNQUFNLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQUUsT0FBTyxHQUFHLElBQUksRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBYztRQUNwRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDOytHQXRnQlUsVUFBVSxtRkE2QlgsVUFBVSxhQUNWLFFBQVE7bUhBOUJQLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBOEJJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0ICogYXMgaGUgZnJvbSAnaGUnO1xyXG5cclxuaW1wb3J0IHsgU29jaWFsTWV0YVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc29jaWFsLW1ldGEtcHJvcGVydGllcy5tb2RlbCc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJzSXRlbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMtaXRlbXMubW9kZWwnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1ic0pzb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLWpzb24taXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlb0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VvL3Nlby1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VvVW5pZGFkZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZW8vc2VvLXVuaWRhZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XHJcbmltcG9ydCB7IGdldFNpdGVVcmwsIHJlbW92ZUh0bWxUYWdzIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IExJQl9DT05GSUcsIExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL3Rva2Vucy9MaWJDb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlb1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBzZXBhcmF0b3IgPSAnIC0gJztcclxuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcclxuICBwdWJsaWMgYWN0aXZlRGVzY3JpcHRpb24hOiBzdHJpbmc7XHJcbiAgcHVibGljIHNhbWVBcyA9IFtcclxuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxyXG4gICAgJ2h0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vcmVkZWRvcl9vZmljaWFsLycsXHJcbiAgICAnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvcmVkZWRvci1zYW9sdWl6JyxcclxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxyXG4gIF07XHJcbiAgcHVibGljIHR3aXR0ZXJVc2VyID0gJ0ByZWRlZG9yJztcclxuXHJcbiAgcHJpdmF0ZSBjYW5vbmljYWxUYWchOiBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBqc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XHJcbiAgcHJpdmF0ZSBicmVhZGNydW1ic0pzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcclxuICBwcml2YXRlIGJyZWFkY3J1bWJzSnNvblRhZ0lkID0gJ2JyZWFkY3J1bWJzSlNPTic7XHJcblxyXG4gIHB1YmxpYyB1bmlkYWRlOiBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyB1bmlkYWRlTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgdW5pZGFkZVNsdWc6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwdWJsaWMgY3VzdG9tSnNvblR5cGU6IGFueVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0aXRsZTogVGl0bGUsXHJcbiAgICBwcml2YXRlIG1ldGE6IE1ldGEsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIHNldEZ1bGxTZW8oZGF0YTogU2VvRGF0YSkge1xyXG4gICAgdGhpcy5zZXRUaXRsZShkYXRhLnRpdGxlLnRleHQsICEhZGF0YS50aXRsZS5zdWIpO1xyXG4gICAgdGhpcy5zZXREZXNjcmlwdGlvbihkYXRhLmRlc2NyaXB0aW9uKTtcclxuICAgIHRoaXMuc2V0Q2Fub25pY2FsSHJlZihkYXRhLmNhbm9uaWNhbCk7XHJcbiAgICB0aGlzLnNldFBhZ2VKc29uKCk7XHJcbiAgICB0aGlzLnNldFNvY2lhbFRhZ3MoZGF0YS5zb2NpYWxUYWdzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0YWcgZGVzY3JpcHRpb24gZGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSBkZXNjcmnDp8OjbyA8c3RyaW5nPlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXREZXNjcmlwdGlvbihjb250ZW50OiBzdHJpbmcpOiBTZW9TZXJ2aWNlIHtcclxuICAgIGNvbnN0IGRlc2NUYWcgPSB0aGlzLm1ldGEuZ2V0VGFnKFwibmFtZT0nZGVzY3JpcHRpb24nXCIpO1xyXG4gICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcclxuICAgICAgY29udGVudCA9IHJlbW92ZUh0bWxUYWdzKGNvbnRlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udGVudCA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiA9IGNvbnRlbnQ7XHJcbiAgICBjb25zdCB0YWdDb250ZW50ID0geyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50IH07XHJcbiAgICBpZiAoZGVzY1RhZykge1xyXG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHRhZ0NvbnRlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tZXRhLmFkZFRhZyh0YWdDb250ZW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSB0YWcgbm9tZSBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSB0eXBlIHRpcG8gZGUgdGFnIG1ldGFcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TWV0YVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XHJcbiAgICBjb25zdCBtZXRhdGFnID0gdGhpcy5tZXRhLmdldFRhZyhgJHt0eXBlfT0nJHt0YWd9J2ApO1xyXG4gICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcclxuICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcclxuICAgIGNvbnN0IHRhZ0NvbnRlbnQgPSB7XHJcbiAgICAgIFt0eXBlXTogdGFnLFxyXG4gICAgICBjb250ZW50LFxyXG4gICAgfTtcclxuICAgIGlmICghbWV0YXRhZykge1xyXG4gICAgICB0aGlzLm1ldGEuYWRkVGFnKHRhZ0NvbnRlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWdDb250ZW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIG1ldGEgdGFncyBkYSBww6FnaW5hXHJcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXHJcbiAgICogQHBhcmFtIGNvbnRlbnQgY29udGXDumRvIGRhIHRhZyBtZXRhXHJcbiAgICogQHBhcmFtIGF0dHIgYXRyaWJ1dG8gZGEgdGFnIG1ldGFcclxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBhdHRyOiBzdHJpbmcsIHR5cGUgPSAnbmFtZScpIHtcclxuICAgIGNvbnN0IG1ldGF0YWcgPSB0aGlzLm1ldGEuZ2V0VGFnKGAke3R5cGV9PScke3RhZ30nYCk7XHJcbiAgICBpZiAobWV0YXRhZykge1xyXG4gICAgICB0aGlzLm1ldGEucmVtb3ZlVGFnKGAke2F0dHJ9PSR7Y29udGVudH1gKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIEZhY2Vib29rXHJcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gcGFyYSBvIGZhY2Vib29rXHJcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIGRlc2NyacOnw6NvIHBhcmEgbyBmYWNlYm9va1xyXG4gICAqIEBwYXJhbSB1cmwgdXJsIHBhcmEgZGVmaW5pw6fDo28gZG8gZmFjZWJvb2tcclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIGZhY2Vib29rXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1ldGFGYWNlYm9vayh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp1cmwnLCB1cmwsICdwcm9wZXJ0eScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp0aXRsZScsIHRpdGxlLCAncHJvcGVydHknKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6ZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbiwgJ3Byb3BlcnR5Jyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOnR5cGUnLCAnd2Vic2l0ZScsICdwcm9wZXJ0eScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzppbWFnZScsIGltZyA/PyAnJywgJ3Byb3BlcnR5Jyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgVHdpdHRlclxyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyB0d2l0dGVyXHJcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIGRlc2NyacOnw6NvIHBhcmEgbyB0d2l0dGVyXHJcbiAgICogQHBhcmFtIHVybCB1cmwgcGFyYSBvIHR3aXR0ZXJcclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIHR3aXR0ZXJcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TWV0YVR3aXR0ZXIodGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgdXJsLCAnbmFtZScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCd0d2l0dGVyOnRpdGxlJywgdGl0bGUsICduYW1lJyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6ZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbiwgJ25hbWUnKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjppbWFnZScsIGltZyA/PyAnJywgJ25hbWUnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0YWdzIGRlIHJlZGVzIHNvY2lhaXMgKFR3aXR0ZXIgZSBPcGVuIEdyYXBoKVxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0aWVzXHJcbiAgICovXHJcbiAgc2V0U29jaWFsVGFncyhwcm9wZXJ0aWVzPzogU29jaWFsTWV0YVByb3BlcnRpZXMpIHtcclxuICAgIGNvbnN0IHBhZ2VQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BlcnRpZXM6IFNvY2lhbE1ldGFQcm9wZXJ0aWVzID0ge1xyXG4gICAgICB0d2l0dGVyQ2FyZDogJ3N1bW1hcnknLFxyXG4gICAgICB0d2l0dGVyU2l0ZTogdGhpcy50d2l0dGVyVXNlcixcclxuICAgICAgdHlwZTogJ3dlYnNpdGUnLFxyXG4gICAgICB0aXRsZTogdGhpcy5nZXRUaXRsZSgpLFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiB8fCAnJyxcclxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YCxcclxuICAgICAgaW1hZ2U6IHRoaXMubGliQ29uZmlnPy5sb2dvUGF0aCA/IGAke3NpdGV1cmx9JHt0aGlzLmxpYkNvbmZpZy5sb2dvUGF0aH1gIDogJ2h0dHBzOi8vd3d3LnJlZGVkb3JzYW9sdWl6LmNvbS5ici9hc3NldHMvaW1ncy9sb2dvLXJlZGVkb3ItYmx1ZS5wbmcnLFxyXG4gICAgfTtcclxuICAgIGlmIChwcm9wZXJ0aWVzKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzID0geyAuLi5kZWZhdWx0UHJvcGVydGllcywgLi4ucHJvcGVydGllcyB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCd0d2l0dGVyOmNhcmQnLCBkZWZhdWx0UHJvcGVydGllcy50d2l0dGVyQ2FyZCB8fCAnJywgJ25hbWUnKVxyXG4gICAgICAuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlclNpdGUgfHwgJycsICduYW1lJylcclxuICAgICAgLnNldE1ldGFUYWcoJ29nOnR5cGUnLCBkZWZhdWx0UHJvcGVydGllcy50eXBlIHx8ICcnLCAncHJvcGVydHknKVxyXG4gICAgICAuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCBkZWZhdWx0UHJvcGVydGllcy50aXRsZSB8fCAnJywgJ3Byb3BlcnR5JylcclxuICAgICAgLnNldE1ldGFUYWcoJ29nOmRlc2NyaXB0aW9uJywgZGVmYXVsdFByb3BlcnRpZXMuZGVzY3JpcHRpb24gfHwgJycsICdwcm9wZXJ0eScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp1cmwnLCBkZWZhdWx0UHJvcGVydGllcy51cmwgfHwgJycsICdwcm9wZXJ0eScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzppbWFnZScsIGRlZmF1bHRQcm9wZXJ0aWVzLmltYWdlIHx8ICcnLCAncHJvcGVydHknKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0w610dWxvIGRhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gdGl0bGUgdMOtdHVsbyBkYSBww6FnaW5hIDxzdHJpbmc+XHJcbiAgICogQHBhcmFtIHN1YiBTZSDDqSBzdWJzaXRlIGFjcmVzY2VudGEgdW5pZGFkZSA8Ym9vbGVhbj5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZywgc3ViID0gZmFsc2UpIHtcclxuICAgIGlmICh0aXRsZSAmJiB0aXRsZSAhPT0gJycpIHtcclxuICAgICAgdGl0bGUgPSBoZS5kZWNvZGUodGl0bGUpO1xyXG4gICAgICB0aXRsZSA9IHJlbW92ZUh0bWxUYWdzKHRpdGxlKTtcclxuICAgICAgaWYgKHN1Yikge1xyXG4gICAgICAgIHRpdGxlID0gaGUuZGVjb2RlKGAke3RpdGxlfSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogT2J0ZW0gdMOtdHVsbyBhdHVhbCBkYSBww6FnaW5hICovXHJcbiAgcHVibGljIGdldFRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZS5nZXRUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldDQwNFRpdGxlKGNvbXBvbmVudDogc3RyaW5nID0gJ0RlZmF1bHQgQ29tcG9uZW50Jykge1xyXG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQgIT09ICcnKSB7XHJcbiAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShjb21wb25lbnQpO1xyXG4gICAgICBjb21wb25lbnQgPSByZW1vdmVIdG1sVGFncyhjb21wb25lbnQpO1xyXG4gICAgICBpZiAodGhpcy51bmlkYWRlTmFtZSkge1xyXG4gICAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShgJHtjb21wb25lbnR9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHRpdGxlID0gYEVycm8gNDA0IC0gJHtjb21wb25lbnR9IC0gJHt0aGlzLmxpYkNvbmZpZz8uc2l0ZU5hbWV9IC0gJHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xyXG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aXRsZSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQ1MDBUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcclxuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnJykge1xyXG4gICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoY29tcG9uZW50KTtcclxuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcclxuICAgICAgaWYgKHRoaXMudW5pZGFkZU5hbWUpIHtcclxuICAgICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoYCR7Y29tcG9uZW50fSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aXRsZSA9IGBFcnJvIDUwMCAtICR7Y29tcG9uZW50fSAtICR7dGhpcy5saWJDb25maWc/LnNpdGVOYW1lfSAtICR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcclxuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgSlNPTiBkZSBicmVhZGNydW1icyAqL1xyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgdGFnLmlkID0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZDtcclxuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRhZztcclxuICAgIHJldHVybiB0YWc7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSB0YWcgcGFyYSBzY3JpcHQganNvbiBkZSBicmVhZGNydW1icyBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xyXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgICAgIGlmIChlbGVtICYmIGVsZW0uaWQgPT09IHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnSWQpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRGVmaW5lIG8gSlNPTiBkZSBicmVhZGNydW1icyBkYSBww6FnaW5hICovXHJcbiAgcHVibGljIHNldEJyZWFkY3J1bWJzSnNvbihpdGVtczogQnJlYWRjcnVtYnNJdGVtc1tdKSB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRoaXMuZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk7XHJcbiAgICBjb25zdCBqc29uID0ge1xyXG4gICAgICAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLFxyXG4gICAgICAnQHR5cGUnOiAnQnJlYWRjcnVtYkxpc3QnLFxyXG4gICAgICBpdGVtTGlzdEVsZW1lbnQ6IHRoaXMuZ2V0SnNvbkJyZWFkY3J1bWJJdGVtcyhpdGVtcyksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKiBDb252ZXJ0ZSBpdGVucyBkbyBicmVhZGNydW1iIGVtIGl0ZW5zIGRvIEpTT04gKi9cclxuICBwcml2YXRlIGdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXM6IEJyZWFkY3J1bWJzSXRlbXNbXSk6IEJyZWFkY3J1bWJzSnNvbkl0ZW1bXSB7XHJcbiAgICBjb25zdCBqc29uSXRlbXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxyXG4gICAgICAgIHBvc2l0aW9uOiAxLFxyXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoWycvJ10pLCBuYW1lOiBoZS5lbmNvZGUoJ1DDoWdpbmEgSW5pY2lhbCcpIH0sXHJcbiAgICAgIH0gYXMgQnJlYWRjcnVtYnNKc29uSXRlbSxcclxuICAgIF07XHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGpzb25JdGVtOiBCcmVhZGNydW1ic0pzb25JdGVtID0ge1xyXG4gICAgICAgICdAdHlwZSc6ICdMaXN0SXRlbScsXHJcbiAgICAgICAgcG9zaXRpb246IGkgKyAyLFxyXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoaXRlbT8udXJsIHx8IFtdKSwgbmFtZTogaGUuZW5jb2RlKGl0ZW0ubGFiZWwpIH0sXHJcbiAgICAgIH07XHJcbiAgICAgIGpzb25JdGVtcy5wdXNoKGpzb25JdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGpzb25JdGVtcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vbnRhIGEgdXJsIGRvIGl0ZW0gZGUgYnJlYWRjcnVtYiBwcm92ZW5pZW50ZSBkbyBhcnJheSBkZSB1cmxzXHJcbiAgICogb3UgZG8gY2FtaW5obyBkYSBwcsOzcHJpYSBww6FnaW5hLCBjb25mb3JtZSBjYXNvIGRvIMO6bHRpbW8gaXRlbS5cclxuICAgKi9cclxuICBwcml2YXRlIGdldEJyZWFkY3J1bWJJdGVtVXJsKHVybDogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgaWYgKCF1cmwgfHwgdXJsLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgIGNvbnN0IHBhZ2VQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XHJcbiAgICAgIHJldHVybiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YDtcclxuICAgIH1cclxuICAgIHVybCA9IHVybC5maWx0ZXIoKHUpID0+IHUgIT09IHRoaXMudW5pZGFkZVBhdGgpO1xyXG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XHJcbiAgICBjb25zdCBmdWxsUGF0aCA9IGAke3VuaWRhZGVQYXRofS8ke3VybC5qb2luKCcvJykucmVwbGFjZSgvXlxcLz8vLCAnJyl9YDtcclxuICAgIHJldHVybiBgJHtzaXRldXJsfSR7ZnVsbFBhdGh9YC5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyaWEgdGFnIHNjcmlwdCBwYXJhIG8gSlNPTiBkZSBTRU8gKi9cclxuICBwcml2YXRlIGNyZWF0ZUpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xyXG4gICAgY29uc3QgdGFnOiBIVE1MU2NyaXB0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICB0YWcuaWQgPSB0aGlzLmpzb25UYWdJZDtcclxuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0aGlzLmpzb25UYWcgPSB0YWc7XHJcbiAgICByZXR1cm4gdGFnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cclxuICBwcml2YXRlIGdldEpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmRvY3VtZW50LmhlYWQuY2hpbGRyZW47XHJcbiAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGVsZW0gPSBlbGVtZW50c1tpXSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcclxuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5qc29uVGFnSWQpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSlNPTlRhZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIERlZmluZSBKU09OIHBhcmEgU0VPIHNvbWVudGUgcXVhbmRvIG5vIHNlcnZpZG9yICovXHJcbiAgcHVibGljIHNldFBhZ2VKc29uKCkge1xyXG4gICAgdGhpcy5qc29uVGFnID0gdGhpcy5nZXRKU09OVGFnKCk7XHJcblxyXG4gICAgY29uc3QgYmFzZUdyYXBoID0gW3RoaXMuZ2V0T3JnSnNvbigpLCB0aGlzLmdldFdlYnNpdGVKc29uKCksIHRoaXMuZ2V0V2VicGFnZUpzb24oKV07XHJcblxyXG4gICAgY29uc3QgZXh0ZW5kZWRHcmFwaCA9IHRoaXMuY3VzdG9tSnNvblR5cGUubGVuZ3RoID8gWy4uLmJhc2VHcmFwaCwgLi4udGhpcy5jdXN0b21Kc29uVHlwZV0gOiBiYXNlR3JhcGg7XHJcblxyXG4gICAgdGhpcy5jdXN0b21Kc29uVHlwZSA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGpzb24gPSB7XHJcbiAgICAgICdAY29udGV4dCc6ICdodHRwOi8vc2NoZW1hLm9yZycsXHJcbiAgICAgICdAZ3JhcGgnOiBleHRlbmRlZEdyYXBoLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmpzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogT2J0ZW0gSlNPTiBkYSBPcmdhbml6YcOnw6NvICovXHJcbiAgcHJpdmF0ZSBnZXRPcmdKc29uKCkge1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXHJcbiAgICAgICdAaWQnOiBgJHtzaXRldXJsfSNvcmdhbml6YXRpb25gLFxyXG4gICAgICBuYW1lOiB0aGlzLmRlZmF1bHRUaXRsZSxcclxuICAgICAga2V5d29yZHM6IHRoaXMubGliQ29uZmlnPy5rZXl3b3JkcyxcclxuICAgICAgdXJsOiBgJHtzaXRldXJsfWAsXHJcbiAgICAgIHNhbWVBczogdGhpcy5zYW1lQXMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIEpTT04gZG8gV2Vic2l0ZSAocG9ydGFsLCB1bmlkYWRlcywgZXRjKSAqL1xyXG4gIHByaXZhdGUgZ2V0V2Vic2l0ZUpzb24oKSB7XHJcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcclxuICAgICAgJ0BpZCc6IGAke3NpdGV1cmx9JHt1bmlkYWRlUGF0aH0jd2Vic2l0ZWAsXHJcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3VuaWRhZGVQYXRofWAsXHJcbiAgICAgIG5hbWU6IHRoaXMudW5pZGFkZU5hbWUsXHJcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIE9idGVtIEpzb24gZGEgcMOhZ2luYSAqL1xyXG4gIHByaXZhdGUgZ2V0V2VicGFnZUpzb24oKSB7XHJcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcclxuICAgIGNvbnN0IHNpdGVVUkwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIGNvbnN0IHBhZ2VQYXRoID0gYCR7c2l0ZVVSTH0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XHJcbiAgICBjb25zdCBkZXNjID0gdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiA/IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gOiAnJztcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcclxuICAgICAgJ0BpZCc6IGAke3BhZ2VQYXRofSN3ZWJwYWdlYCxcclxuICAgICAgdXJsOiBwYWdlUGF0aCxcclxuICAgICAgaW5MYW5ndWFnZTogJ3B0LUJSJyxcclxuICAgICAgbmFtZTogdGhpcy5nZXRUaXRsZSgpLFxyXG4gICAgICBpc1BhcnRPZjogeyAnQGlkJzogYCR7c2l0ZVVSTH0ke3VuaWRhZGVQYXRofSN3ZWJzaXRlYCB9LFxyXG4gICAgICBhYm91dDogeyAnQGlkJzogYCR7c2l0ZVVSTH0jb3JnYW5pemF0aW9uYCB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogZGVzYyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFVuaWRhZGVQYXRoKCkge1xyXG4gICAgbGV0IHVuaWRhZGVQYXRoID0gJyc7XHJcbiAgICBpZiAodGhpcy51bmlkYWRlICYmIHRoaXMudW5pZGFkZVBhdGgpIHtcclxuICAgICAgdW5pZGFkZVBhdGggPSB0aGlzLnVuaWRhZGU/LnBhdGggPT09ICcvJyA/ICcnIDogdGhpcy51bmlkYWRlUGF0aD8uc3Vic3RyaW5nKDAsIHRoaXMudW5pZGFkZVBhdGg/Lmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuaWRhZGVQYXRoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0w6ltIGEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxyXG4gICAqIEByZXR1cm5zIEEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDYW5vbmljYWxIcmVmKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuY2Fub25pY2FsVGFnKSB7XHJcbiAgICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGhpcy5nZXRDYW5vbmljYWxUYWcoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNhbm9uaWNhbFRhZy5ocmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyaWEgdGFnIHBhcmEgbGlua3MgY2Fub25pY2FscyBubyBoZWFkICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxUYWcoKTogSFRNTExpbmtFbGVtZW50IHtcclxuICAgIGNvbnN0IHRhZyA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgncmVsJywgJ2Nhbm9uaWNhbCcpO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0YWcuc2V0QXR0cmlidXRlKCdocmVmJywgdGhpcy5kb2N1bWVudC5VUkwpO1xyXG4gICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0YWc7XHJcbiAgICByZXR1cm4gdGFnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgbGluayBjYW5vbmljYWwgZXhpc3RlIG91IGNyaWEgc2UgbsOjbyBob3V2ZXIuICovXHJcbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxUYWcoKTogSFRNTExpbmtFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTExpbmtFbGVtZW50O1xyXG4gICAgICBpZiAoZWxlbSAmJiBlbGVtLnRhZ05hbWUgPT09ICdMSU5LJyAmJiBlbGVtLnJlbCA9PT0gJ2Nhbm9uaWNhbCcpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2Fub25pY2FsVGFnKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgbGluayBjYW5vbmljYWwgZGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSB1cmwgdXJsIGNhbm9uaWNhbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRDYW5vbmljYWxIcmVmKHVybD86IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmNhbm9uaWNhbFRhZykge1xyXG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhdGggPSB0aGlzLmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lO1xyXG5cclxuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4ICYmIHBhdGguaW5jbHVkZXModGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCkpIHtcclxuICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSh0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4LCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xyXG4gICAgICBwYXRoID0gYC8ke3BhdGh9YDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYW5vbmljYWxVcmwgPSB1cmwgJiYgdGhpcy5pc0N1c3RvbUNhbm9uaWNhbCh1cmwpID8gdXJsIDogYCR7Z2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCl9JHtwYXRofWA7XHJcblxyXG4gICAgdGhpcy5jYW5vbmljYWxUYWcuc2V0QXR0cmlidXRlKCdocmVmJywgY2Fub25pY2FsVXJsKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpY2Egc2UgYSBVUkwgZm9ybmVjaWRhIMOpIHVtIGxpbmsgY2Fub25pY2FsIHBlcnNvbmFsaXphZG9cclxuICAgKiBAcGFyYW0gdXJsIFVSTCBmb3JuZWNpZGFcclxuICAgKi9cclxuICBwdWJsaWMgaXNDdXN0b21DYW5vbmljYWwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aChzaXRldXJsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idMOpbSB1bWEgdXJsIHbDoWxpZGEgbmEgYXBsaWNhw6fDo28gcHJvdmVuaWVudGUgZGUgdW1hIFVSTCBnZXJhZGFcclxuICAgKiBwZWxvIHBsdWdpbiBZb2FzdCBwYXJhIGNhbm9uaWNhbCBhdXRvbcOhdGljby5cclxuICAgKiBFeC46IGh0dHBzOi8vd3AucmVkZWRvcnNhb2x1aXouY29tLmJyL2JyYXNpbC9lc3BlY2lhbGlkYWRlcy9jYXJkaW9sb2dpYS9cclxuICAgKiBAcGFyYW0gdXJsRnJvbVdwQXBpIFVSTCBjYW5vbmljYSBnZXJhZGEgcGVsbyBZb2FzdCBQbHVnaW4uXHJcbiAgICovXHJcbiAgdG9Mb2NhbENhbm9uaWNhbCh1cmxGcm9tV3BBcGk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmxpYkNvbmZpZz8ud3BVcmwgPz8gJyc7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICBjb25zdCB1bmlkYWRlU2x1ZyA9IHRoaXMudW5pZGFkZVNsdWc7XHJcbiAgICBsZXQgY29udmVydGVkID0gdXJsRnJvbVdwQXBpLnJlcGxhY2UoYXBpVXJsLCBzaXRldXJsKTtcclxuICAgIGlmICh1bmlkYWRlU2x1ZyAhPT0gJy8nICYmIGNvbnZlcnRlZC5pbmNsdWRlcyhgLyR7dW5pZGFkZVNsdWd9L2ApKSB7XHJcbiAgICAgIGNvbnZlcnRlZCA9IGNvbnZlcnRlZC5yZXBsYWNlKGAvJHt1bmlkYWRlU2x1Z30vYCwgYCR7dGhpcy51bmlkYWRlUGF0aH1gKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb252ZXJ0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQb3N0Q29udGVudChwb3N0OiBXcFBvc3QpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY29udGVudCA9IHBvc3Q/LmFjZj8uWydyZHNsX3Bvc3RfY29udGVudCddID8gcG9zdD8uYWNmPy5yZHNsX3Bvc3RfY29udGVudD8uZmluZCgoY29udGVudDogYW55KSA9PiBjb250ZW50LmFjZl9mY19sYXlvdXQgPT09ICd0ZXh0X2h0bWwnKSA6IG51bGw7XHJcbiAgICByZXR1cm4gY29udGVudD8uY29udGVudCB8fCBwb3N0LmNvbnRlbnQucmVuZGVyZWQgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBhZGRBcnRpY2xlU2NyaXB0KHBvc3Q6IFdwUG9zdCwgc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBwb3N0Q29udGVudCA9IHRoaXMuZ2V0UG9zdENvbnRlbnQocG9zdCk7XHJcbiAgICBjb25zdCBwb3N0SGVhZGVySW1hZ2UgPSBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXVxyXG4gICAgICA/IHtcclxuICAgICAgICAgIHVybDogcG9zdD8uYWNmPy5bJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10udXJsLFxyXG4gICAgICAgICAgd2lkdGg6IHBvc3Q/LmFjZj8uWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLndpZHRoLFxyXG4gICAgICAgICAgaGVpZ2h0OiBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS5oZWlnaHQsXHJcbiAgICAgICAgfVxyXG4gICAgICA6IG51bGw7XHJcblxyXG4gICAgY29uc3Qgc3RydWN0dXJlZERhdGEgPSB7XHJcbiAgICAgICdAY29udGV4dCc6ICdodHRwczovL3NjaGVtYS5vcmcnLFxyXG4gICAgICAnQHR5cGUnOiAnQXJ0aWNsZScsXHJcbiAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YCxcclxuICAgICAgaGVhZGxpbmU6IHBvc3QudGl0bGU/LnJlbmRlcmVkLFxyXG4gICAgICBkYXRlUHVibGlzaGVkOiBwb3N0LmRhdGVfZ210LFxyXG4gICAgICBwdWJsaXNoZXI6IHtcclxuICAgICAgICAnQHR5cGUnOiAnT3JnYW5pemF0aW9uJyxcclxuICAgICAgICBuYW1lOiAnUmVkZSBE4oCZT3InLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogcG9zdC50aXRsZT8ucmVuZGVyZWQsXHJcbiAgICAgIGFydGljbGVCb2R5OiByZW1vdmVIdG1sVGFncyhoZS5kZWNvZGUocG9zdENvbnRlbnQpKSxcclxuICAgICAgZGF0ZU1vZGlmaWVkOiBwb3N0Lm1vZGlmaWVkX2dtdCxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICAnQHR5cGUnOiAnSW1hZ2VPYmplY3QnLFxyXG4gICAgICAgIHVybDogcG9zdEhlYWRlckltYWdlPy51cmwgfHwgcG9zdC5mZWF0dXJlZF9tZWRpYV9wYXRoIHx8ICcnLFxyXG4gICAgICAgIGhlaWdodDogcG9zdEhlYWRlckltYWdlPy5oZWlnaHQgfHwgJycsXHJcbiAgICAgICAgd2lkdGg6IHBvc3RIZWFkZXJJbWFnZT8ud2lkdGggfHwgJycsXHJcbiAgICAgIH0sXHJcbiAgICAgIGF1dGhvcjoge1xyXG4gICAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxyXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHdvcmRjb3VudDogcG9zdENvbnRlbnQuc3BsaXQoJyAnKS5sZW5ndGgsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcblxyXG4gICAgc2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XHJcbiAgICBzY3JpcHQuaWQgPSBzY3JpcHROYW1lO1xyXG4gICAgc2NyaXB0LmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KHN0cnVjdHVyZWREYXRhKTtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUFydGljbGVTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdE5hbWUpO1xyXG4gICAgc2NyaXB0Py5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVbmlkYWRlKHsgdW5pZGFkZSA9IG51bGwsIHVuaWRhZGVOYW1lID0gJycsIHVuaWRhZGVQYXRoID0gJycsIHVuaWRhZGVTbHVnID0gJycgfTogU2VvVW5pZGFkZSkge1xyXG4gICAgdGhpcy51bmlkYWRlID0gdW5pZGFkZTtcclxuICAgIHRoaXMudW5pZGFkZU5hbWUgPSB1bmlkYWRlTmFtZTtcclxuICAgIHRoaXMudW5pZGFkZVBhdGggPSB1bmlkYWRlUGF0aDtcclxuICAgIHRoaXMudW5pZGFkZVNsdWcgPSB1bmlkYWRlU2x1ZztcclxuICB9XHJcbn1cclxuIl19
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXlCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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USxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQUUsT0FBTyxHQUFHLElBQUksRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBYztRQUNwRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDOytHQXRnQlUsVUFBVSxtRkE2QlgsVUFBVSxhQUNWLFFBQVE7bUhBOUJQLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBOEJJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXRhLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0ICogYXMgaGUgZnJvbSAnaGUnO1xyXG5cclxuaW1wb3J0IHsgU29jaWFsTWV0YVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvc29jaWFsLW1ldGEtcHJvcGVydGllcy5tb2RlbCc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJzSXRlbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMtaXRlbXMubW9kZWwnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1ic0pzb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLWpzb24taXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlb0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VvL3Nlby1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VvVW5pZGFkZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZW8vc2VvLXVuaWRhZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XHJcbmltcG9ydCB7IGdldFNpdGVVcmwsIHJlbW92ZUh0bWxUYWdzIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IExJQl9DT05GSUcsIExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL3Rva2Vucy9MaWJDb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlb1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBzZXBhcmF0b3IgPSAnIC0gJztcclxuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcclxuICBwdWJsaWMgYWN0aXZlRGVzY3JpcHRpb24hOiBzdHJpbmc7XHJcbiAgcHVibGljIHNhbWVBcyA9IFtcclxuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxyXG4gICAgJ2h0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vcmVkZWRvcl9vZmljaWFsLycsXHJcbiAgICAnaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvcmVkZWRvci1zYW9sdWl6JyxcclxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxyXG4gIF07XHJcbiAgcHVibGljIHR3aXR0ZXJVc2VyID0gJ0ByZWRlZG9yJztcclxuXHJcbiAgcHJpdmF0ZSBjYW5vbmljYWxUYWchOiBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBqc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XHJcbiAgcHJpdmF0ZSBicmVhZGNydW1ic0pzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcclxuICBwcml2YXRlIGJyZWFkY3J1bWJzSnNvblRhZ0lkID0gJ2JyZWFkY3J1bWJzSlNPTic7XHJcblxyXG4gIHB1YmxpYyB1bmlkYWRlOiBhbnkgPSBudWxsO1xyXG4gIHB1YmxpYyB1bmlkYWRlTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgdW5pZGFkZVNsdWc6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwdWJsaWMgY3VzdG9tSnNvblR5cGU6IGFueVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0aXRsZTogVGl0bGUsXHJcbiAgICBwcml2YXRlIG1ldGE6IE1ldGEsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIHNldEZ1bGxTZW8oZGF0YTogU2VvRGF0YSkge1xyXG4gICAgdGhpcy5zZXRUaXRsZShkYXRhLnRpdGxlLnRleHQsICEhZGF0YS50aXRsZS5zdWIpO1xyXG4gICAgdGhpcy5zZXREZXNjcmlwdGlvbihkYXRhLmRlc2NyaXB0aW9uKTtcclxuICAgIHRoaXMuc2V0Q2Fub25pY2FsSHJlZihkYXRhLmNhbm9uaWNhbCk7XHJcbiAgICB0aGlzLnNldFBhZ2VKc29uKCk7XHJcbiAgICB0aGlzLnNldFNvY2lhbFRhZ3MoZGF0YS5zb2NpYWxUYWdzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0YWcgZGVzY3JpcHRpb24gZGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSBkZXNjcmnDp8OjbyA8c3RyaW5nPlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXREZXNjcmlwdGlvbihjb250ZW50OiBzdHJpbmcpOiBTZW9TZXJ2aWNlIHtcclxuICAgIGNvbnN0IGRlc2NUYWcgPSB0aGlzLm1ldGEuZ2V0VGFnKFwibmFtZT0nZGVzY3JpcHRpb24nXCIpO1xyXG4gICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcclxuICAgICAgY29udGVudCA9IHJlbW92ZUh0bWxUYWdzKGNvbnRlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udGVudCA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiA9IGNvbnRlbnQ7XHJcbiAgICBjb25zdCB0YWdDb250ZW50ID0geyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50IH07XHJcbiAgICBpZiAoZGVzY1RhZykge1xyXG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHRhZ0NvbnRlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tZXRhLmFkZFRhZyh0YWdDb250ZW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSB0YWcgbm9tZSBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxyXG4gICAqIEBwYXJhbSB0eXBlIHRpcG8gZGUgdGFnIG1ldGFcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TWV0YVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XHJcbiAgICBjb25zdCBtZXRhdGFnID0gdGhpcy5tZXRhLmdldFRhZyhgJHt0eXBlfT0nJHt0YWd9J2ApO1xyXG4gICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcclxuICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcclxuICAgIGNvbnN0IHRhZ0NvbnRlbnQgPSB7XHJcbiAgICAgIFt0eXBlXTogdGFnLFxyXG4gICAgICBjb250ZW50LFxyXG4gICAgfTtcclxuICAgIGlmICghbWV0YXRhZykge1xyXG4gICAgICB0aGlzLm1ldGEuYWRkVGFnKHRhZ0NvbnRlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWdDb250ZW50KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIG1ldGEgdGFncyBkYSBww6FnaW5hXHJcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXHJcbiAgICogQHBhcmFtIGNvbnRlbnQgY29udGXDumRvIGRhIHRhZyBtZXRhXHJcbiAgICogQHBhcmFtIGF0dHIgYXRyaWJ1dG8gZGEgdGFnIG1ldGFcclxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBhdHRyOiBzdHJpbmcsIHR5cGUgPSAnbmFtZScpIHtcclxuICAgIGNvbnN0IG1ldGF0YWcgPSB0aGlzLm1ldGEuZ2V0VGFnKGAke3R5cGV9PScke3RhZ30nYCk7XHJcbiAgICBpZiAobWV0YXRhZykge1xyXG4gICAgICB0aGlzLm1ldGEucmVtb3ZlVGFnKGAke2F0dHJ9PSR7Y29udGVudH1gKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIG1ldGEgdGFncyBwYXJhIEZhY2Vib29rXHJcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gcGFyYSBvIGZhY2Vib29rXHJcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIGRlc2NyacOnw6NvIHBhcmEgbyBmYWNlYm9va1xyXG4gICAqIEBwYXJhbSB1cmwgdXJsIHBhcmEgZGVmaW5pw6fDo28gZG8gZmFjZWJvb2tcclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIGZhY2Vib29rXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1ldGFGYWNlYm9vayh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp1cmwnLCB1cmwsICdwcm9wZXJ0eScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp0aXRsZScsIHRpdGxlLCAncHJvcGVydHknKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6ZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbiwgJ3Byb3BlcnR5Jyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOnR5cGUnLCAnd2Vic2l0ZScsICdwcm9wZXJ0eScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzppbWFnZScsIGltZyA/PyAnJywgJ3Byb3BlcnR5Jyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgVHdpdHRlclxyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyB0d2l0dGVyXHJcbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIGRlc2NyacOnw6NvIHBhcmEgbyB0d2l0dGVyXHJcbiAgICogQHBhcmFtIHVybCB1cmwgcGFyYSBvIHR3aXR0ZXJcclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIHR3aXR0ZXJcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TWV0YVR3aXR0ZXIodGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgdXJsLCAnbmFtZScpO1xyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCd0d2l0dGVyOnRpdGxlJywgdGl0bGUsICduYW1lJyk7XHJcbiAgICB0aGlzLnNldE1ldGFUYWcoJ3R3aXR0ZXI6ZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbiwgJ25hbWUnKTtcclxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjppbWFnZScsIGltZyA/PyAnJywgJ25hbWUnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0YWdzIGRlIHJlZGVzIHNvY2lhaXMgKFR3aXR0ZXIgZSBPcGVuIEdyYXBoKVxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0aWVzXHJcbiAgICovXHJcbiAgc2V0U29jaWFsVGFncyhwcm9wZXJ0aWVzPzogU29jaWFsTWV0YVByb3BlcnRpZXMpIHtcclxuICAgIGNvbnN0IHBhZ2VQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICBsZXQgZGVmYXVsdFByb3BlcnRpZXM6IFNvY2lhbE1ldGFQcm9wZXJ0aWVzID0ge1xyXG4gICAgICB0d2l0dGVyQ2FyZDogJ3N1bW1hcnknLFxyXG4gICAgICB0d2l0dGVyU2l0ZTogdGhpcy50d2l0dGVyVXNlcixcclxuICAgICAgdHlwZTogJ3dlYnNpdGUnLFxyXG4gICAgICB0aXRsZTogdGhpcy5nZXRUaXRsZSgpLFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiB8fCAnJyxcclxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YCxcclxuICAgICAgaW1hZ2U6IHRoaXMubGliQ29uZmlnPy5sb2dvUGF0aCA/IGAke3NpdGV1cmx9JHt0aGlzLmxpYkNvbmZpZy5sb2dvUGF0aH1gIDogJ2h0dHBzOi8vd3d3LnJlZGVkb3JzYW9sdWl6LmNvbS5ici9hc3NldHMvaW1ncy9sb2dvLXJlZGVkb3ItYmx1ZS5wbmcnLFxyXG4gICAgfTtcclxuICAgIGlmIChwcm9wZXJ0aWVzKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzID0geyAuLi5kZWZhdWx0UHJvcGVydGllcywgLi4ucHJvcGVydGllcyB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRNZXRhVGFnKCd0d2l0dGVyOmNhcmQnLCBkZWZhdWx0UHJvcGVydGllcy50d2l0dGVyQ2FyZCB8fCAnJywgJ25hbWUnKVxyXG4gICAgICAuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlclNpdGUgfHwgJycsICduYW1lJylcclxuICAgICAgLnNldE1ldGFUYWcoJ29nOnR5cGUnLCBkZWZhdWx0UHJvcGVydGllcy50eXBlIHx8ICcnLCAncHJvcGVydHknKVxyXG4gICAgICAuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCBkZWZhdWx0UHJvcGVydGllcy50aXRsZSB8fCAnJywgJ3Byb3BlcnR5JylcclxuICAgICAgLnNldE1ldGFUYWcoJ29nOmRlc2NyaXB0aW9uJywgZGVmYXVsdFByb3BlcnRpZXMuZGVzY3JpcHRpb24gfHwgJycsICdwcm9wZXJ0eScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp1cmwnLCBkZWZhdWx0UHJvcGVydGllcy51cmwgfHwgJycsICdwcm9wZXJ0eScpXHJcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzppbWFnZScsIGRlZmF1bHRQcm9wZXJ0aWVzLmltYWdlIHx8ICcnLCAncHJvcGVydHknKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0w610dWxvIGRhIHDDoWdpbmFcclxuICAgKiBAcGFyYW0gdGl0bGUgdMOtdHVsbyBkYSBww6FnaW5hIDxzdHJpbmc+XHJcbiAgICogQHBhcmFtIHN1YiBTZSDDqSBzdWJzaXRlIGFjcmVzY2VudGEgdW5pZGFkZSA8Ym9vbGVhbj5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZywgc3ViID0gZmFsc2UpIHtcclxuICAgIGlmICh0aXRsZSAmJiB0aXRsZSAhPT0gJycpIHtcclxuICAgICAgdGl0bGUgPSBoZS5kZWNvZGUodGl0bGUpO1xyXG4gICAgICB0aXRsZSA9IHJlbW92ZUh0bWxUYWdzKHRpdGxlKTtcclxuICAgICAgaWYgKHN1Yikge1xyXG4gICAgICAgIHRpdGxlID0gaGUuZGVjb2RlKGAke3RpdGxlfSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogT2J0ZW0gdMOtdHVsbyBhdHVhbCBkYSBww6FnaW5hICovXHJcbiAgcHVibGljIGdldFRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZS5nZXRUaXRsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldDQwNFRpdGxlKGNvbXBvbmVudDogc3RyaW5nID0gJ0RlZmF1bHQgQ29tcG9uZW50Jykge1xyXG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQgIT09ICcnKSB7XHJcbiAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShjb21wb25lbnQpO1xyXG4gICAgICBjb21wb25lbnQgPSByZW1vdmVIdG1sVGFncyhjb21wb25lbnQpO1xyXG4gICAgICBpZiAodGhpcy51bmlkYWRlTmFtZSkge1xyXG4gICAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShgJHtjb21wb25lbnR9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHRpdGxlID0gYEVycm8gNDA0IC0gJHtjb21wb25lbnR9IC0gJHt0aGlzLmxpYkNvbmZpZz8uc2l0ZU5hbWV9IC0gJHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xyXG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aXRsZSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQ1MDBUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcclxuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnJykge1xyXG4gICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoY29tcG9uZW50KTtcclxuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcclxuICAgICAgaWYgKHRoaXMudW5pZGFkZU5hbWUpIHtcclxuICAgICAgICBjb21wb25lbnQgPSBoZS5kZWNvZGUoYCR7Y29tcG9uZW50fSR7dGhpcy5zZXBhcmF0b3J9JHt0aGlzLnVuaWRhZGVOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aXRsZSA9IGBFcnJvIDUwMCAtICR7Y29tcG9uZW50fSAtICR7dGhpcy5saWJDb25maWc/LnNpdGVOYW1lfSAtICR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcclxuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgSlNPTiBkZSBicmVhZGNydW1icyAqL1xyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgdGFnLmlkID0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZDtcclxuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRhZztcclxuICAgIHJldHVybiB0YWc7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSB0YWcgcGFyYSBzY3JpcHQganNvbiBkZSBicmVhZGNydW1icyBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xyXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XHJcbiAgICAgIGlmIChlbGVtICYmIGVsZW0uaWQgPT09IHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnSWQpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnNKU09OVGFnKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRGVmaW5lIG8gSlNPTiBkZSBicmVhZGNydW1icyBkYSBww6FnaW5hICovXHJcbiAgcHVibGljIHNldEJyZWFkY3J1bWJzSnNvbihpdGVtczogQnJlYWRjcnVtYnNJdGVtc1tdKSB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRoaXMuZ2V0QnJlYWRjcnVtYnNKU09OVGFnKCk7XHJcbiAgICBjb25zdCBqc29uID0ge1xyXG4gICAgICAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLFxyXG4gICAgICAnQHR5cGUnOiAnQnJlYWRjcnVtYkxpc3QnLFxyXG4gICAgICBpdGVtTGlzdEVsZW1lbnQ6IHRoaXMuZ2V0SnNvbkJyZWFkY3J1bWJJdGVtcyhpdGVtcyksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKiBDb252ZXJ0ZSBpdGVucyBkbyBicmVhZGNydW1iIGVtIGl0ZW5zIGRvIEpTT04gKi9cclxuICBwcml2YXRlIGdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXM6IEJyZWFkY3J1bWJzSXRlbXNbXSk6IEJyZWFkY3J1bWJzSnNvbkl0ZW1bXSB7XHJcbiAgICBjb25zdCBqc29uSXRlbXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxyXG4gICAgICAgIHBvc2l0aW9uOiAxLFxyXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoWycvJ10pLCBuYW1lOiBoZS5lbmNvZGUoJ1DDoWdpbmEgSW5pY2lhbCcpIH0sXHJcbiAgICAgIH0gYXMgQnJlYWRjcnVtYnNKc29uSXRlbSxcclxuICAgIF07XHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IGpzb25JdGVtOiBCcmVhZGNydW1ic0pzb25JdGVtID0ge1xyXG4gICAgICAgICdAdHlwZSc6ICdMaXN0SXRlbScsXHJcbiAgICAgICAgcG9zaXRpb246IGkgKyAyLFxyXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoaXRlbT8udXJsIHx8IFtdKSwgbmFtZTogaGUuZW5jb2RlKGl0ZW0ubGFiZWwpIH0sXHJcbiAgICAgIH07XHJcbiAgICAgIGpzb25JdGVtcy5wdXNoKGpzb25JdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGpzb25JdGVtcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vbnRhIGEgdXJsIGRvIGl0ZW0gZGUgYnJlYWRjcnVtYiBwcm92ZW5pZW50ZSBkbyBhcnJheSBkZSB1cmxzXHJcbiAgICogb3UgZG8gY2FtaW5obyBkYSBwcsOzcHJpYSBww6FnaW5hLCBjb25mb3JtZSBjYXNvIGRvIMO6bHRpbW8gaXRlbS5cclxuICAgKi9cclxuICBwcml2YXRlIGdldEJyZWFkY3J1bWJJdGVtVXJsKHVybDogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgaWYgKCF1cmwgfHwgdXJsLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgIGNvbnN0IHBhZ2VQYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XHJcbiAgICAgIHJldHVybiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YDtcclxuICAgIH1cclxuICAgIHVybCA9IHVybC5maWx0ZXIoKHUpID0+IHUgIT09IHRoaXMudW5pZGFkZVBhdGgpO1xyXG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XHJcbiAgICBjb25zdCBmdWxsUGF0aCA9IGAke3VuaWRhZGVQYXRofS8ke3VybC5qb2luKCcvJykucmVwbGFjZSgvXlxcLz8vLCAnJyl9YDtcclxuICAgIHJldHVybiBgJHtzaXRldXJsfSR7ZnVsbFBhdGh9YC5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyaWEgdGFnIHNjcmlwdCBwYXJhIG8gSlNPTiBkZSBTRU8gKi9cclxuICBwcml2YXRlIGNyZWF0ZUpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xyXG4gICAgY29uc3QgdGFnOiBIVE1MU2NyaXB0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICB0YWcuaWQgPSB0aGlzLmpzb25UYWdJZDtcclxuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0aGlzLmpzb25UYWcgPSB0YWc7XHJcbiAgICByZXR1cm4gdGFnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cclxuICBwcml2YXRlIGdldEpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmRvY3VtZW50LmhlYWQuY2hpbGRyZW47XHJcbiAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGVsZW0gPSBlbGVtZW50c1tpXSBhcyBIVE1MU2NyaXB0RWxlbWVudDtcclxuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5qc29uVGFnSWQpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSlNPTlRhZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIERlZmluZSBKU09OIHBhcmEgU0VPIHNvbWVudGUgcXVhbmRvIG5vIHNlcnZpZG9yICovXHJcbiAgcHVibGljIHNldFBhZ2VKc29uKCkge1xyXG4gICAgdGhpcy5qc29uVGFnID0gdGhpcy5nZXRKU09OVGFnKCk7XHJcblxyXG4gICAgY29uc3QgYmFzZUdyYXBoID0gW3RoaXMuZ2V0T3JnSnNvbigpLCB0aGlzLmdldFdlYnNpdGVKc29uKCksIHRoaXMuZ2V0V2VicGFnZUpzb24oKV07XHJcblxyXG4gICAgY29uc3QgZXh0ZW5kZWRHcmFwaCA9IHRoaXMuY3VzdG9tSnNvblR5cGUubGVuZ3RoID8gWy4uLmJhc2VHcmFwaCwgLi4udGhpcy5jdXN0b21Kc29uVHlwZV0gOiBiYXNlR3JhcGg7XHJcblxyXG4gICAgdGhpcy5jdXN0b21Kc29uVHlwZSA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGpzb24gPSB7XHJcbiAgICAgICdAY29udGV4dCc6ICdodHRwOi8vc2NoZW1hLm9yZycsXHJcbiAgICAgICdAZ3JhcGgnOiBleHRlbmRlZEdyYXBoLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmpzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKiogT2J0ZW0gSlNPTiBkYSBPcmdhbml6YcOnw6NvICovXHJcbiAgcHJpdmF0ZSBnZXRPcmdKc29uKCkge1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ0B0eXBlJzogJ01lZGljYWxPcmdhbml6YXRpb24nLFxyXG4gICAgICAnQGlkJzogYCR7c2l0ZXVybH0jbWVkaWNhbG9yZ2FuaXphdGlvbmAsXHJcbiAgICAgIG5hbWU6IHRoaXMuZGVmYXVsdFRpdGxlLFxyXG4gICAgICBrZXl3b3JkczogdGhpcy5saWJDb25maWc/LmtleXdvcmRzLFxyXG4gICAgICB1cmw6IGAke3NpdGV1cmx9YCxcclxuICAgICAgc2FtZUFzOiB0aGlzLnNhbWVBcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKiogT2J0ZW0gSlNPTiBkbyBXZWJzaXRlIChwb3J0YWwsIHVuaWRhZGVzLCBldGMpICovXHJcbiAgcHJpdmF0ZSBnZXRXZWJzaXRlSnNvbigpIHtcclxuICAgIGNvbnN0IHVuaWRhZGVQYXRoID0gdGhpcy5nZXRVbmlkYWRlUGF0aCgpO1xyXG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ0B0eXBlJzogJ1dlYlNpdGUnLFxyXG4gICAgICAnQGlkJzogYCR7c2l0ZXVybH0ke3VuaWRhZGVQYXRofSN3ZWJzaXRlYCxcclxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9YCxcclxuICAgICAgbmFtZTogdGhpcy51bmlkYWRlTmFtZSxcclxuICAgICAga2V5d29yZHM6IHRoaXMubGliQ29uZmlnPy5rZXl3b3JkcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKiogT2J0ZW0gSnNvbiBkYSBww6FnaW5hICovXHJcbiAgcHJpdmF0ZSBnZXRXZWJwYWdlSnNvbigpIHtcclxuICAgIGNvbnN0IHVuaWRhZGVQYXRoID0gdGhpcy5nZXRVbmlkYWRlUGF0aCgpO1xyXG4gICAgY29uc3Qgc2l0ZVVSTCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xyXG4gICAgY29uc3QgcGFnZVBhdGggPSBgJHtzaXRlVVJMfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YDtcclxuICAgIGNvbnN0IGRlc2MgPSB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uID8gdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiA6ICcnO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ0B0eXBlJzogJ1dlYlBhZ2UnLFxyXG4gICAgICAnQGlkJzogYCR7cGFnZVBhdGh9I3dlYnBhZ2VgLFxyXG4gICAgICB1cmw6IHBhZ2VQYXRoLFxyXG4gICAgICBpbkxhbmd1YWdlOiAncHQtQlInLFxyXG4gICAgICBuYW1lOiB0aGlzLmdldFRpdGxlKCksXHJcbiAgICAgIGlzUGFydE9mOiB7ICdAaWQnOiBgJHtzaXRlVVJMfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgIH0sXHJcbiAgICAgIGFib3V0OiB7ICdAaWQnOiBgJHtzaXRlVVJMfSNtZWRpY2Fsb3JnYW5pemF0aW9uYCB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogZGVzYyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFVuaWRhZGVQYXRoKCkge1xyXG4gICAgbGV0IHVuaWRhZGVQYXRoID0gJyc7XHJcbiAgICBpZiAodGhpcy51bmlkYWRlICYmIHRoaXMudW5pZGFkZVBhdGgpIHtcclxuICAgICAgdW5pZGFkZVBhdGggPSB0aGlzLnVuaWRhZGU/LnBhdGggPT09ICcvJyA/ICcnIDogdGhpcy51bmlkYWRlUGF0aD8uc3Vic3RyaW5nKDAsIHRoaXMudW5pZGFkZVBhdGg/Lmxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVuaWRhZGVQYXRoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT2J0w6ltIGEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxyXG4gICAqIEByZXR1cm5zIEEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDYW5vbmljYWxIcmVmKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuY2Fub25pY2FsVGFnKSB7XHJcbiAgICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGhpcy5nZXRDYW5vbmljYWxUYWcoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmNhbm9uaWNhbFRhZy5ocmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqIENyaWEgdGFnIHBhcmEgbGlua3MgY2Fub25pY2FscyBubyBoZWFkICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxUYWcoKTogSFRNTExpbmtFbGVtZW50IHtcclxuICAgIGNvbnN0IHRhZyA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgdGFnLnNldEF0dHJpYnV0ZSgncmVsJywgJ2Nhbm9uaWNhbCcpO1xyXG4gICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRhZyk7XHJcbiAgICB0YWcuc2V0QXR0cmlidXRlKCdocmVmJywgdGhpcy5kb2N1bWVudC5VUkwpO1xyXG4gICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0YWc7XHJcbiAgICByZXR1cm4gdGFnO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgbGluayBjYW5vbmljYWwgZXhpc3RlIG91IGNyaWEgc2UgbsOjbyBob3V2ZXIuICovXHJcbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxUYWcoKTogSFRNTExpbmtFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTExpbmtFbGVtZW50O1xyXG4gICAgICBpZiAoZWxlbSAmJiBlbGVtLnRhZ05hbWUgPT09ICdMSU5LJyAmJiBlbGVtLnJlbCA9PT0gJ2Nhbm9uaWNhbCcpIHtcclxuICAgICAgICByZXR1cm4gZWxlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2Fub25pY2FsVGFnKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgbGluayBjYW5vbmljYWwgZGEgcMOhZ2luYVxyXG4gICAqIEBwYXJhbSB1cmwgdXJsIGNhbm9uaWNhbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRDYW5vbmljYWxIcmVmKHVybD86IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmNhbm9uaWNhbFRhZykge1xyXG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBhdGggPSB0aGlzLmRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lO1xyXG5cclxuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4ICYmIHBhdGguaW5jbHVkZXModGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCkpIHtcclxuICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSh0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4LCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xyXG4gICAgICBwYXRoID0gYC8ke3BhdGh9YDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYW5vbmljYWxVcmwgPSB1cmwgJiYgdGhpcy5pc0N1c3RvbUNhbm9uaWNhbCh1cmwpID8gdXJsIDogYCR7Z2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCl9JHtwYXRofWA7XHJcblxyXG4gICAgdGhpcy5jYW5vbmljYWxUYWcuc2V0QXR0cmlidXRlKCdocmVmJywgY2Fub25pY2FsVXJsKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpY2Egc2UgYSBVUkwgZm9ybmVjaWRhIMOpIHVtIGxpbmsgY2Fub25pY2FsIHBlcnNvbmFsaXphZG9cclxuICAgKiBAcGFyYW0gdXJsIFVSTCBmb3JuZWNpZGFcclxuICAgKi9cclxuICBwdWJsaWMgaXNDdXN0b21DYW5vbmljYWwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcclxuICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aChzaXRldXJsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9idMOpbSB1bWEgdXJsIHbDoWxpZGEgbmEgYXBsaWNhw6fDo28gcHJvdmVuaWVudGUgZGUgdW1hIFVSTCBnZXJhZGFcclxuICAgKiBwZWxvIHBsdWdpbiBZb2FzdCBwYXJhIGNhbm9uaWNhbCBhdXRvbcOhdGljby5cclxuICAgKiBFeC46IGh0dHBzOi8vd3AucmVkZWRvcnNhb2x1aXouY29tLmJyL2JyYXNpbC9lc3BlY2lhbGlkYWRlcy9jYXJkaW9sb2dpYS9cclxuICAgKiBAcGFyYW0gdXJsRnJvbVdwQXBpIFVSTCBjYW5vbmljYSBnZXJhZGEgcGVsbyBZb2FzdCBQbHVnaW4uXHJcbiAgICovXHJcbiAgdG9Mb2NhbENhbm9uaWNhbCh1cmxGcm9tV3BBcGk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmxpYkNvbmZpZz8ud3BVcmwgPz8gJyc7XHJcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XHJcbiAgICBjb25zdCB1bmlkYWRlU2x1ZyA9IHRoaXMudW5pZGFkZVNsdWc7XHJcbiAgICBsZXQgY29udmVydGVkID0gdXJsRnJvbVdwQXBpLnJlcGxhY2UoYXBpVXJsLCBzaXRldXJsKTtcclxuICAgIGlmICh1bmlkYWRlU2x1ZyAhPT0gJy8nICYmIGNvbnZlcnRlZC5pbmNsdWRlcyhgLyR7dW5pZGFkZVNsdWd9L2ApKSB7XHJcbiAgICAgIGNvbnZlcnRlZCA9IGNvbnZlcnRlZC5yZXBsYWNlKGAvJHt1bmlkYWRlU2x1Z30vYCwgYCR7dGhpcy51bmlkYWRlUGF0aH1gKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb252ZXJ0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRQb3N0Q29udGVudChwb3N0OiBXcFBvc3QpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY29udGVudCA9IHBvc3Q/LmFjZj8uWydyZHNsX3Bvc3RfY29udGVudCddID8gcG9zdD8uYWNmPy5yZHNsX3Bvc3RfY29udGVudD8uZmluZCgoY29udGVudDogYW55KSA9PiBjb250ZW50LmFjZl9mY19sYXlvdXQgPT09ICd0ZXh0X2h0bWwnKSA6IG51bGw7XHJcbiAgICByZXR1cm4gY29udGVudD8uY29udGVudCB8fCBwb3N0LmNvbnRlbnQucmVuZGVyZWQgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBhZGRBcnRpY2xlU2NyaXB0KHBvc3Q6IFdwUG9zdCwgc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBwb3N0Q29udGVudCA9IHRoaXMuZ2V0UG9zdENvbnRlbnQocG9zdCk7XHJcbiAgICBjb25zdCBwb3N0SGVhZGVySW1hZ2UgPSBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXVxyXG4gICAgICA/IHtcclxuICAgICAgICAgIHVybDogcG9zdD8uYWNmPy5bJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10udXJsLFxyXG4gICAgICAgICAgd2lkdGg6IHBvc3Q/LmFjZj8uWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLndpZHRoLFxyXG4gICAgICAgICAgaGVpZ2h0OiBwb3N0Py5hY2Y/LlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS5oZWlnaHQsXHJcbiAgICAgICAgfVxyXG4gICAgICA6IG51bGw7XHJcblxyXG4gICAgY29uc3Qgc3RydWN0dXJlZERhdGEgPSB7XHJcbiAgICAgICdAY29udGV4dCc6ICdodHRwczovL3NjaGVtYS5vcmcnLFxyXG4gICAgICAnQHR5cGUnOiAnQXJ0aWNsZScsXHJcbiAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YCxcclxuICAgICAgaGVhZGxpbmU6IHBvc3QudGl0bGU/LnJlbmRlcmVkLFxyXG4gICAgICBkYXRlUHVibGlzaGVkOiBwb3N0LmRhdGVfZ210LFxyXG4gICAgICBwdWJsaXNoZXI6IHtcclxuICAgICAgICAnQHR5cGUnOiAnT3JnYW5pemF0aW9uJyxcclxuICAgICAgICBuYW1lOiAnUmVkZSBE4oCZT3InLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogcG9zdC50aXRsZT8ucmVuZGVyZWQsXHJcbiAgICAgIGFydGljbGVCb2R5OiByZW1vdmVIdG1sVGFncyhoZS5kZWNvZGUocG9zdENvbnRlbnQpKSxcclxuICAgICAgZGF0ZU1vZGlmaWVkOiBwb3N0Lm1vZGlmaWVkX2dtdCxcclxuICAgICAgaW1hZ2U6IHtcclxuICAgICAgICAnQHR5cGUnOiAnSW1hZ2VPYmplY3QnLFxyXG4gICAgICAgIHVybDogcG9zdEhlYWRlckltYWdlPy51cmwgfHwgcG9zdC5mZWF0dXJlZF9tZWRpYV9wYXRoIHx8ICcnLFxyXG4gICAgICAgIGhlaWdodDogcG9zdEhlYWRlckltYWdlPy5oZWlnaHQgfHwgJycsXHJcbiAgICAgICAgd2lkdGg6IHBvc3RIZWFkZXJJbWFnZT8ud2lkdGggfHwgJycsXHJcbiAgICAgIH0sXHJcbiAgICAgIGF1dGhvcjoge1xyXG4gICAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxyXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHdvcmRjb3VudDogcG9zdENvbnRlbnQuc3BsaXQoJyAnKS5sZW5ndGgsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcblxyXG4gICAgc2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vbGQranNvbic7XHJcbiAgICBzY3JpcHQuaWQgPSBzY3JpcHROYW1lO1xyXG4gICAgc2NyaXB0LmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KHN0cnVjdHVyZWREYXRhKTtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUFydGljbGVTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdE5hbWUpO1xyXG4gICAgc2NyaXB0Py5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVbmlkYWRlKHsgdW5pZGFkZSA9IG51bGwsIHVuaWRhZGVOYW1lID0gJycsIHVuaWRhZGVQYXRoID0gJycsIHVuaWRhZGVTbHVnID0gJycgfTogU2VvVW5pZGFkZSkge1xyXG4gICAgdGhpcy51bmlkYWRlID0gdW5pZGFkZTtcclxuICAgIHRoaXMudW5pZGFkZU5hbWUgPSB1bmlkYWRlTmFtZTtcclxuICAgIHRoaXMudW5pZGFkZVBhdGggPSB1bmlkYWRlUGF0aDtcclxuICAgIHRoaXMudW5pZGFkZVNsdWcgPSB1bmlkYWRlU2x1ZztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -26,6 +26,9 @@ export class SiteBackendService {
|
|
|
26
26
|
get(path, params) {
|
|
27
27
|
return this.httpClientService.get(`${this.siteApiUrl}${path}${toQueryParams(params)}`);
|
|
28
28
|
}
|
|
29
|
+
post(path, body) {
|
|
30
|
+
return this.httpClientService.post(`${this.siteApiUrl}${path}`, body);
|
|
31
|
+
}
|
|
29
32
|
getUnidades(params) {
|
|
30
33
|
return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);
|
|
31
34
|
}
|
|
@@ -188,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
188
191
|
type: Inject,
|
|
189
192
|
args: [PLATFORM_ID]
|
|
190
193
|
}] }] });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1iYWNrLWVuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvc2VydmljZXMvc2l0ZS1iYWNrLWVuZC9zaXRlLWJhY2stZW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQXNCakUsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUNVLGlCQUFvQyxFQUNoQixTQUFvQixFQUNuQixVQUFrQjtRQUZ2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUUvQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBVSxJQUFZLEVBQUUsTUFBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxH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O0lBRUQsY0FBYyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsR0FBVztRQUN2RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxXQUFXLEVBQUU7WUFDaEUsS0FBSztZQUNMLE1BQU07WUFDTixHQUFHO1NBQ0osQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E1UFUsa0JBQWtCLG1EQUtuQixVQUFVLGFBQ1YsV0FBVzttSEFOVixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcclxuaW1wb3J0IHsgdG9RdWVyeVBhcmFtcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdG9RdWVyeVBhcmFtcy5mdW5jJztcclxuaW1wb3J0IHsgSHR0cENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi9odHRwLWNsaWVudC9odHRwLWNsaWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUkRTTENvbnZlbmlvLCBSRFNMQ29udmVuaW9QYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmRzbC1jb252ZW5pby5tb2RlbCc7XHJcbmltcG9ydCB7IFJEU0xQbGFubywgUkRTTFBsYW5vUGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jkc2wtcGxhbm9zLm1vZGVsJztcclxuaW1wb3J0IHsgUkRTTENvYmVydHVyYSwgUkRTTENvYmVydHVyYVBhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9yZHNsLWNvYmVydHVyYS5tb2RlbCc7XHJcbmltcG9ydCB7IFJEU0xVbmlkYWRlLCBSRFNMVW5pZGFkZXNQYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmRzbC11bmlkYWRlLm1vZGVsJztcclxuaW1wb3J0IHsgUkRTTEVzcGVjaWFsaWRhZGUsIFJEU0xFc3BlY2lhbGlkYWRlc1BhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9yZHNsLWVzcGVjaWFsaWRhZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBEb2VuY2FCYWNrZW5kIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RvZW5jYS1iYWNrZW5kLm1vZGVsJztcclxuaW1wb3J0IHsgVGF4b25vbWlhc0RvZW5jYXNMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RvZW5jYS10YXhvbm9teS5tb2RlbCc7XHJcbmltcG9ydCB7IEV4YW1lQXBpRGFkb3MsIEV4YW1lQmFja2VuZCB9IGZyb20gJy4uLy4uL21vZGVscy9leGFtZS1iYWNrZW5kLm1vZGVsJztcclxuaW1wb3J0IHsgRXNwZWNpYWxpZGFkZUJhY2tlbmQsIEVzcGVjaWFsaWRhZGVHcnVwb0JhY2tlbmQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXNwZWNpYWxpZGFkZS1iYWNrZW5kLm1vZGVsJztcclxuaW1wb3J0IHsgQ2VudHJvRXN0dWRvc0JhY2tlbmRNZWRpY28gfSBmcm9tICcuLi8uLi9tb2RlbHMvY2VudHJvLWVzdHVkb3MtYmFja2VuZC5tb2RlbCc7XHJcbmltcG9ydCB7IFdwVW5pZGFkZVNpdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3VuaWRhZGUvd3AtdW5pZGFkZS1zaXRlLm1vZGVsJztcclxuaW1wb3J0IHsgV3BVbmlkYWRlT25jbyB9IGZyb20gJy4uLy4uL21vZGVscy93b3JkcHJlc3MvdW5pZGFkZS93cC11bmlkYWRlLW9uY28ubW9kZWwnO1xyXG5pbXBvcnQgeyBVbmlmaWVkTWVudSB9IGZyb20gJy4uLy4uL21vZGVscy9tZW51LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBNZWRpY29DdiB9IGZyb20gJy4uLy4uL21vZGVscy9tZWRpY28tY3YubW9kZWwnO1xyXG5pbXBvcnQgeyBNZW51RGVVbmlkYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lbnUtZGUtdW5pZGFkZS5tb2RlbCc7XHJcbmltcG9ydCB7IENlbnRyb01lZGljbyB9IGZyb20gJy4uLy4uL21vZGVscy9jZW50cm8tbWVkaWNvLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaXRlQmFja2VuZFNlcnZpY2Uge1xyXG4gIHNpdGVBcGlVcmw6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHBDbGllbnRTZXJ2aWNlOiBIdHRwQ2xpZW50U2VydmljZSxcclxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0LFxyXG4gICkge1xyXG4gICAgdGhpcy5zaXRlQXBpVXJsID0gdGhpcy5nZXRBcGlVcmwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QXBpVXJsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMubGliQ29uZmlnLnNlcnZlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5saWJDb25maWcuc2l0ZUFwaS5iYXNlSW50ZXJuYWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5saWJDb25maWcuc2l0ZUFwaS5iYXNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR0VUIHBhcmEgcXVhbHF1ZXIgZW5kcG9pbnQgZG8gYmFjay1lbmQgZG8gc2l0ZS5cclxuICAgKiBAcGFyYW0gcGF0aCAtIE8gY2FtaW5obyBkbyByZWN1cnNvLiAoSW5pY2lhIHNlbSAnLycuIEV4OiAndW5pZGFkZXMvd3AnKVxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBQYXLDom1ldHJvcyBvcGNpb25haXMgcGFyYSBhIHJlcXVpc2nDp8Ojby5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHF1ZSBlbWl0ZSBvcyBkYWRvcyByZXRvcm5hZG9zIHBlbG8gYmFjay1lbmQuXHJcbiAgICovXHJcbiAgZ2V0PFQgPSBhbnk+KHBhdGg6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQ8VD4oYCR7dGhpcy5zaXRlQXBpVXJsfSR7cGF0aH0ke3RvUXVlcnlQYXJhbXMocGFyYW1zKX1gKTtcclxuICB9XHJcblxyXG4gIGdldFVuaWRhZGVzKHBhcmFtcz86IFJEU0xVbmlkYWRlc1BhcmFtcyk6IE9ic2VydmFibGU8UkRTTFVuaWRhZGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH11bmlkYWRlcyR7dG9RdWVyeVBhcmFtcyhwYXJhbXMpfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VW5pZGFkZXNMaXN0KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfXVuaWRhZGVzL2xpc3RhYCk7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlc1dQKCk6IE9ic2VydmFibGU8V3BVbmlkYWRlU2l0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQ8V3BVbmlkYWRlU2l0ZVtdPihgJHt0aGlzLnNpdGVBcGlVcmx9dW5pZGFkZXMvd3BgKTtcclxuICB9XHJcblxyXG4gIGdldFVuaWRhZGVzTWVudXNXUCh1bmlkYWRlU2x1ZyA9ICcnKTogT2JzZXJ2YWJsZTxVbmlmaWVkTWVudT4ge1xyXG4gICAgY29uc3QgdW5pZGFkZSA9IHVuaWRhZGVTbHVnICYmIHVuaWRhZGVTbHVnICE9PSAnLycgPyB1bmlkYWRlU2x1ZyA6ICcnO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH11bmlkYWRlcy93cC9tZW51cy8ke3VuaWRhZGV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlc09uY29XUCgpOiBPYnNlcnZhYmxlPFdwVW5pZGFkZU9uY29bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0PFdwVW5pZGFkZU9uY29bXT4oYCR7dGhpcy5zaXRlQXBpVXJsfXVuaWRhZGVzL3dwLW9uY29gKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgbyAnbWVudSBkZSB1bmlkYWRlcycgY29tcGxldG8sIGJhc2VhZG8gbm9zIGRhZG9zIGRlIC91bmlkYWRlcy93cCBlIC91bmlkYWRlcy93cC1vbmNvIGRvIGJhY2tlbmQuXHJcbiAgICogaW5kZXggMCA9PiByZWRlZG9yXHJcbiAgICogaW5kZXggMSA9PiBvbmNvbG9naWFcclxuICAgKiBpbmRleCAyID0+IHN0YXJcclxuICAgKiovXHJcbiAgZ2V0TWVudURlVW5pZGFkZXMoKTogT2JzZXJ2YWJsZTxNZW51RGVVbmlkYWRlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldDxNZW51RGVVbmlkYWRlW10+KGAke3RoaXMuc2l0ZUFwaVVybH11bmlkYWRlcy93cC9tZW51LWRlLXVuaWRhZGVzYCk7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlRXNwZWNpYWxpZGFkZXMoaWRxZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldDxhbnk+KGAke3RoaXMuc2l0ZUFwaVVybH11bmlkYWRlcy9lc3BlY2lhbGlkYWRlcy8ke2lkcWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlRXhhbWVzKGlkcWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQ8YW55PihgJHt0aGlzLnNpdGVBcGlVcmx9dW5pZGFkZXMvZXhhbWVzLyR7aWRxZH1gKTtcclxuICB9XHJcblxyXG4gIGdldENvbnZlbmlvcyhwYXJhbXM/OiBSRFNMQ29udmVuaW9QYXJhbXMpOiBPYnNlcnZhYmxlPFJEU0xDb252ZW5pb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWNvbnZlbmlvcyR7dG9RdWVyeVBhcmFtcyhwYXJhbXMpfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9zKHBhcmFtcz86IFJEU0xQbGFub1BhcmFtcyk6IE9ic2VydmFibGU8UkRTTFBsYW5vW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9cGxhbm9zJHt0b1F1ZXJ5UGFyYW1zKHBhcmFtcyl9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb2JlcnR1cmFzKHBsYW5vSWRRZDogbnVtYmVyLCBwYXJhbXM/OiBSRFNMQ29iZXJ0dXJhUGFyYW1zKTogT2JzZXJ2YWJsZTxSRFNMQ29iZXJ0dXJhW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9cGxhbm9zLyR7cGxhbm9JZFFkfS9jb2JlcnR1cmEke3RvUXVlcnlQYXJhbXMocGFyYW1zKX1gKTtcclxuICB9XHJcblxyXG4gIGdldERvZW5jYXMoKTogT2JzZXJ2YWJsZTxEb2VuY2FCYWNrZW5kW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZG9lbmNhc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RG9lbmNhc1RheG9ub21pZXMoKSB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNpdGVBcGlVcmx9ZG9lbmNhcy90YXhvbm9taWFzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldDxUYXhvbm9taWFzRG9lbmNhc0xpc3Q+KHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXREb2VuY2FzVW5pcXVlTGV0dGVycygpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNpdGVBcGlVcmx9ZG9lbmNhcy9sZXR0ZXJzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFjaW5hcygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfXZhY2luYXNgKTtcclxuICB9XHJcblxyXG4gIGdldFZhY2luYXNUYXhvbm9taWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH12YWNpbmFzL3RheG9ub21pYXNgKTtcclxuICB9XHJcblxyXG4gIGdldENpcnVyZ2lhcygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWNpcnVyZ2lhc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2lydXJnaWFzR3J1cG9zKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9Y2lydXJnaWFzL2dydXBvc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2lydXJnaWFzVGF4b25vbWllcygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWNpcnVyZ2lhcy90YXhvbm9taWFzYCk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtZXNMaXN0KFxyXG4gICAgbGlzdGFEYVVuaWRhZGU6IGJvb2xlYW4sXHJcbiAgICB1bmlkYWRlU2x1Zzogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkUWQ6IHN0cmluZyxcclxuICAgIHVuaWRhZGVJZE1vdGlvbjogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkTG9jYWw6IHN0cmluZyxcclxuICAgIGV4YW1lc0Rlc3RhcXVlcz86IGJvb2xlYW4sXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChcclxuICAgICAgYCR7dGhpcy5zaXRlQXBpVXJsfWV4YW1lcy1lLXByb2NlZGltZW50b3MvbGlzdGE/bGlzdGFEYVVuaWRhZGU9JHtsaXN0YURhVW5pZGFkZX0mZXhhbWVzRGVzdGFxdWVzPSR7ZXhhbWVzRGVzdGFxdWVzfSZ1bmlkYWRlU2x1Zz0ke3VuaWRhZGVTbHVnfSZ1bmlkYWRlSWRRZD0ke3VuaWRhZGVJZFFkfSZ1bmlkYWRlSWRNb3Rpb249JHt1bmlkYWRlSWRNb3Rpb259JnVuaWRhZGVJZExvY2FsPSR7dW5pZGFkZUlkTG9jYWx9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtZXNDYXRlZ29yeShcclxuICAgIGxpc3RhRGFVbmlkYWRlOiBib29sZWFuLFxyXG4gICAgdW5pZGFkZVNsdWc6IHN0cmluZyxcclxuICAgIHNsdWdHcnVwbzogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkUWQ6IHN0cmluZyxcclxuICAgIHVuaWRhZGVJZE1vdGlvbjogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkTG9jYWw6IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnNpdGVBcGlVcmx9ZXhhbWVzLWUtcHJvY2VkaW1lbnRvcy9jYXRlZ29yaWFzP2xpc3RhRGFVbmlkYWRlPSR7bGlzdGFEYVVuaWRhZGV9JnVuaWRhZGVTbHVnPSR7dW5pZGFkZVNsdWd9JnNsdWdHcnVwbz0ke3NsdWdHcnVwb30mdW5pZGFkZUlkUWQ9JHt1bmlkYWRlSWRRZH0mdW5pZGFkZUlkTW90aW9uPSR7dW5pZGFkZUlkTW90aW9ufSZ1bmlkYWRlSWRMb2NhbD0ke3VuaWRhZGVJZExvY2FsfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXhhbWVEZXRhaWxzKFxyXG4gICAgdW5pZGFkZVBvc3N1aUV4YW1lczogYm9vbGVhbixcclxuICAgIHVuaWRhZGVTbHVnOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRRZDogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkTW90aW9uOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRMb2NhbDogc3RyaW5nLFxyXG4gICAgZ3J1cG9TbHVnOiBzdHJpbmcsXHJcbiAgICBleGFtZVNsdWc6IHN0cmluZyxcclxuICAgIGV4YW1lUG9yVGF4b25vbWlhPzogYm9vbGVhbixcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnNpdGVBcGlVcmx9ZXhhbWVzLWUtcHJvY2VkaW1lbnRvcy9kZXRhbGhlcz91bmlkYWRlUG9zc3VpRXhhbWVzPSR7dW5pZGFkZVBvc3N1aUV4YW1lc30mdW5pZGFkZVNsdWc9JHt1bmlkYWRlU2x1Z30mdW5pZGFkZUlkUWQ9JHt1bmlkYWRlSWRRZH0mdW5pZGFkZUlkTW90aW9uPSR7dW5pZGFkZUlkTW90aW9ufSZ1bmlkYWRlSWRMb2NhbD0ke3VuaWRhZGVJZExvY2FsfSZncnVwb1NsdWc9JHtncnVwb1NsdWd9JmV4YW1lU2x1Zz0ke2V4YW1lU2x1Z30mZXhhbWVQb3JUYXhvbm9taWE9JHtleGFtZVBvclRheG9ub21pYX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEdydXBvc0V4YW1lcyh1bmlkYWRlU2x1Zzogc3RyaW5nKTogT2JzZXJ2YWJsZTxFeGFtZUJhY2tlbmRbXT4ge1xyXG4gICAgY29uc3Qgc2x1ZyA9IHVuaWRhZGVTbHVnID8/ICcvJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IHNsdWcgPyBgP3VuaWRhZGU9JHtzbHVnfWAgOiAnJztcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXhhbWVzLWUtcHJvY2VkaW1lbnRvcyR7cGFyYW1zfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXhhbWVzQnlHcnVwbyh1bmlkYWRlU2x1Zzogc3RyaW5nLCBzbHVnR3J1cG86IHN0cmluZyk6IE9ic2VydmFibGU8RXhhbWVCYWNrZW5kW10+IHtcclxuICAgIGNvbnN0IHNsdWcgPSB1bmlkYWRlU2x1ZyA/PyAnLyc7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBgP3VuaWRhZGU9JHtzbHVnfSZzbHVnR3J1cG89JHtzbHVnR3J1cG99YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXhhbWVzLWUtcHJvY2VkaW1lbnRvcy9ncnVwbyR7cGFyYW1zfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXhhbWVzQnlVbmlkYWRlKHVuaWRhZGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gYD91bml0SWQ9JHt1bmlkYWRlSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXhhbWVzLWUtcHJvY2VkaW1lbnRvcy91bmlkYWRlJHtwYXJhbXN9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtZXNBcGlEYWRvcygpOiBPYnNlcnZhYmxlPEV4YW1lQXBpRGFkb3NbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1leGFtZXMtZS1wcm9jZWRpbWVudG9zL2FwaS1kYWRvc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXNwZWNpYWxpZGFkZXNMaXN0KFxyXG4gICAgbGlzdGFEYVVuaWRhZGU6IGJvb2xlYW4sXHJcbiAgICB1bmlkYWRlU2x1Zzogc3RyaW5nLFxyXG4gICAgdW5pZGFkZVBvc3N1aUFnZW5kYW1lbnRvOiBib29sZWFuLFxyXG4gICAgdW5pZGFkZUlkQ29uc3VsdGFzOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRNb3Rpb246IHN0cmluZyxcclxuICAgIHVuaWRhZGVJZExvY2FsOiBzdHJpbmcsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChcclxuICAgICAgYCR7dGhpcy5zaXRlQXBpVXJsfWVzcGVjaWFsaWRhZGVzL2xpc3RhP2xpc3RhRGFVbmlkYWRlPSR7bGlzdGFEYVVuaWRhZGV9JnVuaWRhZGVTbHVnPSR7dW5pZGFkZVNsdWd9JnVuaWRhZGVQb3NzdWlBZ2VuZGFtZW50bz0ke3VuaWRhZGVQb3NzdWlBZ2VuZGFtZW50b30mdW5pZGFkZUlkQ29uc3VsdGFzPSR7dW5pZGFkZUlkQ29uc3VsdGFzfSZ1bmlkYWRlSWRNb3Rpb249JHt1bmlkYWRlSWRNb3Rpb259JnVuaWRhZGVJZExvY2FsPSR7dW5pZGFkZUlkTG9jYWx9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRHcnVwb3NFc3BlY2lhbGlkYWRlcyh1bmlkYWRlU2x1Zz86IHN0cmluZyk6IE9ic2VydmFibGU8RXNwZWNpYWxpZGFkZUdydXBvQmFja2VuZFtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB1bmlkYWRlU2x1ZyA/IGA/dW5pZGFkZT0ke3VuaWRhZGVTbHVnfWAgOiAnJztcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXNwZWNpYWxpZGFkZXMke3BhcmFtc31gKTtcclxuICB9XHJcblxyXG4gIGdldEVzcGVjaWFsaWRhZGVzQnlHcnVwbyh0aXR1bG9HcnVwbzogc3RyaW5nLCB1bmlkYWRlU2x1Zz86IHN0cmluZyk6IE9ic2VydmFibGU8RXNwZWNpYWxpZGFkZUJhY2tlbmRbXT4ge1xyXG4gICAgY29uc3QgdGl0dWxvID0gYD90aXR1bG9HcnVwbz0ke2VuY29kZVVSSSh0aXR1bG9HcnVwbyl9YDtcclxuICAgIGNvbnN0IHNsdWcgPSB1bmlkYWRlU2x1ZyA/IGAmdW5pZGFkZT0ke3VuaWRhZGVTbHVnfWAgOiAnJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IGAke3RpdHVsb30ke3NsdWd9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXNwZWNpYWxpZGFkZXMvZ3J1cG8ke3BhcmFtc31gKTtcclxuICB9XHJcblxyXG4gIGdldEVzcGVjaWFsaWRhZGVzRHEocGFyYW1zPzogUkRTTEVzcGVjaWFsaWRhZGVzUGFyYW1zKTogT2JzZXJ2YWJsZTxSRFNMRXNwZWNpYWxpZGFkZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWVzcGVjaWFsaWRhZGVzL2VzcGVjaWFsaWRhZGVzLWRxJHt0b1F1ZXJ5UGFyYW1zKHBhcmFtcyl9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRHcnVwb3NFc3BlY2lhbGlkYWRlc0RxKHBhcmFtcz86IFJEU0xFc3BlY2lhbGlkYWRlc1BhcmFtcyk6IE9ic2VydmFibGU8UkRTTEVzcGVjaWFsaWRhZGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1lc3BlY2lhbGlkYWRlcy9ncnVwb3MtZHEke3RvUXVlcnlQYXJhbXMocGFyYW1zKX1gKTtcclxuICB9XHJcblxyXG4gIGdldEVzcGVjaWFsaWRhZGVzQnlVbmlkYWRlKGlkcWRVbmlkYWRlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWVzcGVjaWFsaWRhZGVzL3VuaWRhZGUvJHtpZHFkVW5pZGFkZX1gKTtcclxuICB9XHJcblxyXG4gIGdldFJlY2FwdGNoYVJlc3VsdCh0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLnBvc3QoYCR7dGhpcy5zaXRlQXBpVXJsfSR7dGhpcy5saWJDb25maWcuc2l0ZUFwaS5yZWNhcHRjaGF9YCwgeyB0b2tlbiB9KTtcclxuICB9XHJcblxyXG4gIGdldE1lZGljb0N2KG1lZGljb0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1lZGljb0N2PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfW1lZGljb3MvY3VycmljdWxvLyR7bWVkaWNvSWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRNZWRpY29ScWVzKG1lZGljb0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1tZWRpY29zL3JxZT9tZWRpY29JZD0ke21lZGljb0lkfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2VudHJvc01lZGljb3MoY2F0ZWdvcmlhID0gJycpOiBPYnNlcnZhYmxlPENlbnRyb01lZGljb1tdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBjYXRlZ29yaWEgPyBgP2NhdGVnb3JpYT0ke2NhdGVnb3JpYX1gIDogJyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWNlbnRyby1tZWRpY28tZGlhZ25vc3RpY28ke3BhcmFtc31gKTtcclxuICB9XHJcblxyXG4gIGdldEluZnVzaW9uYWxMaXN0RGF0YSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1pbmZ1c2lvbmFpcy9saXN0YCk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmZ1c2lvbmFsRGV0YWlsc0RhdGEoc2x1Zzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9aW5mdXNpb25haXMvZGV0YWlscz9zbHVnPSR7c2x1Z31gKTtcclxuICB9XHJcblxyXG4gIC8vIENlbnRybyBkZSBFc3R1ZG9zXHJcbiAgY2hlY2tNZWRpY28oY29uc2VsaG9Db2RpZ286IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfSR7dGhpcy5saWJDb25maWcuc2l0ZUFwaS5jZW50cm9Fc3R1ZG9zfT9lbWFpbD0ke2NvbnNlbGhvQ29kaWdvfWApO1xyXG4gIH1cclxuXHJcbiAgc2F2ZU1lZGljbyhub3ZvTWVkaWNvOiBDZW50cm9Fc3R1ZG9zQmFja2VuZE1lZGljbyk6IE9ic2VydmFibGU8Q2VudHJvRXN0dWRvc0JhY2tlbmRNZWRpY28+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLnBvc3QoYCR7dGhpcy5zaXRlQXBpVXJsfSR7dGhpcy5saWJDb25maWcuc2l0ZUFwaS5jZW50cm9Fc3R1ZG9zfWAsIG5vdm9NZWRpY28pO1xyXG4gIH1cclxuXHJcbiAgbG9nQ2xpZW50RXJyb3IoZXJyb3I6IHN0cmluZywgb3JpZ2luOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5wb3N0KGAke3RoaXMuc2l0ZUFwaVVybH1sb2cvZXJyb3JgLCB7XHJcbiAgICAgIGVycm9yLFxyXG4gICAgICBvcmlnaW4sXHJcbiAgICAgIHVybCxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1iYWNrLWVuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvc2VydmljZXMvc2l0ZS1iYWNrLWVuZC9zaXRlLWJhY2stZW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQXNCakUsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUNVLGlCQUFvQyxFQUNoQixTQUFvQixFQUNuQixVQUFrQjtRQUZ2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUUvQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBVSxJQUFZLEVBQUUsTUFBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxH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O1FBQy9DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLEdBQVc7UUFDdkQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsV0FBVyxFQUFFO1lBQ2hFLEtBQUs7WUFDTCxNQUFNO1lBQ04sR0FBRztTQUNKLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBaFFVLGtCQUFrQixtREFLbkIsVUFBVSxhQUNWLFdBQVc7bUhBTlYsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XHJcbmltcG9ydCB7IHRvUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3RvUXVlcnlQYXJhbXMuZnVuYyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC1jbGllbnQvaHR0cC1jbGllbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJEU0xDb252ZW5pbywgUkRTTENvbnZlbmlvUGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jkc2wtY29udmVuaW8ubW9kZWwnO1xyXG5pbXBvcnQgeyBSRFNMUGxhbm8sIFJEU0xQbGFub1BhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9yZHNsLXBsYW5vcy5tb2RlbCc7XHJcbmltcG9ydCB7IFJEU0xDb2JlcnR1cmEsIFJEU0xDb2JlcnR1cmFQYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmRzbC1jb2JlcnR1cmEubW9kZWwnO1xyXG5pbXBvcnQgeyBSRFNMVW5pZGFkZSwgUkRTTFVuaWRhZGVzUGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jkc2wtdW5pZGFkZS5tb2RlbCc7XHJcbmltcG9ydCB7IFJEU0xFc3BlY2lhbGlkYWRlLCBSRFNMRXNwZWNpYWxpZGFkZXNQYXJhbXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmRzbC1lc3BlY2lhbGlkYWRlLm1vZGVsJztcclxuaW1wb3J0IHsgRG9lbmNhQmFja2VuZCB9IGZyb20gJy4uLy4uL21vZGVscy9kb2VuY2EtYmFja2VuZC5tb2RlbCc7XHJcbmltcG9ydCB7IFRheG9ub21pYXNEb2VuY2FzTGlzdCB9IGZyb20gJy4uLy4uL21vZGVscy9kb2VuY2EtdGF4b25vbXkubW9kZWwnO1xyXG5pbXBvcnQgeyBFeGFtZUFwaURhZG9zLCBFeGFtZUJhY2tlbmQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhhbWUtYmFja2VuZC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzcGVjaWFsaWRhZGVCYWNrZW5kLCBFc3BlY2lhbGlkYWRlR3J1cG9CYWNrZW5kIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VzcGVjaWFsaWRhZGUtYmFja2VuZC5tb2RlbCc7XHJcbmltcG9ydCB7IENlbnRyb0VzdHVkb3NCYWNrZW5kTWVkaWNvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NlbnRyby1lc3R1ZG9zLWJhY2tlbmQubW9kZWwnO1xyXG5pbXBvcnQgeyBXcFVuaWRhZGVTaXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dvcmRwcmVzcy91bmlkYWRlL3dwLXVuaWRhZGUtc2l0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IFdwVW5pZGFkZU9uY28gfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3VuaWRhZGUvd3AtdW5pZGFkZS1vbmNvLm1vZGVsJztcclxuaW1wb3J0IHsgVW5pZmllZE1lbnUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVudS1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgTWVkaWNvQ3YgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWVkaWNvLWN2Lm1vZGVsJztcclxuaW1wb3J0IHsgTWVudURlVW5pZGFkZSB9IGZyb20gJy4uLy4uL21vZGVscy9tZW51LWRlLXVuaWRhZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDZW50cm9NZWRpY28gfSBmcm9tICcuLi8uLi9tb2RlbHMvY2VudHJvLW1lZGljby5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2l0ZUJhY2tlbmRTZXJ2aWNlIHtcclxuICBzaXRlQXBpVXJsOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50U2VydmljZTogSHR0cENsaWVudFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KExJQl9DT05GSUcpIHByaXZhdGUgbGliQ29uZmlnOiBMaWJDb25maWcsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IG9iamVjdCxcclxuICApIHtcclxuICAgIHRoaXMuc2l0ZUFwaVVybCA9IHRoaXMuZ2V0QXBpVXJsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFwaVVybCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmxpYkNvbmZpZy5zZXJ2ZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGliQ29uZmlnLnNpdGVBcGkuYmFzZUludGVybmFsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubGliQ29uZmlnLnNpdGVBcGkuYmFzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdFVCBwYXJhIHF1YWxxdWVyIGVuZHBvaW50IGRvIGJhY2stZW5kIGRvIHNpdGUuXHJcbiAgICogQHBhcmFtIHBhdGggLSBPIGNhbWluaG8gZG8gcmVjdXJzby4gKEluaWNpYSBzZW0gJy8nLiBFeDogJ3VuaWRhZGVzL3dwJylcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUGFyw6JtZXRyb3Mgb3BjaW9uYWlzIHBhcmEgYSByZXF1aXNpw6fDo28uXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgb3MgZGFkb3MgcmV0b3JuYWRvcyBwZWxvIGJhY2stZW5kLlxyXG4gICAqL1xyXG4gIGdldDxUID0gYW55PihwYXRoOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0PFQ+KGAke3RoaXMuc2l0ZUFwaVVybH0ke3BhdGh9JHt0b1F1ZXJ5UGFyYW1zKHBhcmFtcyl9YCk7XHJcbiAgfVxyXG5cclxuICBwb3N0PFQgPSBhbnk+KHBhdGg6IHN0cmluZywgYm9keT86IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UucG9zdDxUPihgJHt0aGlzLnNpdGVBcGlVcmx9JHtwYXRofWAsIGJvZHkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VW5pZGFkZXMocGFyYW1zPzogUkRTTFVuaWRhZGVzUGFyYW1zKTogT2JzZXJ2YWJsZTxSRFNMVW5pZGFkZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfXVuaWRhZGVzJHt0b1F1ZXJ5UGFyYW1zKHBhcmFtcyl9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRVbmlkYWRlc0xpc3QoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9dW5pZGFkZXMvbGlzdGFgKTtcclxuICB9XHJcblxyXG4gIGdldFVuaWRhZGVzV1AoKTogT2JzZXJ2YWJsZTxXcFVuaWRhZGVTaXRlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldDxXcFVuaWRhZGVTaXRlW10+KGAke3RoaXMuc2l0ZUFwaVVybH11bmlkYWRlcy93cGApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VW5pZGFkZXNNZW51c1dQKHVuaWRhZGVTbHVnID0gJycpOiBPYnNlcnZhYmxlPFVuaWZpZWRNZW51PiB7XHJcbiAgICBjb25zdCB1bmlkYWRlID0gdW5pZGFkZVNsdWcgJiYgdW5pZGFkZVNsdWcgIT09ICcvJyA/IHVuaWRhZGVTbHVnIDogJyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfXVuaWRhZGVzL3dwL21lbnVzLyR7dW5pZGFkZX1gKTtcclxuICB9XHJcblxyXG4gIGdldFVuaWRhZGVzT25jb1dQKCk6IE9ic2VydmFibGU8V3BVbmlkYWRlT25jb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQ8V3BVbmlkYWRlT25jb1tdPihgJHt0aGlzLnNpdGVBcGlVcmx9dW5pZGFkZXMvd3Atb25jb2ApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBvICdtZW51IGRlIHVuaWRhZGVzJyBjb21wbGV0bywgYmFzZWFkbyBub3MgZGFkb3MgZGUgL3VuaWRhZGVzL3dwIGUgL3VuaWRhZGVzL3dwLW9uY28gZG8gYmFja2VuZC5cclxuICAgKiBpbmRleCAwID0+IHJlZGVkb3JcclxuICAgKiBpbmRleCAxID0+IG9uY29sb2dpYVxyXG4gICAqIGluZGV4IDIgPT4gc3RhclxyXG4gICAqKi9cclxuICBnZXRNZW51RGVVbmlkYWRlcygpOiBPYnNlcnZhYmxlPE1lbnVEZVVuaWRhZGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0PE1lbnVEZVVuaWRhZGVbXT4oYCR7dGhpcy5zaXRlQXBpVXJsfXVuaWRhZGVzL3dwL21lbnUtZGUtdW5pZGFkZXNgKTtcclxuICB9XHJcblxyXG4gIGdldFVuaWRhZGVFc3BlY2lhbGlkYWRlcyhpZHFkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0PGFueT4oYCR7dGhpcy5zaXRlQXBpVXJsfXVuaWRhZGVzL2VzcGVjaWFsaWRhZGVzLyR7aWRxZH1gKTtcclxuICB9XHJcblxyXG4gIGdldFVuaWRhZGVFeGFtZXMoaWRxZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldDxhbnk+KGAke3RoaXMuc2l0ZUFwaVVybH11bmlkYWRlcy9leGFtZXMvJHtpZHFkfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udmVuaW9zKHBhcmFtcz86IFJEU0xDb252ZW5pb1BhcmFtcyk6IE9ic2VydmFibGU8UkRTTENvbnZlbmlvW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9Y29udmVuaW9zJHt0b1F1ZXJ5UGFyYW1zKHBhcmFtcyl9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub3MocGFyYW1zPzogUkRTTFBsYW5vUGFyYW1zKTogT2JzZXJ2YWJsZTxSRFNMUGxhbm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1wbGFub3Mke3RvUXVlcnlQYXJhbXMocGFyYW1zKX1gKTtcclxuICB9XHJcblxyXG4gIGdldENvYmVydHVyYXMocGxhbm9JZFFkOiBudW1iZXIsIHBhcmFtcz86IFJEU0xDb2JlcnR1cmFQYXJhbXMpOiBPYnNlcnZhYmxlPFJEU0xDb2JlcnR1cmFbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1wbGFub3MvJHtwbGFub0lkUWR9L2NvYmVydHVyYSR7dG9RdWVyeVBhcmFtcyhwYXJhbXMpfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RG9lbmNhcygpOiBPYnNlcnZhYmxlPERvZW5jYUJhY2tlbmRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1kb2VuY2FzYCk7XHJcbiAgfVxyXG5cclxuICBnZXREb2VuY2FzVGF4b25vbWllcygpIHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2l0ZUFwaVVybH1kb2VuY2FzL3RheG9ub21pYXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0PFRheG9ub21pYXNEb2VuY2FzTGlzdD4odXJsKTtcclxuICB9XHJcblxyXG4gIGdldERvZW5jYXNVbmlxdWVMZXR0ZXJzKCk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2l0ZUFwaVVybH1kb2VuY2FzL2xldHRlcnNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRWYWNpbmFzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9dmFjaW5hc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFjaW5hc1RheG9ub21pZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfXZhY2luYXMvdGF4b25vbWlhc2ApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2lydXJnaWFzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9Y2lydXJnaWFzYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDaXJ1cmdpYXNHcnVwb3MoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1jaXJ1cmdpYXMvZ3J1cG9zYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDaXJ1cmdpYXNUYXhvbm9taWVzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9Y2lydXJnaWFzL3RheG9ub21pYXNgKTtcclxuICB9XHJcblxyXG4gIGdldEV4YW1lc0xpc3QoXHJcbiAgICBsaXN0YURhVW5pZGFkZTogYm9vbGVhbixcclxuICAgIHVuaWRhZGVTbHVnOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRRZDogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkTW90aW9uOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRMb2NhbDogc3RyaW5nLFxyXG4gICAgZXhhbWVzRGVzdGFxdWVzPzogYm9vbGVhbixcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnNpdGVBcGlVcmx9ZXhhbWVzLWUtcHJvY2VkaW1lbnRvcy9saXN0YT9saXN0YURhVW5pZGFkZT0ke2xpc3RhRGFVbmlkYWRlfSZleGFtZXNEZXN0YXF1ZXM9JHtleGFtZXNEZXN0YXF1ZXN9JnVuaWRhZGVTbHVnPSR7dW5pZGFkZVNsdWd9JnVuaWRhZGVJZFFkPSR7dW5pZGFkZUlkUWR9JnVuaWRhZGVJZE1vdGlvbj0ke3VuaWRhZGVJZE1vdGlvbn0mdW5pZGFkZUlkTG9jYWw9JHt1bmlkYWRlSWRMb2NhbH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEV4YW1lc0NhdGVnb3J5KFxyXG4gICAgbGlzdGFEYVVuaWRhZGU6IGJvb2xlYW4sXHJcbiAgICB1bmlkYWRlU2x1Zzogc3RyaW5nLFxyXG4gICAgc2x1Z0dydXBvOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRRZDogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkTW90aW9uOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRMb2NhbDogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoXHJcbiAgICAgIGAke3RoaXMuc2l0ZUFwaVVybH1leGFtZXMtZS1wcm9jZWRpbWVudG9zL2NhdGVnb3JpYXM/bGlzdGFEYVVuaWRhZGU9JHtsaXN0YURhVW5pZGFkZX0mdW5pZGFkZVNsdWc9JHt1bmlkYWRlU2x1Z30mc2x1Z0dydXBvPSR7c2x1Z0dydXBvfSZ1bmlkYWRlSWRRZD0ke3VuaWRhZGVJZFFkfSZ1bmlkYWRlSWRNb3Rpb249JHt1bmlkYWRlSWRNb3Rpb259JnVuaWRhZGVJZExvY2FsPSR7dW5pZGFkZUlkTG9jYWx9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtZURldGFpbHMoXHJcbiAgICB1bmlkYWRlUG9zc3VpRXhhbWVzOiBib29sZWFuLFxyXG4gICAgdW5pZGFkZVNsdWc6IHN0cmluZyxcclxuICAgIHVuaWRhZGVJZFFkOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlSWRNb3Rpb246IHN0cmluZyxcclxuICAgIHVuaWRhZGVJZExvY2FsOiBzdHJpbmcsXHJcbiAgICBncnVwb1NsdWc6IHN0cmluZyxcclxuICAgIGV4YW1lU2x1Zzogc3RyaW5nLFxyXG4gICAgZXhhbWVQb3JUYXhvbm9taWE/OiBib29sZWFuLFxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoXHJcbiAgICAgIGAke3RoaXMuc2l0ZUFwaVVybH1leGFtZXMtZS1wcm9jZWRpbWVudG9zL2RldGFsaGVzP3VuaWRhZGVQb3NzdWlFeGFtZXM9JHt1bmlkYWRlUG9zc3VpRXhhbWVzfSZ1bmlkYWRlU2x1Zz0ke3VuaWRhZGVTbHVnfSZ1bmlkYWRlSWRRZD0ke3VuaWRhZGVJZFFkfSZ1bmlkYWRlSWRNb3Rpb249JHt1bmlkYWRlSWRNb3Rpb259JnVuaWRhZGVJZExvY2FsPSR7dW5pZGFkZUlkTG9jYWx9JmdydXBvU2x1Zz0ke2dydXBvU2x1Z30mZXhhbWVTbHVnPSR7ZXhhbWVTbHVnfSZleGFtZVBvclRheG9ub21pYT0ke2V4YW1lUG9yVGF4b25vbWlhfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3J1cG9zRXhhbWVzKHVuaWRhZGVTbHVnOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV4YW1lQmFja2VuZFtdPiB7XHJcbiAgICBjb25zdCBzbHVnID0gdW5pZGFkZVNsdWcgPz8gJy8nO1xyXG4gICAgY29uc3QgcGFyYW1zID0gc2x1ZyA/IGA/dW5pZGFkZT0ke3NsdWd9YCA6ICcnO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1leGFtZXMtZS1wcm9jZWRpbWVudG9zJHtwYXJhbXN9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtZXNCeUdydXBvKHVuaWRhZGVTbHVnOiBzdHJpbmcsIHNsdWdHcnVwbzogc3RyaW5nKTogT2JzZXJ2YWJsZTxFeGFtZUJhY2tlbmRbXT4ge1xyXG4gICAgY29uc3Qgc2x1ZyA9IHVuaWRhZGVTbHVnID8/ICcvJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IGA/dW5pZGFkZT0ke3NsdWd9JnNsdWdHcnVwbz0ke3NsdWdHcnVwb31gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1leGFtZXMtZS1wcm9jZWRpbWVudG9zL2dydXBvJHtwYXJhbXN9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRFeGFtZXNCeVVuaWRhZGUodW5pZGFkZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBgP3VuaXRJZD0ke3VuaWRhZGVJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1leGFtZXMtZS1wcm9jZWRpbWVudG9zL3VuaWRhZGUke3BhcmFtc31gKTtcclxuICB9XHJcblxyXG4gIGdldEV4YW1lc0FwaURhZG9zKCk6IE9ic2VydmFibGU8RXhhbWVBcGlEYWRvc1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWV4YW1lcy1lLXByb2NlZGltZW50b3MvYXBpLWRhZG9zYCk7XHJcbiAgfVxyXG5cclxuICBnZXRFc3BlY2lhbGlkYWRlc0xpc3QoXHJcbiAgICBsaXN0YURhVW5pZGFkZTogYm9vbGVhbixcclxuICAgIHVuaWRhZGVTbHVnOiBzdHJpbmcsXHJcbiAgICB1bmlkYWRlUG9zc3VpQWdlbmRhbWVudG86IGJvb2xlYW4sXHJcbiAgICB1bmlkYWRlSWRDb25zdWx0YXM6IHN0cmluZyxcclxuICAgIHVuaWRhZGVJZE1vdGlvbjogc3RyaW5nLFxyXG4gICAgdW5pZGFkZUlkTG9jYWw6IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnNpdGVBcGlVcmx9ZXNwZWNpYWxpZGFkZXMvbGlzdGE/bGlzdGFEYVVuaWRhZGU9JHtsaXN0YURhVW5pZGFkZX0mdW5pZGFkZVNsdWc9JHt1bmlkYWRlU2x1Z30mdW5pZGFkZVBvc3N1aUFnZW5kYW1lbnRvPSR7dW5pZGFkZVBvc3N1aUFnZW5kYW1lbnRvfSZ1bmlkYWRlSWRDb25zdWx0YXM9JHt1bmlkYWRlSWRDb25zdWx0YXN9JnVuaWRhZGVJZE1vdGlvbj0ke3VuaWRhZGVJZE1vdGlvbn0mdW5pZGFkZUlkTG9jYWw9JHt1bmlkYWRlSWRMb2NhbH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEdydXBvc0VzcGVjaWFsaWRhZGVzKHVuaWRhZGVTbHVnPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc3BlY2lhbGlkYWRlR3J1cG9CYWNrZW5kW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHVuaWRhZGVTbHVnID8gYD91bmlkYWRlPSR7dW5pZGFkZVNsdWd9YCA6ICcnO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1lc3BlY2lhbGlkYWRlcyR7cGFyYW1zfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXNwZWNpYWxpZGFkZXNCeUdydXBvKHRpdHVsb0dydXBvOiBzdHJpbmcsIHVuaWRhZGVTbHVnPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc3BlY2lhbGlkYWRlQmFja2VuZFtdPiB7XHJcbiAgICBjb25zdCB0aXR1bG8gPSBgP3RpdHVsb0dydXBvPSR7ZW5jb2RlVVJJKHRpdHVsb0dydXBvKX1gO1xyXG4gICAgY29uc3Qgc2x1ZyA9IHVuaWRhZGVTbHVnID8gYCZ1bmlkYWRlPSR7dW5pZGFkZVNsdWd9YCA6ICcnO1xyXG4gICAgY29uc3QgcGFyYW1zID0gYCR7dGl0dWxvfSR7c2x1Z31gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1lc3BlY2lhbGlkYWRlcy9ncnVwbyR7cGFyYW1zfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXNwZWNpYWxpZGFkZXNEcShwYXJhbXM/OiBSRFNMRXNwZWNpYWxpZGFkZXNQYXJhbXMpOiBPYnNlcnZhYmxlPFJEU0xFc3BlY2lhbGlkYWRlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXNwZWNpYWxpZGFkZXMvZXNwZWNpYWxpZGFkZXMtZHEke3RvUXVlcnlQYXJhbXMocGFyYW1zKX1gKTtcclxuICB9XHJcblxyXG4gIGdldEdydXBvc0VzcGVjaWFsaWRhZGVzRHEocGFyYW1zPzogUkRTTEVzcGVjaWFsaWRhZGVzUGFyYW1zKTogT2JzZXJ2YWJsZTxSRFNMRXNwZWNpYWxpZGFkZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWVzcGVjaWFsaWRhZGVzL2dydXBvcy1kcSR7dG9RdWVyeVBhcmFtcyhwYXJhbXMpfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXNwZWNpYWxpZGFkZXNCeVVuaWRhZGUoaWRxZFVuaWRhZGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9ZXNwZWNpYWxpZGFkZXMvdW5pZGFkZS8ke2lkcWRVbmlkYWRlfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVjYXB0Y2hhUmVzdWx0KHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UucG9zdChgJHt0aGlzLnNpdGVBcGlVcmx9JHt0aGlzLmxpYkNvbmZpZy5zaXRlQXBpLnJlY2FwdGNoYX1gLCB7IHRva2VuIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVkaWNvQ3YobWVkaWNvSWQ6IG51bWJlcik6IE9ic2VydmFibGU8TWVkaWNvQ3Y+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9bWVkaWNvcy9jdXJyaWN1bG8vJHttZWRpY29JZH1gKTtcclxuICB9XHJcblxyXG4gIGdldE1lZGljb1JxZXMobWVkaWNvSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfW1lZGljb3MvcnFlP21lZGljb0lkPSR7bWVkaWNvSWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRDZW50cm9zTWVkaWNvcyhjYXRlZ29yaWEgPSAnJyk6IE9ic2VydmFibGU8Q2VudHJvTWVkaWNvW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IGNhdGVnb3JpYSA/IGA/Y2F0ZWdvcmlhPSR7Y2F0ZWdvcmlhfWAgOiAnJztcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9Y2VudHJvLW1lZGljby1kaWFnbm9zdGljbyR7cGFyYW1zfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5mdXNpb25hbExpc3REYXRhKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50U2VydmljZS5nZXQoYCR7dGhpcy5zaXRlQXBpVXJsfWluZnVzaW9uYWlzL2xpc3RgKTtcclxuICB9XHJcblxyXG4gIGdldEluZnVzaW9uYWxEZXRhaWxzRGF0YShzbHVnOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UuZ2V0KGAke3RoaXMuc2l0ZUFwaVVybH1pbmZ1c2lvbmFpcy9kZXRhaWxzP3NsdWc9JHtzbHVnfWApO1xyXG4gIH1cclxuXHJcbiAgLy8gQ2VudHJvIGRlIEVzdHVkb3NcclxuICBjaGVja01lZGljbyhjb25zZWxob0NvZGlnbzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLmdldChgJHt0aGlzLnNpdGVBcGlVcmx9JHt0aGlzLmxpYkNvbmZpZy5zaXRlQXBpLmNlbnRyb0VzdHVkb3N9P2VtYWlsPSR7Y29uc2VsaG9Db2RpZ299YCk7XHJcbiAgfVxyXG5cclxuICBzYXZlTWVkaWNvKG5vdm9NZWRpY286IENlbnRyb0VzdHVkb3NCYWNrZW5kTWVkaWNvKTogT2JzZXJ2YWJsZTxDZW50cm9Fc3R1ZG9zQmFja2VuZE1lZGljbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFNlcnZpY2UucG9zdChgJHt0aGlzLnNpdGVBcGlVcmx9JHt0aGlzLmxpYkNvbmZpZy5zaXRlQXBpLmNlbnRyb0VzdHVkb3N9YCwgbm92b01lZGljbyk7XHJcbiAgfVxyXG5cclxuICBsb2dDbGllbnRFcnJvcihlcnJvcjogc3RyaW5nLCBvcmlnaW46IHN0cmluZywgdXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRTZXJ2aWNlLnBvc3QoYCR7dGhpcy5zaXRlQXBpVXJsfWxvZy9lcnJvcmAsIHtcclxuICAgICAgZXJyb3IsXHJcbiAgICAgIG9yaWdpbixcclxuICAgICAgdXJsLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1127,6 +1127,9 @@ class SiteBackendService {
|
|
|
1127
1127
|
get(path, params) {
|
|
1128
1128
|
return this.httpClientService.get(`${this.siteApiUrl}${path}${toQueryParams(params)}`);
|
|
1129
1129
|
}
|
|
1130
|
+
post(path, body) {
|
|
1131
|
+
return this.httpClientService.post(`${this.siteApiUrl}${path}`, body);
|
|
1132
|
+
}
|
|
1130
1133
|
getUnidades(params) {
|
|
1131
1134
|
return this.httpClientService.get(`${this.siteApiUrl}unidades${toQueryParams(params)}`);
|
|
1132
1135
|
}
|
|
@@ -1583,8 +1586,8 @@ class SeoService {
|
|
|
1583
1586
|
getOrgJson() {
|
|
1584
1587
|
const siteurl = getSiteUrl(this.libConfig?.siteUrl, this.libConfig?.siteSufix);
|
|
1585
1588
|
return {
|
|
1586
|
-
'@type': '
|
|
1587
|
-
'@id': `${siteurl}#
|
|
1589
|
+
'@type': 'MedicalOrganization',
|
|
1590
|
+
'@id': `${siteurl}#medicalorganization`,
|
|
1588
1591
|
name: this.defaultTitle,
|
|
1589
1592
|
keywords: this.libConfig?.keywords,
|
|
1590
1593
|
url: `${siteurl}`,
|
|
@@ -1616,7 +1619,7 @@ class SeoService {
|
|
|
1616
1619
|
inLanguage: 'pt-BR',
|
|
1617
1620
|
name: this.getTitle(),
|
|
1618
1621
|
isPartOf: { '@id': `${siteURL}${unidadePath}#website` },
|
|
1619
|
-
about: { '@id': `${siteURL}#
|
|
1622
|
+
about: { '@id': `${siteURL}#medicalorganization` },
|
|
1620
1623
|
description: desc,
|
|
1621
1624
|
};
|
|
1622
1625
|
}
|