@skyux/colorpicker 6.0.0-beta.4 → 6.0.0-beta.7
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.
|
@@ -409,4 +409,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
409
409
|
read: ElementRef,
|
|
410
410
|
}]
|
|
411
411
|
}] } });
|
|
412
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9ycGlja2VyL3NyYy9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvc3JjL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixlQUFlLEVBRWYscUJBQXFCLEVBRXJCLGlCQUFpQixHQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTTlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7OztBQUs3RSxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUV6Qjs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQXlLbEMsWUFDVSxZ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O2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFVQyxVQUFVO3NCQURoQixLQUFLO2dCQU9DLG9CQUFvQjtzQkFEMUIsTUFBTTtnQkFPQSxvQkFBb0I7c0JBRDFCLE1BQU07Z0JBUUEsYUFBYTtzQkFEbkIsS0FBSztnQkFPQyxlQUFlO3NCQURyQixLQUFLO2dCQTRERSxzQkFBc0I7c0JBSDdCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUU7d0JBQ25DLElBQUksRUFBRSxXQUFXO3FCQUNsQjtnQkFNTyxnQkFBZ0I7c0JBSHZCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUU7d0JBQzdCLElBQUksRUFBRSxVQUFVO3FCQUNqQjtnQkFNVyxjQUFjO3NCQUh6QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFO3dCQUMzQixJQUFJLEVBQUUsVUFBVTtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTbGlkZXJEaW1lbnNpb24sIFNsaWRlclBvc2l0aW9uIH0gZnJvbSAnLi9jb2xvcnBpY2tlci1jbGFzc2VzJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyU2VydmljZSB9IGZyb20gJy4vY29sb3JwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLWF4aXMnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvciB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItY29sb3InO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJIc2xhIH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1oc2xhJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VySHN2YSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItaHN2YSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlck1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyT3V0cHV0IH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1vdXRwdXQnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJSZXN1bHQgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLXJlc3VsdCc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlclJnYmEgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLXJnYmEnO1xuXG5sZXQgY29tcG9uZW50SWRJbmRleCA9IDA7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBTS1kgVVgtdGhlbWVkIHJlcGxhY2VtZW50IGZvciB0aGUgSFRNTCBgaW5wdXRgIGVsZW1lbnQgd2l0aCBgdHlwZT1cImNvbG9yXCJgLlxuICogVGhlIHZhbHVlIHRoYXQgdXNlcnMgc2VsZWN0IGlzIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHNwZWNpZmllZCBvblxuICogdGhlIGBpbnB1dGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNvbG9ycGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9ycGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3JwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5Q29sb3JwaWNrZXJTZXJ2aWNlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29sb3JwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIFtGb250IEF3ZXNvbWUgNC43XShodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NC43L2ljb25zLykgaWNvbiB0byBvdmVybGF5IG9uIHRvcCBvZiB0aGUgcGlja2VyLiBEbyBub3Qgc3BlY2lmeSB0aGUgYGZhIGZhLWAgY2xhc3Nlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGlja2VyQnV0dG9uSWNvbj86IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGljb24gdG8gZGlzcGxheS4gU3BlY2lmeWluZyBgZmFgIHdpbGwgZGlzcGxheSBhIEZvbnQgQXdlc29tZSBpY29uLCB3aGlsZSBzcGVjaWZ5aW5nIGBza3l1eGAgd2lsbCBkaXNwbGF5IGFuIGljb24gZnJvbSB0aGUgY3VzdG9tIFNLWSBVWCBpY29uIGZvbnQuIE5vdGUgdGhhdCB0aGUgY3VzdG9tIFNLWSBVWCBpY29uIGZvbnQgaXMgY3VycmVudGx5IGluIGJldGEuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBpY2tlckJ1dHRvbkljb25UeXBlPzogc3RyaW5nID0gJ2ZhJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgbGFiZWwgZm9yIHRoZSBjb2xvcnBpY2tlci4gVGhpcyBzZXRzIHRoZSBjb2xvcnBpY2tlcidzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94I2FjY2Vzc2liaWxpdHkpXG4gICAqIHdoZW4gdGhlIGNvbG9ycGlja2VyIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLiBJZiB0aGUgY29sb3JwaWNrZXIgaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IFwiU2VsZWN0IGNvbG9yIHZhbHVlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudCBJRCAod2l0aG91dCB0aGUgbGVhZGluZyBgI2ApIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHRoZVxuICAgKiBjb2xvcnBpY2tlci4gVGhpcyBzZXRzIHRoZSBjb2xvcnBpY2tlcidzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSBjb2xvcnBpY2tlciBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBsYWJlbGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbGxlZEJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IGEgY29sb3IgaW4gdGhlIGNvbG9ycGlja2VyLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENvbG9yQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5Q29sb3JwaWNrZXJPdXRwdXQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0ICoqQXBwbHkqKiBpbiB0aGUgY29sb3JwaWNrZXIgdG8gYXBwbHkgYSBjb2xvci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb2xvckFwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUNvbG9ycGlja2VyUmVzdWx0PigpO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhbiBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIGNvbG9ycGlja2VyLiBUaGUgY29tbWFuZHMgc2hvdWxkXG4gICAqIHJlc3BlY3QgdGhlIGBTa3lDb2xvclBpY2tlck1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUNvbG9ycGlja2VyTWVzc2FnZT4oKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSBhIHJlc2V0IGJ1dHRvbiB0byBsZXQgdXNlcnMgcmV0dXJuIHRvIHRoZSBkZWZhdWx0IGNvbG9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dSZXNldEJ1dHRvbiA9IHRydWU7XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGlkSW5kZXg6IG51bWJlcjtcbiAgcHVibGljIHNreUNvbG9ycGlja2VySGV4SWQ6IHN0cmluZztcbiAgcHVibGljIHNreUNvbG9ycGlja2VyUmVkSWQ6IHN0cmluZztcbiAgcHVibGljIHNreUNvbG9ycGlja2VyR3JlZW5JZDogc3RyaW5nO1xuICBwdWJsaWMgc2t5Q29sb3JwaWNrZXJCbHVlSWQ6IHN0cmluZztcbiAgcHVibGljIHNreUNvbG9ycGlja2VyQWxwaGFJZDogc3RyaW5nO1xuICBwdWJsaWMgYWxwaGFDaGFubmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBhbGxvd1RyYW5zcGFyZW5jeTogYm9vbGVhbjtcbiAgcHVibGljIGFscGhhU2xpZGVyQ29sb3I6IHN0cmluZztcbiAgcHVibGljIGFycm93VG9wOiBudW1iZXI7XG4gIHB1YmxpYyBmb3JtYXQ6IG51bWJlcjtcbiAgcHVibGljIGhleFRleHQ6IHN0cmluZztcbiAgcHVibGljIGhzbGFUZXh0OiBTa3lDb2xvcnBpY2tlckhzbGE7XG4gIHB1YmxpYyBodWVTbGlkZXJDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgb3V0cHV0Rm9ybWF0OiBzdHJpbmc7XG4gIHB1YmxpYyBwcmVzZXRDb2xvcnM6IEFycmF5PHN0cmluZz47XG4gIHB1YmxpYyByZXR1cm5Gb3JtYXQ6IHN0cmluZztcbiAgcHVibGljIHJnYmFUZXh0OiBTa3lDb2xvcnBpY2tlclJnYmE7XG4gIHB1YmxpYyBzZWxlY3RlZENvbG9yOiBTa3lDb2xvcnBpY2tlck91dHB1dDtcbiAgcHVibGljIHNsaWRlcjogU2xpZGVyUG9zaXRpb247XG4gIHB1YmxpYyBpY29uQ29sb3I6IHN0cmluZztcbiAgcHVibGljIGluaXRpYWxDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgbGFzdEFwcGxpZWRDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgaXNQaWNrZXJWaXNpYmxlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnBpY2tlckJ1dHRvbkljb24pIHtcbiAgICAgIHRoaXMuaWNvbkNvbG9yID0gdGhpcy5nZXRBY2Nlc3NpYmxlSWNvbkNvbG9yKHRoaXMuc2VsZWN0ZWRDb2xvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBiYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSB8fCAnI2ZmZic7XG4gIH1cblxuICBwdWJsaWMgY29sb3JwaWNrZXJJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaXNWaXNpYmxlID0gdHJ1ZTtcblxuICBwdWJsaWMgdHJpZ2dlckJ1dHRvbklkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29sb3JwaWNrZXJUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgcHJpdmF0ZSBjb2xvcnBpY2tlclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJCdXR0b25SZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHJpdmF0ZSB0cmlnZ2VyQnV0dG9uUmVmOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbG9ycGlja2VyUmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gIH0pXG4gIHByaXZhdGUgc2V0IGNvbG9ycGlja2VyUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb2xvcnBpY2tlclJlZiA9IHZhbHVlO1xuICAgICAgdGhpcy5kZXN0cm95QWZmaXhlcigpO1xuXG4gICAgICB0aGlzLnJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICB0aGlzLnBpY2tlclVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBjb2xvcnBpY2tlciBoYXMgZnVsbHkgcmVuZGVyZWQgYmVmb3JlIGFkZGluZyB0aGUgYWZmaXhlci4gQWRkZWQgdG8gYWRkcmVzcyBhXG4gICAgICAvLyByYWNlIGNvbmRpdGlvbiB3aGVuIHJ1bm5pbmcgdW5kZXIgcHJvZHVjdGlvbiBjb25kaXRpb25zLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQWZmaXhlcigpO1xuICAgICAgICB0aGlzLmlzUGlja2VyVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5jb3JlQWRhcHRlci5nZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgJy5za3ktY29sb3JwaWNrZXInLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBjb2xvcnBpY2tlclJlZigpOiBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3JwaWNrZXJSZWY7XG4gIH1cblxuICBwcml2YXRlIGhzdmE6IFNreUNvbG9ycGlja2VySHN2YTtcbiAgcHJpdmF0ZSBzbGlkZXJEaW1NYXg6IFNsaWRlckRpbWVuc2lvbjtcbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIGFmZml4ZXI6IFNreUFmZml4ZXI7XG5cbiAgcHJpdmF0ZSBvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBwaWNrZXJVbnN1YnNjcmliZTogU3ViamVjdDx2b2lkPjtcblxuICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29sb3JwaWNrZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFmZml4U2VydmljZTogU2t5QWZmaXhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBTa3lPdmVybGF5U2VydmljZSxcbiAgICBwcml2YXRlIHNlcnZpY2U6IFNreUNvbG9ycGlja2VyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlXG4gICkge1xuICAgIGNvbXBvbmVudElkSW5kZXgrKztcblxuICAgIHRoaXMuaWRJbmRleCA9IGNvbXBvbmVudElkSW5kZXg7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlclJlZElkID0gJ3NreS1jb2xvcnBpY2tlci1yZWQtJyArIHRoaXMuaWRJbmRleDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VySGV4SWQgPSAnc2t5LWNvbG9ycGlja2VyLWhleC0nICsgdGhpcy5pZEluZGV4O1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJSZWRJZCA9ICdza3ktY29sb3JwaWNrZXItcmVkLScgKyB0aGlzLmlkSW5kZXg7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckdyZWVuSWQgPSAnc2t5LWNvbG9ycGlja2VyLWdyZWVuLScgKyB0aGlzLmlkSW5kZXg7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckJsdWVJZCA9ICdza3ktY29sb3JwaWNrZXItYmx1ZS0nICsgdGhpcy5pZEluZGV4O1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJBbHBoYUlkID0gJ3NreS1jb2xvcnBpY2tlci1hbHBoYS0nICsgdGhpcy5pZEluZGV4O1xuICAgIHRoaXMuY29sb3JwaWNrZXJJZCA9IGBza3ktY29sb3JwaWNrZXItJHt0aGlzLmlkSW5kZXh9YDtcbiAgICB0aGlzLnRyaWdnZXJCdXR0b25JZCA9IGBza3ktY29sb3JwaWNrZXItYnV0dG9uLSR7dGhpcy5pZEluZGV4fWA7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlhbG9nKFxuICAgIGluc3RhbmNlOiBhbnksXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjb2xvcjogYW55LFxuICAgIG91dHB1dEZvcm1hdDogc3RyaW5nLFxuICAgIHByZXNldENvbG9yczogQXJyYXk8c3RyaW5nPixcbiAgICBhbHBoYUNoYW5uZWw6IHN0cmluZyxcbiAgICBhbGxvd1RyYW5zcGFyZW5jeTogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxDb2xvciA9IGNvbG9yO1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gb3V0cHV0Rm9ybWF0O1xuICAgIHRoaXMucHJlc2V0Q29sb3JzID0gcHJlc2V0Q29sb3JzO1xuICAgIHRoaXMuYWxwaGFDaGFubmVsID0gYWxwaGFDaGFubmVsO1xuICAgIHRoaXMuYWxsb3dUcmFuc3BhcmVuY3kgPSBhbGxvd1RyYW5zcGFyZW5jeTtcblxuICAgIGlmICh0aGlzLm91dHB1dEZvcm1hdCA9PT0gJ3JnYmEnKSB7XG4gICAgICB0aGlzLmZvcm1hdCA9IDE7XG4gICAgfSBlbHNlIGlmICh0aGlzLm91dHB1dEZvcm1hdCA9PT0gJ2hzbGEnKSB7XG4gICAgICB0aGlzLmZvcm1hdCA9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybWF0ID0gMDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zbGlkZXJEaW1NYXggPSBuZXcgU2xpZGVyRGltZW5zaW9uKDE4MiwgMjcwLCAxNzAsIDE4Mik7XG4gICAgdGhpcy5zbGlkZXIgPSBuZXcgU2xpZGVyUG9zaXRpb24oMCwgMCwgMCwgMCk7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreUNvbG9ycGlja2VyTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuYWRkVHJpZ2dlckJ1dHRvbkV2ZW50TGlzdGVuZXJzKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRoZW1lU3ZjKSB7XG4gICAgICB0aGlzLnRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh0aGVtZVNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBjb25zdCB0aGVtZU5hbWUgPSB0aGVtZVNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncz8udGhlbWU/Lm5hbWU7XG5cbiAgICAgICAgICAvLyBIdWUvYWxwaGEgc2xpZGVyIGJhcnMgaGF2ZSBkaWZmZXJlbnQgd2lkdGhzIGluIE1vZGVybiB0aGVtZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICBpZiAodGhlbWVOYW1lID09PSAnbW9kZXJuJykge1xuICAgICAgICAgICAgdGhpcy5zbGlkZXJEaW1NYXggPSBuZXcgU2xpZGVyRGltZW5zaW9uKDE3NCwgMjcwLCAxNzAsIDE3NCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyRGltTWF4ID0gbmV3IFNsaWRlckRpbWVuc2lvbigxODIsIDI3MCwgMTcwLCAxODIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLnJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5kZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRyaWdnZXJCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlKFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuT3Blbik7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VQaWNrZXIoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLnJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy50cmlnZ2VyQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uQXBwbHlDb2xvckNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvckNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ29sb3IpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvckFwcGxpZWQuZW1pdCh7IGNvbG9yOiB0aGlzLnNlbGVjdGVkQ29sb3IgfSk7XG4gICAgdGhpcy5sYXN0QXBwbGllZENvbG9yID0gdGhpcy5zZWxlY3RlZENvbG9yLnJnYmFUZXh0O1xuICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMubGFzdEFwcGxpZWRDb2xvcik7XG4gICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gdGhpcy5zZWxlY3RlZENvbG9yLnJnYmFUZXh0O1xuICAgIHRoaXMuY2xvc2VQaWNrZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgIC8vIFJldmVydCBwaWNrZXIgdmFsdWVzIGJhY2sgdG8gcHJldmlvdXMgY29sb3IuXG4gICAgdGhpcy51cGRhdGVQaWNrZXJWYWx1ZXModGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5KTtcbiAgICB0aGlzLmNsb3NlUGlja2VyKCk7XG4gIH1cblxuICBwdWJsaWMgb25QcmVzZXRDbGljayh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVQaWNrZXJWYWx1ZXModmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9uUmVzZXRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlKFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuUmVzZXQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBpY2tlclZhbHVlcyh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaHN2YSA9IHRoaXMuZ2V0SHN2YVZhbHVlKHZhbHVlKTtcbiAgICBpZiAoaHN2YSkge1xuICAgICAgdGhpcy5oc3ZhID0gaHN2YTtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBodWUoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICB0aGlzLmhzdmEuaHVlID0gY2hhbmdlLnhDb29yZGluYXRlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlZChjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICBjb25zdCByZ2JhID0gdGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKTtcbiAgICByZ2JhLnJlZCA9IGNoYW5nZS5jb2xvclZhbHVlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMuaHN2YSA9IHRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGdyZWVuKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIGNvbnN0IHJnYmEgPSB0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpO1xuICAgIHJnYmEuZ3JlZW4gPSBjaGFuZ2UuY29sb3JWYWx1ZSAvIGNoYW5nZS5tYXhSYW5nZTtcbiAgICB0aGlzLmhzdmEgPSB0aGlzLnNlcnZpY2UucmdiYVRvSHN2YShyZ2JhKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBibHVlKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIGNvbnN0IHJnYmEgPSB0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpO1xuICAgIHJnYmEuYmx1ZSA9IGNoYW5nZS5jb2xvclZhbHVlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMuaHN2YSA9IHRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFscGhhQXhpcyhjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQXhpcykge1xuICAgIHRoaXMuaHN2YS5hbHBoYSA9IGNoYW5nZS54Q29vcmRpbmF0ZSAvIGNoYW5nZS5tYXhSYW5nZTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBhbHBoYUNvbG9yKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIHRoaXMuaHN2YS5hbHBoYSA9IGNoYW5nZS5jb2xvclZhbHVlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGhleChjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICB0aGlzLnVwZGF0ZVBpY2tlclZhbHVlcyhjaGFuZ2UuY29sb3IpO1xuICB9XG5cbiAgcHVibGljIHNldCBzYXR1cmF0aW9uQW5kTGlnaHRuZXNzKHZhbHVlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICB0aGlzLmhzdmEuc2F0dXJhdGlvbiA9IHZhbHVlLnhDb29yZGluYXRlIC8gdmFsdWUueEF4aXM7XG4gICAgdGhpcy5oc3ZhLnZhbHVlID0gdmFsdWUueUNvb3JkaW5hdGUgLyB2YWx1ZS55QXhpcztcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBoc2xhOiBTa3lDb2xvcnBpY2tlckhzbGEgPSB0aGlzLnNlcnZpY2UuaHN2YTJoc2xhKHRoaXMuaHN2YSk7XG4gICAgY29uc3QgZEhzbGE6IFNreUNvbG9ycGlja2VySHNsYSA9IHRoaXMuc2VydmljZS5kZW5vcm1hbGl6ZUhTTEEoaHNsYSk7XG4gICAgY29uc3QgcmdiYTogU2t5Q29sb3JwaWNrZXJSZ2JhID0gdGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKTtcbiAgICBjb25zdCBkUmdiYTogU2t5Q29sb3JwaWNrZXJSZ2JhID0gdGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQShyZ2JhKTtcblxuICAgIGNvbnN0IGhzdmE6IFNreUNvbG9ycGlja2VySHN2YSA9IHtcbiAgICAgIGh1ZTogdGhpcy5oc3ZhLmh1ZSxcbiAgICAgIHNhdHVyYXRpb246IDEsXG4gICAgICB2YWx1ZTogMSxcbiAgICAgIGFscGhhOiAxLFxuICAgIH07XG5cbiAgICBjb25zdCBodWVSZ2JhID0gdGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQSh0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYShoc3ZhKSk7XG5cbiAgICB0aGlzLmhzbGFUZXh0ID0gZEhzbGE7XG4gICAgdGhpcy5yZ2JhVGV4dCA9IGRSZ2JhO1xuICAgIHRoaXMuaGV4VGV4dCA9IHRoaXMuc2VydmljZS5oZXhUZXh0KGRSZ2JhLCB0aGlzLmFscGhhQ2hhbm5lbCA9PT0gJ2hleDgnKTtcblxuICAgIHRoaXMuYWxwaGFTbGlkZXJDb2xvciA9IGByZ2JhKCR7ZFJnYmEucmVkfSwke2RSZ2JhLmdyZWVufSwke2RSZ2JhLmJsdWV9LCR7ZFJnYmEuYWxwaGF9KWA7XG4gICAgdGhpcy5odWVTbGlkZXJDb2xvciA9IGByZ2JhKCR7aHVlUmdiYS5yZWR9LCR7aHVlUmdiYS5ncmVlbn0sJHtodWVSZ2JhLmJsdWV9LCR7cmdiYS5hbHBoYX0pYDtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZm9ybWF0ID09PSAwICYmXG4gICAgICB0aGlzLmhzdmEuYWxwaGEgPCAxICYmXG4gICAgICB0aGlzLmFscGhhQ2hhbm5lbCA9PT0gJ2hleDYnXG4gICAgKSB7XG4gICAgICB0aGlzLmZvcm1hdCsrO1xuICAgIH1cblxuICAgIHRoaXMuc2VydmljZS5vdXRwdXRGb3JtYXQoXG4gICAgICB0aGlzLmhzdmEsXG4gICAgICB0aGlzLm91dHB1dEZvcm1hdCxcbiAgICAgIHRoaXMuYWxwaGFDaGFubmVsID09PSAnaGV4OCdcbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IHRoaXMuc2VydmljZS5za3lDb2xvcnBpY2tlck91dCh0aGlzLmhzdmEpO1xuXG4gICAgdGhpcy51cGRhdGVTbGlkZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2xpZGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhzdmEgJiYgdGhpcy5zbGlkZXJEaW1NYXgpIHtcbiAgICAgIHRoaXMuc2xpZGVyID0gbmV3IFNsaWRlclBvc2l0aW9uKFxuICAgICAgICB0aGlzLmhzdmEuaHVlICogdGhpcy5zbGlkZXJEaW1NYXguaHVlIC0gOCxcbiAgICAgICAgdGhpcy5oc3ZhLnNhdHVyYXRpb24gKiB0aGlzLnNsaWRlckRpbU1heC5zYXR1cmF0aW9uIC0gOCxcbiAgICAgICAgKDEgLSB0aGlzLmhzdmEudmFsdWUpICogdGhpcy5zbGlkZXJEaW1NYXgudmFsdWUgLSA4LFxuICAgICAgICB0aGlzLmhzdmEuYWxwaGEgKiB0aGlzLnNsaWRlckRpbU1heC5hbHBoYSAtIDhcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuUGlja2VyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNQaWNrZXJWaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5yZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHNlbmRNZXNzYWdlKHR5cGU6IFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUpIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGUgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZTogU2t5Q29sb3JwaWNrZXJNZXNzYWdlKSB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5PcGVuOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5vcGVuUGlja2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5DbG9zZTpcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuUmVzZXQ6XG4gICAgICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMuaW5pdGlhbENvbG9yKTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gdGhpcy5pbml0aWFsQ29sb3I7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvckNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ29sb3IpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29sb3JBcHBsaWVkLmVtaXQoeyBjb2xvcjogdGhpcy5zZWxlY3RlZENvbG9yIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLlRvZ2dsZVJlc2V0QnV0dG9uOlxuICAgICAgICB0aGlzLnNob3dSZXNldEJ1dHRvbiA9ICF0aGlzLnNob3dSZXNldEJ1dHRvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBZmZpeGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFmZml4ZXIgPSB0aGlzLmFmZml4U2VydmljZS5jcmVhdGVBZmZpeGVyKHRoaXMuY29sb3JwaWNrZXJSZWYpO1xuXG4gICAgYWZmaXhlci5wbGFjZW1lbnRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnBpY2tlclVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmlzUGlja2VyVmlzaWJsZSA9IGNoYW5nZS5wbGFjZW1lbnQgIT09IG51bGw7XG4gICAgICB9KTtcblxuICAgIGFmZml4ZXIuYWZmaXhUbyh0aGlzLnRyaWdnZXJCdXR0b25SZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgYXV0b0ZpdENvbnRleHQ6IFNreUFmZml4QXV0b0ZpdENvbnRleHQuVmlld3BvcnQsXG4gICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogJ2xlZnQnLFxuICAgICAgaXNTdGlja3k6IHRydWUsXG4gICAgICBwbGFjZW1lbnQ6ICdiZWxvdycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFmZml4ZXIgPSBhZmZpeGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95QWZmaXhlcigpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy5hZmZpeGVyKSB7XG4gICAgICB0aGlzLmFmZml4ZXIuZGVzdHJveSgpO1xuICAgICAgdGhpcy5hZmZpeGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgZW5hYmxlQ2xvc2U6IGZhbHNlLFxuICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICBlbmFibGVTY3JvbGw6IHRydWUsXG4gICAgfSk7XG5cbiAgICBvdmVybGF5LmF0dGFjaFRlbXBsYXRlKHRoaXMuY29sb3JwaWNrZXJUZW1wbGF0ZVJlZik7XG5cbiAgICB0aGlzLm92ZXJsYXkgPSBvdmVybGF5O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy5vdmVybGF5KSB7XG4gICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMub3ZlcmxheSk7XG4gICAgICB0aGlzLm92ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmlnZ2VyQnV0dG9uRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdy5kb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChrZXkgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucGlja2VyVW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMucGlja2VyVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgdGhpcy5waWNrZXJVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5waWNrZXJVbnN1YnNjcmliZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEhzdmFWYWx1ZSh2YWx1ZTogc3RyaW5nKTogU2t5Q29sb3JwaWNrZXJIc3ZhIHtcbiAgICBsZXQgaHN2YTogU2t5Q29sb3JwaWNrZXJIc3ZhO1xuXG4gICAgaWYgKHRoaXMuYWxwaGFDaGFubmVsID09PSAnaGV4OCcpIHtcbiAgICAgIGhzdmEgPSB0aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHZhbHVlLCB0cnVlKTtcbiAgICAgIGlmICghaHN2YSAmJiAhdGhpcy5oc3ZhKSB7XG4gICAgICAgIGhzdmEgPSB0aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHZhbHVlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGhzdmEgPSB0aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHZhbHVlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhzdmE7XG4gIH1cblxuICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9BRVJUI2NvbG9yLWNvbnRyYXN0XG4gIHByaXZhdGUgZ2V0QWNjZXNzaWJsZUljb25Db2xvcihcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFNreUNvbG9ycGlja2VyT3V0cHV0XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgcmdiID0gYmFja2dyb3VuZENvbG9yLnJnYmE7XG4gICAgY29uc3QgYnJpZ2h0bmVzcyA9IE1hdGgucm91bmQoXG4gICAgICAocmdiLnJlZCAqIDI5OSArIHJnYi5ncmVlbiAqIDU4NyArIHJnYi5ibHVlICogMTE0KSAvIDEwMDBcbiAgICApO1xuICAgIHJldHVybiBicmlnaHRuZXNzID4gMTI1ID8gJ3JnYigwLCAwLCAwKScgOiAncmdiKDI1NSwgMjU1LCAyNTUpJztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWNvbG9ycGlja2VyLWhpZGRlbic6ICFpc1Zpc2libGUsXG4gICAgJ3NreS1jb2xvcnBpY2tlci1kaXNhYmxlZCc6IGRpc2FibGVkXG4gIH1cIlxuPlxuICA8ZGl2IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWJ1dHRvblwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc09wZW4gPyBjb2xvcnBpY2tlcklkIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICBsYWJlbCB8fFxuICAgICAgKGxhYmVsbGVkQnlcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogKCdza3l1eF9jb2xvcnBpY2tlcl9kcm9wZG93bl9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzKSlcbiAgICBcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5pZF09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgbGFiZWwgfHxcbiAgICAgIChsYWJlbGxlZEJ5XG4gICAgICAgID8gbnVsbFxuICAgICAgICA6ICgnc2t5dXhfY29sb3JwaWNrZXJfZHJvcGRvd25fYnV0dG9uJyB8IHNreUxpYlJlc291cmNlcykpXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29sb3JwaWNrZXItYnV0dG9uLWRpc2FibGVkJzogZGlzYWJsZWRcbiAgICB9XCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAnc2t5LW1hcmdpbi1pbmxpbmUtc20nOiAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhY2tncm91bmRDb2xvckZvckRpc3BsYXlcIlxuICAgIChjbGljayk9XCJvblRyaWdnZXJCdXR0b25DbGljaygpXCJcbiAgICAjdHJpZ2dlckJ1dHRvblJlZlxuICA+XG4gICAgPHNreS1pY29uXG4gICAgICAqbmdJZj1cInBpY2tlckJ1dHRvbkljb25cIlxuICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItYnV0dG9uLWljb25cIlxuICAgICAgW2ljb25dPVwicGlja2VyQnV0dG9uSWNvblwiXG4gICAgICBbaWNvblR5cGVdPVwicGlja2VyQnV0dG9uSWNvblR5cGVcIlxuICAgICAgW3NpemVdPVwiJzF4J1wiXG4gICAgICBbc3R5bGUuY29sb3JdPVwiaWNvbkNvbG9yXCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ21vZGVybidcIj5cbiAgICAgIDxza3ktaWNvblxuICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1idXR0b24tbW9kZXJuLWNoZXZyb25cIlxuICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWNvbG9ycGlja2VyLWJ1dHRvbi1tb2Rlcm4tY2hldnJvbi1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG5cbiAgPG5nLXRlbXBsYXRlICNjb2xvcnBpY2tlclRlbXBsYXRlUmVmPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNvbnRhaW5lclwiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgICAgW2F0dHIuaWRdPVwiY29sb3JwaWNrZXJJZFwiXG4gICAgICBbaGlkZGVuXT1cIiFpc1BpY2tlclZpc2libGVcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXNoYWRvdyc6ICdkZWZhdWx0JyxcbiAgICAgICAgJ3NreS1lbGV2YXRpb24tNCc6ICdtb2Rlcm4nXG4gICAgICB9XCJcbiAgICAgICNjb2xvcnBpY2tlclJlZlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktY29sb3JwaWNrZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2F0dXJhdGlvbi1saWdodG5lc3NcIlxuICAgICAgICAgIFtjb2xvcl09XCJzbGlkZXIuc2F0dXJhdGlvbiAtIHNsaWRlci52YWx1ZVwiXG4gICAgICAgICAgW3NreUNvbG9ycGlja2VyU2xpZGVyXVxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImh1ZVNsaWRlckNvbG9yXCJcbiAgICAgICAgICBbeEF4aXNdPVwiMVwiXG4gICAgICAgICAgW3lBeGlzXT1cIjFcIlxuICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cInNhdHVyYXRpb25BbmRMaWdodG5lc3MgPSAkZXZlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3Igc2t5LXJvdW5kZWQtY2lyY2xlXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5zYXR1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzdHlsZS50b3AucHhdPVwic2xpZGVyLnZhbHVlXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmQgc2t5LXJvdW5kZWQtY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtY29sb3Igc2t5LXJvdW5kZWQtY2lyY2xlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwic2VsZWN0ZWRDb2xvcj8ucmdiYVRleHRcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImh1ZVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclNsaWRlcl1cbiAgICAgICAgICAgICAgW3hBeGlzXT1cIjFcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJodWUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgICAjaHVlU2xpZGVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5odWVcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLmFsbG93VHJhbnNwYXJlbmN5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhbHBoYVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclNsaWRlcl1cbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYWxwaGFTbGlkZXJDb2xvclwiXG4gICAgICAgICAgICAgIFt4QXhpc109XCIxXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiYWxwaGFBeGlzID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgI2FscGhhU2xpZGVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5hbHBoYVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicmdiYS10ZXh0XCI+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfaGV4JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckhleElkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2hleCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIl4jPyhbQS1GYS1mMC05XXs2fXxbQS1GYS1mMC05XXszfSkkXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJIZXhJZFwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJoZXhUZXh0XCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiaGV4ID0gJGV2ZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgICAgIDxza3ktaW5wdXQtYm94PlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9hcmlhX3JlZCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgICAgICBbYXR0ci5mb3JdPVwic2t5Q29sb3JwaWNrZXJSZWRJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9yZWQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyUmVkSWRcIlxuICAgICAgICAgICAgICBbbWF4UmFuZ2VdPVwiMjU1XCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5yZWRcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJyZWQgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfZ3JlZW4nIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckdyZWVuSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfZ3JlZW4nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyR3JlZW5JZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIyNTVcIlxuICAgICAgICAgICAgICBbc2t5Q29sb3JwaWNrZXJUZXh0XVxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmdiYVRleHQ/LmdyZWVuXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiZ3JlZW4gPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfYmx1ZScgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cInNreUNvbG9ycGlja2VyQmx1ZUlkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2JsdWUnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyQmx1ZUlkXCJcbiAgICAgICAgICAgICAgW21heFJhbmdlXT1cIjI1NVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJyZ2JhVGV4dD8uYmx1ZVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImJsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3ggKm5nSWY9XCJ0aGlzLmFsbG93VHJhbnNwYXJlbmN5XCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfYWxwaGEnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckFscGhhSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfYWxwaGEnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjFcIlxuICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT9cIlxuICAgICAgICAgICAgICBzdGVwPVwiMC4xXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyQWxwaGFJZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIxXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5hbHBoYVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImFscGhhQ29sb3IgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJwcmVzZXRDb2xvcnMgJiYgcHJlc2V0Q29sb3JzLmxlbmd0aFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItcHJlc2V0LWNvbG9yLWFyZWFcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHByZXNldENvbG9ycyB8IHNsaWNlOiAwOjEyOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgKCdza3l1eF9jb2xvcnBpY2tlcl9wcmVzZXRfY29sb3InIHwgc2t5TGliUmVzb3VyY2VzKSArICcgJyArIGNvbG9yXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LXByZXNldC1jb2xvcic6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgJ3NreS1idG4gc2t5LWJ0bi1saW5rJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25QcmVzZXRDbGljayhjb2xvcilcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1mb290ZXJcIlxuICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1wYWRkaW5nLWV2ZW4tbGFyZ2UnOiAnZGVmYXVsdCdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNvbHVtblwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LWJ0bi1jb2xvcnBpY2tlci1hcHBseVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FwcGx5JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktbWFyZ2luLWlubGluZS1zbSc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlDb2xvckNsaWNrKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9hcHBseScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1idG4tY29sb3JwaWNrZXItY2xvc2VcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9jbG9zZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2Nsb3NlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImFsbG93VHJhbnNwYXJlbmN5XCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNoZWNrZXJlZC1iYWNrZ3JvdW5kXCJcbiAgPlxuICA8L3NwYW4+XG5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2hvd1Jlc2V0QnV0dG9uXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9yZXNldCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1jb2xvcnBpY2tlci1yZXNldC1idXR0b24tZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICdza3ktY29sb3JwaWNrZXItcmVzZXQtYnV0dG9uJzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LWNvbG9ycGlja2VyLXJlc2V0LWJ1dHRvbi1tb2Rlcm4nOlxuICAgICAgICAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIChjbGljayk9XCJvblJlc2V0Q2xpY2soKVwiXG4gID5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwidGltZXNcIiBzaXplPVwic21cIj4gPC9za3ktaWNvbj5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJ0cmFzaFwiIGljb25UeXBlPVwic2t5dXhcIiBzaXplPVwibGdcIj5cbiAgICA8L3NreS1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
412
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9ycGlja2VyL3NyYy9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvc3JjL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixlQUFlLEVBRWYscUJBQXFCLEVBRXJCLGlCQUFpQixHQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTTlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7OztBQUs3RSxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUV6Qjs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLHVCQUF1QjtJQXlLbEMsWUFDVSxZ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O2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFVQyxVQUFVO3NCQURoQixLQUFLO2dCQU9DLG9CQUFvQjtzQkFEMUIsTUFBTTtnQkFPQSxvQkFBb0I7c0JBRDFCLE1BQU07Z0JBUUEsYUFBYTtzQkFEbkIsS0FBSztnQkFPQyxlQUFlO3NCQURyQixLQUFLO2dCQTRERSxzQkFBc0I7c0JBSDdCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUU7d0JBQ25DLElBQUksRUFBRSxXQUFXO3FCQUNsQjtnQkFNTyxnQkFBZ0I7c0JBSHZCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUU7d0JBQzdCLElBQUksRUFBRSxVQUFVO3FCQUNqQjtnQkFNVyxjQUFjO3NCQUh6QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFO3dCQUMzQixJQUFJLEVBQUUsVUFBVTtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTbGlkZXJEaW1lbnNpb24sIFNsaWRlclBvc2l0aW9uIH0gZnJvbSAnLi9jb2xvcnBpY2tlci1jbGFzc2VzJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyU2VydmljZSB9IGZyb20gJy4vY29sb3JwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLWF4aXMnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvciB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItY29sb3InO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJIc2xhIH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1oc2xhJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VySHN2YSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItaHN2YSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlck1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyT3V0cHV0IH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1vdXRwdXQnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJSZXN1bHQgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLXJlc3VsdCc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlclJnYmEgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLXJnYmEnO1xuXG5sZXQgY29tcG9uZW50SWRJbmRleCA9IDA7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBTS1kgVVgtdGhlbWVkIHJlcGxhY2VtZW50IGZvciB0aGUgSFRNTCBgaW5wdXRgIGVsZW1lbnQgd2l0aCBgdHlwZT1cImNvbG9yXCJgLlxuICogVGhlIHZhbHVlIHRoYXQgdXNlcnMgc2VsZWN0IGlzIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHNwZWNpZmllZCBvblxuICogdGhlIGBpbnB1dGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWNvbG9ycGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9ycGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3JwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5Q29sb3JwaWNrZXJTZXJ2aWNlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29sb3JwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIFtGb250IEF3ZXNvbWUgNC43XShodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NC43L2ljb25zLykgaWNvbiB0byBvdmVybGF5IG9uIHRvcCBvZiB0aGUgcGlja2VyLiBEbyBub3Qgc3BlY2lmeSB0aGUgYGZhIGZhLWAgY2xhc3Nlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGlja2VyQnV0dG9uSWNvbj86IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGljb24gdG8gZGlzcGxheS4gU3BlY2lmeWluZyBgZmFgIHdpbGwgZGlzcGxheSBhIEZvbnQgQXdlc29tZSBpY29uLCB3aGlsZSBzcGVjaWZ5aW5nIGBza3l1eGAgd2lsbCBkaXNwbGF5IGFuIGljb24gZnJvbSB0aGUgY3VzdG9tIFNLWSBVWCBpY29uIGZvbnQuIE5vdGUgdGhhdCB0aGUgY3VzdG9tIFNLWSBVWCBpY29uIGZvbnQgaXMgY3VycmVudGx5IGluIGJldGEuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBpY2tlckJ1dHRvbkljb25UeXBlPzogc3RyaW5nID0gJ2ZhJztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgbGFiZWwgZm9yIHRoZSBjb2xvcnBpY2tlci4gVGhpcyBzZXRzIHRoZSBjb2xvcnBpY2tlcidzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94I2FjY2Vzc2liaWxpdHkpXG4gICAqIHdoZW4gdGhlIGNvbG9ycGlja2VyIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLiBJZiB0aGUgY29sb3JwaWNrZXIgaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IFwiU2VsZWN0IGNvbG9yIHZhbHVlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudCBJRCAod2l0aG91dCB0aGUgbGVhZGluZyBgI2ApIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHRoZVxuICAgKiBjb2xvcnBpY2tlci4gVGhpcyBzZXRzIHRoZSBjb2xvcnBpY2tlcidzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSBjb2xvcnBpY2tlciBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbCwgdXNlIGBsYWJlbGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbGxlZEJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0IGEgY29sb3IgaW4gdGhlIGNvbG9ycGlja2VyLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENvbG9yQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5Q29sb3JwaWNrZXJPdXRwdXQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgc2VsZWN0ICoqQXBwbHkqKiBpbiB0aGUgY29sb3JwaWNrZXIgdG8gYXBwbHkgYSBjb2xvci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb2xvckFwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUNvbG9ycGlja2VyUmVzdWx0PigpO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhbiBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIGNvbG9ycGlja2VyLiBUaGUgY29tbWFuZHMgc2hvdWxkXG4gICAqIHJlc3BlY3QgdGhlIGBTa3lDb2xvclBpY2tlck1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUNvbG9ycGlja2VyTWVzc2FnZT4oKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzcGxheSBhIHJlc2V0IGJ1dHRvbiB0byBsZXQgdXNlcnMgcmV0dXJuIHRvIHRoZSBkZWZhdWx0IGNvbG9yLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dSZXNldEJ1dHRvbiA9IHRydWU7XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGlkSW5kZXg6IG51bWJlcjtcbiAgcHVibGljIHNreUNvbG9ycGlja2VySGV4SWQ6IHN0cmluZztcbiAgcHVibGljIHNreUNvbG9ycGlja2VyUmVkSWQ6IHN0cmluZztcbiAgcHVibGljIHNreUNvbG9ycGlja2VyR3JlZW5JZDogc3RyaW5nO1xuICBwdWJsaWMgc2t5Q29sb3JwaWNrZXJCbHVlSWQ6IHN0cmluZztcbiAgcHVibGljIHNreUNvbG9ycGlja2VyQWxwaGFJZDogc3RyaW5nO1xuICBwdWJsaWMgYWxwaGFDaGFubmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBhbGxvd1RyYW5zcGFyZW5jeTogYm9vbGVhbjtcbiAgcHVibGljIGFscGhhU2xpZGVyQ29sb3I6IHN0cmluZztcbiAgcHVibGljIGFycm93VG9wOiBudW1iZXI7XG4gIHB1YmxpYyBmb3JtYXQ6IG51bWJlcjtcbiAgcHVibGljIGhleFRleHQ6IHN0cmluZztcbiAgcHVibGljIGhzbGFUZXh0OiBTa3lDb2xvcnBpY2tlckhzbGE7XG4gIHB1YmxpYyBodWVTbGlkZXJDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgb3V0cHV0Rm9ybWF0OiBzdHJpbmc7XG4gIHB1YmxpYyBwcmVzZXRDb2xvcnM6IEFycmF5PHN0cmluZz47XG4gIHB1YmxpYyByZXR1cm5Gb3JtYXQ6IHN0cmluZztcbiAgcHVibGljIHJnYmFUZXh0OiBTa3lDb2xvcnBpY2tlclJnYmE7XG4gIHB1YmxpYyBzZWxlY3RlZENvbG9yOiBTa3lDb2xvcnBpY2tlck91dHB1dDtcbiAgcHVibGljIHNsaWRlcjogU2xpZGVyUG9zaXRpb247XG4gIHB1YmxpYyBpY29uQ29sb3I6IHN0cmluZztcbiAgcHVibGljIGluaXRpYWxDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgbGFzdEFwcGxpZWRDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgaXNQaWNrZXJWaXNpYmxlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnBpY2tlckJ1dHRvbkljb24pIHtcbiAgICAgIHRoaXMuaWNvbkNvbG9yID0gdGhpcy5nZXRBY2Nlc3NpYmxlSWNvbkNvbG9yKHRoaXMuc2VsZWN0ZWRDb2xvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBiYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5fYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSB8fCAnI2ZmZic7XG4gIH1cblxuICBwdWJsaWMgY29sb3JwaWNrZXJJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaXNWaXNpYmxlID0gdHJ1ZTtcblxuICBwdWJsaWMgdHJpZ2dlckJ1dHRvbklkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29sb3JwaWNrZXJUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgcHJpdmF0ZSBjb2xvcnBpY2tlclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJCdXR0b25SZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHJpdmF0ZSB0cmlnZ2VyQnV0dG9uUmVmOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbG9ycGlja2VyUmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gIH0pXG4gIHByaXZhdGUgc2V0IGNvbG9ycGlja2VyUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb2xvcnBpY2tlclJlZiA9IHZhbHVlO1xuICAgICAgdGhpcy5kZXN0cm95QWZmaXhlcigpO1xuXG4gICAgICB0aGlzLnJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICB0aGlzLnBpY2tlclVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBjb2xvcnBpY2tlciBoYXMgZnVsbHkgcmVuZGVyZWQgYmVmb3JlIGFkZGluZyB0aGUgYWZmaXhlci4gQWRkZWQgdG8gYWRkcmVzcyBhXG4gICAgICAvLyByYWNlIGNvbmRpdGlvbiB3aGVuIHJ1bm5pbmcgdW5kZXIgcHJvZHVjdGlvbiBjb25kaXRpb25zLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlQWZmaXhlcigpO1xuICAgICAgICB0aGlzLmlzUGlja2VyVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5jb3JlQWRhcHRlci5nZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgJy5za3ktY29sb3JwaWNrZXInLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBjb2xvcnBpY2tlclJlZigpOiBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3JwaWNrZXJSZWY7XG4gIH1cblxuICBwcml2YXRlIGhzdmE6IFNreUNvbG9ycGlja2VySHN2YTtcbiAgcHJpdmF0ZSBzbGlkZXJEaW1NYXg6IFNsaWRlckRpbWVuc2lvbjtcbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIGFmZml4ZXI6IFNreUFmZml4ZXI7XG5cbiAgcHJpdmF0ZSBvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2U7XG5cbiAgcHJpdmF0ZSBwaWNrZXJVbnN1YnNjcmliZTogU3ViamVjdDx2b2lkPjtcblxuICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29sb3JwaWNrZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFmZml4U2VydmljZTogU2t5QWZmaXhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBTa3lPdmVybGF5U2VydmljZSxcbiAgICBwcml2YXRlIHNlcnZpY2U6IFNreUNvbG9ycGlja2VyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlXG4gICkge1xuICAgIGNvbXBvbmVudElkSW5kZXgrKztcblxuICAgIHRoaXMuaWRJbmRleCA9IGNvbXBvbmVudElkSW5kZXg7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlclJlZElkID0gJ3NreS1jb2xvcnBpY2tlci1yZWQtJyArIHRoaXMuaWRJbmRleDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VySGV4SWQgPSAnc2t5LWNvbG9ycGlja2VyLWhleC0nICsgdGhpcy5pZEluZGV4O1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJSZWRJZCA9ICdza3ktY29sb3JwaWNrZXItcmVkLScgKyB0aGlzLmlkSW5kZXg7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckdyZWVuSWQgPSAnc2t5LWNvbG9ycGlja2VyLWdyZWVuLScgKyB0aGlzLmlkSW5kZXg7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckJsdWVJZCA9ICdza3ktY29sb3JwaWNrZXItYmx1ZS0nICsgdGhpcy5pZEluZGV4O1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJBbHBoYUlkID0gJ3NreS1jb2xvcnBpY2tlci1hbHBoYS0nICsgdGhpcy5pZEluZGV4O1xuICAgIHRoaXMuY29sb3JwaWNrZXJJZCA9IGBza3ktY29sb3JwaWNrZXItJHt0aGlzLmlkSW5kZXh9YDtcbiAgICB0aGlzLnRyaWdnZXJCdXR0b25JZCA9IGBza3ktY29sb3JwaWNrZXItYnV0dG9uLSR7dGhpcy5pZEluZGV4fWA7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlhbG9nKFxuICAgIGluc3RhbmNlOiBhbnksXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjb2xvcjogYW55LFxuICAgIG91dHB1dEZvcm1hdDogc3RyaW5nLFxuICAgIHByZXNldENvbG9yczogQXJyYXk8c3RyaW5nPixcbiAgICBhbHBoYUNoYW5uZWw6IHN0cmluZyxcbiAgICBhbGxvd1RyYW5zcGFyZW5jeTogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxDb2xvciA9IGNvbG9yO1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gb3V0cHV0Rm9ybWF0O1xuICAgIHRoaXMucHJlc2V0Q29sb3JzID0gcHJlc2V0Q29sb3JzO1xuICAgIHRoaXMuYWxwaGFDaGFubmVsID0gYWxwaGFDaGFubmVsO1xuICAgIHRoaXMuYWxsb3dUcmFuc3BhcmVuY3kgPSBhbGxvd1RyYW5zcGFyZW5jeTtcblxuICAgIGlmICh0aGlzLm91dHB1dEZvcm1hdCA9PT0gJ3JnYmEnKSB7XG4gICAgICB0aGlzLmZvcm1hdCA9IDE7XG4gICAgfSBlbHNlIGlmICh0aGlzLm91dHB1dEZvcm1hdCA9PT0gJ2hzbGEnKSB7XG4gICAgICB0aGlzLmZvcm1hdCA9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybWF0ID0gMDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zbGlkZXJEaW1NYXggPSBuZXcgU2xpZGVyRGltZW5zaW9uKDE4MiwgMjcwLCAxNzAsIDE4Mik7XG4gICAgdGhpcy5zbGlkZXIgPSBuZXcgU2xpZGVyUG9zaXRpb24oMCwgMCwgMCwgMCk7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreUNvbG9ycGlja2VyTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuYWRkVHJpZ2dlckJ1dHRvbkV2ZW50TGlzdGVuZXJzKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRoZW1lU3ZjKSB7XG4gICAgICB0aGlzLnRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh0aGVtZVNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBjb25zdCB0aGVtZU5hbWUgPSB0aGVtZVNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncz8udGhlbWU/Lm5hbWU7XG5cbiAgICAgICAgICAvLyBIdWUvYWxwaGEgc2xpZGVyIGJhcnMgaGF2ZSBkaWZmZXJlbnQgd2lkdGhzIGluIE1vZGVybiB0aGVtZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICBpZiAodGhlbWVOYW1lID09PSAnbW9kZXJuJykge1xuICAgICAgICAgICAgdGhpcy5zbGlkZXJEaW1NYXggPSBuZXcgU2xpZGVyRGltZW5zaW9uKDE3NCwgMjcwLCAxNzAsIDE3NCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyRGltTWF4ID0gbmV3IFNsaWRlckRpbWVuc2lvbigxODIsIDI3MCwgMTcwLCAxODIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLnJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5kZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRyaWdnZXJCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlKFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuT3Blbik7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VQaWNrZXIoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLnJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy50cmlnZ2VyQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uQXBwbHlDb2xvckNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvckNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ29sb3IpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvckFwcGxpZWQuZW1pdCh7IGNvbG9yOiB0aGlzLnNlbGVjdGVkQ29sb3IgfSk7XG4gICAgdGhpcy5sYXN0QXBwbGllZENvbG9yID0gdGhpcy5zZWxlY3RlZENvbG9yLnJnYmFUZXh0O1xuICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMubGFzdEFwcGxpZWRDb2xvcik7XG4gICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gdGhpcy5zZWxlY3RlZENvbG9yLnJnYmFUZXh0O1xuICAgIHRoaXMuY2xvc2VQaWNrZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgIC8vIFJldmVydCBwaWNrZXIgdmFsdWVzIGJhY2sgdG8gcHJldmlvdXMgY29sb3IuXG4gICAgdGhpcy51cGRhdGVQaWNrZXJWYWx1ZXModGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5KTtcbiAgICB0aGlzLmNsb3NlUGlja2VyKCk7XG4gIH1cblxuICBwdWJsaWMgb25QcmVzZXRDbGljayh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVQaWNrZXJWYWx1ZXModmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9uUmVzZXRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlKFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuUmVzZXQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBpY2tlclZhbHVlcyh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaHN2YSA9IHRoaXMuZ2V0SHN2YVZhbHVlKHZhbHVlKTtcbiAgICBpZiAoaHN2YSkge1xuICAgICAgdGhpcy5oc3ZhID0gaHN2YTtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBodWUoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICB0aGlzLmhzdmEuaHVlID0gY2hhbmdlLnhDb29yZGluYXRlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlZChjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICBjb25zdCByZ2JhID0gdGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKTtcbiAgICByZ2JhLnJlZCA9IGNoYW5nZS5jb2xvclZhbHVlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMuaHN2YSA9IHRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGdyZWVuKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIGNvbnN0IHJnYmEgPSB0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpO1xuICAgIHJnYmEuZ3JlZW4gPSBjaGFuZ2UuY29sb3JWYWx1ZSAvIGNoYW5nZS5tYXhSYW5nZTtcbiAgICB0aGlzLmhzdmEgPSB0aGlzLnNlcnZpY2UucmdiYVRvSHN2YShyZ2JhKTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBibHVlKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIGNvbnN0IHJnYmEgPSB0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYSh0aGlzLmhzdmEpO1xuICAgIHJnYmEuYmx1ZSA9IGNoYW5nZS5jb2xvclZhbHVlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMuaHN2YSA9IHRoaXMuc2VydmljZS5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFscGhhQXhpcyhjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQXhpcykge1xuICAgIHRoaXMuaHN2YS5hbHBoYSA9IGNoYW5nZS54Q29vcmRpbmF0ZSAvIGNoYW5nZS5tYXhSYW5nZTtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBhbHBoYUNvbG9yKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIHRoaXMuaHN2YS5hbHBoYSA9IGNoYW5nZS5jb2xvclZhbHVlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGhleChjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICB0aGlzLnVwZGF0ZVBpY2tlclZhbHVlcyhjaGFuZ2UuY29sb3IpO1xuICB9XG5cbiAgcHVibGljIHNldCBzYXR1cmF0aW9uQW5kTGlnaHRuZXNzKHZhbHVlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICB0aGlzLmhzdmEuc2F0dXJhdGlvbiA9IHZhbHVlLnhDb29yZGluYXRlIC8gdmFsdWUueEF4aXM7XG4gICAgdGhpcy5oc3ZhLnZhbHVlID0gdmFsdWUueUNvb3JkaW5hdGUgLyB2YWx1ZS55QXhpcztcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBoc2xhOiBTa3lDb2xvcnBpY2tlckhzbGEgPSB0aGlzLnNlcnZpY2UuaHN2YTJoc2xhKHRoaXMuaHN2YSk7XG4gICAgY29uc3QgZEhzbGE6IFNreUNvbG9ycGlja2VySHNsYSA9IHRoaXMuc2VydmljZS5kZW5vcm1hbGl6ZUhTTEEoaHNsYSk7XG4gICAgY29uc3QgcmdiYTogU2t5Q29sb3JwaWNrZXJSZ2JhID0gdGhpcy5zZXJ2aWNlLmhzdmFUb1JnYmEodGhpcy5oc3ZhKTtcbiAgICBjb25zdCBkUmdiYTogU2t5Q29sb3JwaWNrZXJSZ2JhID0gdGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQShyZ2JhKTtcblxuICAgIGNvbnN0IGhzdmE6IFNreUNvbG9ycGlja2VySHN2YSA9IHtcbiAgICAgIGh1ZTogdGhpcy5oc3ZhLmh1ZSxcbiAgICAgIHNhdHVyYXRpb246IDEsXG4gICAgICB2YWx1ZTogMSxcbiAgICAgIGFscGhhOiAxLFxuICAgIH07XG5cbiAgICBjb25zdCBodWVSZ2JhID0gdGhpcy5zZXJ2aWNlLmRlbm9ybWFsaXplUkdCQSh0aGlzLnNlcnZpY2UuaHN2YVRvUmdiYShoc3ZhKSk7XG5cbiAgICB0aGlzLmhzbGFUZXh0ID0gZEhzbGE7XG4gICAgdGhpcy5yZ2JhVGV4dCA9IGRSZ2JhO1xuICAgIHRoaXMuaGV4VGV4dCA9IHRoaXMuc2VydmljZS5oZXhUZXh0KGRSZ2JhLCB0aGlzLmFscGhhQ2hhbm5lbCA9PT0gJ2hleDgnKTtcblxuICAgIHRoaXMuYWxwaGFTbGlkZXJDb2xvciA9IGByZ2JhKCR7ZFJnYmEucmVkfSwke2RSZ2JhLmdyZWVufSwke2RSZ2JhLmJsdWV9LCR7ZFJnYmEuYWxwaGF9KWA7XG4gICAgdGhpcy5odWVTbGlkZXJDb2xvciA9IGByZ2JhKCR7aHVlUmdiYS5yZWR9LCR7aHVlUmdiYS5ncmVlbn0sJHtodWVSZ2JhLmJsdWV9LCR7cmdiYS5hbHBoYX0pYDtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuZm9ybWF0ID09PSAwICYmXG4gICAgICB0aGlzLmhzdmEuYWxwaGEgPCAxICYmXG4gICAgICB0aGlzLmFscGhhQ2hhbm5lbCA9PT0gJ2hleDYnXG4gICAgKSB7XG4gICAgICB0aGlzLmZvcm1hdCsrO1xuICAgIH1cblxuICAgIHRoaXMuc2VydmljZS5vdXRwdXRGb3JtYXQoXG4gICAgICB0aGlzLmhzdmEsXG4gICAgICB0aGlzLm91dHB1dEZvcm1hdCxcbiAgICAgIHRoaXMuYWxwaGFDaGFubmVsID09PSAnaGV4OCdcbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IHRoaXMuc2VydmljZS5za3lDb2xvcnBpY2tlck91dCh0aGlzLmhzdmEpO1xuXG4gICAgdGhpcy51cGRhdGVTbGlkZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2xpZGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhzdmEgJiYgdGhpcy5zbGlkZXJEaW1NYXgpIHtcbiAgICAgIHRoaXMuc2xpZGVyID0gbmV3IFNsaWRlclBvc2l0aW9uKFxuICAgICAgICB0aGlzLmhzdmEuaHVlICogdGhpcy5zbGlkZXJEaW1NYXguaHVlIC0gOCxcbiAgICAgICAgdGhpcy5oc3ZhLnNhdHVyYXRpb24gKiB0aGlzLnNsaWRlckRpbU1heC5zYXR1cmF0aW9uIC0gOCxcbiAgICAgICAgKDEgLSB0aGlzLmhzdmEudmFsdWUpICogdGhpcy5zbGlkZXJEaW1NYXgudmFsdWUgLSA4LFxuICAgICAgICB0aGlzLmhzdmEuYWxwaGEgKiB0aGlzLnNsaWRlckRpbU1heC5hbHBoYSAtIDhcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuUGlja2VyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNQaWNrZXJWaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5yZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHNlbmRNZXNzYWdlKHR5cGU6IFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUpIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGUgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZTogU2t5Q29sb3JwaWNrZXJNZXNzYWdlKSB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5PcGVuOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5vcGVuUGlja2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5DbG9zZTpcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuUmVzZXQ6XG4gICAgICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMuaW5pdGlhbENvbG9yKTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gdGhpcy5pbml0aWFsQ29sb3I7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvckNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ29sb3IpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29sb3JBcHBsaWVkLmVtaXQoeyBjb2xvcjogdGhpcy5zZWxlY3RlZENvbG9yIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLlRvZ2dsZVJlc2V0QnV0dG9uOlxuICAgICAgICB0aGlzLnNob3dSZXNldEJ1dHRvbiA9ICF0aGlzLnNob3dSZXNldEJ1dHRvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBZmZpeGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFmZml4ZXIgPSB0aGlzLmFmZml4U2VydmljZS5jcmVhdGVBZmZpeGVyKHRoaXMuY29sb3JwaWNrZXJSZWYpO1xuXG4gICAgYWZmaXhlci5wbGFjZW1lbnRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnBpY2tlclVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmlzUGlja2VyVmlzaWJsZSA9IGNoYW5nZS5wbGFjZW1lbnQgIT09IG51bGw7XG4gICAgICB9KTtcblxuICAgIGFmZml4ZXIuYWZmaXhUbyh0aGlzLnRyaWdnZXJCdXR0b25SZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgYXV0b0ZpdENvbnRleHQ6IFNreUFmZml4QXV0b0ZpdENvbnRleHQuVmlld3BvcnQsXG4gICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogJ2xlZnQnLFxuICAgICAgaXNTdGlja3k6IHRydWUsXG4gICAgICBwbGFjZW1lbnQ6ICdiZWxvdycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFmZml4ZXIgPSBhZmZpeGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95QWZmaXhlcigpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy5hZmZpeGVyKSB7XG4gICAgICB0aGlzLmFmZml4ZXIuZGVzdHJveSgpO1xuICAgICAgdGhpcy5hZmZpeGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgZW5hYmxlQ2xvc2U6IGZhbHNlLFxuICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICBlbmFibGVTY3JvbGw6IHRydWUsXG4gICAgfSk7XG5cbiAgICBvdmVybGF5LmF0dGFjaFRlbXBsYXRlKHRoaXMuY29sb3JwaWNrZXJUZW1wbGF0ZVJlZik7XG5cbiAgICB0aGlzLm92ZXJsYXkgPSBvdmVybGF5O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy5vdmVybGF5KSB7XG4gICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMub3ZlcmxheSk7XG4gICAgICB0aGlzLm92ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmlnZ2VyQnV0dG9uRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHdpbmRvdy5kb2N1bWVudCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChrZXkgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucGlja2VyVW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMucGlja2VyVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgdGhpcy5waWNrZXJVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5waWNrZXJVbnN1YnNjcmliZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEhzdmFWYWx1ZSh2YWx1ZTogc3RyaW5nKTogU2t5Q29sb3JwaWNrZXJIc3ZhIHtcbiAgICBsZXQgaHN2YTogU2t5Q29sb3JwaWNrZXJIc3ZhO1xuXG4gICAgaWYgKHRoaXMuYWxwaGFDaGFubmVsID09PSAnaGV4OCcpIHtcbiAgICAgIGhzdmEgPSB0aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHZhbHVlLCB0cnVlKTtcbiAgICAgIGlmICghaHN2YSAmJiAhdGhpcy5oc3ZhKSB7XG4gICAgICAgIGhzdmEgPSB0aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHZhbHVlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGhzdmEgPSB0aGlzLnNlcnZpY2Uuc3RyaW5nVG9Ic3ZhKHZhbHVlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhzdmE7XG4gIH1cblxuICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9BRVJUI2NvbG9yLWNvbnRyYXN0XG4gIHByaXZhdGUgZ2V0QWNjZXNzaWJsZUljb25Db2xvcihcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFNreUNvbG9ycGlja2VyT3V0cHV0XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgcmdiID0gYmFja2dyb3VuZENvbG9yLnJnYmE7XG4gICAgY29uc3QgYnJpZ2h0bmVzcyA9IE1hdGgucm91bmQoXG4gICAgICAocmdiLnJlZCAqIDI5OSArIHJnYi5ncmVlbiAqIDU4NyArIHJnYi5ibHVlICogMTE0KSAvIDEwMDBcbiAgICApO1xuICAgIHJldHVybiBicmlnaHRuZXNzID4gMTI1ID8gJ3JnYigwLCAwLCAwKScgOiAncmdiKDI1NSwgMjU1LCAyNTUpJztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWNvbG9ycGlja2VyLWhpZGRlbic6ICFpc1Zpc2libGUsXG4gICAgJ3NreS1jb2xvcnBpY2tlci1kaXNhYmxlZCc6IGRpc2FibGVkXG4gIH1cIlxuPlxuICA8ZGl2IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWJ1dHRvblwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc09wZW4gPyBjb2xvcnBpY2tlcklkIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICBsYWJlbCB8fFxuICAgICAgKGxhYmVsbGVkQnlcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogKCdza3l1eF9jb2xvcnBpY2tlcl9kcm9wZG93bl9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzKSlcbiAgICBcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5pZF09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgbGFiZWwgfHxcbiAgICAgIChsYWJlbGxlZEJ5XG4gICAgICAgID8gbnVsbFxuICAgICAgICA6ICgnc2t5dXhfY29sb3JwaWNrZXJfZHJvcGRvd25fYnV0dG9uJyB8IHNreUxpYlJlc291cmNlcykpXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29sb3JwaWNrZXItYnV0dG9uLWRpc2FibGVkJzogZGlzYWJsZWRcbiAgICB9XCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAnc2t5LW1hcmdpbi1pbmxpbmUtc20nOiAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhY2tncm91bmRDb2xvckZvckRpc3BsYXlcIlxuICAgIChjbGljayk9XCJvblRyaWdnZXJCdXR0b25DbGljaygpXCJcbiAgICAjdHJpZ2dlckJ1dHRvblJlZlxuICA+XG4gICAgPHNreS1pY29uXG4gICAgICAqbmdJZj1cInBpY2tlckJ1dHRvbkljb25cIlxuICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItYnV0dG9uLWljb25cIlxuICAgICAgW2ljb25dPVwicGlja2VyQnV0dG9uSWNvblwiXG4gICAgICBbaWNvblR5cGVdPVwicGlja2VyQnV0dG9uSWNvblR5cGVcIlxuICAgICAgW3NpemVdPVwiJzF4J1wiXG4gICAgICBbc3R5bGUuY29sb3JdPVwiaWNvbkNvbG9yXCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ21vZGVybidcIj5cbiAgICAgIDxza3ktaWNvblxuICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1idXR0b24tbW9kZXJuLWNoZXZyb25cIlxuICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWNvbG9ycGlja2VyLWJ1dHRvbi1tb2Rlcm4tY2hldnJvbi1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG5cbiAgPG5nLXRlbXBsYXRlICNjb2xvcnBpY2tlclRlbXBsYXRlUmVmPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNvbnRhaW5lclwiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgICAgW2F0dHIuaWRdPVwiY29sb3JwaWNrZXJJZFwiXG4gICAgICBbaGlkZGVuXT1cIiFpc1BpY2tlclZpc2libGVcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXNoYWRvdyc6ICdkZWZhdWx0JyxcbiAgICAgICAgJ3NreS1lbGV2YXRpb24tNCc6ICdtb2Rlcm4nXG4gICAgICB9XCJcbiAgICAgICNjb2xvcnBpY2tlclJlZlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktY29sb3JwaWNrZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2F0dXJhdGlvbi1saWdodG5lc3NcIlxuICAgICAgICAgIFtjb2xvcl09XCJzbGlkZXIuc2F0dXJhdGlvbiAtIHNsaWRlci52YWx1ZVwiXG4gICAgICAgICAgW3NreUNvbG9ycGlja2VyU2xpZGVyXVxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImh1ZVNsaWRlckNvbG9yXCJcbiAgICAgICAgICBbeEF4aXNdPVwiMVwiXG4gICAgICAgICAgW3lBeGlzXT1cIjFcIlxuICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cInNhdHVyYXRpb25BbmRMaWdodG5lc3MgPSAkZXZlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3Igc2t5LXJvdW5kZWQtY2lyY2xlXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5zYXR1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzdHlsZS50b3AucHhdPVwic2xpZGVyLnZhbHVlXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmQgc2t5LXJvdW5kZWQtY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtY29sb3Igc2t5LXJvdW5kZWQtY2lyY2xlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwic2VsZWN0ZWRDb2xvcj8ucmdiYVRleHRcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImh1ZVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclNsaWRlcl1cbiAgICAgICAgICAgICAgW3hBeGlzXT1cIjFcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJodWUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgICAjaHVlU2xpZGVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5odWVcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLmFsbG93VHJhbnNwYXJlbmN5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhbHBoYVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclNsaWRlcl1cbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYWxwaGFTbGlkZXJDb2xvclwiXG4gICAgICAgICAgICAgIFt4QXhpc109XCIxXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiYWxwaGFBeGlzID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgI2FscGhhU2xpZGVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5hbHBoYVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicmdiYS10ZXh0XCI+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfaGV4JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckhleElkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2hleCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIl4jPyhbQS1GYS1mMC05XXs2fXxbQS1GYS1mMC05XXszfSkkXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJIZXhJZFwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJoZXhUZXh0XCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiaGV4ID0gJGV2ZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgICAgIDxza3ktaW5wdXQtYm94PlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9hcmlhX3JlZCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgICAgICBbYXR0ci5mb3JdPVwic2t5Q29sb3JwaWNrZXJSZWRJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9yZWQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyUmVkSWRcIlxuICAgICAgICAgICAgICBbbWF4UmFuZ2VdPVwiMjU1XCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5yZWRcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJyZWQgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfZ3JlZW4nIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckdyZWVuSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfZ3JlZW4nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyR3JlZW5JZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIyNTVcIlxuICAgICAgICAgICAgICBbc2t5Q29sb3JwaWNrZXJUZXh0XVxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmdiYVRleHQ/LmdyZWVuXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiZ3JlZW4gPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfYmx1ZScgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cInNreUNvbG9ycGlja2VyQmx1ZUlkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2JsdWUnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyQmx1ZUlkXCJcbiAgICAgICAgICAgICAgW21heFJhbmdlXT1cIjI1NVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJyZ2JhVGV4dD8uYmx1ZVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImJsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3ggKm5nSWY9XCJ0aGlzLmFsbG93VHJhbnNwYXJlbmN5XCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfYWxwaGEnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckFscGhhSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfYWxwaGEnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjFcIlxuICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT9cIlxuICAgICAgICAgICAgICBzdGVwPVwiMC4xXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyQWxwaGFJZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIxXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5hbHBoYVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImFscGhhQ29sb3IgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJwcmVzZXRDb2xvcnMgJiYgcHJlc2V0Q29sb3JzLmxlbmd0aFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItcHJlc2V0LWNvbG9yLWFyZWFcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHByZXNldENvbG9ycyB8IHNsaWNlOiAwOjEyOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgKCdza3l1eF9jb2xvcnBpY2tlcl9wcmVzZXRfY29sb3InIHwgc2t5TGliUmVzb3VyY2VzKSArICcgJyArIGNvbG9yXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LXByZXNldC1jb2xvcic6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgJ3NreS1idG4gc2t5LWJ0bi1saW5rJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25QcmVzZXRDbGljayhjb2xvcilcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1mb290ZXJcIlxuICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1wYWRkaW5nLWV2ZW4tbGFyZ2UnOiAnZGVmYXVsdCdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNvbHVtblwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LWJ0bi1jb2xvcnBpY2tlci1hcHBseVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FwcGx5JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktbWFyZ2luLWlubGluZS1zbSc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlDb2xvckNsaWNrKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9hcHBseScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1idG4tY29sb3JwaWNrZXItY2xvc2VcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9jbG9zZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2Nsb3NlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImFsbG93VHJhbnNwYXJlbmN5XCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNoZWNrZXJlZC1iYWNrZ3JvdW5kXCJcbiAgPlxuICA8L3NwYW4+XG5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2hvd1Jlc2V0QnV0dG9uXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9yZXNldCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1jb2xvcnBpY2tlci1yZXNldC1idXR0b24tZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICdza3ktY29sb3JwaWNrZXItcmVzZXQtYnV0dG9uJzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LWNvbG9ycGlja2VyLXJlc2V0LWJ1dHRvbi1tb2Rlcm4nOlxuICAgICAgICAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIChjbGljayk9XCJvblJlc2V0Q2xpY2soKVwiXG4gID5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwidGltZXNcIiBzaXplPVwic21cIj4gPC9za3ktaWNvbj5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJ0cmFzaFwiIGljb25UeXBlPVwic2t5dXhcIiBzaXplPVwibGdcIj5cbiAgICA8L3NreS1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|