tango-app-ui-auth 3.5.0-beta.8-prod-dev8 → 3.5.0-beta.8-prod-dev10
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/components/tango-auth-forgot-password/tango-auth-forgot-password.component.mjs +10 -4
- package/esm2022/lib/components/tango-auth-login/tango-auth-login.component.mjs +9 -7
- package/fesm2022/tango-app-ui-auth.mjs +17 -9
- package/fesm2022/tango-app-ui-auth.mjs.map +1 -1
- package/package.json +1 -1
package/esm2022/lib/components/tango-auth-forgot-password/tango-auth-forgot-password.component.mjs
CHANGED
|
@@ -179,9 +179,15 @@ export class TangoAuthForgotPasswordComponent {
|
|
|
179
179
|
},
|
|
180
180
|
error: () => {
|
|
181
181
|
this.captchaToken = null;
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
localStorage.removeItem(this.recaptchaSiteKey);
|
|
183
|
+
sessionStorage.removeItem(this.recaptchaSiteKey);
|
|
184
|
+
if (window.grecaptcha) {
|
|
185
|
+
try {
|
|
186
|
+
window.grecaptcha.reset();
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
console.warn('Captcha reset error:', err);
|
|
190
|
+
}
|
|
185
191
|
}
|
|
186
192
|
this.PasswordForm.get('password')?.setValue(password);
|
|
187
193
|
this.PasswordForm.get('confirmPassword')?.setValue(confirmPassword);
|
|
@@ -199,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
199
205
|
type: ViewChild,
|
|
200
206
|
args: ['captchaRef']
|
|
201
207
|
}] } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQWdDLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtsRyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxnQ0FBZ0M7SUFtQmpDO0lBQ0E7SUFDQTtJQUNBO0lBQXVCO0lBQ3ZCO0lBQXVCO0lBQWlDO0lBdEJsRSxXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLEdBQUcsQ0FBTTtJQUNULGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFDcEMsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUU7UUFDMUIsVUFBVSxDQUFDLFFBQVE7UUFDbkIsVUFBVSxDQUFDLEtBQUs7UUFDaEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFH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QkFBTTtvQkFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO29CQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO2lCQUMvRTtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUMzQiwwQ0FBMEM7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekI7Z0JBQ0EsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsbURBQW1ELENBQUMsQ0FBQztZQUNoRixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F6TFUsZ0NBQWdDOzRGQUFoQyxnQ0FBZ0MsZ0xDZDdDLHV1WkE0S0E7OzRGRDlKYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDO3NSQTBJbkIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJlY2FwdGNoYUNvbXBvbmVudCB9IGZyb20gJ25nLXJlY2FwdGNoYSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10YW5nby1hdXRoLWZvcmdvdC1wYXNzd29yZFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3RhbmdvLWF1dGgtZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb0F1dGhGb3Jnb3RQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZW1haWxFbmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIE9UUDogYW55O1xyXG4gIHBhc3N3b3JkRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbmV3UGFzc3dvcmRTaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmVyaWZ5UGFzc3dvcmRTaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uZmlybVBhc3N3b3JkU2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVtYWlsID0gbmV3IEZvcm1Db250cm9sKFwiXCIsIFtcclxuICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICBWYWxpZGF0b3JzLmVtYWlsLFxyXG4gICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSxcclxuICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxyXG4gIF0pO1xyXG4gIFBhc3N3b3JkRm9ybTogRm9ybUdyb3VwO1xyXG4gIHByaXZhdGUgc2VjcmV0S2V5OiBhbnk7XHJcblxyXG4gIHJlY2FwdGNoYVNpdGVLZXk6YW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgICB0aGlzLnJlY2FwdGNoYVNpdGVLZXkgPSBlbnYucmVjYXB0Y2hhU2l0ZUtleVxyXG4gICAgICAgICAgdGhpcy5zZWNyZXRLZXk9ZW52LnNlY3JldEtleVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLlBhc3N3b3JkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBwYXNzd29yZDogW1xyXG4gICAgICAgIFwiXCIsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyMCksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPz0uKltBLVpdKSg/PS4qXFxkKS57OCx9JC8pLHRoaXMubm9TcGFjZVZhbGlkYXRvclxyXG4gICAgICAgIF0pLCAgICAgICAgICAgICAgICAgICBcclxuICAgICAgXSxcclxuICAgICAgY29uZmlybVBhc3N3b3JkOiBbXHJcbiAgICAgICAgXCJcIixcclxuICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIwKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXig/PS4qW0EtWl0pKD89LipcXGQpLns4LH0kLyksdGhpcy5ub1NwYWNlVmFsaWRhdG9yLFxyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUFyZUVxdWFsLmJpbmQodGhpcyksXHJcbiAgICAgICAgXSksXHJcbiAgICAgIF0sXHJcbiAgICAgIHRva2VuOiBbXHJcbiAgICAgICAgXCJcIixcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIFxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocXBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHFwYXJhbXMpIHtcclxuICAgICAgICAgIGlmIChxcGFyYW1zLnRva2VuKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFzc3dvcmRFbmFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsRW5hYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgndG9rZW4nKT8uc2V0VmFsdWUocXBhcmFtcy50b2tlbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsRW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wYXNzd29yZEVuYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0pO1xyXG4gIFxyXG4gIH1cclxuICAgIGNhcHRjaGFUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gb25DYXB0Y2hhUmVzb2x2ZWQodG9rZW46IHN0cmluZyB8IG51bGwpIHtcclxuICB0aGlzLmNhcHRjaGFUb2tlbiA9IHRva2VuO1xyXG4gIC8vIGNvbnNvbGUubG9nKCdDYXB0Y2hhIHRva2VuOicsIHRva2VuKTtcclxuICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxufVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIG5vU3BhY2VWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgY29udHJvbC52YWx1ZS5pbmRleE9mKCcgJykgPj0gMCkge1xyXG4gICAgICByZXR1cm4geyAnbm9TcGFjZXMnOiB0cnVlIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgdmFsaWRhdGVBcmVFcXVhbChmaWVsZENvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxhbnk+KSB7XHJcbiAgICByZXR1cm4gZmllbGRDb250cm9sPy52YWx1ZSA9PT0gdGhpcy5QYXNzd29yZEZvcm0/LmdldChcInBhc3N3b3JkXCIpIS52YWx1ZSA/IG51bGwgOiB7IE5vdEVxdWFsOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgIC5mb3Jnb3RQYXNzd29yZFRyaWdnZXIoeyBlbWFpbDogdGhpcy5lbWFpbC52YWx1ZSB9KVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFxyXG4gICAgICAgICAgICAgIGBSZXNldCBwYXNzd29yZCBsaW5rIHNlbnQgdG8gJHt0aGlzLmVtYWlsLnZhbHVlfWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICBgVW5hYmxlIHRvIHNlbmQgcmVzZXQgcGFzc3dvcmQgbGluayB0byAke3RoaXMuZW1haWwudmFsdWV9YFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgYFVuYWJsZSB0byBzZW5kIHJlc2V0IHBhc3N3b3JkIGxpbmsgdG8gJHt0aGlzLmVtYWlsLnZhbHVlfWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93TmV3UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLm5ld1Bhc3N3b3JkU2hvdyA9ICF0aGlzLm5ld1Bhc3N3b3JkU2hvdztcclxuICB9XHJcblxyXG4gIHNob3dWZXJpZnlQYXNzd29yZCgpIHtcclxuICAgIHRoaXMudmVyaWZ5UGFzc3dvcmRTaG93ID0gIXRoaXMudmVyaWZ5UGFzc3dvcmRTaG93O1xyXG4gIH1cclxuXHJcbiAgc2hvd0NvbmZpcm1QYXNzd29yZCgpIHtcclxuICAgIHRoaXMuY29uZmlybVBhc3N3b3JkU2hvdyA9ICF0aGlzLmNvbmZpcm1QYXNzd29yZFNob3c7XHJcbiAgfVxyXG5AVmlld0NoaWxkKCdjYXB0Y2hhUmVmJykgY2FwdGNoYVJlZiE6IFJlY2FwdGNoYUNvbXBvbmVudDtcclxuICBvblBhc3N3b3JkU3VibWl0KCkge1xyXG4gICAgIGlmICghdGhpcy5jYXB0Y2hhVG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgY29tcGxldGUgdGhlIHJlQ0FQVENIQScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgaWYgKHRoaXMuUGFzc3dvcmRGb3JtLmludmFsaWQpIHtcclxuICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIGZpbGwgb3V0IHRoZSBmb3JtIGNvcnJlY3RseS4nKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhc3N3b3JkID0gdGhpcy5QYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy52YWx1ZTtcclxuICBjb25zdCBjb25maXJtUGFzc3dvcmQgPSB0aGlzLlBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy52YWx1ZTtcclxuXHJcbiAgaWYgKHBhc3N3b3JkICE9PSBjb25maXJtUGFzc3dvcmQpIHtcclxuICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGFzc3dvcmRzIGRvIG5vdCBtYXRjaC4nKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGFkZG9uUGFzc3dvcmQgPSBgJHtwYXNzd29yZH1fX18ke01hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApfWA7XHJcbiAgY29uc3Qgc2VjcmV0S2V5ID0gdGhpcy5zZWNyZXRLZXk7XHJcbiAgY29uc3QgZW5jcnlwdGVkUGFzc3dvcmQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChhZGRvblBhc3N3b3JkLCBzZWNyZXRLZXkpLnRvU3RyaW5nKCk7XHJcbiAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgIC4uLnRoaXMuUGFzc3dvcmRGb3JtLnZhbHVlLFxyXG4gICAgcGFzc3dvcmQ6IGVuY3J5cHRlZFBhc3N3b3JkLFxyXG4gICAgY29uZmlybVBhc3N3b3JkOiBlbmNyeXB0ZWRQYXNzd29yZCxcclxuICAgIGxvZ2luVHlwZTpcIndlYlwiLFxyXG4gICAgJ2NhcHRjaGFUb2tlbicgOiB0aGlzLmNhcHRjaGFUb2tlblxyXG4gIH07XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmZvcmdvdFBhc3N3b3JkKHBheWxvYWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFwiUGFzc3dvcmQgdXBkYXRlZCBzdWNjZXNzZnVsbHkuXCIpO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhdXRoL2xvZ2luJ10pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgdGhpcy5QYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5zZXRWYWx1ZShwYXNzd29yZCk7XHJcbiAgICAgICB0aGlzLlBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5zZXRWYWx1ZShjb25maXJtUGFzc3dvcmQpXHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1VuYWJsZSB0byByZXNldCBwYXNzd29yZCEgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhVG9rZW4gPSBudWxsO1xyXG4gICAgICAvLyB0aGlzLmNyZWRlbnRpYWxzWydjYXB0Y2hhVG9rZW4nXSA9bnVsbDtcclxuICAgICAgICBpZiAodGhpcy5jYXB0Y2hhUmVmKSB7XHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhUmVmLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uc2V0VmFsdWUocGFzc3dvcmQpO1xyXG4gICAgICAgdGhpcy5QYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uc2V0VmFsdWUoY29uZmlybVBhc3N3b3JkKVxyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnVW5hYmxlIHRvIHJlc2V0IHBhc3N3b3JkISBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcG9zaXRpb24tYWJzb2x1dGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcGUtMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIFwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL0xIUy5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiaW1nLWZsdWlkXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmIChlbWFpbEVuYWJsZSkge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcHMtMTAgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCB3LWxnLTYwMHB4IG1zLTIwIHB5LTMgbXQtMjBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWZvcm0gbG9naW4tc2lnbmluIHctMTAwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWJldHdlZW4gdGl0bGUtcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXktMTAgbXMtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJ0aXRsZSBteS00XCI+IEZvcmdvdCBQYXNzd29yZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXN1YnRpdGxlIG1iLTFcIj4gRW50ZXIgdGhlIEVtYWlsIGFzc29jaWF0ZWQgd2l0aCB5b3VyIGFjY291bnQgYW5kXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlJ2xsIHNlbmQgeW91IGEgT1RQIHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwidy0xMDAgdGl0bGUtcGFkZGluZ1wiIG5vdmFsaWRhdGU9XCJub3ZhbGlkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIj5FbWFpbDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBteS0zXCIgW2Zvcm1Db250cm9sXT1cImVtYWlsXCIgdHlwZT1cImVtYWlsXCIgaWQ9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTUgbWItNSBteC0xMFwiIHJvbGU9XCJncm91cFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCIgaWQ9XCJhbGVydC10b2FzdFwiIFtkaXNhYmxlZF09XCJlbWFpbC5pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5SZXF1ZXN0IHJlc2V0IGxpbms8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGJhY2t0b2xvZ2luIHRleHQtY2VudGVyIG15LTNcIiByb3V0ZXJMaW5rPVwiL2F1dGgvbG9naW5cIj5CYWNrXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpbjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtbWQtcm93IG1iLTMgIGZsZXgtbWQtc3RhY2sgcHQtMyBjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIG9yZGVyLTIgb3JkZXItbWQtMSBtcy0yMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMSBmb290ZXJcIj4yMDI0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9vdGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXJcIj4mIzY0O1RhbmdvSVRTb2x1dGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kaWEgUHZ0IEx0ZDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibWVudSBtZW51LWdyYXktNjAwIG1lbnUtaG92ZXItcHJpbWFyeSBmdy1zZW1pYm9sZCBvcmRlci0xIG1lLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gZm9vdGVyXCI+PGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vdGFuZ29leWUuYWkvI2Fib3V0dXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWxpbmsgcHgtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAxMiAxM1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAzLjcwMDJDMTEgMy4xNTAyIDEwLjU1IDIuNzAwMiAxMCAyLjcwMDJIMkMxLjQ1IDIuNzAwMiAxIDMuMTUwMiAxIDMuNzAwMk0xMSAzLjcwMDJWOS43MDAyQzExIDEwLjI1MDIgMTAuNTUgMTAuNzAwMiAxMCAxMC43MDAySDJDMS40NSAxMC43MDAyIDEgMTAuMjUwMiAxIDkuNzAwMlYzLjcwMDJNMTEgMy43MDAyTDYgNy4yMDAyTDEgMy43MDAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5zdXBwb3J0JiM2NDt0YW5nb3RlY2guY28uaW48L3NwYW4+PC9hPjwvbGk+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYocGFzc3dvcmRFbmFibGUpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBzLTEwICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggdy1sZy02MDBweCBtcy0yMCBweS0zIG10LTIwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb3JtIGxvZ2luLXNpZ25pbiB3LTEwMFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iZXR3ZWVuIHRpdGxlLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG15LTUgbXMtMTBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwidGl0bGUgbXktNFwiPlJlc2V0IFBhc3N3b3JkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtc3VidGl0bGUgbWItN1wiPkVudGVyIGEgbmV3IHBhc3N3b3JkIHRvIHJlc2V0IHRoZSBwYXNzd29yZCBvbiB5b3VyIGFjY291bnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIlBhc3N3b3JkRm9ybVwiIG5vdmFsaWRhdGU9XCJub3ZhbGlkYXRlXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0xMiBjb2wteGwtMTIgY29sLXh4bC0xMiBtYi03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+TmV3IFBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3R5cGVdPVwibmV3UGFzc3dvcmRTaG93ID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8udG91Y2hlZCAmJiBQYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJzaG93TmV3UGFzc3dvcmQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gcG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZSB0b3AtNTAgZW5kLTAgbWUtbjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rdC1wYXNzd29yZC1tZXRlci1jb250cm9sPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJuZXdQYXNzd29yZFNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIW5ld1Bhc3N3b3JkU2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllLXNsYXNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKFBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LnRvdWNoZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChQYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsPlBhc3N3b3JkIGlzIHJlcXVpcmVkPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlRoZSBwYXNzd29yZCBtdXN0IGNvbnRhaW4gYXRsZWFzdCBvbmUgY2FwaXRhbCBsZXR0ZXIsIG9uZSBzcGVjaWFsIGNoYXJhY3RlciwgbnVtYmVyIGFuZCB0aGUgc3RyZW5ndGggc2hvdWxkIGJlIG1vcmUgdGhhbiA3IGNoYXJhY3RlcnMuPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJQYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcignbm9TcGFjZXMnKSAmJiAhUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKSAmJiBQYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy50b3VjaGVkXCI+UGFzc3dvcmQgY2Fubm90IGNvbnRhaW4gc3BhY2VzLjwvc21hbGw+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0xMiBjb2wteGwtMTIgY29sLXh4bC0xMiBtYi03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db25maXJtIE5ldyBQYXNzd29yZDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT1cInZlcmlmeVBhc3N3b3JkU2hvdyA/ICd0ZXh0JyA6ICdwYXNzd29yZCdcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiY29uZmlybVBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbmZpcm1QYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/LnRvdWNoZWQgJiYgUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInNob3dWZXJpZnlQYXNzd29yZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlIHRvcC01MCBlbmQtMCBtZS1uMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWt0LXBhc3N3b3JkLW1ldGVyLWNvbnRyb2w9XCJ2aXNpYmlsaXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInZlcmlmeVBhc3N3b3JkU2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhdmVyaWZ5UGFzc3dvcmRTaG93XCIgY2xhc3M9XCJmYSBmYS1leWUtc2xhc2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/LnRvdWNoZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD5Db25maXJtIHBhc3N3b3JkIGlzIHJlcXVpcmVkPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzbWFsbCAqbmdJZj1cIlBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5oYXNFcnJvcigncGF0dGVybicpXCI+VGhlIGNvbmZpcm0gcGFzc3dvcmQgbXVzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW4gYXRsZWFzdCBvbmUgY2FwaXRhbCBsZXR0ZXIgYW5kIG51bWJlci48L3NtYWxsPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8udG91Y2hlZCAmJiBQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uaGFzRXJyb3IoJ05vdEVxdWFsJykgJiYgIVBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlBhc3N3b3JkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lcyBub3QgbWF0Y2g8L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cIlBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5oYXNFcnJvcignbm9TcGFjZXMnKSAmJiAhUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/Lmhhc0Vycm9yKCdOb3RFcXVhbCcpICYmIFBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy50b3VjaGVkXCI+UGFzc3dvcmQgY2Fubm90IGNvbnRhaW4gc3BhY2VzLjwvc21hbGw+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlLWNhcHRjaGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNjYXB0Y2hhUmVmXHJcbiAgW3NpdGVLZXldPVwicmVjYXB0Y2hhU2l0ZUtleVwiXHJcbiAgKHJlc29sdmVkKT1cIm9uQ2FwdGNoYVJlc29sdmVkKCRldmVudClcIlxyXG4gIFthdHRyLmRhdGEtcmVmcmVzaC1rZXldPVwicmVjYXB0Y2hhU2l0ZUtleVwiPlxyXG48L3JlLWNhcHRjaGE+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0xMCBtYi01XCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgXCIgaWQ9XCJhbGVydC10b2FzdFwiIFtkaXNhYmxlZF09XCJQYXNzd29yZEZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QYXNzd29yZFN1Ym1pdCgpXCI+UmVzZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBiYWNrdG9sb2dpbiB0ZXh0LWNlbnRlclwiIHJvdXRlckxpbms9XCIvYXV0aC9sb2dpblwiPkJhY2sgdG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpbjwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi0zICBmbGV4LW1kLXN0YWNrIHB0LTMgY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBvcmRlci0yIG9yZGVyLW1kLTEgbXMtMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTEgZm9vdGVyXCI+MjAyNDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvb3RlciB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCI+JiM2NDtUYW5nb0lUU29sdXRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGlhIFB2dCBMdGQ8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1lbnUgbWVudS1ncmF5LTYwMCBtZW51LWhvdmVyLXByaW1hcnkgZnctc2VtaWJvbGQgb3JkZXItMSBtZS03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIGZvb3RlclwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpLyNhYm91dHVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1saW5rIHB4LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMy43MDAyQzExIDMuMTUwMiAxMC41NSAyLjcwMDIgMTAgMi43MDAySDJDMS40NSAyLjcwMDIgMSAzLjE1MDIgMSAzLjcwMDJNMTEgMy43MDAyVjkuNzAwMkMxMSAxMC4yNTAyIDEwLjU1IDEwLjcwMDIgMTAgMTAuNzAwMkgyQzEuNDUgMTAuNzAwMiAxIDEwLjI1MDIgMSA5LjcwMDJWMy43MDAyTTExIDMuNzAwMkw2IDcuMjAwMkwxIDMuNzAwMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+c3VwcG9ydCYjNjQ7dGFuZ290ZWNoLmNvLmluPC9zcGFuPjwvYT48L2xpPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9sb2dpbi1iYWNrZ3JvdW5kMS5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiYmFja2dyb3VuZC1pbWFnZVwiPlxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQvdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQWdDLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtsRyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxnQ0FBZ0M7SUFtQmpDO0lBQ0E7SUFDQTtJQUNBO0lBQXVCO0lBQ3ZCO0lBQXVCO0lBQWlDO0lBdEJsRSxXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLEdBQUcsQ0FBTTtJQUNULGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFDcEMsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUU7UUFDMUIsVUFBVSxDQUFDLFFBQVE7UUFDbkIsVUFBVSxDQUFDLEtBQUs7UUFDaEIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFH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Z0NBQWdDO3NSQTBJbkIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJlY2FwdGNoYUNvbXBvbmVudCB9IGZyb20gJ25nLXJlY2FwdGNoYSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi10YW5nby1hdXRoLWZvcmdvdC1wYXNzd29yZFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFuZ28tYXV0aC1mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3RhbmdvLWF1dGgtZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb0F1dGhGb3Jnb3RQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgZW1haWxFbmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIE9UUDogYW55O1xyXG4gIHBhc3N3b3JkRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbmV3UGFzc3dvcmRTaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmVyaWZ5UGFzc3dvcmRTaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uZmlybVBhc3N3b3JkU2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVtYWlsID0gbmV3IEZvcm1Db250cm9sKFwiXCIsIFtcclxuICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICBWYWxpZGF0b3JzLmVtYWlsLFxyXG4gICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSxcclxuICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxyXG4gIF0pO1xyXG4gIFBhc3N3b3JkRm9ybTogRm9ybUdyb3VwO1xyXG4gIHByaXZhdGUgc2VjcmV0S2V5OiBhbnk7XHJcblxyXG4gIHJlY2FwdGNoYVNpdGVLZXk6YW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgICB0aGlzLnJlY2FwdGNoYVNpdGVLZXkgPSBlbnYucmVjYXB0Y2hhU2l0ZUtleVxyXG4gICAgICAgICAgdGhpcy5zZWNyZXRLZXk9ZW52LnNlY3JldEtleVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB0aGlzLlBhc3N3b3JkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBwYXNzd29yZDogW1xyXG4gICAgICAgIFwiXCIsXHJcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyMCksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPz0uKltBLVpdKSg/PS4qXFxkKS57OCx9JC8pLHRoaXMubm9TcGFjZVZhbGlkYXRvclxyXG4gICAgICAgIF0pLCAgICAgICAgICAgICAgICAgICBcclxuICAgICAgXSxcclxuICAgICAgY29uZmlybVBhc3N3b3JkOiBbXHJcbiAgICAgICAgXCJcIixcclxuICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIwKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXig/PS4qW0EtWl0pKD89LipcXGQpLns4LH0kLyksdGhpcy5ub1NwYWNlVmFsaWRhdG9yLFxyXG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUFyZUVxdWFsLmJpbmQodGhpcyksXHJcbiAgICAgICAgXSksXHJcbiAgICAgIF0sXHJcbiAgICAgIHRva2VuOiBbXHJcbiAgICAgICAgXCJcIixcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIFxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocXBhcmFtczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHFwYXJhbXMpIHtcclxuICAgICAgICAgIGlmIChxcGFyYW1zLnRva2VuKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFzc3dvcmRFbmFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsRW5hYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgndG9rZW4nKT8uc2V0VmFsdWUocXBhcmFtcy50b2tlbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsRW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5wYXNzd29yZEVuYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0pO1xyXG4gIFxyXG4gIH1cclxuICAgIGNhcHRjaGFUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gb25DYXB0Y2hhUmVzb2x2ZWQodG9rZW46IHN0cmluZyB8IG51bGwpIHtcclxuICB0aGlzLmNhcHRjaGFUb2tlbiA9IHRva2VuO1xyXG4gIC8vIGNvbnNvbGUubG9nKCdDYXB0Y2hhIHRva2VuOicsIHRva2VuKTtcclxuICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxufVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIG5vU3BhY2VWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgY29udHJvbC52YWx1ZS5pbmRleE9mKCcgJykgPj0gMCkge1xyXG4gICAgICByZXR1cm4geyAnbm9TcGFjZXMnOiB0cnVlIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgdmFsaWRhdGVBcmVFcXVhbChmaWVsZENvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxhbnk+KSB7XHJcbiAgICByZXR1cm4gZmllbGRDb250cm9sPy52YWx1ZSA9PT0gdGhpcy5QYXNzd29yZEZvcm0/LmdldChcInBhc3N3b3JkXCIpIS52YWx1ZSA/IG51bGwgOiB7IE5vdEVxdWFsOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlXHJcbiAgICAgIC5mb3Jnb3RQYXNzd29yZFRyaWdnZXIoeyBlbWFpbDogdGhpcy5lbWFpbC52YWx1ZSB9KVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFxyXG4gICAgICAgICAgICAgIGBSZXNldCBwYXNzd29yZCBsaW5rIHNlbnQgdG8gJHt0aGlzLmVtYWlsLnZhbHVlfWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgICBgVW5hYmxlIHRvIHNlbmQgcmVzZXQgcGFzc3dvcmQgbGluayB0byAke3RoaXMuZW1haWwudmFsdWV9YFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcclxuICAgICAgICAgICAgYFVuYWJsZSB0byBzZW5kIHJlc2V0IHBhc3N3b3JkIGxpbmsgdG8gJHt0aGlzLmVtYWlsLnZhbHVlfWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93TmV3UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLm5ld1Bhc3N3b3JkU2hvdyA9ICF0aGlzLm5ld1Bhc3N3b3JkU2hvdztcclxuICB9XHJcblxyXG4gIHNob3dWZXJpZnlQYXNzd29yZCgpIHtcclxuICAgIHRoaXMudmVyaWZ5UGFzc3dvcmRTaG93ID0gIXRoaXMudmVyaWZ5UGFzc3dvcmRTaG93O1xyXG4gIH1cclxuXHJcbiAgc2hvd0NvbmZpcm1QYXNzd29yZCgpIHtcclxuICAgIHRoaXMuY29uZmlybVBhc3N3b3JkU2hvdyA9ICF0aGlzLmNvbmZpcm1QYXNzd29yZFNob3c7XHJcbiAgfVxyXG5AVmlld0NoaWxkKCdjYXB0Y2hhUmVmJykgY2FwdGNoYVJlZiE6IFJlY2FwdGNoYUNvbXBvbmVudDtcclxuICBvblBhc3N3b3JkU3VibWl0KCkge1xyXG4gICAgIGlmICghdGhpcy5jYXB0Y2hhVG9rZW4pIHtcclxuICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KCdQbGVhc2UgY29tcGxldGUgdGhlIHJlQ0FQVENIQScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgaWYgKHRoaXMuUGFzc3dvcmRGb3JtLmludmFsaWQpIHtcclxuICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGxlYXNlIGZpbGwgb3V0IHRoZSBmb3JtIGNvcnJlY3RseS4nKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhc3N3b3JkID0gdGhpcy5QYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy52YWx1ZTtcclxuICBjb25zdCBjb25maXJtUGFzc3dvcmQgPSB0aGlzLlBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy52YWx1ZTtcclxuXHJcbiAgaWYgKHBhc3N3b3JkICE9PSBjb25maXJtUGFzc3dvcmQpIHtcclxuICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnUGFzc3dvcmRzIGRvIG5vdCBtYXRjaC4nKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IGFkZG9uUGFzc3dvcmQgPSBgJHtwYXNzd29yZH1fX18ke01hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApfWA7XHJcbiAgY29uc3Qgc2VjcmV0S2V5ID0gdGhpcy5zZWNyZXRLZXk7XHJcbiAgY29uc3QgZW5jcnlwdGVkUGFzc3dvcmQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChhZGRvblBhc3N3b3JkLCBzZWNyZXRLZXkpLnRvU3RyaW5nKCk7XHJcbiAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgIC4uLnRoaXMuUGFzc3dvcmRGb3JtLnZhbHVlLFxyXG4gICAgcGFzc3dvcmQ6IGVuY3J5cHRlZFBhc3N3b3JkLFxyXG4gICAgY29uZmlybVBhc3N3b3JkOiBlbmNyeXB0ZWRQYXNzd29yZCxcclxuICAgIGxvZ2luVHlwZTpcIndlYlwiLFxyXG4gICAgJ2NhcHRjaGFUb2tlbicgOiB0aGlzLmNhcHRjaGFUb2tlblxyXG4gIH07XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmZvcmdvdFBhc3N3b3JkKHBheWxvYWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KFwiUGFzc3dvcmQgdXBkYXRlZCBzdWNjZXNzZnVsbHkuXCIpO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhdXRoL2xvZ2luJ10pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgdGhpcy5QYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5zZXRWYWx1ZShwYXNzd29yZCk7XHJcbiAgICAgICB0aGlzLlBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5zZXRWYWx1ZShjb25maXJtUGFzc3dvcmQpXHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1VuYWJsZSB0byByZXNldCBwYXNzd29yZCEgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXB0Y2hhVG9rZW4gPSBudWxsO1xyXG4gIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMucmVjYXB0Y2hhU2l0ZUtleSk7IFxyXG4gIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5yZWNhcHRjaGFTaXRlS2V5KTtcclxuIGlmICgod2luZG93IGFzIGFueSkuZ3JlY2FwdGNoYSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgKHdpbmRvdyBhcyBhbnkpLmdyZWNhcHRjaGEucmVzZXQoKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ0NhcHRjaGEgcmVzZXQgZXJyb3I6JywgZXJyKTtcclxuICAgIH1cclxuICB9XHJcbiAgICAgICB0aGlzLlBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LnNldFZhbHVlKHBhc3N3b3JkKTtcclxuICAgICAgIHRoaXMuUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/LnNldFZhbHVlKGNvbmZpcm1QYXNzd29yZClcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ1VuYWJsZSB0byByZXNldCBwYXNzd29yZCEgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHBvc2l0aW9uLWFic29sdXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBlLTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9MSFMuc3ZnXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImltZy1mbHVpZFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZiAoZW1haWxFbmFibGUpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBzLTEwICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggdy1sZy02MDBweCBtcy0yMCBweS0zIG10LTIwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb3JtIGxvZ2luLXNpZ25pbiB3LTEwMFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iZXR3ZWVuIHRpdGxlLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG15LTEwIG1zLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwidGl0bGUgbXktNFwiPiBGb3Jnb3QgUGFzc3dvcmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gxPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1zdWJ0aXRsZSBtYi0xXCI+IEVudGVyIHRoZSBFbWFpbCBhc3NvY2lhdGVkIHdpdGggeW91ciBhY2NvdW50IGFuZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZSdsbCBzZW5kIHlvdSBhIE9UUCB0byByZXNldCB5b3VyIHBhc3N3b3JkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInctMTAwIHRpdGxlLXBhZGRpbmdcIiBub3ZhbGlkYXRlPVwibm92YWxpZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXktM1wiIFtmb3JtQ29udHJvbF09XCJlbWFpbFwiIHR5cGU9XCJlbWFpbFwiIGlkPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC01IG1iLTUgbXgtMTBcIiByb2xlPVwiZ3JvdXBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiIGlkPVwiYWxlcnQtdG9hc3RcIiBbZGlzYWJsZWRdPVwiZW1haWwuaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+UmVxdWVzdCByZXNldCBsaW5rPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBiYWNrdG9sb2dpbiB0ZXh0LWNlbnRlciBteS0zXCIgcm91dGVyTGluaz1cIi9hdXRoL2xvZ2luXCI+QmFja1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi0zICBmbGV4LW1kLXN0YWNrIHB0LTMgY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBvcmRlci0yIG9yZGVyLW1kLTEgbXMtMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTEgZm9vdGVyXCI+MjAyNDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvb3RlciB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCI+JiM2NDtUYW5nb0lUU29sdXRpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGlhIFB2dCBMdGQ8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1lbnUgbWVudS1ncmF5LTYwMCBtZW51LWhvdmVyLXByaW1hcnkgZnctc2VtaWJvbGQgb3JkZXItMSBtZS03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIGZvb3RlclwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpLyNhYm91dHVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1saW5rIHB4LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMy43MDAyQzExIDMuMTUwMiAxMC41NSAyLjcwMDIgMTAgMi43MDAySDJDMS40NSAyLjcwMDIgMSAzLjE1MDIgMSAzLjcwMDJNMTEgMy43MDAyVjkuNzAwMkMxMSAxMC4yNTAyIDEwLjU1IDEwLjcwMDIgMTAgMTAuNzAwMkgyQzEuNDUgMTAuNzAwMiAxIDEwLjI1MDIgMSA5LjcwMDJWMy43MDAyTTExIDMuNzAwMkw2IDcuMjAwMkwxIDMuNzAwMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+c3VwcG9ydCYjNjQ7dGFuZ290ZWNoLmNvLmluPC9zcGFuPjwvYT48L2xpPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmKHBhc3N3b3JkRW5hYmxlKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBwcy0xMCAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHctbGctNjAwcHggbXMtMjAgcHktMyBtdC0yMFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tZm9ybSBsb2dpbi1zaWduaW4gdy0xMDBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtYmV0d2VlbiB0aXRsZS1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteS01IG1zLTEwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInRpdGxlIG15LTRcIj5SZXNldCBQYXNzd29yZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXN1YnRpdGxlIG1iLTdcIj5FbnRlciBhIG5ldyBwYXNzd29yZCB0byByZXNldCB0aGUgcGFzc3dvcmQgb24geW91ciBhY2NvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJQYXNzd29yZEZvcm1cIiBub3ZhbGlkYXRlPVwibm92YWxpZGF0ZVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMTIgY29sLXhsLTEyIGNvbC14eGwtMTIgbWItN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk5ldyBQYXNzd29yZDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT1cIm5ld1Bhc3N3b3JkU2hvdyA/ICd0ZXh0JyA6ICdwYXNzd29yZCdcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IFBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LnRvdWNoZWQgJiYgUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJykgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd05ld1Bhc3N3b3JkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIHBvc2l0aW9uLWFic29sdXRlIHRyYW5zbGF0ZS1taWRkbGUgdG9wLTUwIGVuZC0wIG1lLW4yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEta3QtcGFzc3dvcmQtbWV0ZXItY29udHJvbD1cInZpc2liaWxpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwibmV3UGFzc3dvcmRTaG93XCIgY2xhc3M9XCJmYSBmYS1leWVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFuZXdQYXNzd29yZFNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZS1zbGFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihQYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy50b3VjaGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD5QYXNzd29yZCBpcyByZXF1aXJlZDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cIlBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJylcIj5UaGUgcGFzc3dvcmQgbXVzdCBjb250YWluIGF0bGVhc3Qgb25lIGNhcGl0YWwgbGV0dGVyLCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXIsIG51bWJlciBhbmQgdGhlIHN0cmVuZ3RoIHNob3VsZCBiZSBtb3JlIHRoYW4gNyBjaGFyYWN0ZXJzLjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ25vU3BhY2VzJykgJiYgIVBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJykgJiYgUGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8udG91Y2hlZFwiPlBhc3N3b3JkIGNhbm5vdCBjb250YWluIHNwYWNlcy48L3NtYWxsPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMTIgY29sLXhsLTEyIGNvbC14eGwtMTIgbWItN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb250YWN0XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29uZmlybSBOZXcgUGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbdHlwZV09XCJ2ZXJpZnlQYXNzd29yZFNob3cgPyAndGV4dCcgOiAncGFzc3dvcmQnXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImNvbmZpcm1QYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtUGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IFBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy50b3VjaGVkICYmIFBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKSB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJzaG93VmVyaWZ5UGFzc3dvcmQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gcG9zaXRpb24tYWJzb2x1dGUgdHJhbnNsYXRlLW1pZGRsZSB0b3AtNTAgZW5kLTAgbWUtbjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1rdC1wYXNzd29yZC1tZXRlci1jb250cm9sPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJ2ZXJpZnlQYXNzd29yZFNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXZlcmlmeVBhc3N3b3JkU2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllLXNsYXNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKFBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy50b3VjaGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGw+Q29uZmlybSBwYXNzd29yZCBpcyByZXF1aXJlZDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c21hbGwgKm5nSWY9XCJQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlRoZSBjb25maXJtIHBhc3N3b3JkIG11c3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluIGF0bGVhc3Qgb25lIGNhcGl0YWwgbGV0dGVyIGFuZCBudW1iZXIuPC9zbWFsbD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/LnRvdWNoZWQgJiYgUGFzc3dvcmRGb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJyk/Lmhhc0Vycm9yKCdOb3RFcXVhbCcpICYmICFQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5QYXNzd29yZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXMgbm90IG1hdGNoPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8uaGFzRXJyb3IoJ25vU3BhY2VzJykgJiYgIVBhc3N3b3JkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpPy5oYXNFcnJvcignTm90RXF1YWwnKSAmJiBQYXNzd29yZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKT8udG91Y2hlZFwiPlBhc3N3b3JkIGNhbm5vdCBjb250YWluIHNwYWNlcy48L3NtYWxsPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZS1jYXB0Y2hhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2FwdGNoYVJlZlxyXG4gIFtzaXRlS2V5XT1cInJlY2FwdGNoYVNpdGVLZXlcIlxyXG4gIChyZXNvbHZlZCk9XCJvbkNhcHRjaGFSZXNvbHZlZCgkZXZlbnQpXCJcclxuICBbYXR0ci5kYXRhLXJlZnJlc2gta2V5XT1cInJlY2FwdGNoYVNpdGVLZXlcIj5cclxuPC9yZS1jYXB0Y2hhPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMTAgbWItNVwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIFwiIGlkPVwiYWxlcnQtdG9hc3RcIiBbZGlzYWJsZWRdPVwiUGFzc3dvcmRGb3JtLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUGFzc3dvcmRTdWJtaXQoKVwiPlJlc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgYmFja3RvbG9naW4gdGV4dC1jZW50ZXJcIiByb3V0ZXJMaW5rPVwiL2F1dGgvbG9naW5cIj5CYWNrIHRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW48L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBkLWZsZXggZmxleC1jb2x1bW4gZmxleC1tZC1yb3cgbWItMyAgZmxleC1tZC1zdGFjayBwdC0zIGNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgb3JkZXItMiBvcmRlci1tZC0xIG1zLTIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0xIGZvb3RlclwiPjIwMjQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb290ZXIgdGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlclwiPiYjNjQ7VGFuZ29JVFNvbHV0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRpYSBQdnQgTHRkPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtZW51IG1lbnUtZ3JheS02MDAgbWVudS1ob3Zlci1wcmltYXJ5IGZ3LXNlbWlib2xkIG9yZGVyLTEgbWUtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBmb290ZXJcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haS8jYWJvdXR1c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtbGluayBweC01XCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDMuNzAwMkMxMSAzLjE1MDIgMTAuNTUgMi43MDAyIDEwIDIuNzAwMkgyQzEuNDUgMi43MDAyIDEgMy4xNTAyIDEgMy43MDAyTTExIDMuNzAwMlY5LjcwMDJDMTEgMTAuMjUwMiAxMC41NSAxMC43MDAyIDEwIDEwLjcwMDJIMkMxLjQ1IDEwLjcwMDIgMSAxMC4yNTAyIDEgOS43MDAyVjMuNzAwMk0xMSAzLjcwMDJMNiA3LjIwMDJMMSAzLjcwMDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPnN1cHBvcnQmIzY0O3RhbmdvdGVjaC5jby5pbjwvc3Bhbj48L2E+PC9saT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZDEuc3ZnXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImJhY2tncm91bmQtaW1hZ2VcIj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|