wacom 13.1.3 → 13.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -149,14 +149,14 @@ export class MongoService {
|
|
|
149
149
|
this.data['obj' + part][key] = {};
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
152
|
+
if (opts.fields) {
|
|
153
|
+
if (typeof opts.fields === 'string') {
|
|
154
|
+
opts.fields = opts.fields.split(' ');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (!Array.isArray(opts.fields)) {
|
|
158
|
+
opts.fields = [];
|
|
159
|
+
}
|
|
160
160
|
}
|
|
161
161
|
;
|
|
162
162
|
create(part, doc = undefined, cb = undefined, opts = {}) {
|
|
@@ -932,4 +932,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
932
932
|
providedIn: 'root'
|
|
933
933
|
}]
|
|
934
934
|
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.CoreService }]; } });
|
|
935
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvbW9uZ28uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxZQUFZO0lBOHZCeEI7O01BRUU7SUFDRixZQUFvQixJQUFpQixFQUFVLElBQWlCO1FBQTVDLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBaHdCaEU7Ozs7Ozs7O1VBUUU7UUFDTyxTQUFJLEdBQU8sRUFBRSxDQUFDO1FBQ2QsV0FBTSxHQUFRO1lBQ3JCLElBQUksRUFBRSxDQUFDLEtBQVMsRUFBRSxHQUFPLEVBQUUsRUFBRTtnQkFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLHdCQUF3QixDQUFDLENBQUM7WUFDbkQsQ0FBQztTQUNELENBQUM7UUE0ZkssVUFBSyxHQUFHLENBQUMsR0FBTyxFQUFFLEVBQU0sRUFBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBTyxFQUFDLEVBQUU7Z0JBQzFCLElBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDO29CQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTt3QkFDbkIsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7d0JBQ2QsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNULENBQUMsQ0FBQyxDQUFDO2lCQUNIOztvQkFBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUlLLGFBQVEsR0FBRyxDQUFDLEdBQU8sRUFBRSxFQUFNLEVBQUUsRUFBRTtZQUNy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RCxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVCxDQUFDO0lBQUEsQ0FBQztJQUNLLE1BQU0sQ0FBQyxHQUFPLEVBQUUsRUFBTSxJQUFJLEVBQUUsQ0FBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDakQsUUFBUSxDQUFDLEdBQU8sRUFBRSxFQUFNO1FBQzlCLElBQUcsT0FBTyxHQUFHLElBQUksUUFBUSxFQUFDO1lBQ3pCLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDVDtRQUNELEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNULENBQUM7SUFBQSxDQUFDO0lBV0ssUUFBUSxDQUFDLEdBQU8sRUFBRSxFQUFNLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDckMsUUFBUSxDQUFDLEdBQU8sRUFBRSxFQUFNLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDckMsV0FBVyxDQUFDLEdBQU8sRUFBRSxFQUFNLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFReEMsVUFBVSxDQUFDLEdBQU8sRUFBRSxFQUFNLEVBQUUsR0FBTyxJQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUN6Rzs7TUFFRTtJQUNPLE9BQU8sQ0FBQyxHQUFPLEVBQUUsS0FBUyxFQUFFLEdBQU87UUFDMUMsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDO1lBQ3hCLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLElB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QUcsSUFBSSxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFELElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO1lBQ25DLEtBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDNUQ7U0FDRDtRQUNELElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN4QyxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQ25CLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUNoQyxJQUFHLE9BQU8sQ0FBQyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7d0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQztpQkFDRDthQUNEO2lCQUFLLElBQUcsT0FBTyxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksRUFBQztnQkFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEM7U0FDRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBQztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3ZDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQztZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3JFO1NBQ0Q7UUFDRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBQztZQUNoQyxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxJQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUQsSUFBRyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDM0QsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDO29CQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7aUJB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O29CQUNqRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFO3dCQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUMxQyxNQUFNO3FCQUNOO2lCQUNEO2FBQ0Q7U0FDRDtJQUNGLENBQUM7SUFBQSxDQUFDOzt5R0E3dkJTLFlBQVk7NkdBQVosWUFBWSxjQUZaLE1BQU07MkZBRU4sWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9uZ29TZXJ2aWNlIHtcblx0Lypcblx0Klx0RGF0YSB3aWxsIGJlIHN0b3JhZ2UgZm9yIGFsbCBpbmZvcm1hdGlvbiB3ZSBhcmUgcHVsbGluZyBmcm9tIHdhdyBjcnVkLlxuXHQqXHRkYXRhWydhcnInICsgcGFydF0gd2lsbCBob3N0IGFsbCBkb2NzIGZyb20gY29sbGVjdGlvbiBwYXJ0IGluIGFycmF5IGZvcm1cblx0Klx0ZGF0YVsnb2JqJyArIHBhcnRdIHdpbGwgaG9zdCBhbGwgZG9jcyBmcm9tIGNvbGxlY3Rpb24gcGFydCBpbiBvYmplY3QgZm9ybVxuXHQqXHRcdGFuZCBhbGwgZ3JvdXBzIGNvbGxlY2l0b25zIHByb3ZpZGVkXG5cdCpcdGRhdGFbJ29wdHMnICsgcGFydF0gd2lsbCBob3N0IG9wdGlvbnMgZm9yIGRvY3MgZnJvbSBjb2xsZWN0aW9uIHBhcnRcblx0Klx0XHRXaWxsIGJlIGluaXRpYWxpemVkIG9ubHkgaW5zaWRlIGdldFxuXHQqXHRcdFdpbGwgYmUgdXNlZCBpbnNpZGUgcHVzaFxuXHQqL1xuXHRcdHByaXZhdGUgZGF0YTphbnkgPSB7fTtcblx0XHRwcml2YXRlIHNvY2tldDogYW55ID0ge1xuXHRcdFx0ZW1pdDogKHdoaWNoOmFueSwgZG9jOmFueSkgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZyh3aGljaCwgZG9jLCAnaXMgbm90IHVzZWQgb24gc29ja2V0cycpO1xuXHRcdFx0fVxuXHRcdH07XG5cdC8qXG5cdCpcdHdhdyBjcnVkIGNvbm5lY3QgZnVuY3Rpb25zXG5cdCovXG5cdFx0cHVibGljIGNvbmZpZyhwYXJ0OmFueSwgb3B0czphbnkpe1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdKSByZXR1cm47XG5cdFx0XHRpZighdGhpcy5kYXRhWydhcnInICsgcGFydF0pIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdID0gW107XG5cdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF0pIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdID0ge307XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0pe1xuXHRcdFx0XHRmb3IgKGxldCBlYWNoIGluIG9wdHMpe1xuXHRcdFx0XHQgICAgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdW2VhY2hdID0gb3B0c1tlYWNoXTtcblx0XHRcdFx0fVxuXHRcdFx0fWVsc2UgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdID0gb3B0cyA9IG9wdHN8fHt9O1xuXHRcdFx0aWYodHlwZW9mIG9wdHMudXNlID09PSAnc3RyaW5nJyl7XG5cdFx0XHRcdG9wdHMudXNlID0gb3B0cy51c2Uuc3BsaXQoJyAnKTtcblx0XHRcdH1cblx0XHRcdGlmKG9wdHMucXVlcnkpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLnF1ZXJ5KXtcblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5xdWVyeVtrZXldID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0b3B0cy5xdWVyeVtrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRhbGxvdzogb3B0cy5xdWVyeVtrZXldXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYob3B0cy5ncm91cHMpe1xuXHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHMgPT09ICdzdHJpbmcnKXtcblx0XHRcdFx0XHRvcHRzLmdyb3VwcyA9IG9wdHMuZ3JvdXBzLnNwbGl0KCcgJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShvcHRzLmdyb3Vwcykpe1xuXHRcdFx0XHRcdGxldCBhcnIgPSBvcHRzLmdyb3Vwcztcblx0XHRcdFx0XHRvcHRzLmdyb3VwcyA9IHt9O1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdFx0aWYodHlwZW9mIGFycltpXSA9PT0gJ3N0cmluZycpe1xuXHRcdFx0XHRcdFx0XHRvcHRzLmdyb3Vwc1thcnJbaV1dID0gdHJ1ZTtcblx0XHRcdFx0XHRcdH1lbHNlIHtcblx0XHRcdFx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gYXJyW2ldKXtcblx0XHRcdFx0XHRcdFx0XHRpZih0eXBlb2YgYXJyW2ldW2tleV0gPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRhcnJbaV1ba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZmllbGQ6IGFycltpXVtrZXldXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdG9wdHMuZ3JvdXBzW2tleV0gPSBhcnJbaV1ba2V5XTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLmdyb3Vwcyl7XG5cdFx0XHRcdFx0aWYodHlwZW9mIG9wdHMuZ3JvdXBzW2tleV0gPT0gJ2Jvb2xlYW4nKXtcblx0XHRcdFx0XHRcdGlmKG9wdHMuZ3JvdXBzW2tleV0pe1xuXHRcdFx0XHRcdFx0XHRvcHRzLmdyb3Vwc1trZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdGZpZWxkOiBmdW5jdGlvbihkb2M6YW55KXtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBkb2Nba2V5XTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcblx0XHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmdyb3Vwc1trZXldICE9ICdvYmplY3QnKXtcblx0XHRcdFx0XHRcdGRlbGV0ZSBvcHRzLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmdyb3Vwc1trZXldLmZpZWxkICE9ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0ZGVsZXRlIG9wdHMuZ3JvdXBzW2tleV07XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKSl7XG5cdFx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ1lvdSBjYW4gaGF2ZSBzYW1lIGZpZWxkIGdyb3VwcyB3aXRoIHF1ZXJ5LiBGaWVsZCAnK2tleSsnIGlzIG5vdCB1c2VkIGluIGdyb3Vwcy4nKTtcblx0XHRcdFx0XHRcdGRlbGV0ZSBvcHRzLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSB7fTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gaWYob3B0cy5maWVsZHMpIHtcblx0XHRcdC8vIFx0aWYgKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdC8vIFx0XHRvcHRzLmZpZWxkcyA9IG9wdHMuZmllbGRzLnNwbGl0KCcgJyk7XG5cdFx0XHQvLyBcdH1cblx0XHRcdC8vIH1cblx0XHRcdC8vIGlmICghQXJyYXkuaXNBcnJheShvcHRzLmZpZWxkcykpIHtcblx0XHRcdC8vIFx0b3B0cy5maWVsZHMgPSBbXTtcblx0XHRcdC8vIH1cblx0XHR9O1xuXHRcdHB1YmxpYyBjcmVhdGUocGFydDphbnksIGRvYzphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkLCBvcHRzOmFueT17fSkge1xuXHRcdFx0aWYgKHR5cGVvZiBkb2MgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRpZihjYikgb3B0cyA9IGNiO1xuXHRcdFx0XHRjYiA9IGRvYztcblx0XHRcdFx0ZG9jID0ge307XG5cdFx0XHR9XG5cdFx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0XHRlcnI6IG9wdHNcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGlmKHR5cGVvZiBkb2MgIT0gJ29iamVjdCcpIGRvYz17fTtcblx0XHRcdGlmKGRvYy5fX19jcmVhdGVkICYmICFvcHRzLmFsbG93X211bHRpcGxlKSByZXR1cm47XG5cdFx0XHRkb2MuX19fY3JlYXRlZCA9IHRydWU7XG5cdFx0XHR0aGlzLmh0dHAucG9zdChvcHRzLnVybCB8fCAnL2FwaS8nICsgcGFydCArICcvY3JlYXRlJywgZG9jIHx8IHt9LCByZXNwID0+IHtcblx0XHRcdFx0aWYgKHJlc3ApIHtcblx0XHRcdFx0XHR0aGlzLnNvY2tldC5lbWl0KCdjcmVhdGUnLCB7XG5cdFx0XHRcdFx0XHRfaWQ6IHJlc3AuX2lkLFxuXHRcdFx0XHRcdFx0cGFydDogcGFydFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMucHVzaChwYXJ0LCByZXNwKTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIGNiKHJlc3ApO1xuXHRcdFx0XHR9ZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIGZldGNoKHBhcnQ6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcblx0XHRcdGlmKG9wdHMucXVlcnkgJiYgb3B0cy5xdWVyeS5faWQgJiYgIW9wdHMuZm9yY2UgJiZcblx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdKXtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXTtcblx0XHRcdH1cblx0XHRcdGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYoIW9wdHMpIG9wdHMgPSB7fTtcblx0XHRcdHRoaXMuY29uZmlnKHBhcnQsIG9wdHMpOyAvLyByZW1vdmUgdGhpcyBpbiBmdXR1cmVcblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvZmV0Y2gnKyhvcHRzLm5hbWV8fCcnKSwgZG9jOmFueTtcblx0XHRcdGlmKG9wdHMucXVlcnkgJiYgb3B0cy5xdWVyeS5faWQgJiYgdGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdKXtcblx0XHRcdFx0ZG9jID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdO1xuXHRcdFx0fWVsc2V7XG5cdFx0XHRcdGRvYyA9IHt9O1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Upe1xuXHRcdFx0XHRcdHRoaXMucmVwbGFjZShkb2MsIGtleSwgdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlW2tleV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmh0dHAucG9zdChvcHRzLnVybCB8fCB1cmwsIChvcHRzLnF1ZXJ5fHx7fSksIHJlc3AgPT4ge1xuXHRcdFx0XHRpZighcmVzcCkgcmV0dXJuIGNiJiZjYihmYWxzZSk7XG5cdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gcmVzcCl7XG5cdFx0XHRcdCAgICBkb2NbZWFjaF0gPSByZXNwW2VhY2hdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKXtcblx0XHRcdFx0ICAgIGRvY1tlYWNoXSA9IHJlc3BbZWFjaF07XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5wdXNoKHBhcnQsIGRvYyk7XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IoZG9jKTtcblx0XHRcdFx0fVxuXHRcdFx0fSwgb3B0cyk7XG5cdFx0XHRyZXR1cm4gZG9jO1xuXHRcdH07XG5cdFx0cHVibGljIGdldChwYXJ0OmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRjYiA9IG9wdHM7XG5cdFx0XHRcdG9wdHMgPSB7fTtcblx0XHRcdH1cblx0XHRcdGlmKCFvcHRzKSBvcHRzID0ge307XG5cdFx0XHR0aGlzLmNvbmZpZyhwYXJ0LCBvcHRzKTsgLy8gcmVtb3ZlIHRoaXMgaW4gZnV0dXJlXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL2dldCcrKG9wdHMubmFtZXx8JycpKyhvcHRzLnBhcmFtfHwnJyk7XG5cdFx0XHR0aGlzLmh0dHAuZ2V0KG9wdHMudXJsIHx8IHVybCwgcmVzcCA9PiB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KHJlc3ApKSB7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNwLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnB1c2gocGFydCxyZXNwW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0bGV0IHJlbW92ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHJlc3AubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlc3Bbal0uX2lkID09PSB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXS5faWQpIHtcblx0XHRcdFx0XHRcdFx0XHRyZW1vdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKHJlbW92ZSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnJlbW92ZShwYXJ0LCB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykgY2IodGhpcy5kYXRhWydhcnInICsgcGFydF0sIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdLCBvcHRzLm5hbWV8fCcnLCByZXNwKTtcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNiKHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLCB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSwgb3B0cy5uYW1lfHwnJywgcmVzcCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kYXRhWydsb2FkZWQnK3BhcnRdPXRydWU7XG5cdFx0XHR9LCBvcHRzKTtcblx0XHRcdHJldHVybiB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XTtcblx0XHR9O1xuXHRcdHB1YmxpYyBzZXQocGFydDphbnksIG9wdHM6YW55PXVuZGVmaW5lZCwgcmVzcDphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkge1xuXHRcdFx0XHRyZXNwID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGlmKG9wdHMpIHRoaXMuY29uZmlnKHBhcnQsIG9wdHMpO1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkocmVzcCkpIHtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNwLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dGhpcy5wdXNoKHBhcnQsIHJlc3BbaV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRhcnI6IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLFxuXHRcdFx0XHRvYmo6IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRwcml2YXRlIHByZXBhcmVfdXBkYXRlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueSl7XG5cdFx0XHRpZihvcHRzLmZpZWxkcyl7XG5cdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIG9wdHMuZmllbGRzID0gb3B0cy5maWVsZHMuc3BsaXQoJyAnKTtcblx0XHRcdFx0bGV0IF9kb2M6YW55ID0ge307XG5cdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBvcHRzLmZpZWxkcy5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0X2RvY1tvcHRzLmZpZWxkc1tpXV0gPSBkb2Nbb3B0cy5maWVsZHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRvYyA9IF9kb2M7XG5cdFx0XHR9ZWxzZSB0aGlzLnJlbmV3KHBhcnQsIGRvYyk7XG5cdFx0XHRpZih0eXBlb2Ygb3B0cy5yZXdyaXRlID09ICdvYmplY3QnICYmIE9iamVjdC52YWx1ZXMob3B0cy5yZXdyaXRlKS5sZW5ndGgpe1xuXHRcdFx0XHRkb2MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRvYykpO1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLnJld3JpdGUpe1xuXHRcdFx0XHRcdHRoaXMucmVwbGFjZShkb2MsIGtleSwgb3B0cy5yZXdyaXRlW2tleV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZG9jO1xuXHRcdH07XG5cdFx0cHVibGljIHVwZGF0ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIG9wdHMgIT0gJ29iamVjdCcpIG9wdHMgPSB7fTtcblx0XHRcdGRvYyA9IHRoaXMucHJlcGFyZV91cGRhdGUocGFydCwgZG9jLCBvcHRzKTtcblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvdXBkYXRlJyArIChvcHRzLm5hbWV8fCcnKTtcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcblx0XHRcdFx0aWYocmVzcCl7XG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgndXBkYXRlJywge1xuXHRcdFx0XHRcdFx0X2lkOiBkb2MuX2lkLFxuXHRcdFx0XHRcdFx0cGFydDogcGFydFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IocmVzcCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIHVuaXF1ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIG9wdHMgIT0gJ29iamVjdCcpIG9wdHMgPSB7fTtcblx0XHRcdGRvYyA9IHRoaXMucHJlcGFyZV91cGRhdGUocGFydCwgZG9jLCBvcHRzKTtcblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvdW5pcXVlJyArIChvcHRzLm5hbWV8fCcnKTtcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcblx0XHRcdFx0aWYocmVzcCl7XG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgndXBkYXRlJywge1xuXHRcdFx0XHRcdFx0X2lkOiBkb2MuX2lkLFxuXHRcdFx0XHRcdFx0cGFydDogcGFydFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGxldCBjdXJyZW50X2RvYyA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdO1xuXHRcdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKXtcblx0XHRcdFx0XHQgICAgY3VycmVudF9kb2NbZWFjaF0gPSBkb2NbZWFjaF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMucmVuZXcocGFydCwgY3VycmVudF9kb2MpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IocmVzcCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIGRlbGV0ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRjYiA9IG9wdHM7XG5cdFx0XHRcdG9wdHMgPSB7fTtcblx0XHRcdH1cblx0XHRcdGlmKHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykgb3B0cyA9IHt9O1xuXHRcdFx0aWYob3B0cy5maWVsZHMpe1xuXHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5maWVsZHMgPT09ICdzdHJpbmcnKSBvcHRzLmZpZWxkcyA9IG9wdHMuZmllbGRzLnNwbGl0KCcgJyk7XG5cdFx0XHRcdGxldCBfZG9jOmFueSA9IHt9O1xuXHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgb3B0cy5maWVsZHMubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdF9kb2Nbb3B0cy5maWVsZHNbaV1dID0gZG9jW29wdHMuZmllbGRzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkb2MgPSBfZG9jO1xuXHRcdFx0fWVsc2V7XG5cdFx0XHRcdGRvYz17XG5cdFx0XHRcdFx0X2lkOmRvYy5faWRcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bGV0IHVybCA9ICcvYXBpLycgKyBwYXJ0ICsgJy9kZWxldGUnICsgKG9wdHMubmFtZXx8JycpO1xuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgdXJsLCBkb2MsIHJlc3AgPT4ge1xuXHRcdFx0XHRpZiAocmVzcCkge1xuXHRcdFx0XHRcdHRoaXMuc29ja2V0LmVtaXQoJ2RlbGV0ZScsIHtcblx0XHRcdFx0XHRcdF9pZDogZG9jLl9pZCxcblx0XHRcdFx0XHRcdHBhcnQ6IHBhcnRcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnJlbW92ZShwYXJ0LCBkb2MpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IocmVzcCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIF9pZChjYjphbnkpe1xuXHRcdFx0aWYodHlwZW9mIGNiID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLmh0dHAuZ2V0KCcvd2F3L25ld0lkJywgY2IpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHRvX2lkKGRvY3M6YW55KXtcblx0XHRcdGlmKCFkb2NzKSByZXR1cm4gW107XG5cdFx0XHRpZihBcnJheS5pc0FycmF5KGRvY3MpKXtcblx0XHRcdFx0ZG9jcyA9IGRvY3Muc2xpY2UoKTtcblx0XHRcdH1lbHNlIGlmKHR5cGVvZiBkb2NzID09ICdvYmplY3QnKXtcblx0XHRcdFx0aWYoZG9jcy5faWQpIHJldHVybiBbZG9jcy5faWRdO1xuXHRcdFx0XHRsZXQgX2RvY3MgPSBbXTtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gZG9jcyl7XG5cdFx0XHRcdFx0aWYoZG9jc1trZXldKSBfZG9jcy5wdXNoKGRvY3Nba2V5XS5faWR8fGRvY3Nba2V5XSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZG9jcyA9IF9kb2NzO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBkb2NzLmxlbmd0aDsgKytpKSB7XG5cdFx0XHRcdGlmKGRvY3NbaV0pIGRvY3NbaV0gPSBkb2NzW2ldLl9pZCB8fCBkb2NzW2ldO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGRvY3M7XG5cdFx0fTtcblx0XHRwdWJsaWMgYWZ0ZXJXaGlsZShkb2M6YW55LCBjYjphbnksIHRpbWU9MTAwMCl7XG5cdFx0XHRpZih0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdGltZSA9PSAnbnVtYmVyJyl7XG5cdFx0XHRcdGNsZWFyVGltZW91dChkb2MuX191cGRhdGVUaW1lb3V0KTtcblx0XHRcdFx0ZG9jLl9fdXBkYXRlVGltZW91dCA9IHNldFRpbWVvdXQoY2IsIHRpbWUpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHBvcHVsYXRlKGRvYzphbnksIGZpZWxkOmFueSwgcGFydDphbnkpOmFueXtcblx0XHRcdGlmKCFkb2N8fCFmaWVsZHx8IXBhcnQpIHJldHVybjtcblx0XHRcdGlmKEFycmF5LmlzQXJyYXkoZG9jKSl7XG5cdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBkb2MubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jW2ldLCBmaWVsZCwgcGFydCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydsb2FkZWQnK3BhcnRdKXtcblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShmaWVsZCkpe1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBmaWVsZC5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0XHR0aGlzLnBvcHVsYXRlKGRvYywgZmllbGRbaV0sIHBhcnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1lbHNlIGlmKGZpZWxkLmluZGV4T2YoJy4nKT4tMSl7XG5cdFx0XHRcdFx0ZmllbGQgPSBmaWVsZC5zcGxpdCgnLicpO1xuXHRcdFx0XHRcdGxldCBzdWIgPSBmaWVsZC5zaGlmdCgpO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBkb2Nbc3ViXSAhPSAnb2JqZWN0JykgcmV0dXJuO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLnBvcHVsYXRlKGRvY1tzdWJdLCBmaWVsZC5qb2luKCcuJyksIHBhcnQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkoZG9jW2ZpZWxkXSkpe1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IGRvY1tmaWVsZF0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcblx0XHRcdFx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJytwYXJ0XVtkb2NbZmllbGRdW2ldXSl7XG5cdFx0XHRcdFx0XHRcdGRvY1tmaWVsZF1baV0gPSB0aGlzLmRhdGFbJ29iaicrcGFydF1bZG9jW2ZpZWxkXVtpXV07XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0ZG9jW2ZpZWxkXS5zcGxpY2UoaSwgMSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fWVsc2UgaWYodHlwZW9mIGRvY1tmaWVsZF0gPT09ICdzdHJpbmcnKXtcblx0XHRcdFx0XHRkb2NbZmllbGRdID0gdGhpcy5kYXRhWydvYmonK3BhcnRdW2RvY1tmaWVsZF1dIHx8IG51bGw7XG5cdFx0XHRcdH1lbHNlIHJldHVybjtcblx0XHRcdH1lbHNle1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+e1xuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBmaWVsZCwgcGFydCk7XG5cdFx0XHRcdH0sIDEwMCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRwdWJsaWMgb24ocGFydHM6YW55LCBjYjphbnkpOmFueSB7XG4gICBcdFx0ICAgIGlmICh0eXBlb2YgcGFydHMgPT09ICdzdHJpbmcnKSB7XG4gICBcdFx0ICAgICAgICBwYXJ0cyA9IHBhcnRzLnNwbGl0KFwiIFwiKTtcbiAgIFx0XHQgICAgfVxuICAgXHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICBcdFx0ICAgICAgICBpZiAoIXRoaXMuZGF0YVsnbG9hZGVkJytwYXJ0c1tpXV0pIHtcbiAgIFx0XHQgICAgICAgICAgICByZXR1cm4gc2V0VGltZW91dCggKCkgPT4ge1xuICAgXHRcdCAgICAgICAgICAgICAgICB0aGlzLm9uKHBhcnRzLCBjYik7XG4gICBcdFx0ICAgICAgICAgICAgfSwgMTAwKTtcbiAgIFx0XHQgICAgICAgIH1cbiAgIFx0XHQgICAgfVxuICAgXHRcdCAgICBjYih0aGlzLmRhdGEpO1xuICAgXHRcdH07XG4gICBcdFx0cHVibGljIHRyYWNrKGluZGV4OmFueSwgZG9jOmFueSl7IHJldHVybiBkb2MgJiYgZG9jLl9pZCAmJiBkb2MuX2lkIHx8IGluZGV4OyB9XG4gICBcdC8qXG5cdCpcdG1vbmdvIHNvcnQgZmlsdGVyc1xuXHQqL1xuICAgXHRcdHB1YmxpYyBzb3J0QXNjSWQoKXtcbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGEuX2lkPmIuX2lkKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gLTE7XG4gICBcdFx0XHR9XG4gICBcdFx0fTtcbiAgIFx0XHRwdWJsaWMgc29ydERlc2NJZCgpe1xuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYS5faWQ8Yi5faWQpIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiAtMTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9O1xuICAgXHRcdHB1YmxpYyBzb3J0QXNjU3RyaW5nKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPmJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPGJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydERlc2NTdHJpbmcob3B0czphbnkpe1xuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcbiAgIFx0XHRcdFx0b3B0cyA9IHtcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xuICAgXHRcdFx0XHR9XG4gICBcdFx0XHR9XG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCk8YltvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCk+YltvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0QXNjRGF0ZShvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0uZ2V0VGltZSgpPmJbb3B0cy5maWVsZF0uZ2V0VGltZSgpKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdLmdldFRpbWUoKTxiW29wdHMuZmllbGRdLmdldFRpbWUoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydERlc2NEYXRlKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXS5nZXRUaW1lKCk8YltvcHRzLmZpZWxkXS5nZXRUaW1lKCkpIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIGlmKGFbb3B0cy5maWVsZF0uZ2V0VGltZSgpPmJbb3B0cy5maWVsZF0uZ2V0VGltZSgpIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0QXNjTnVtYmVyKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXT5iW29wdHMuZmllbGRdKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdPGJbb3B0cy5maWVsZF0gfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG4gICBcdFx0cHVibGljIHNvcnREZXNjTnVtYmVyKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXTxiW29wdHMuZmllbGRdKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdPmJbb3B0cy5maWVsZF0gfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG4gICBcdFx0cHVibGljIHNvcnRBc2NCb29sZWFuKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoIWFbb3B0cy5maWVsZF0mJmJbb3B0cy5maWVsZF0pIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIGlmKGFbb3B0cy5maWVsZF0mJiFiW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0RGVzY0Jvb2xlYW4ob3B0czphbnkpe1xuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcbiAgIFx0XHRcdFx0b3B0cyA9IHtcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xuICAgXHRcdFx0XHR9XG4gICBcdFx0XHR9XG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdJiYhYltvcHRzLmZpZWxkXSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoIWFbb3B0cy5maWVsZF0mJmJbb3B0cy5maWVsZF0gfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG5cdC8qXG5cdCpcdG1vbmdvIHJlcGxhY2UgZmlsdGVyc1xuXHQqL1xuXHRcdHB1YmxpYyBiZUFycih2YWw6YW55LCBjYjphbnkpe1xuXHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodmFsKSkgY2IoW10pO1xuXHRcdFx0ZWxzZSBjYih2YWwpO1xuXHRcdH07XG5cdFx0cHVibGljIGJlT2JqKHZhbDphbnksIGNiOmFueSl7XG5cdFx0XHRpZih0eXBlb2YgdmFsICE9ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkodmFsKSB8fCAhdmFsKXtcblx0XHRcdFx0dmFsID0ge307XG5cdFx0XHR9XG5cdFx0XHRjYih2YWwpO1xuXHRcdH07XG5cdFx0cHVibGljIGJlRGF0ZSh2YWw6YW55LCBjYjphbnkpIHsgY2IoIG5ldyBEYXRlKHZhbCkgKTsgfTtcblx0XHRwdWJsaWMgYmVTdHJpbmcodmFsOmFueSwgY2I6YW55KXtcblx0XHRcdGlmKHR5cGVvZiB2YWwgIT0gJ3N0cmluZycpe1xuXHRcdFx0XHR2YWwgPSAnJztcblx0XHRcdH1cblx0XHRcdGNiKHZhbCk7XG5cdFx0fTtcblx0XHRwdWJsaWMgYmVEb2MgPSAodmFsOmFueSwgY2I6YW55KT0+e1xuXHRcdFx0dGhpcy5iZU9iaih2YWwsICh2YWw6YW55KT0+e1xuXHRcdFx0XHRpZighdmFsLl9pZCl7XG5cdFx0XHRcdFx0dGhpcy5faWQoKF9pZDphbnkpPT57XG5cdFx0XHRcdFx0XHR2YWwuX2lkID0gX2lkO1xuXHRcdFx0XHRcdFx0Y2IodmFsKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fWVsc2UgY2IodmFsKTtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0cHVibGljIGZvcmNlQXJyKHZhbDphbnksIGNiOmFueSl7IGNiKFtdKTsgfTtcblx0XHRwdWJsaWMgZm9yY2VPYmoodmFsOmFueSwgY2I6YW55KXsgY2Ioe30pOyB9O1xuXHRcdHB1YmxpYyBmb3JjZVN0cmluZyh2YWw6YW55LCBjYjphbnkpeyBjYignJyk7IH07XG5cdFx0cHVibGljIGZvcmNlRG9jID0gKHZhbDphbnksIGNiOmFueSkgPT4ge1xuXHRcdFx0dGhpcy5faWQoKF9pZDphbnkpPT57XG5cdFx0XHRcdGNiKHtcblx0XHRcdFx0XHRfaWQ6IF9pZFxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0cHVibGljIGdldENyZWF0ZWQodmFsOmFueSwgY2I6YW55LCBkb2M6YW55KXsgY2IobmV3IERhdGUocGFyc2VJbnQoZG9jLl9pZC5zdWJzdHJpbmcoMCw4KSwgMTYpKjEwMDApKTsgfTtcblx0Lypcblx0Klx0bW9uZ28gbG9jYWwgc3VwcG9ydCBmdW5jdGlvbnNcblx0Ki9cblx0XHRwcml2YXRlIHJlcGxhY2UoZG9jOmFueSwgdmFsdWU6YW55LCBycGw6YW55KTphbnl7XG5cdFx0XHRpZih2YWx1ZS5pbmRleE9mKCcuJyk+LTEpe1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlLnNwbGl0KCcuJyk7XG5cdFx0XHRcdGxldCBzdWIgPSB2YWx1ZS5zaGlmdCgpO1xuXHRcdFx0XHRpZihkb2Nbc3ViXSAmJiAodHlwZW9mIGRvY1tzdWJdICE9ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZG9jW3N1Yl0pKSlcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdGlmKCFkb2Nbc3ViXSkgZG9jW3N1Yl0gPSB7fTtcblx0XHRcdFx0cmV0dXJuIHRoaXMucmVwbGFjZShkb2Nbc3ViXSwgdmFsdWUuam9pbignLicpLCBycGwpO1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIHJwbCA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0cnBsKGRvY1t2YWx1ZV0sIGZ1bmN0aW9uKG5ld1ZhbHVlOmFueSl7XG5cdFx0XHRcdFx0ZG9jW3ZhbHVlXSA9IG5ld1ZhbHVlO1xuXHRcdFx0XHR9LCBkb2MpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHJlbmV3KHBhcnQ6YW55LCBkb2M6YW55KXtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXSkgcmV0dXJuIHRoaXMucHVzaChwYXJ0LCBkb2MpO1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcblx0XHRcdFx0XHR0aGlzLnJlcGxhY2UoZG9jLCBrZXksIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZVtrZXldKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgZWFjaCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXSl7XG5cdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdW2VhY2hdID0gZG9jW2VhY2hdO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2Mpe1xuXHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXVtlYWNoXSA9IGRvY1tlYWNoXTtcblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHNbaV07XG5cdFx0XHRcdGlmICghdGhpcy5kYXRhWydvYmonICsgcGFydF1bZmllbGRdKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZmllbGRdID0gZG9jO1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZmllbGRdW2VhY2hdID0gZG9jW2VhY2hdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzKXtcblx0XHRcdFx0XHRsZXQgdG9faGF2ZSA9IHRydWU7XG5cdFx0XHRcdFx0bGV0IGcgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBnLmlnbm9yZSA9PSAnZnVuY3Rpb24nICYmIGcuaWdub3JlKGRvYykpIHRvX2hhdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRpZih0eXBlb2YgZy5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFnLmFsbG93KGRvYykpIHRvX2hhdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCBmaWVsZHM6YW55ID0ge307XG5cdFx0XHRcdFx0bGV0IHNldCA9IChmaWVsZDphbnkpID0+IHtcblx0XHRcdFx0XHRcdGZpZWxkc1tmaWVsZF0gPSB0cnVlO1xuXHRcdFx0XHRcdFx0aWYoIWZpZWxkKSByZXR1cm47XG5cdFx0XHRcdFx0XHRpZighQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSkpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSA9IFtdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYodG9faGF2ZSl7XG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xuXHRcdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF1baV0uX2lkID09IGRvYy5faWQpIHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcblx0XHRcdFx0XHRcdFx0ICAgIGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKXtcblx0XHRcdFx0XHRcdFx0ICAgIFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgZy5zb3J0ID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zb3J0KGcuc29ydCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNldChnLmZpZWxkKGRvYywgc2V0LmJpbmQodGhpcykpKTtcblx0XHRcdFx0XHRmb3IgKGxldCBmaWVsZCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcblx0XHRcdFx0XHRcdGlmKGZpZWxkc1tmaWVsZF0pIGNvbnRpbnVlO1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKXtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zcGxpY2UoaSwgMSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnF1ZXJ5KXtcblx0XHRcdFx0XHRsZXQgdG9faGF2ZSA9IHRydWU7XG5cdFx0XHRcdFx0bGV0IHF1ZXJ5ID0gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeVtrZXldO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5pZ25vcmUgPT0gJ2Z1bmN0aW9uJyAmJiBxdWVyeS5pZ25vcmUoZG9jKSkgdG9faGF2ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFxdWVyeS5hbGxvdyhkb2MpKSB0b19oYXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0aWYoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0pe1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZih0b19oYXZlKXtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtpXS5faWQgPT0gZG9jLl9pZCkgcmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtpXS5faWQgPT0gZG9jLl9pZCl7XG5cdFx0XHRcdFx0XHQgICAgXHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5zb3J0ID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5zb3J0KHF1ZXJ5LnNvcnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHB1c2gocGFydDphbnksIGRvYzphbnkpOmFueXtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XSkgdGhpcy5kYXRhWydhcnInICsgcGFydF0gPSBbXTtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSkgdGhpcy5kYXRhWydvYmonICsgcGFydF0gPSB7fTtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0pIHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XSA9IHt9O1xuXHRcdFx0aWYodGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF0pIHJldHVybiB0aGlzLnJlbmV3KHBhcnQsIGRvYyk7XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucmVwbGFjZSl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZSl7XG5cdFx0XHRcdFx0dGhpcy5yZXBsYWNlKGRvYywga2V5LCB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Vba2V5XSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucG9wdWxhdGUpe1xuXHRcdFx0XHRsZXQgcCA9IHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucG9wdWxhdGU7XG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkocCkpe1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0XHRcdGlmKHR5cGVvZiBwID09ICdvYmplY3QnICYmIHBbaV0uZmllbGQgJiYgcFtpXS5wYXJ0KXtcblx0XHRcdFx0XHRcdFx0dGhpcy5wb3B1bGF0ZShkb2MsIHBbaV0uZmllbGQsIHBbaV0ucGFydCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ZWxzZSBpZih0eXBlb2YgcCA9PSAnb2JqZWN0JyAmJiBwLmZpZWxkICYmIHAucGFydCl7XG5cdFx0XHRcdFx0dGhpcy5wb3B1bGF0ZShkb2MsIHAuZmllbGQsIHAucGFydCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnB1c2goZG9jKTtcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0uc29ydCl7XG5cdFx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnNvcnQodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5zb3J0KTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdID0gZG9jO1xuXHRcdFx0aWYoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZSkpe1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnb3B0cycrcGFydF0udXNlLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0ICAgIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1t0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZVtpXV1dID0gZG9jO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzKXtcblx0XHRcdFx0XHRsZXQgZyA9IHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzW2tleV07XG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuaWdub3JlID09ICdmdW5jdGlvbicgJiYgZy5pZ25vcmUoZG9jKSkgY29udGludWU7XG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuYWxsb3cgPT0gJ2Z1bmN0aW9uJyAmJiAhZy5hbGxvdyhkb2MpKSBjb250aW51ZTtcblx0XHRcdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCBzZXQgPSAoZmllbGQ6YW55KSA9PiB7XG5cdFx0XHRcdFx0XHRpZighZmllbGQpIHJldHVybjtcblx0XHRcdFx0XHRcdGlmKCFBcnJheS5pc0FycmF5KHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdKSl7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdID0gW107XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgZy5zb3J0ID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zb3J0KGcuc29ydCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNldChnLmZpZWxkKGRvYywgKGZpZWxkOmFueSk9Pntcblx0XHRcdFx0XHRcdHNldChmaWVsZCk7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLnF1ZXJ5KSB7XG5cdFx0XHRcdGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucXVlcnkpIHtcblx0XHRcdFx0XHRsZXQgcXVlcnkgPSB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucXVlcnlba2V5XTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5Lmlnbm9yZSA9PSAnZnVuY3Rpb24nICYmIHF1ZXJ5Lmlnbm9yZShkb2MpKSBjb250aW51ZTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5LmFsbG93ID09ICdmdW5jdGlvbicgJiYgIXF1ZXJ5LmFsbG93KGRvYykpIGNvbnRpbnVlO1xuXHRcdFx0XHRcdGlmICghdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSkge1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLnB1c2goZG9jKTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5LnNvcnQgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5zb3J0KHF1ZXJ5LnNvcnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0uZmllbGRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGZpZWxkID0gdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkc1tpXTtcblx0XHRcdFx0aWYgKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtmaWVsZF0pIHtcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtmaWVsZF0gPSBkb2M7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2MpIHtcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtmaWVsZF1bZWFjaF0gPSBkb2NbZWFjaF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyByZW1vdmUocGFydDphbnksIGRvYzphbnkpe1xuXHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydhcnInICsgcGFydF0pKSByZXR1cm47XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmICh0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXS5faWQgPT0gZG9jLl9pZCkge1xuXHRcdFx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZGVsZXRlIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdO1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdFx0Zm9yKGxldCBmaWVsZCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwIDsgaS0tKSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXVtpXS5faWQgPT0gZG9jLl9pZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeSl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDAgOyBpLS0pIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ldLl9pZCA9PSBkb2MuX2lkKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHQvKlxuXHQqXHRFbmRvZiBNb25nbyBTZXJ2aWNlXG5cdCovXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsIHByaXZhdGUgY29yZTogQ29yZVNlcnZpY2Upe1xuXHRcdHRoaXMuY29yZS5uZXh0KCdzb2NrZXQnLCAoc29ja2V0OmFueSk9Pntcblx0XHRcdHRoaXMuc29ja2V0ID0gc29ja2V0O1xuXHRcdFx0c29ja2V0Lm9uKCdjcmVhdGUnLCAoY3JlYXRlZDphbnkpID0+IHtcblx0XHRcdFx0dGhpcy5mZXRjaChjcmVhdGVkLnBhcnQsIHtcblx0XHRcdFx0XHRmb3JjZTogdHJ1ZSxcblx0XHRcdFx0XHRxdWVyeToge1xuXHRcdFx0XHRcdFx0X2lkOiBjcmVhdGVkLl9pZFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHNvY2tldC5vbigndXBkYXRlJywgKHVwZGF0ZWQ6YW55KSA9PiB7XG5cdFx0XHRcdHRoaXMuZmV0Y2godXBkYXRlZC5wYXJ0LCB7XG5cdFx0XHRcdFx0Zm9yY2U6IHRydWUsXG5cdFx0XHRcdFx0cXVlcnk6IHtcblx0XHRcdFx0XHRcdF9pZDogdXBkYXRlZC5faWRcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHRzb2NrZXQub24oJ2RlbGV0ZScsIChkZWxldGVkOmFueSkgPT4ge1xuXHRcdFx0XHR0aGlzLnJlbW92ZShkZWxldGVkLnBhcnQsIGRlbGV0ZWQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
935
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvbW9uZ28uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxZQUFZO0lBOHZCeEI7O01BRUU7SUFDRixZQUFvQixJQUFpQixFQUFVLElBQWlCO1FBQTVDLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBaHdCaEU7Ozs7Ozs7O1VBUUU7UUFDTyxTQUFJLEdBQU8sRUFBRSxDQUFDO1FBQ2QsV0FBTSxHQUFRO1lBQ3JCLElBQUksRUFBRSxDQUFDLEtBQVMsRUFBRSxHQUFPLEVBQUUsRUFBRTtnQkFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLHdCQUF3QixDQUFDLENBQUM7WUFDbkQsQ0FBQztTQUNELENBQUM7UUE0ZkssVUFBSyxHQUFHLENBQUMsR0FBTyxFQUFFLEVBQU0sRUFBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBTyxFQUFDLEVBQUU7Z0JBQzFCLElBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDO29CQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTt3QkFDbkIsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7d0JBQ2QsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNULENBQUMsQ0FBQyxDQUFDO2lCQUNIOztvQkFBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUlLLGFBQVEsR0FBRyxDQUFDLEdBQU8sRUFBRSxFQUFNLEVBQUUsRUFBRTtZQUNy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Q0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM5QzthQUNEO1NBQ0Q7SUFDRixDQUFDO0lBQUEsQ0FBQztJQUNLLElBQUksQ0FBQyxJQUFRLEVBQUUsR0FBTztRQUM1QixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFELElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO1lBQ25DLEtBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDNUQ7U0FDRDtRQUNELElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN4QyxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQ25CLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUNoQyxJQUFHLE9BQU8sQ0FBQyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7d0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQztpQkFDRDthQUNEO2lCQUFLLElBQUcsT0FBTyxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksRUFBQztnQkFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEM7U0FDRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBQztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3ZDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQztZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3JFO1NBQ0Q7UUFDRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBQztZQUNoQyxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxJQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUQsSUFBRyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JB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QUFJLENBQUMsQ0FBQyxLQUFLLEVBQUM7Z0JBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFHLENBQUMsRUFBRSxFQUFFO29CQUNqRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFO3dCQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUMxQyxNQUFNO3FCQUNOO2lCQUNEO2FBQ0Q7U0FDRDtJQUNGLENBQUM7SUFBQSxDQUFDOzt5R0E3dkJTLFlBQVk7NkdBQVosWUFBWSxjQUZaLE1BQU07MkZBRU4sWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9uZ29TZXJ2aWNlIHtcblx0Lypcblx0Klx0RGF0YSB3aWxsIGJlIHN0b3JhZ2UgZm9yIGFsbCBpbmZvcm1hdGlvbiB3ZSBhcmUgcHVsbGluZyBmcm9tIHdhdyBjcnVkLlxuXHQqXHRkYXRhWydhcnInICsgcGFydF0gd2lsbCBob3N0IGFsbCBkb2NzIGZyb20gY29sbGVjdGlvbiBwYXJ0IGluIGFycmF5IGZvcm1cblx0Klx0ZGF0YVsnb2JqJyArIHBhcnRdIHdpbGwgaG9zdCBhbGwgZG9jcyBmcm9tIGNvbGxlY3Rpb24gcGFydCBpbiBvYmplY3QgZm9ybVxuXHQqXHRcdGFuZCBhbGwgZ3JvdXBzIGNvbGxlY2l0b25zIHByb3ZpZGVkXG5cdCpcdGRhdGFbJ29wdHMnICsgcGFydF0gd2lsbCBob3N0IG9wdGlvbnMgZm9yIGRvY3MgZnJvbSBjb2xsZWN0aW9uIHBhcnRcblx0Klx0XHRXaWxsIGJlIGluaXRpYWxpemVkIG9ubHkgaW5zaWRlIGdldFxuXHQqXHRcdFdpbGwgYmUgdXNlZCBpbnNpZGUgcHVzaFxuXHQqL1xuXHRcdHByaXZhdGUgZGF0YTphbnkgPSB7fTtcblx0XHRwcml2YXRlIHNvY2tldDogYW55ID0ge1xuXHRcdFx0ZW1pdDogKHdoaWNoOmFueSwgZG9jOmFueSkgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZyh3aGljaCwgZG9jLCAnaXMgbm90IHVzZWQgb24gc29ja2V0cycpO1xuXHRcdFx0fVxuXHRcdH07XG5cdC8qXG5cdCpcdHdhdyBjcnVkIGNvbm5lY3QgZnVuY3Rpb25zXG5cdCovXG5cdFx0cHVibGljIGNvbmZpZyhwYXJ0OmFueSwgb3B0czphbnkpe1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdKSByZXR1cm47XG5cdFx0XHRpZighdGhpcy5kYXRhWydhcnInICsgcGFydF0pIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdID0gW107XG5cdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF0pIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdID0ge307XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0pe1xuXHRcdFx0XHRmb3IgKGxldCBlYWNoIGluIG9wdHMpe1xuXHRcdFx0XHQgICAgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdW2VhY2hdID0gb3B0c1tlYWNoXTtcblx0XHRcdFx0fVxuXHRcdFx0fWVsc2UgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdID0gb3B0cyA9IG9wdHN8fHt9O1xuXHRcdFx0aWYodHlwZW9mIG9wdHMudXNlID09PSAnc3RyaW5nJyl7XG5cdFx0XHRcdG9wdHMudXNlID0gb3B0cy51c2Uuc3BsaXQoJyAnKTtcblx0XHRcdH1cblx0XHRcdGlmKG9wdHMucXVlcnkpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLnF1ZXJ5KXtcblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5xdWVyeVtrZXldID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0b3B0cy5xdWVyeVtrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRhbGxvdzogb3B0cy5xdWVyeVtrZXldXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYob3B0cy5ncm91cHMpe1xuXHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHMgPT09ICdzdHJpbmcnKXtcblx0XHRcdFx0XHRvcHRzLmdyb3VwcyA9IG9wdHMuZ3JvdXBzLnNwbGl0KCcgJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShvcHRzLmdyb3Vwcykpe1xuXHRcdFx0XHRcdGxldCBhcnIgPSBvcHRzLmdyb3Vwcztcblx0XHRcdFx0XHRvcHRzLmdyb3VwcyA9IHt9O1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdFx0aWYodHlwZW9mIGFycltpXSA9PT0gJ3N0cmluZycpe1xuXHRcdFx0XHRcdFx0XHRvcHRzLmdyb3Vwc1thcnJbaV1dID0gdHJ1ZTtcblx0XHRcdFx0XHRcdH1lbHNlIHtcblx0XHRcdFx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gYXJyW2ldKXtcblx0XHRcdFx0XHRcdFx0XHRpZih0eXBlb2YgYXJyW2ldW2tleV0gPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdFx0XHRcdFx0XHRhcnJbaV1ba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZmllbGQ6IGFycltpXVtrZXldXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdG9wdHMuZ3JvdXBzW2tleV0gPSBhcnJbaV1ba2V5XTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLmdyb3Vwcyl7XG5cdFx0XHRcdFx0aWYodHlwZW9mIG9wdHMuZ3JvdXBzW2tleV0gPT0gJ2Jvb2xlYW4nKXtcblx0XHRcdFx0XHRcdGlmKG9wdHMuZ3JvdXBzW2tleV0pe1xuXHRcdFx0XHRcdFx0XHRvcHRzLmdyb3Vwc1trZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdGZpZWxkOiBmdW5jdGlvbihkb2M6YW55KXtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBkb2Nba2V5XTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcblx0XHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmdyb3Vwc1trZXldICE9ICdvYmplY3QnKXtcblx0XHRcdFx0XHRcdGRlbGV0ZSBvcHRzLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmdyb3Vwc1trZXldLmZpZWxkICE9ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0ZGVsZXRlIG9wdHMuZ3JvdXBzW2tleV07XG5cdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKSl7XG5cdFx0XHRcdFx0XHRjb25zb2xlLndhcm4oJ1lvdSBjYW4gaGF2ZSBzYW1lIGZpZWxkIGdyb3VwcyB3aXRoIHF1ZXJ5LiBGaWVsZCAnK2tleSsnIGlzIG5vdCB1c2VkIGluIGdyb3Vwcy4nKTtcblx0XHRcdFx0XHRcdGRlbGV0ZSBvcHRzLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSB7fTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYob3B0cy5maWVsZHMpIHtcblx0XHRcdFx0aWYgKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRvcHRzLmZpZWxkcyA9IG9wdHMuZmllbGRzLnNwbGl0KCcgJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmICghQXJyYXkuaXNBcnJheShvcHRzLmZpZWxkcykpIHtcblx0XHRcdFx0b3B0cy5maWVsZHMgPSBbXTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyBjcmVhdGUocGFydDphbnksIGRvYzphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkLCBvcHRzOmFueT17fSkge1xuXHRcdFx0aWYgKHR5cGVvZiBkb2MgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRpZihjYikgb3B0cyA9IGNiO1xuXHRcdFx0XHRjYiA9IGRvYztcblx0XHRcdFx0ZG9jID0ge307XG5cdFx0XHR9XG5cdFx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0XHRlcnI6IG9wdHNcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHRcdGlmKHR5cGVvZiBkb2MgIT0gJ29iamVjdCcpIGRvYz17fTtcblx0XHRcdGlmKGRvYy5fX19jcmVhdGVkICYmICFvcHRzLmFsbG93X211bHRpcGxlKSByZXR1cm47XG5cdFx0XHRkb2MuX19fY3JlYXRlZCA9IHRydWU7XG5cdFx0XHR0aGlzLmh0dHAucG9zdChvcHRzLnVybCB8fCAnL2FwaS8nICsgcGFydCArICcvY3JlYXRlJywgZG9jIHx8IHt9LCByZXNwID0+IHtcblx0XHRcdFx0aWYgKHJlc3ApIHtcblx0XHRcdFx0XHR0aGlzLnNvY2tldC5lbWl0KCdjcmVhdGUnLCB7XG5cdFx0XHRcdFx0XHRfaWQ6IHJlc3AuX2lkLFxuXHRcdFx0XHRcdFx0cGFydDogcGFydFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMucHVzaChwYXJ0LCByZXNwKTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIGNiKHJlc3ApO1xuXHRcdFx0XHR9ZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIGZldGNoKHBhcnQ6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcblx0XHRcdGlmKG9wdHMucXVlcnkgJiYgb3B0cy5xdWVyeS5faWQgJiYgIW9wdHMuZm9yY2UgJiZcblx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdKXtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXTtcblx0XHRcdH1cblx0XHRcdGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYoIW9wdHMpIG9wdHMgPSB7fTtcblx0XHRcdHRoaXMuY29uZmlnKHBhcnQsIG9wdHMpOyAvLyByZW1vdmUgdGhpcyBpbiBmdXR1cmVcblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvZmV0Y2gnKyhvcHRzLm5hbWV8fCcnKSwgZG9jOmFueTtcblx0XHRcdGlmKG9wdHMucXVlcnkgJiYgb3B0cy5xdWVyeS5faWQgJiYgdGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdKXtcblx0XHRcdFx0ZG9jID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdO1xuXHRcdFx0fWVsc2V7XG5cdFx0XHRcdGRvYyA9IHt9O1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Upe1xuXHRcdFx0XHRcdHRoaXMucmVwbGFjZShkb2MsIGtleSwgdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlW2tleV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmh0dHAucG9zdChvcHRzLnVybCB8fCB1cmwsIChvcHRzLnF1ZXJ5fHx7fSksIHJlc3AgPT4ge1xuXHRcdFx0XHRpZighcmVzcCkgcmV0dXJuIGNiJiZjYihmYWxzZSk7XG5cdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gcmVzcCl7XG5cdFx0XHRcdCAgICBkb2NbZWFjaF0gPSByZXNwW2VhY2hdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKXtcblx0XHRcdFx0ICAgIGRvY1tlYWNoXSA9IHJlc3BbZWFjaF07XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5wdXNoKHBhcnQsIGRvYyk7XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IoZG9jKTtcblx0XHRcdFx0fVxuXHRcdFx0fSwgb3B0cyk7XG5cdFx0XHRyZXR1cm4gZG9jO1xuXHRcdH07XG5cdFx0cHVibGljIGdldChwYXJ0OmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRjYiA9IG9wdHM7XG5cdFx0XHRcdG9wdHMgPSB7fTtcblx0XHRcdH1cblx0XHRcdGlmKCFvcHRzKSBvcHRzID0ge307XG5cdFx0XHR0aGlzLmNvbmZpZyhwYXJ0LCBvcHRzKTsgLy8gcmVtb3ZlIHRoaXMgaW4gZnV0dXJlXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL2dldCcrKG9wdHMubmFtZXx8JycpKyhvcHRzLnBhcmFtfHwnJyk7XG5cdFx0XHR0aGlzLmh0dHAuZ2V0KG9wdHMudXJsIHx8IHVybCwgcmVzcCA9PiB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KHJlc3ApKSB7XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNwLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnB1c2gocGFydCxyZXNwW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0bGV0IHJlbW92ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHJlc3AubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKHJlc3Bbal0uX2lkID09PSB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXS5faWQpIHtcblx0XHRcdFx0XHRcdFx0XHRyZW1vdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKHJlbW92ZSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnJlbW92ZShwYXJ0LCB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykgY2IodGhpcy5kYXRhWydhcnInICsgcGFydF0sIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdLCBvcHRzLm5hbWV8fCcnLCByZXNwKTtcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNiKHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLCB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSwgb3B0cy5uYW1lfHwnJywgcmVzcCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kYXRhWydsb2FkZWQnK3BhcnRdPXRydWU7XG5cdFx0XHR9LCBvcHRzKTtcblx0XHRcdHJldHVybiB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XTtcblx0XHR9O1xuXHRcdHB1YmxpYyBzZXQocGFydDphbnksIG9wdHM6YW55PXVuZGVmaW5lZCwgcmVzcDphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkge1xuXHRcdFx0XHRyZXNwID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGlmKG9wdHMpIHRoaXMuY29uZmlnKHBhcnQsIG9wdHMpO1xuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkocmVzcCkpIHtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByZXNwLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0dGhpcy5wdXNoKHBhcnQsIHJlc3BbaV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRhcnI6IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLFxuXHRcdFx0XHRvYmo6IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRwcml2YXRlIHByZXBhcmVfdXBkYXRlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueSl7XG5cdFx0XHRpZihvcHRzLmZpZWxkcyl7XG5cdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIG9wdHMuZmllbGRzID0gb3B0cy5maWVsZHMuc3BsaXQoJyAnKTtcblx0XHRcdFx0bGV0IF9kb2M6YW55ID0ge307XG5cdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBvcHRzLmZpZWxkcy5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0X2RvY1tvcHRzLmZpZWxkc1tpXV0gPSBkb2Nbb3B0cy5maWVsZHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRvYyA9IF9kb2M7XG5cdFx0XHR9ZWxzZSB0aGlzLnJlbmV3KHBhcnQsIGRvYyk7XG5cdFx0XHRpZih0eXBlb2Ygb3B0cy5yZXdyaXRlID09ICdvYmplY3QnICYmIE9iamVjdC52YWx1ZXMob3B0cy5yZXdyaXRlKS5sZW5ndGgpe1xuXHRcdFx0XHRkb2MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRvYykpO1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLnJld3JpdGUpe1xuXHRcdFx0XHRcdHRoaXMucmVwbGFjZShkb2MsIGtleSwgb3B0cy5yZXdyaXRlW2tleV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZG9jO1xuXHRcdH07XG5cdFx0cHVibGljIHVwZGF0ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIG9wdHMgIT0gJ29iamVjdCcpIG9wdHMgPSB7fTtcblx0XHRcdGRvYyA9IHRoaXMucHJlcGFyZV91cGRhdGUocGFydCwgZG9jLCBvcHRzKTtcblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvdXBkYXRlJyArIChvcHRzLm5hbWV8fCcnKTtcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcblx0XHRcdFx0aWYocmVzcCl7XG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgndXBkYXRlJywge1xuXHRcdFx0XHRcdFx0X2lkOiBkb2MuX2lkLFxuXHRcdFx0XHRcdFx0cGFydDogcGFydFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IocmVzcCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIHVuaXF1ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIG9wdHMgIT0gJ29iamVjdCcpIG9wdHMgPSB7fTtcblx0XHRcdGRvYyA9IHRoaXMucHJlcGFyZV91cGRhdGUocGFydCwgZG9jLCBvcHRzKTtcblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvdW5pcXVlJyArIChvcHRzLm5hbWV8fCcnKTtcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcblx0XHRcdFx0aWYocmVzcCl7XG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgndXBkYXRlJywge1xuXHRcdFx0XHRcdFx0X2lkOiBkb2MuX2lkLFxuXHRcdFx0XHRcdFx0cGFydDogcGFydFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGxldCBjdXJyZW50X2RvYyA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdO1xuXHRcdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKXtcblx0XHRcdFx0XHQgICAgY3VycmVudF9kb2NbZWFjaF0gPSBkb2NbZWFjaF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMucmVuZXcocGFydCwgY3VycmVudF9kb2MpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IocmVzcCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIGRlbGV0ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRjYiA9IG9wdHM7XG5cdFx0XHRcdG9wdHMgPSB7fTtcblx0XHRcdH1cblx0XHRcdGlmKHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykgb3B0cyA9IHt9O1xuXHRcdFx0aWYob3B0cy5maWVsZHMpe1xuXHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5maWVsZHMgPT09ICdzdHJpbmcnKSBvcHRzLmZpZWxkcyA9IG9wdHMuZmllbGRzLnNwbGl0KCcgJyk7XG5cdFx0XHRcdGxldCBfZG9jOmFueSA9IHt9O1xuXHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgb3B0cy5maWVsZHMubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdF9kb2Nbb3B0cy5maWVsZHNbaV1dID0gZG9jW29wdHMuZmllbGRzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkb2MgPSBfZG9jO1xuXHRcdFx0fWVsc2V7XG5cdFx0XHRcdGRvYz17XG5cdFx0XHRcdFx0X2lkOmRvYy5faWRcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bGV0IHVybCA9ICcvYXBpLycgKyBwYXJ0ICsgJy9kZWxldGUnICsgKG9wdHMubmFtZXx8JycpO1xuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgdXJsLCBkb2MsIHJlc3AgPT4ge1xuXHRcdFx0XHRpZiAocmVzcCkge1xuXHRcdFx0XHRcdHRoaXMuc29ja2V0LmVtaXQoJ2RlbGV0ZScsIHtcblx0XHRcdFx0XHRcdF9pZDogZG9jLl9pZCxcblx0XHRcdFx0XHRcdHBhcnQ6IHBhcnRcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnJlbW92ZShwYXJ0LCBkb2MpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IocmVzcCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIG9wdHMpO1xuXHRcdH07XG5cdFx0cHVibGljIF9pZChjYjphbnkpe1xuXHRcdFx0aWYodHlwZW9mIGNiID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLmh0dHAuZ2V0KCcvd2F3L25ld0lkJywgY2IpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHRvX2lkKGRvY3M6YW55KXtcblx0XHRcdGlmKCFkb2NzKSByZXR1cm4gW107XG5cdFx0XHRpZihBcnJheS5pc0FycmF5KGRvY3MpKXtcblx0XHRcdFx0ZG9jcyA9IGRvY3Muc2xpY2UoKTtcblx0XHRcdH1lbHNlIGlmKHR5cGVvZiBkb2NzID09ICdvYmplY3QnKXtcblx0XHRcdFx0aWYoZG9jcy5faWQpIHJldHVybiBbZG9jcy5faWRdO1xuXHRcdFx0XHRsZXQgX2RvY3MgPSBbXTtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gZG9jcyl7XG5cdFx0XHRcdFx0aWYoZG9jc1trZXldKSBfZG9jcy5wdXNoKGRvY3Nba2V5XS5faWR8fGRvY3Nba2V5XSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZG9jcyA9IF9kb2NzO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBkb2NzLmxlbmd0aDsgKytpKSB7XG5cdFx0XHRcdGlmKGRvY3NbaV0pIGRvY3NbaV0gPSBkb2NzW2ldLl9pZCB8fCBkb2NzW2ldO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGRvY3M7XG5cdFx0fTtcblx0XHRwdWJsaWMgYWZ0ZXJXaGlsZShkb2M6YW55LCBjYjphbnksIHRpbWU9MTAwMCl7XG5cdFx0XHRpZih0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdGltZSA9PSAnbnVtYmVyJyl7XG5cdFx0XHRcdGNsZWFyVGltZW91dChkb2MuX191cGRhdGVUaW1lb3V0KTtcblx0XHRcdFx0ZG9jLl9fdXBkYXRlVGltZW91dCA9IHNldFRpbWVvdXQoY2IsIHRpbWUpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHBvcHVsYXRlKGRvYzphbnksIGZpZWxkOmFueSwgcGFydDphbnkpOmFueXtcblx0XHRcdGlmKCFkb2N8fCFmaWVsZHx8IXBhcnQpIHJldHVybjtcblx0XHRcdGlmKEFycmF5LmlzQXJyYXkoZG9jKSl7XG5cdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBkb2MubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jW2ldLCBmaWVsZCwgcGFydCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydsb2FkZWQnK3BhcnRdKXtcblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShmaWVsZCkpe1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBmaWVsZC5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0XHR0aGlzLnBvcHVsYXRlKGRvYywgZmllbGRbaV0sIHBhcnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1lbHNlIGlmKGZpZWxkLmluZGV4T2YoJy4nKT4tMSl7XG5cdFx0XHRcdFx0ZmllbGQgPSBmaWVsZC5zcGxpdCgnLicpO1xuXHRcdFx0XHRcdGxldCBzdWIgPSBmaWVsZC5zaGlmdCgpO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBkb2Nbc3ViXSAhPSAnb2JqZWN0JykgcmV0dXJuO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLnBvcHVsYXRlKGRvY1tzdWJdLCBmaWVsZC5qb2luKCcuJyksIHBhcnQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkoZG9jW2ZpZWxkXSkpe1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IGRvY1tmaWVsZF0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcblx0XHRcdFx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJytwYXJ0XVtkb2NbZmllbGRdW2ldXSl7XG5cdFx0XHRcdFx0XHRcdGRvY1tmaWVsZF1baV0gPSB0aGlzLmRhdGFbJ29iaicrcGFydF1bZG9jW2ZpZWxkXVtpXV07XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0ZG9jW2ZpZWxkXS5zcGxpY2UoaSwgMSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fWVsc2UgaWYodHlwZW9mIGRvY1tmaWVsZF0gPT09ICdzdHJpbmcnKXtcblx0XHRcdFx0XHRkb2NbZmllbGRdID0gdGhpcy5kYXRhWydvYmonK3BhcnRdW2RvY1tmaWVsZF1dIHx8IG51bGw7XG5cdFx0XHRcdH1lbHNlIHJldHVybjtcblx0XHRcdH1lbHNle1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+e1xuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBmaWVsZCwgcGFydCk7XG5cdFx0XHRcdH0sIDEwMCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRwdWJsaWMgb24ocGFydHM6YW55LCBjYjphbnkpOmFueSB7XG4gICBcdFx0ICAgIGlmICh0eXBlb2YgcGFydHMgPT09ICdzdHJpbmcnKSB7XG4gICBcdFx0ICAgICAgICBwYXJ0cyA9IHBhcnRzLnNwbGl0KFwiIFwiKTtcbiAgIFx0XHQgICAgfVxuICAgXHRcdCAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICBcdFx0ICAgICAgICBpZiAoIXRoaXMuZGF0YVsnbG9hZGVkJytwYXJ0c1tpXV0pIHtcbiAgIFx0XHQgICAgICAgICAgICByZXR1cm4gc2V0VGltZW91dCggKCkgPT4ge1xuICAgXHRcdCAgICAgICAgICAgICAgICB0aGlzLm9uKHBhcnRzLCBjYik7XG4gICBcdFx0ICAgICAgICAgICAgfSwgMTAwKTtcbiAgIFx0XHQgICAgICAgIH1cbiAgIFx0XHQgICAgfVxuICAgXHRcdCAgICBjYih0aGlzLmRhdGEpO1xuICAgXHRcdH07XG4gICBcdFx0cHVibGljIHRyYWNrKGluZGV4OmFueSwgZG9jOmFueSl7IHJldHVybiBkb2MgJiYgZG9jLl9pZCAmJiBkb2MuX2lkIHx8IGluZGV4OyB9XG4gICBcdC8qXG5cdCpcdG1vbmdvIHNvcnQgZmlsdGVyc1xuXHQqL1xuICAgXHRcdHB1YmxpYyBzb3J0QXNjSWQoKXtcbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGEuX2lkPmIuX2lkKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gLTE7XG4gICBcdFx0XHR9XG4gICBcdFx0fTtcbiAgIFx0XHRwdWJsaWMgc29ydERlc2NJZCgpe1xuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYS5faWQ8Yi5faWQpIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiAtMTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9O1xuICAgXHRcdHB1YmxpYyBzb3J0QXNjU3RyaW5nKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPmJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPGJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydERlc2NTdHJpbmcob3B0czphbnkpe1xuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcbiAgIFx0XHRcdFx0b3B0cyA9IHtcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xuICAgXHRcdFx0XHR9XG4gICBcdFx0XHR9XG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCk8YltvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCk+YltvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0QXNjRGF0ZShvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0uZ2V0VGltZSgpPmJbb3B0cy5maWVsZF0uZ2V0VGltZSgpKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdLmdldFRpbWUoKTxiW29wdHMuZmllbGRdLmdldFRpbWUoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydERlc2NEYXRlKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXS5nZXRUaW1lKCk8YltvcHRzLmZpZWxkXS5nZXRUaW1lKCkpIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIGlmKGFbb3B0cy5maWVsZF0uZ2V0VGltZSgpPmJbb3B0cy5maWVsZF0uZ2V0VGltZSgpIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0QXNjTnVtYmVyKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXT5iW29wdHMuZmllbGRdKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdPGJbb3B0cy5maWVsZF0gfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG4gICBcdFx0cHVibGljIHNvcnREZXNjTnVtYmVyKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXTxiW29wdHMuZmllbGRdKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdPmJbb3B0cy5maWVsZF0gfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG4gICBcdFx0cHVibGljIHNvcnRBc2NCb29sZWFuKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoIWFbb3B0cy5maWVsZF0mJmJbb3B0cy5maWVsZF0pIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIGlmKGFbb3B0cy5maWVsZF0mJiFiW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0RGVzY0Jvb2xlYW4ob3B0czphbnkpe1xuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcbiAgIFx0XHRcdFx0b3B0cyA9IHtcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xuICAgXHRcdFx0XHR9XG4gICBcdFx0XHR9XG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdJiYhYltvcHRzLmZpZWxkXSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoIWFbb3B0cy5maWVsZF0mJmJbb3B0cy5maWVsZF0gfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG5cdC8qXG5cdCpcdG1vbmdvIHJlcGxhY2UgZmlsdGVyc1xuXHQqL1xuXHRcdHB1YmxpYyBiZUFycih2YWw6YW55LCBjYjphbnkpe1xuXHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodmFsKSkgY2IoW10pO1xuXHRcdFx0ZWxzZSBjYih2YWwpO1xuXHRcdH07XG5cdFx0cHVibGljIGJlT2JqKHZhbDphbnksIGNiOmFueSl7XG5cdFx0XHRpZih0eXBlb2YgdmFsICE9ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkodmFsKSB8fCAhdmFsKXtcblx0XHRcdFx0dmFsID0ge307XG5cdFx0XHR9XG5cdFx0XHRjYih2YWwpO1xuXHRcdH07XG5cdFx0cHVibGljIGJlRGF0ZSh2YWw6YW55LCBjYjphbnkpIHsgY2IoIG5ldyBEYXRlKHZhbCkgKTsgfTtcblx0XHRwdWJsaWMgYmVTdHJpbmcodmFsOmFueSwgY2I6YW55KXtcblx0XHRcdGlmKHR5cGVvZiB2YWwgIT0gJ3N0cmluZycpe1xuXHRcdFx0XHR2YWwgPSAnJztcblx0XHRcdH1cblx0XHRcdGNiKHZhbCk7XG5cdFx0fTtcblx0XHRwdWJsaWMgYmVEb2MgPSAodmFsOmFueSwgY2I6YW55KT0+e1xuXHRcdFx0dGhpcy5iZU9iaih2YWwsICh2YWw6YW55KT0+e1xuXHRcdFx0XHRpZighdmFsLl9pZCl7XG5cdFx0XHRcdFx0dGhpcy5faWQoKF9pZDphbnkpPT57XG5cdFx0XHRcdFx0XHR2YWwuX2lkID0gX2lkO1xuXHRcdFx0XHRcdFx0Y2IodmFsKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fWVsc2UgY2IodmFsKTtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0cHVibGljIGZvcmNlQXJyKHZhbDphbnksIGNiOmFueSl7IGNiKFtdKTsgfTtcblx0XHRwdWJsaWMgZm9yY2VPYmoodmFsOmFueSwgY2I6YW55KXsgY2Ioe30pOyB9O1xuXHRcdHB1YmxpYyBmb3JjZVN0cmluZyh2YWw6YW55LCBjYjphbnkpeyBjYignJyk7IH07XG5cdFx0cHVibGljIGZvcmNlRG9jID0gKHZhbDphbnksIGNiOmFueSkgPT4ge1xuXHRcdFx0dGhpcy5faWQoKF9pZDphbnkpPT57XG5cdFx0XHRcdGNiKHtcblx0XHRcdFx0XHRfaWQ6IF9pZFxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0cHVibGljIGdldENyZWF0ZWQodmFsOmFueSwgY2I6YW55LCBkb2M6YW55KXsgY2IobmV3IERhdGUocGFyc2VJbnQoZG9jLl9pZC5zdWJzdHJpbmcoMCw4KSwgMTYpKjEwMDApKTsgfTtcblx0Lypcblx0Klx0bW9uZ28gbG9jYWwgc3VwcG9ydCBmdW5jdGlvbnNcblx0Ki9cblx0XHRwcml2YXRlIHJlcGxhY2UoZG9jOmFueSwgdmFsdWU6YW55LCBycGw6YW55KTphbnl7XG5cdFx0XHRpZih2YWx1ZS5pbmRleE9mKCcuJyk+LTEpe1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlLnNwbGl0KCcuJyk7XG5cdFx0XHRcdGxldCBzdWIgPSB2YWx1ZS5zaGlmdCgpO1xuXHRcdFx0XHRpZihkb2Nbc3ViXSAmJiAodHlwZW9mIGRvY1tzdWJdICE9ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZG9jW3N1Yl0pKSlcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdGlmKCFkb2Nbc3ViXSkgZG9jW3N1Yl0gPSB7fTtcblx0XHRcdFx0cmV0dXJuIHRoaXMucmVwbGFjZShkb2Nbc3ViXSwgdmFsdWUuam9pbignLicpLCBycGwpO1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIHJwbCA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0cnBsKGRvY1t2YWx1ZV0sIGZ1bmN0aW9uKG5ld1ZhbHVlOmFueSl7XG5cdFx0XHRcdFx0ZG9jW3ZhbHVlXSA9IG5ld1ZhbHVlO1xuXHRcdFx0XHR9LCBkb2MpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHJlbmV3KHBhcnQ6YW55LCBkb2M6YW55KXtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXSkgcmV0dXJuIHRoaXMucHVzaChwYXJ0LCBkb2MpO1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcblx0XHRcdFx0XHR0aGlzLnJlcGxhY2UoZG9jLCBrZXksIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZVtrZXldKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgZWFjaCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXSl7XG5cdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdW2VhY2hdID0gZG9jW2VhY2hdO1xuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2Mpe1xuXHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXVtlYWNoXSA9IGRvY1tlYWNoXTtcblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHNbaV07XG5cdFx0XHRcdGlmICghdGhpcy5kYXRhWydvYmonICsgcGFydF1bZmllbGRdKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZmllbGRdID0gZG9jO1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZmllbGRdW2VhY2hdID0gZG9jW2VhY2hdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzKXtcblx0XHRcdFx0XHRsZXQgdG9faGF2ZSA9IHRydWU7XG5cdFx0XHRcdFx0bGV0IGcgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBnLmlnbm9yZSA9PSAnZnVuY3Rpb24nICYmIGcuaWdub3JlKGRvYykpIHRvX2hhdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRpZih0eXBlb2YgZy5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFnLmFsbG93KGRvYykpIHRvX2hhdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCBmaWVsZHM6YW55ID0ge307XG5cdFx0XHRcdFx0bGV0IHNldCA9IChmaWVsZDphbnkpID0+IHtcblx0XHRcdFx0XHRcdGZpZWxkc1tmaWVsZF0gPSB0cnVlO1xuXHRcdFx0XHRcdFx0aWYoIWZpZWxkKSByZXR1cm47XG5cdFx0XHRcdFx0XHRpZighQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSkpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSA9IFtdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYodG9faGF2ZSl7XG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xuXHRcdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF1baV0uX2lkID09IGRvYy5faWQpIHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcblx0XHRcdFx0XHRcdFx0ICAgIGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKXtcblx0XHRcdFx0XHRcdFx0ICAgIFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgZy5zb3J0ID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zb3J0KGcuc29ydCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNldChnLmZpZWxkKGRvYywgc2V0LmJpbmQodGhpcykpKTtcblx0XHRcdFx0XHRmb3IgKGxldCBmaWVsZCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcblx0XHRcdFx0XHRcdGlmKGZpZWxkc1tmaWVsZF0pIGNvbnRpbnVlO1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKXtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zcGxpY2UoaSwgMSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnF1ZXJ5KXtcblx0XHRcdFx0XHRsZXQgdG9faGF2ZSA9IHRydWU7XG5cdFx0XHRcdFx0bGV0IHF1ZXJ5ID0gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeVtrZXldO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5pZ25vcmUgPT0gJ2Z1bmN0aW9uJyAmJiBxdWVyeS5pZ25vcmUoZG9jKSkgdG9faGF2ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFxdWVyeS5hbGxvdyhkb2MpKSB0b19oYXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0aWYoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0pe1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZih0b19oYXZlKXtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtpXS5faWQgPT0gZG9jLl9pZCkgcmV0dXJuO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtpXS5faWQgPT0gZG9jLl9pZCl7XG5cdFx0XHRcdFx0XHQgICAgXHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdCAgICB9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5zb3J0ID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5zb3J0KHF1ZXJ5LnNvcnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIHB1c2gocGFydDphbnksIGRvYzphbnkpOmFueXtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XSkgdGhpcy5kYXRhWydhcnInICsgcGFydF0gPSBbXTtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSkgdGhpcy5kYXRhWydvYmonICsgcGFydF0gPSB7fTtcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0pIHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XSA9IHt9O1xuXHRcdFx0aWYodGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF0pIHJldHVybiB0aGlzLnJlbmV3KHBhcnQsIGRvYyk7XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucmVwbGFjZSl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZSl7XG5cdFx0XHRcdFx0dGhpcy5yZXBsYWNlKGRvYywga2V5LCB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Vba2V5XSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucG9wdWxhdGUpe1xuXHRcdFx0XHRsZXQgcCA9IHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucG9wdWxhdGU7XG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkocCkpe1xuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0XHRcdGlmKHR5cGVvZiBwID09ICdvYmplY3QnICYmIHBbaV0uZmllbGQgJiYgcFtpXS5wYXJ0KXtcblx0XHRcdFx0XHRcdFx0dGhpcy5wb3B1bGF0ZShkb2MsIHBbaV0uZmllbGQsIHBbaV0ucGFydCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ZWxzZSBpZih0eXBlb2YgcCA9PSAnb2JqZWN0JyAmJiBwLmZpZWxkICYmIHAucGFydCl7XG5cdFx0XHRcdFx0dGhpcy5wb3B1bGF0ZShkb2MsIHAuZmllbGQsIHAucGFydCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnB1c2goZG9jKTtcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0uc29ydCl7XG5cdFx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnNvcnQodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5zb3J0KTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdID0gZG9jO1xuXHRcdFx0aWYoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZSkpe1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnb3B0cycrcGFydF0udXNlLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0ICAgIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1t0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZVtpXV1dID0gZG9jO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzKXtcblx0XHRcdFx0XHRsZXQgZyA9IHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzW2tleV07XG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuaWdub3JlID09ICdmdW5jdGlvbicgJiYgZy5pZ25vcmUoZG9jKSkgY29udGludWU7XG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuYWxsb3cgPT0gJ2Z1bmN0aW9uJyAmJiAhZy5hbGxvdyhkb2MpKSBjb250aW51ZTtcblx0XHRcdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGxldCBzZXQgPSAoZmllbGQ6YW55KSA9PiB7XG5cdFx0XHRcdFx0XHRpZighZmllbGQpIHJldHVybjtcblx0XHRcdFx0XHRcdGlmKCFBcnJheS5pc0FycmF5KHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdKSl7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdID0gW107XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgZy5zb3J0ID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zb3J0KGcuc29ydCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHNldChnLmZpZWxkKGRvYywgKGZpZWxkOmFueSk9Pntcblx0XHRcdFx0XHRcdHNldChmaWVsZCk7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLnF1ZXJ5KSB7XG5cdFx0XHRcdGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucXVlcnkpIHtcblx0XHRcdFx0XHRsZXQgcXVlcnkgPSB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucXVlcnlba2V5XTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5Lmlnbm9yZSA9PSAnZnVuY3Rpb24nICYmIHF1ZXJ5Lmlnbm9yZShkb2MpKSBjb250aW51ZTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5LmFsbG93ID09ICdmdW5jdGlvbicgJiYgIXF1ZXJ5LmFsbG93KGRvYykpIGNvbnRpbnVlO1xuXHRcdFx0XHRcdGlmICghdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSkge1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLnB1c2goZG9jKTtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5LnNvcnQgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5zb3J0KHF1ZXJ5LnNvcnQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0uZmllbGRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGZpZWxkID0gdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkc1tpXTtcblx0XHRcdFx0aWYgKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtmaWVsZF0pIHtcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtmaWVsZF0gPSBkb2M7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2MpIHtcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtmaWVsZF1bZWFjaF0gPSBkb2NbZWFjaF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyByZW1vdmUocGFydDphbnksIGRvYzphbnkpe1xuXHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydhcnInICsgcGFydF0pKSByZXR1cm47XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmICh0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXS5faWQgPT0gZG9jLl9pZCkge1xuXHRcdFx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZGVsZXRlIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdO1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdFx0Zm9yKGxldCBmaWVsZCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwIDsgaS0tKSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXVtpXS5faWQgPT0gZG9jLl9pZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeSl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDAgOyBpLS0pIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ldLl9pZCA9PSBkb2MuX2lkKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHQvKlxuXHQqXHRFbmRvZiBNb25nbyBTZXJ2aWNlXG5cdCovXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsIHByaXZhdGUgY29yZTogQ29yZVNlcnZpY2Upe1xuXHRcdHRoaXMuY29yZS5uZXh0KCdzb2NrZXQnLCAoc29ja2V0OmFueSk9Pntcblx0XHRcdHRoaXMuc29ja2V0ID0gc29ja2V0O1xuXHRcdFx0c29ja2V0Lm9uKCdjcmVhdGUnLCAoY3JlYXRlZDphbnkpID0+IHtcblx0XHRcdFx0dGhpcy5mZXRjaChjcmVhdGVkLnBhcnQsIHtcblx0XHRcdFx0XHRmb3JjZTogdHJ1ZSxcblx0XHRcdFx0XHRxdWVyeToge1xuXHRcdFx0XHRcdFx0X2lkOiBjcmVhdGVkLl9pZFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHNvY2tldC5vbigndXBkYXRlJywgKHVwZGF0ZWQ6YW55KSA9PiB7XG5cdFx0XHRcdHRoaXMuZmV0Y2godXBkYXRlZC5wYXJ0LCB7XG5cdFx0XHRcdFx0Zm9yY2U6IHRydWUsXG5cdFx0XHRcdFx0cXVlcnk6IHtcblx0XHRcdFx0XHRcdF9pZDogdXBkYXRlZC5faWRcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHRzb2NrZXQub24oJ2RlbGV0ZScsIChkZWxldGVkOmFueSkgPT4ge1xuXHRcdFx0XHR0aGlzLnJlbW92ZShkZWxldGVkLnBhcnQsIGRlbGV0ZWQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
package/fesm2015/wacom.mjs
CHANGED
|
@@ -1567,14 +1567,14 @@ class MongoService {
|
|
|
1567
1567
|
this.data['obj' + part][key] = {};
|
|
1568
1568
|
}
|
|
1569
1569
|
}
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1570
|
+
if (opts.fields) {
|
|
1571
|
+
if (typeof opts.fields === 'string') {
|
|
1572
|
+
opts.fields = opts.fields.split(' ');
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
if (!Array.isArray(opts.fields)) {
|
|
1576
|
+
opts.fields = [];
|
|
1577
|
+
}
|
|
1578
1578
|
}
|
|
1579
1579
|
;
|
|
1580
1580
|
create(part, doc = undefined, cb = undefined, opts = {}) {
|