@careonbrasil/dashboard 14.0.1 → 14.0.2
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/README.md +359 -359
- package/esm2020/lib/dashboard.component.mjs +4 -4
- package/fesm2015/careonbrasil-dashboard.mjs +3 -3
- package/fesm2015/careonbrasil-dashboard.mjs.map +1 -1
- package/fesm2020/careonbrasil-dashboard.mjs +3 -3
- package/fesm2020/careonbrasil-dashboard.mjs.map +1 -1
- package/lib/dashboard.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -84,9 +84,9 @@ export class DashboardComponent {
|
|
|
84
84
|
this.emptyMessage = 'Nenhum dado registrado para o período selecionado.';
|
|
85
85
|
/**
|
|
86
86
|
* Consultant phone number for WhatsApp redirect.
|
|
87
|
-
* @default '
|
|
87
|
+
* @default 'empty string'
|
|
88
88
|
*/
|
|
89
|
-
this.consultantPhone = '
|
|
89
|
+
this.consultantPhone = '';
|
|
90
90
|
/**
|
|
91
91
|
* Initial message for WhatsApp consultant chat.
|
|
92
92
|
* @default 'empty string'
|
|
@@ -169,7 +169,7 @@ export class DashboardComponent {
|
|
|
169
169
|
openConsultantWhatsApp(section = 'Consultor') {
|
|
170
170
|
this.consultantClick.emit(section);
|
|
171
171
|
if (typeof window !== 'undefined') {
|
|
172
|
-
const cleanPhone = (this.consultantPhone || '
|
|
172
|
+
const cleanPhone = (this.consultantPhone || '').replace(/\D/g, '');
|
|
173
173
|
const textParam = this.consultantMessage
|
|
174
174
|
? `&text=${encodeURIComponent(this.consultantMessage)}`
|
|
175
175
|
: '';
|
|
@@ -519,4 +519,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
519
519
|
}], attentionItemSelected: [{
|
|
520
520
|
type: Output
|
|
521
521
|
}] } });
|
|
522
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFJeEIsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUVMLGVBQWUsRUFJZixnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFZbkMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZLEVBQUUsUUFBcUIsRUFBRSxTQUFTLEdBQUcsS0FBSztJQUNuRixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7SUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUU1QixNQUFNLFVBQVUsR0FBRyxNQUFNO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBGLElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDO0lBQ25D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SztzQkFBYixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxlQUFlO3NCQUF2QixLQUFLO2dCQU1HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRyxhQUFhO3NCQUFyQixLQUFLO2dCQVdJLFlBQVk7c0JBQXJCLE1BQU07Z0JBS0csWUFBWTtzQkFBckIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFlBQVk7c0JBQXJCLE1BQU07Z0JBS0csZUFBZTtzQkFBeEIsTUFBTTtnQkFLRyxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU3RhY2tlZEJhckl0ZW0sXHJcbiAgVGltZWxpbmVQb2ludCxcclxuICBEb251dENoYXJ0SXRlbSxcclxuICBGdW5uZWxCYXJJdGVtLFxyXG4gIENvbXBhcmlzb25JdGVtXHJcbn0gZnJvbSAnQGNhcmVvbmJyYXNpbC9uZy1jaGFydHMnO1xyXG5pbXBvcnQge1xyXG4gIERhc2hib2FyZE92ZXJ2aWV3RGF0YSxcclxuICBEYXNoYm9hcmRQZXJpb2QsXHJcbiAgRGFzaGJvYXJkSXRlbVNlbGVjdGVkRXZlbnQsXHJcbiAgRGFzaGJvYXJkQXR0ZW50aW9uSXRlbSxcclxuICBEYXNoYm9hcmRQZXJmb3JtYW5jZUFuYWx5c2lzLFxyXG4gIFBlcmZvcm1hbmNlTGV2ZWwsXHJcbiAgRGFzaGJvYXJkRHV0eUFuYWx5c2lzLFxyXG4gIERhc2hib2FyZER1dHlTYWxhcnlDb21wYXJpc29uLFxyXG4gIER1dHlTYWxhcnlTdGF0dXNcclxufSBmcm9tICcuL21vZGVscy9kYXNoYm9hcmQubW9kZWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIEtwaVBvbGFyaXR5ID0gJ2hpZ2hlcklzQmV0dGVyJyB8ICdsb3dlcklzQmV0dGVyJyB8ICduZXV0cmFsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgS3BpQmFkZ2VJbmZvIHtcclxuICBjaGFuZ2VUZXh0OiBzdHJpbmc7XHJcbiAgYmFkZ2VDbGFzczogc3RyaW5nO1xyXG4gIGlzUG9zaXRpdmU6IGJvb2xlYW47XHJcbiAgaXNOZWdhdGl2ZTogYm9vbGVhbjtcclxuICBpc1plcm86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRLcGlCYWRnZShkaWZmOiBudW1iZXIsIHBvbGFyaXR5OiBLcGlQb2xhcml0eSwgaXNEZWNpbWFsID0gZmFsc2UpOiBLcGlCYWRnZUluZm8ge1xyXG4gIGNvbnN0IGlzWmVybyA9IGRpZmYgPT09IDA7XHJcbiAgY29uc3QgaXNQb3NpdGl2ZSA9IGRpZmYgPiAwO1xyXG4gIGNvbnN0IGlzTmVnYXRpdmUgPSBkaWZmIDwgMDtcclxuXHJcbiAgY29uc3QgY2hhbmdlVGV4dCA9IGlzWmVyb1xyXG4gICAgPyAoaXNEZWNpbWFsID8gJzAsMCcgOiAnMCcpXHJcbiAgICA6IChpc0RlY2ltYWwgPyBNYXRoLmFicyhkaWZmKS50b0ZpeGVkKDEpLnJlcGxhY2UoJy4nLCAnLCcpIDogYCR7TWF0aC5hYnMoZGlmZil9YCk7XHJcblxyXG4gIGxldCBiYWRnZUNsYXNzID0gJ2twaS1iYWRnZS0tZ3JheSc7XHJcbiAgaWYgKCFpc1plcm8pIHtcclxuICAgIGlmIChwb2xhcml0eSA9PT0gJ25ldXRyYWwnKSB7XHJcbiAgICAgIGJhZGdlQ2xhc3MgPSAna3BpLWJhZGdlLS1ibHVlJztcclxuICAgIH0gZWxzZSBpZiAocG9sYXJpdHkgPT09ICdoaWdoZXJJc0JldHRlcicpIHtcclxuICAgICAgYmFkZ2VDbGFzcyA9IGlzUG9zaXRpdmUgPyAna3BpLWJhZGdlLS1ncmVlbicgOiAna3BpLWJhZGdlLS1jb3JhbCc7XHJcbiAgICB9IGVsc2UgaWYgKHBvbGFyaXR5ID09PSAnbG93ZXJJc0JldHRlcicpIHtcclxuICAgICAgYmFkZ2VDbGFzcyA9IGlzUG9zaXRpdmUgPyAna3BpLWJhZGdlLS1jb3JhbCcgOiAna3BpLWJhZGdlLS1ncmVlbic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4geyBjaGFuZ2VUZXh0LCBiYWRnZUNsYXNzLCBpc1Bvc2l0aXZlLCBpc05lZ2F0aXZlLCBpc1plcm8gfTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEVSRk9STUFOQ0VfVEVYVFM6IFJlY29yZDxQZXJmb3JtYW5jZUxldmVsLCB7IHRpdGxlOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSB7XHJcbiAgW1BlcmZvcm1hbmNlTGV2ZWwuQmx1ZV06IHtcclxuICAgIHRpdGxlOiAnQWluZGEgdGVtIGVzcGHDp28gcGFyYSBzZSBkZXN0YWNhci4nLFxyXG4gICAgZGVzY3JpcHRpb246ICdTdWEgaW5zdGl0dWnDp8OjbyBqw6EgZGVzcGVydGEgYm9tIGludGVyZXNzZSBlbnRyZSBvcyBjYW5kaWRhdG9zLiBGYWxlIGNvbSB1bSBjb25zdWx0b3IgZGEgQ2FyZU9uIHBhcmEgaXIgYWluZGEgbWFpcyBsb25nZS4nXHJcbiAgfSxcclxuICBbUGVyZm9ybWFuY2VMZXZlbC5PcmFuZ2VdOiB7XHJcbiAgICB0aXRsZTogJ1N1YXMgdmFnYXMgZXN0w6NvIHNlbmRvIHZpc3RhcywgbWFzIHBvdWNhIGdlbnRlIHNlIGNhbmRpZGF0YS4nLFxyXG4gICAgZGVzY3JpcHRpb246ICdJc3NvIHBvZGUgaW5kaWNhciBxdWUgb3MgdmFsb3JlcyBvZmVyZWNpZG9zIGVzdMOjbyBhYmFpeG8gZGEgbcOpZGlhIGRhIHJlZ2nDo28sIHF1ZSBmYWx0YW0gaW5mb3JtYcOnw7VlcyBtYWlzIGF0cmF0aXZhcyBvdSBxdWUgc3VhcyBpbmZvcm1hw6fDtWVzIGVzdMOjbyBpbmNvbXBsZXRhcy4gRmFsZSBjb20gdW0gY29uc3VsdG9yIGRhIENhcmVPbi4nXHJcbiAgfSxcclxuICBbUGVyZm9ybWFuY2VMZXZlbC5SZWRdOiB7XHJcbiAgICB0aXRsZTogJ1N1YSBpbnN0aXR1acOnw6NvIG7Do28gZXN0w6Egc2VuZG8gbXVpdG8gcHJvY3VyYWRhIHBlbG9zIGNhbmRpZGF0b3MuJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnRmF6IHRlbXBvIHF1ZSB2b2PDqiBuw6NvIHB1YmxpY2EgdW1hIHZhZ2EsIHBvciBpc3NvIHN1YSBhbsOhbGlzZSBkZSBkZXNlbXBlbmhvIHZlbSBjYWluZG8uIEZhbGUgY29tIHVtIGNvbnN1bHRvciBkYSBDYXJlT24gcGFyYSB0ZXIgdW0gYXBvaW8gcGVyc29uYWxpemFkby4nXHJcbiAgfVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcHJpbmNpcGFsIGRlIERhc2hib2FyZCBkZSBSZWNydXRhbWVudG8gSW5zdGl0dWNpb25hbCBkYSBDYXJlT24uXHJcbiAqIFxyXG4gKiBDZW50cmFsaXphIGUgb3JxdWVzdHJhIGEgZXhpYmljYW8gZGU6XHJcbiAqIC0gQ2FiZWNhbGhvIGNvbSBmaWx0cm9zIHRlbXBvcmFpcyByZWF0aXZvcyAoSG9qZSwgU2VtYW5hLCBNZXMpXHJcbiAqIC0gQ2FyZHMgc3VwZXJpb3JlcyBkZSBJbmRpY2Fkb3Jlcy1DaGF2ZSBkZSBQZXJmb3JtYW5jZSAoS1BJcylcclxuICogLSBTZWNhbyBhY2lvbmF2ZWwgXCJQcmVjaXNhIGRhIHN1YSBhdGVuY2FvXCIgKGFsZXJ0YXMgZGUgdmFnYXMgY3JpdGljYXMpXHJcbiAqIC0gU2VjYW8gXCJBbmFsaXNlIGRlIERlc2VtcGVuaG9cIiAoY3VydmEgZGUgb25kYXMgdmV0b3JpYWwgZSBvcmllbnRhY2FvIGNvbnN1bHRpdmEpXHJcbiAqIC0gU2VjYW8gXCJBbmFsaXNlIHBvciBWYWdhXCIgKGRyb3Bkb3duIGRlIHZhZ2FzLCB0aW1lbGluZSwgZG9udXQgZGUgY29udmVyc2FvLCBmdW5pbCBlIGFuYWxpc2Ugc2FsYXJpYWwpXHJcbiAqIC0gU2VjYW8gXCJDYW5kaWRhdHVyYXMgcG9yIFZhZ2FcIiAoZ3JhZmljbyBjb21wYXJhdGl2byBkZSBiYXJyYXMgZW50cmUgdmFnYXMpXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NhcmVvbi1kYXNoYm9hcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIC8vICNyZWdpb24gSW5wdXRzXHJcbiAgLyoqXHJcbiAgICogQ29uc29saWRhdGVkIG1ldHJpY3MgZGF0YXNldCBmZWVkaW5nIHRoZSBkYXNoYm9hcmQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0YT86IERhc2hib2FyZE92ZXJ2aWV3RGF0YTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgZGFzaGJvYXJkIGlzIGN1cnJlbnRseSBmZXRjaGluZyBkYXRhIGZyb20gdGhlIGJhY2tlbmQgQVBJLlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmUgdGltZSBwZXJpb2QgZmlsdGVyLlxyXG4gICAqIEBkZWZhdWx0ICdXZWVrJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRQZXJpb2Q6IERhc2hib2FyZFBlcmlvZCA9IERhc2hib2FyZFBlcmlvZC5XZWVrO1xyXG5cclxuICByZWFkb25seSBEdXR5U2FsYXJ5U3RhdHVzID0gRHV0eVNhbGFyeVN0YXR1cztcclxuICByZWFkb25seSBQZXJmb3JtYW5jZUxldmVsID0gUGVyZm9ybWFuY2VMZXZlbDtcclxuICByZWFkb25seSBEYXNoYm9hcmRQZXJpb2QgPSBEYXNoYm9hcmRQZXJpb2Q7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1haW4gZGFzaGJvYXJkIHRpdGxlLlxyXG4gICAqIEBkZWZhdWx0ICdEYXNoYm9hcmQnXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGUgPSAnRGFzaGJvYXJkJztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgc3VidGl0bGUgb3IgaW5zdGl0dXRpb24gbmFtZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlci5cclxuICAgKiBAZGVmYXVsdCAnVmlzw6NvIGdlcmFsIGRlIHJlY3J1dGFtZW50bydcclxuICAgKi9cclxuICBASW5wdXQoKSBzdWJ0aXRsZSA9ICdWaXPDo28gZ2VyYWwgZGUgcmVjcnV0YW1lbnRvJztcclxuXHJcbiAgLyoqXHJcbiAgICogRW1wdHkgc3RhdGUgbWVzc2FnZSB3aGVuIG5vIGRhdGEgaXMgcmV0dXJuZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ05lbmh1bSBkYWRvIHJlZ2lzdHJhZG8gcGFyYSBvIHBlcsOtb2RvIHNlbGVjaW9uYWRvLic7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN1bHRhbnQgcGhvbmUgbnVtYmVyIGZvciBXaGF0c0FwcCByZWRpcmVjdC5cclxuICAgKiBAZGVmYXVsdCAnNTU0Nzk5NjU2OTcwNydcclxuICAgKi9cclxuICBASW5wdXQoKSBjb25zdWx0YW50UGhvbmUgPSAnNTU0Nzk5NjU2OTcwNyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWwgbWVzc2FnZSBmb3IgV2hhdHNBcHAgY29uc3VsdGFudCBjaGF0LlxyXG4gICAqIEBkZWZhdWx0ICdlbXB0eSBzdHJpbmcnXHJcbiAgICovXHJcbiAgQElucHV0KCkgY29uc3VsdGFudE1lc3NhZ2UgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbHMgd2hldGhlciB6ZXJvZWQgc3RhdGVzIGRpc3BsYXkgdGhlIGFjdGlvbmFibGUgJ1B1YmxpY2FyIFZhZ2EnIENUQSBiYW5uZXIgb3IgYSBiYXNpYyBpbmZvcm1hdGlvbmFsIHplcm8gc3RhdGUuXHJcbiAgICogLSAncHVibGlzaCc6IGRpc3BsYXlzIHRoZSBzcGVjaWFsIGJ1c2luZXNzIHplcm8gc3RhdGUgd2l0aCB0aGUgJ1B1YmxpY2FyIFZhZ2EnIGFjdGlvbiBidXR0b24uXHJcbiAgICogLSAnYmFzaWMnOiBkaXNwbGF5cyB0aGUgc2ltcGxlL2Jhc2ljIHplcm8gc3RhdGUgd2l0aG91dCB0aGUgJ1B1YmxpY2FyIFZhZ2EnIGFjdGlvbiBidXR0b24uXHJcbiAgICogQGRlZmF1bHQgJ3B1Ymxpc2gnXHJcbiAgICovXHJcbiAgQElucHV0KCkgemVyb1N0YXRlTW9kZTogJ3B1Ymxpc2gnIHwgJ2Jhc2ljJyA9ICdwdWJsaXNoJztcclxuXHJcbiAgZ2V0IGlzUHVibGlzaFplcm9TdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnplcm9TdGF0ZU1vZGUgPT09ICdwdWJsaXNoJztcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIE91dHB1dHNcclxuICAvKipcclxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHRoZSB1c2VyIHNlbGVjdHMgYSBkaWZmZXJlbnQgcGVyaW9kIGZpbHRlciAoVG9kYXksIFdlZWssIE1vbnRoKS5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgcGVyaW9kQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRQZXJpb2Q+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbmV2ZXIgYW4gaW50ZXJhY3RpdmUgZWxlbWVudCBpbiBhbnkgY2hhcnQgaXMgY2xpY2tlZCAocmVzZXJ2ZWQgZm9yIHVwY29taW5nIGNoYXJ0IHNlY3Rpb25zKS5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRJdGVtU2VsZWN0ZWRFdmVudD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHRlZCB3aGVuZXZlciB0aGUgdXNlciBjbGlja3Mgb24gJ1B1YmxpY2FyIFZhZ2EnIGFjcm9zcyBhbnkgb2YgdGhlIHplcm8tc3RhdGUgYmFubmVycy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgcHVibGlzaER1dHkgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbmV2ZXIgdGhlIHVzZXIgc2VsZWN0cyBhIGR1dHkgaW4gdGhlIHZhY2FuY3kgYW5hbHlzaXMgZHJvcGRvd24uXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGR1dHlTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkRHV0eUFuYWx5c2lzPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHRoZSB1c2VyIGNsaWNrcyBvbiAnRmFsZSBjb20gdW0gY29uc3VsdG9yJyBhY3Jvc3MgYW55IHNlY3Rpb24uXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGNvbnN1bHRhbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIGEgdmFjYW5jeSBpbiB0aGUgYXR0ZW50aW9uIGxpc3QgaXMgY2xpY2tlZC5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgYXR0ZW50aW9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRBdHRlbnRpb25JdGVtPigpO1xyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgb25QdWJsaXNoRHV0eShzZWN0aW9uID0gJ1plcm8gU3RhdGUnKTogdm9pZCB7XHJcbiAgICB0aGlzLnB1Ymxpc2hEdXR5LmVtaXQoc2VjdGlvbik7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10pIHtcclxuICAgICAgdGhpcy5zeW5jU2VsZWN0ZWREdXR5KCk7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2xvYWRpbmcnXSB8fCBjaGFuZ2VzWydjdXJyZW50UGVyaW9kJ10pIHtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN5bmNTZWxlY3RlZER1dHkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudmFjYW5jaWVzQW5hbHlzaXMgfHwgdGhpcy52YWNhbmNpZXNBbmFseXNpcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZER1dHlJZCA9IG51bGw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMudmFjYW5jaWVzQW5hbHlzaXMuc29tZShkID0+IGQuZHV0eUlkID09PSB0aGlzLnNlbGVjdGVkRHV0eUlkKTtcclxuICAgIGlmICghZXhpc3RzKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREdXR5SWQgPSB0aGlzLnZhY2FuY2llc0FuYWx5c2lzWzBdLmR1dHlJZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gQXR0ZW50aW9uU2VjdGlvblxyXG4gIGdldCBhdHRlbnRpb25JdGVtcygpOiBEYXNoYm9hcmRBdHRlbnRpb25JdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8uYXR0ZW50aW9uSXRlbXMgPz8gW107XHJcbiAgfVxyXG5cclxuICBvbkF0dGVudGlvbkl0ZW1DbGljayhpdGVtOiBEYXNoYm9hcmRBdHRlbnRpb25JdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLmF0dGVudGlvbkl0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbnN1bHRhbnRXaGF0c0FwcChzZWN0aW9uID0gJ0NvbnN1bHRvcicpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3VsdGFudENsaWNrLmVtaXQoc2VjdGlvbik7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgY29uc3QgY2xlYW5QaG9uZSA9ICh0aGlzLmNvbnN1bHRhbnRQaG9uZSB8fCAnNTU0Nzk5NjU2OTcwNycpLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICAgIGNvbnN0IHRleHRQYXJhbSA9IHRoaXMuY29uc3VsdGFudE1lc3NhZ2VcclxuICAgICAgICA/IGAmdGV4dD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNvbnN1bHRhbnRNZXNzYWdlKX1gXHJcbiAgICAgICAgOiAnJztcclxuICAgICAgY29uc3Qgd2hhdHNhcHBVcmwgPSBgaHR0cHM6Ly9hcGkud2hhdHNhcHAuY29tL3NlbmQ/cGhvbmU9JHtjbGVhblBob25lfSR7dGV4dFBhcmFtfWA7XHJcbiAgICAgIHdpbmRvdy5vcGVuKHdoYXRzYXBwVXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFBlcmZvcm1hbmNlQW5hbHlzaXNTZWN0aW9uXHJcbiAgc2hvd0luZm9Ub29sdGlwID0gZmFsc2U7XHJcblxyXG4gIHRvZ2dsZUluZm9Ub29sdGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93SW5mb1Rvb2x0aXAgPSAhdGhpcy5zaG93SW5mb1Rvb2x0aXA7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uSW5mb01vdXNlRW50ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dJbmZvVG9vbHRpcCA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uSW5mb01vdXNlTGVhdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dJbmZvVG9vbHRpcCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVyZm9ybWFuY2VBbmFseXNpcygpOiBEYXNoYm9hcmRQZXJmb3JtYW5jZUFuYWx5c2lzIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBlcmZvcm1hbmNlQW5hbHlzaXM7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVyZm9ybWFuY2VMZXZlbCgpOiBQZXJmb3JtYW5jZUxldmVsIHtcclxuICAgIGNvbnN0IGxldmVsID0gdGhpcy5wZXJmb3JtYW5jZUFuYWx5c2lzPy5sZXZlbDtcclxuICAgIGlmIChsZXZlbCA9PT0gUGVyZm9ybWFuY2VMZXZlbC5CbHVlIHx8IChsZXZlbCBhcyBhbnkpID09PSAwKSByZXR1cm4gUGVyZm9ybWFuY2VMZXZlbC5CbHVlO1xyXG4gICAgaWYgKGxldmVsID09PSBQZXJmb3JtYW5jZUxldmVsLk9yYW5nZSB8fCAobGV2ZWwgYXMgYW55KSA9PT0gMSkgcmV0dXJuIFBlcmZvcm1hbmNlTGV2ZWwuT3JhbmdlO1xyXG4gICAgaWYgKGxldmVsID09PSBQZXJmb3JtYW5jZUxldmVsLlJlZCB8fCAobGV2ZWwgYXMgYW55KSA9PT0gMikgcmV0dXJuIFBlcmZvcm1hbmNlTGV2ZWwuUmVkO1xyXG4gICAgcmV0dXJuIFBlcmZvcm1hbmNlTGV2ZWwuUmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlcmZvcm1hbmNlVGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnBlcmZvcm1hbmNlQW5hbHlzaXM/LmhpZ2hsaWdodFRpdGxlXHJcbiAgICAgIHx8IERFRkFVTFRfUEVSRk9STUFOQ0VfVEVYVFNbdGhpcy5wZXJmb3JtYW5jZUxldmVsXT8udGl0bGVcclxuICAgICAgfHwgREVGQVVMVF9QRVJGT1JNQU5DRV9URVhUU1tQZXJmb3JtYW5jZUxldmVsLlJlZF0udGl0bGU7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVyZm9ybWFuY2VEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybWFuY2VBbmFseXNpcz8uZGVzY3JpcHRpb25cclxuICAgICAgfHwgREVGQVVMVF9QRVJGT1JNQU5DRV9URVhUU1t0aGlzLnBlcmZvcm1hbmNlTGV2ZWxdPy5kZXNjcmlwdGlvblxyXG4gICAgICB8fCBERUZBVUxUX1BFUkZPUk1BTkNFX1RFWFRTW1BlcmZvcm1hbmNlTGV2ZWwuUmVkXS5kZXNjcmlwdGlvbjtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFZhY2FuY3lBbmFseXNpc1NlY3Rpb25cclxuICBzZWxlY3RlZER1dHlJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgaXNEdXR5RHJvcGRvd25PcGVuID0gZmFsc2U7XHJcblxyXG4gIGdldCB2YWNhbmNpZXNBbmFseXNpcygpOiBEYXNoYm9hcmREdXR5QW5hbHlzaXNbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy52YWNhbmNpZXNBbmFseXNpcyA/PyBbXTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZER1dHkoKTogRGFzaGJvYXJkRHV0eUFuYWx5c2lzIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy52YWNhbmNpZXNBbmFseXNpcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREdXR5SWQpIHtcclxuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnZhY2FuY2llc0FuYWx5c2lzLmZpbmQoZCA9PiBkLmR1dHlJZCA9PT0gdGhpcy5zZWxlY3RlZER1dHlJZCk7XHJcbiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudmFjYW5jaWVzQW5hbHlzaXNbMF07XHJcbiAgfVxyXG5cclxuICB0b2dnbGVEdXR5RHJvcGRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRHV0eURyb3Bkb3duT3BlbiA9ICF0aGlzLmlzRHV0eURyb3Bkb3duT3BlbjtcclxuICB9XHJcblxyXG4gIGNsb3NlRHV0eURyb3Bkb3duKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0R1dHlEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdER1dHkoZHV0eTogRGFzaGJvYXJkRHV0eUFuYWx5c2lzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRHV0eUlkID0gZHV0eS5kdXR5SWQ7XHJcbiAgICB0aGlzLmlzRHV0eURyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5kdXR5U2VsZWN0ZWQuZW1pdChkdXR5KTtcclxuICB9XHJcblxyXG4gIGdldCB2YWNhbmN5U2VjdGlvblN1YnRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gdGhpcy5zZWxlY3RlZER1dHk/LmNhbmRpZGF0ZXNDb3VudCA/PyAwO1xyXG4gICAgY29uc3QgY2FuZFRleHQgPSBjYW5kaWRhdGVzID09PSAxID8gJ2NhbmRpZGF0dXJhJyA6ICdjYW5kaWRhdHVyYXMnO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRQZXJpb2QpIHtcclxuICAgICAgY2FzZSBEYXNoYm9hcmRQZXJpb2QuV2VlazpcclxuICAgICAgICByZXR1cm4gYCR7Y2FuZGlkYXRlc30gJHtjYW5kVGV4dH0gbm9zIMO6bHRpbW9zIDcgZGlhc2A7XHJcbiAgICAgIGNhc2UgRGFzaGJvYXJkUGVyaW9kLk1vbnRoOlxyXG4gICAgICAgIHJldHVybiBgJHtjYW5kaWRhdGVzfSAke2NhbmRUZXh0fSBuZXN0ZSBtw6pzYDtcclxuICAgICAgY2FzZSBEYXNoYm9hcmRQZXJpb2QuVG9kYXk6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGAke2NhbmRpZGF0ZXN9ICR7Y2FuZFRleHR9IGhvamVgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkRHV0eVRpbWVsaW5lUG9pbnRzKCk6IFRpbWVsaW5lUG9pbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZER1dHk/LnRpbWVsaW5lUG9pbnRzID8/IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkRHV0eURvbnV0SXRlbXMoKTogRG9udXRDaGFydEl0ZW1bXSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZER1dHk/LmNvbnZlcnNpb25Eb251dCAmJiB0aGlzLnNlbGVjdGVkRHV0eS5jb252ZXJzaW9uRG9udXQubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZER1dHkuY29udmVyc2lvbkRvbnV0O1xyXG4gICAgfVxyXG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLnNlbGVjdGVkRHV0eT8udmlld3NDb3VudCA/PyAwO1xyXG4gICAgY29uc3QgY2FuZGlkYXRlcyA9IHRoaXMuc2VsZWN0ZWREdXR5Py5jYW5kaWRhdGVzQ291bnQgPz8gMDtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHsgbGFiZWw6ICdWaXN1YWxpemHDp8O1ZXMnLCB2YWx1ZTogdmlld3MsIGNvbG9yOiAnIzFFMUI0QicgfSxcclxuICAgICAgeyBsYWJlbDogJ0NhbmRpZGF0dXJhcycsIHZhbHVlOiBjYW5kaWRhdGVzLCBjb2xvcjogJyMzQjgyRjYnIH1cclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWREdXR5Q29udmVyc2lvblJhdGVUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByYXRlID0gdGhpcy5zZWxlY3RlZER1dHk/LmNvbnZlcnNpb25SYXRlID8/IDA7XHJcbiAgICByZXR1cm4gYCR7cmF0ZX0lYDtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZER1dHlGdW5uZWxJdGVtcygpOiBGdW5uZWxCYXJJdGVtW10ge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREdXR5Py5mdW5uZWxJdGVtcyAmJiB0aGlzLnNlbGVjdGVkRHV0eS5mdW5uZWxJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRHV0eS5mdW5uZWxJdGVtcztcclxuICAgIH1cclxuICAgIGNvbnN0IHZpZXdzID0gdGhpcy5zZWxlY3RlZER1dHk/LnZpZXdzQ291bnQgPz8gMDtcclxuICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0aGlzLnNlbGVjdGVkRHV0eT8uY2FuZGlkYXRlc0NvdW50ID8/IDA7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7IGxhYmVsOiAnVmlzdWFsaXphw6fDtWVzJywgY291bnQ6IHZpZXdzLCBiYXJDb2xvcjogJyMxRTFCNEInIH0sXHJcbiAgICAgIHsgbGFiZWw6ICdDYW5kaWRhdHVyYXMnLCBjb3VudDogY2FuZGlkYXRlcywgYmFyQ29sb3I6ICcjM0I4MkY2JyB9XHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgb25UaW1lbGluZVBvaW50U2VsZWN0ZWQocG9pbnQ6IFRpbWVsaW5lUG9pbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoe1xyXG4gICAgICBjaGFydDogJ0xpbmhhIFRlbXBvcmFsIHBvciBWYWdhJyxcclxuICAgICAgaXRlbTogcG9pbnRcclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gVmFjYW5jeVNhbGFyeUNvbXBhcmlzb25TZWN0aW9uXHJcbiAgZ2V0IHNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb24oKTogRGFzaGJvYXJkRHV0eVNhbGFyeUNvbXBhcmlzb24gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREdXR5Py5zYWxhcnlDb21wYXJpc29uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNhbGFyeVN0YXR1cygpOiBEdXR5U2FsYXJ5U3RhdHVzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzID0gdGhpcy5zZWxlY3RlZER1dHlTYWxhcnlDb21wYXJpc29uPy5zdGF0dXM7XHJcbiAgICBpZiAocyA9PT0gRHV0eVNhbGFyeVN0YXR1cy5CZWxvd01hcmtldCB8fCAocyBhcyBhbnkpID09PSAwKSByZXR1cm4gRHV0eVNhbGFyeVN0YXR1cy5CZWxvd01hcmtldDtcclxuICAgIGlmIChzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0IHx8IChzIGFzIGFueSkgPT09IDEpIHJldHVybiBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0O1xyXG4gICAgaWYgKHMgPT09IER1dHlTYWxhcnlTdGF0dXMuQWJvdmVNYXJrZXQgfHwgKHMgYXMgYW55KSA9PT0gMikgcmV0dXJuIER1dHlTYWxhcnlTdGF0dXMuQWJvdmVNYXJrZXQ7XHJcbiAgICBpZiAocyA9PT0gRHV0eVNhbGFyeVN0YXR1cy5Ob3RJbmZvcm1lZCB8fCAocyBhcyBhbnkpID09PSAzKSByZXR1cm4gRHV0eVNhbGFyeVN0YXR1cy5Ob3RJbmZvcm1lZDtcclxuICAgIGlmIChzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkluc3VmZmljaWVudERhdGEgfHwgKHMgYXMgYW55KSA9PT0gNCkgcmV0dXJuIER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YTtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0Q3VycmVuY3kodmFsdWU/OiBudW1iZXIgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ3B0LUJSJywge1xyXG4gICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgY3VycmVuY3k6ICdCUkwnLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDBcclxuICAgIH0pLmZvcm1hdCh2YWx1ZSkucmVwbGFjZSgvXFx1MDBBMC9nLCAnICcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcm1hdHRlZFlvdXJTYWxhcnkoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLnNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb247XHJcbiAgICBpZiAoIWNvbXBhcmlzb24gfHwgdGhpcy5zYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuTm90SW5mb3JtZWQgfHwgY29tcGFyaXNvbi55b3VyU2FsYXJ5ID09PSBudWxsIHx8IGNvbXBhcmlzb24ueW91clNhbGFyeSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnTsOjbyBpbmZvcm1hZG8nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0Q3VycmVuY3koY29tcGFyaXNvbi55b3VyU2FsYXJ5KTtcclxuICB9XHJcblxyXG4gIGdldCBmb3JtYXR0ZWRSZWdpb25hbEF2ZXJhZ2UoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLnNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb247XHJcbiAgICBpZiAoIWNvbXBhcmlzb24gfHwgdGhpcy5zYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YSB8fCBjb21wYXJpc29uLnJlZ2lvbmFsQXZlcmFnZVNhbGFyeSA9PT0gbnVsbCB8fCBjb21wYXJpc29uLnJlZ2lvbmFsQXZlcmFnZVNhbGFyeSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnRGFkb3MgaW5zdWZpY2llbnRlcyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRDdXJyZW5jeShjb21wYXJpc29uLnJlZ2lvbmFsQXZlcmFnZVNhbGFyeSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2FsYXJ5QmFkZ2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0aGlzLnNhbGFyeVN0YXR1cykge1xyXG4gICAgICBjYXNlIER1dHlTYWxhcnlTdGF0dXMuQmVsb3dNYXJrZXQ6XHJcbiAgICAgICAgcmV0dXJuICdzYWxhcnktYmFkZ2UtLW9yYW5nZSc7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5BdE1hcmtldDpcclxuICAgICAgICByZXR1cm4gJ3NhbGFyeS1iYWRnZS0tYmx1ZSc7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5BYm92ZU1hcmtldDpcclxuICAgICAgICByZXR1cm4gJ3NhbGFyeS1iYWRnZS0tcHVycGxlJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2FsYXJ5VGl0bGVDb2xvckNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuc2FsYXJ5U3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5CZWxvd01hcmtldDpcclxuICAgICAgICByZXR1cm4gJ3NhbGFyeS10aXRsZS0tb3JhbmdlJztcclxuICAgICAgY2FzZSBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0OlxyXG4gICAgICAgIHJldHVybiAnc2FsYXJ5LXRpdGxlLS1ibHVlJztcclxuICAgICAgY2FzZSBEdXR5U2FsYXJ5U3RhdHVzLkFib3ZlTWFya2V0OlxyXG4gICAgICAgIHJldHVybiAnc2FsYXJ5LXRpdGxlLS1wdXJwbGUnO1xyXG4gICAgICBjYXNlIER1dHlTYWxhcnlTdGF0dXMuTm90SW5mb3JtZWQ6XHJcbiAgICAgICAgcmV0dXJuICdzYWxhcnktdGl0bGUtLXJlZCc7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5JbnN1ZmZpY2llbnREYXRhOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnc2FsYXJ5LXRpdGxlLS1kZWZhdWx0JztcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIEtwaUdldHRlcnNcclxuICAvLyAxLiBWYWdhcyBQdWJsaWNhZGFzXHJcbiAgZ2V0IHJlZ2lzdGVyZWRWYWNhbmNpZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmtwaXM/LnJlZ2lzdGVyZWRWYWNhbmNpZXMgPz8gMDtcclxuICB9XHJcblxyXG4gIGdldCByZWdpc3RlcmVkVmFjYW5jaWVzRGlmZigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8ucmVnaXN0ZXJlZFZhY2FuY2llc0RpZmZlcmVuY2UgPz8gMDtcclxuICB9XHJcblxyXG4gIGdldCByZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UoKTogS3BpQmFkZ2VJbmZvIHtcclxuICAgIHJldHVybiBmb3JtYXRLcGlCYWRnZSh0aGlzLnJlZ2lzdGVyZWRWYWNhbmNpZXNEaWZmLCAnbmV1dHJhbCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ2lzdGVyZWRWYWNhbmNpZXNDaGFuZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyZWRWYWNhbmNpZXNCYWRnZS5jaGFuZ2VUZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ2lzdGVyZWRWYWNhbmNpZXNCYWRnZUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuYmFkZ2VDbGFzcztcclxuICB9XHJcblxyXG4gIC8vIDIuIENhbmRpZGF0b3MgSW5zY3JpdG9zXHJcbiAgZ2V0IGNhbmRpZGF0ZUFwcGxpY2F0aW9ucygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8uY2FuZGlkYXRlQXBwbGljYXRpb25zID8/IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuZGlkYXRlQXBwbGljYXRpb25zRGlmZigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8uY2FuZGlkYXRlQXBwbGljYXRpb25zRGlmZmVyZW5jZSA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhbmRpZGF0ZUFwcGxpY2F0aW9uc0JhZGdlKCk6IEtwaUJhZGdlSW5mbyB7XHJcbiAgICByZXR1cm4gZm9ybWF0S3BpQmFkZ2UodGhpcy5jYW5kaWRhdGVBcHBsaWNhdGlvbnNEaWZmLCAnaGlnaGVySXNCZXR0ZXInKTtcclxuICB9XHJcblxyXG4gIGdldCBjYW5kaWRhdGVBcHBsaWNhdGlvbnNDaGFuZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNhbmRpZGF0ZUFwcGxpY2F0aW9uc0JhZGdlLmNoYW5nZVRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuZGlkYXRlQXBwbGljYXRpb25zQmFkZ2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuZGlkYXRlQXBwbGljYXRpb25zQmFkZ2UuYmFkZ2VDbGFzcztcclxuICB9XHJcblxyXG4gIC8vIDMuIEN1cnLDrWN1bG9zIHBhcmEgQXZhbGlhclxyXG4gIGdldCBwZW5kaW5nUmV2aWV3cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8ucGVuZGluZ1Jldmlld3MgPz8gMDtcclxuICB9XHJcblxyXG4gIGdldCBwZW5kaW5nUmV2aWV3c0RpZmYoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmtwaXM/LnBlbmRpbmdSZXZpZXdzRGlmZmVyZW5jZSA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlbmRpbmdSZXZpZXdzQmFkZ2UoKTogS3BpQmFkZ2VJbmZvIHtcclxuICAgIHJldHVybiBmb3JtYXRLcGlCYWRnZSh0aGlzLnBlbmRpbmdSZXZpZXdzRGlmZiwgJ2xvd2VySXNCZXR0ZXInKTtcclxuICB9XHJcblxyXG4gIGdldCBwZW5kaW5nUmV2aWV3c0NoYW5nZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1Jldmlld3NCYWRnZS5jaGFuZ2VUZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlbmRpbmdSZXZpZXdzQmFkZ2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1Jldmlld3NCYWRnZS5iYWRnZUNsYXNzO1xyXG4gIH1cclxuXHJcbiAgLy8gNC4gTcOpZGlhIGRlIENhbmRpZGF0b3NcclxuICBnZXQgYXZlcmFnZUNhbmRpZGF0ZXNQZXJWYWNhbmN5KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhdmcgPSB0aGlzLmRhdGE/LmtwaXM/LmF2ZXJhZ2VDYW5kaWRhdGVzUGVyVmFjYW5jeTtcclxuICAgIGlmIChhdmcgPT09IHVuZGVmaW5lZCB8fCBhdmcgPT09IG51bGwpIHJldHVybiAnMCwwJztcclxuICAgIHJldHVybiBhdmcudG9GaXhlZCgxKS5yZXBsYWNlKCcuJywgJywnKTtcclxuICB9XHJcblxyXG4gIGdldCBhdmVyYWdlQ2FuZGlkYXRlc0RpZmYoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmtwaXM/LmF2ZXJhZ2VDYW5kaWRhdGVzRGlmZmVyZW5jZSA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UoKTogS3BpQmFkZ2VJbmZvIHtcclxuICAgIHJldHVybiBmb3JtYXRLcGlCYWRnZSh0aGlzLmF2ZXJhZ2VDYW5kaWRhdGVzRGlmZiwgJ2hpZ2hlcklzQmV0dGVyJywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXZlcmFnZUNhbmRpZGF0ZXNDaGFuZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuY2hhbmdlVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBhdmVyYWdlQ2FuZGlkYXRlc0JhZGdlQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuYmFkZ2VDbGFzcztcclxuICB9XHJcblxyXG4gIC8vIDUuIFN0YXR1cyBkYXMgVmFnYXNcclxuICBnZXQgb3BlblZhY2FuY2llcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8ub3BlblZhY2FuY2llcyA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsb3NlZFZhY2FuY2llcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8uY2xvc2VkVmFjYW5jaWVzID8/IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgdG90YWxEdXRpZXNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8udG90YWxWYWNhbmNpZXMgPz8gKHRoaXMub3BlblZhY2FuY2llcyArIHRoaXMuY2xvc2VkVmFjYW5jaWVzKTtcclxuICB9XHJcblxyXG4gIGdldCBkdXRpZXNTdGF0dXNJdGVtcygpOiBTdGFja2VkQmFySXRlbVtdIHtcclxuICAgIGlmICh0aGlzLmRhdGE/LmR1dGllc1N0YXR1cyAmJiB0aGlzLmRhdGEuZHV0aWVzU3RhdHVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5kdXRpZXNTdGF0dXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7IGxhYmVsOiAnQWJlcnRhcycsIHZhbHVlOiB0aGlzLm9wZW5WYWNhbmNpZXMsIGNvbG9yOiAnIzNCODJGNicgfSxcclxuICAgICAgeyBsYWJlbDogJ0VuY2VycmFkYXMnLCB2YWx1ZTogdGhpcy5jbG9zZWRWYWNhbmNpZXMsIGNvbG9yOiAnIzFFMUI0QicgfVxyXG4gICAgXTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIENvbXBhcmlzb25TZWN0aW9uXHJcbiAgZ2V0IGNvbXBhcmlzb25JdGVtcygpOiBDb21wYXJpc29uSXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmNvbXBhcmlzb24gPz8gW107XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzQ29tcGFyaXNvbkR1dGllcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb25JdGVtcy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRvdGFsQ29tcGFyaXNvbkNhbmRpZGF0ZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb25JdGVtcy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgKGN1cnIudmFsdWUgfHwgMCksIDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRvdGFsQ29tcGFyaXNvblZhY2FuY2llcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcGFyaXNvbkl0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldCBjb21wYXJpc29uU3VidGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNhbmRDb3VudCA9IHRoaXMudG90YWxDb21wYXJpc29uQ2FuZGlkYXRlcztcclxuICAgIGNvbnN0IGR1dHlDb3VudCA9IHRoaXMudG90YWxDb21wYXJpc29uVmFjYW5jaWVzO1xyXG4gICAgY29uc3QgY2FuZFRleHQgPSBjYW5kQ291bnQgPT09IDEgPyAnMSBjYW5kaWRhdHVyYSBubyB0b3RhbCcgOiBgJHtjYW5kQ291bnR9IGNhbmRpZGF0dXJhcyBubyB0b3RhbGA7XHJcbiAgICBjb25zdCBkdXR5VGV4dCA9IGR1dHlDb3VudCA9PT0gMSA/ICcxIHZhZ2EgYXRpdmEnIDogYCR7ZHV0eUNvdW50fSB2YWdhcyBhdGl2YXNgO1xyXG4gICAgcmV0dXJuIGAke2NhbmRUZXh0fSwgZW0gJHtkdXR5VGV4dH1gO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gU3RhdGVIZWxwZXJzXHJcbiAgZ2V0IGhhc0RhdGEoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmRhdGEgJiYgISF0aGlzLmRhdGEua3BpcztcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFVzZXJBY3Rpb25zXHJcbiAgc2V0UGVyaW9kKHBlcmlvZDogRGFzaGJvYXJkUGVyaW9kKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGVyaW9kID09PSBwZXJpb2QpIHJldHVybjtcclxuICAgIHRoaXMuY3VycmVudFBlcmlvZCA9IHBlcmlvZDtcclxuICAgIHRoaXMucGVyaW9kQ2hhbmdlLmVtaXQocGVyaW9kKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhcnRJdGVtU2VsZWN0ZWQoaXRlbTogYW55LCBjaGFydE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgIGNoYXJ0OiBjaGFydE5hbWUsXHJcbiAgICAgIGl0ZW1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmVvbi1kYXNoYm9hcmQtY29udGFpbmVyXCI+XHJcbiAgPCEtLSAjcmVnaW9uIERhc2hib2FyZEhlYWRlciAtLT5cclxuICA8aGVhZGVyIGNsYXNzPVwiZGFzaGJvYXJkLWhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZXNcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWFpbi10aXRsZVwiPnt7IHRpdGxlIH19PC9oMT5cclxuICAgICAgPHAgKm5nSWY9XCJzdWJ0aXRsZVwiIGNsYXNzPVwic3VidGl0bGVcIj5cclxuICAgICAgICB7eyBzdWJ0aXRsZSB9fVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicGVyaW9kLWZpbHRlci1ncm91cFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJpb2QtcGlsbFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50UGVyaW9kID09PSBEYXNoYm9hcmRQZXJpb2QuVG9kYXlcIlxyXG4gICAgICAgIChjbGljayk9XCJzZXRQZXJpb2QoRGFzaGJvYXJkUGVyaW9kLlRvZGF5KVwiXHJcbiAgICAgID5cclxuICAgICAgICBIb2plXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJpb2QtcGlsbFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50UGVyaW9kID09PSBEYXNoYm9hcmRQZXJpb2QuV2Vla1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNldFBlcmlvZChEYXNoYm9hcmRQZXJpb2QuV2VlaylcIlxyXG4gICAgICA+XHJcbiAgICAgICAgU2VtYW5hXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJpb2QtcGlsbFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50UGVyaW9kID09PSBEYXNoYm9hcmRQZXJpb2QuTW9udGhcIlxyXG4gICAgICAgIChjbGljayk9XCJzZXRQZXJpb2QoRGFzaGJvYXJkUGVyaW9kLk1vbnRoKVwiXHJcbiAgICAgID5cclxuICAgICAgICBNw6pzXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcbiAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICA8IS0tICNyZWdpb24gTG9hZGluZ1NrZWxldG9uU3RhdGUgLS0+XHJcbiAgPGNhcmVvbi1kYXNoYm9hcmQtc2tlbGV0b24gKm5nSWY9XCJsb2FkaW5nXCI+PC9jYXJlb24tZGFzaGJvYXJkLXNrZWxldG9uPlxyXG4gIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgPCEtLSAjcmVnaW9uIEVtcHR5U3RhdGUgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFoYXNEYXRhXCIgY2xhc3M9XCJkYXNoYm9hcmQtZW1wdHktc3RhdGVcIj5cclxuICAgIDxwIGNsYXNzPVwiZW1wdHktdGl0bGVcIj5TZW0gcmVnaXN0cm9zPC9wPlxyXG4gICAgPHAgY2xhc3M9XCJlbXB0eS1kZXNjcmlwdGlvblwiPnt7IGVtcHR5TWVzc2FnZSB9fTwvcD5cclxuICA8L2Rpdj5cclxuICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gIDwhLS0gI3JlZ2lvbiBEYXNoYm9hcmRDb250ZW50IC0tPlxyXG4gIDxtYWluICpuZ0lmPVwiIWxvYWRpbmcgJiYgaGFzRGF0YVwiIGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRlbnRcIj5cclxuICAgIDwhLS0gI3JlZ2lvbiBLcGlDYXJkc1JvdyAtLT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwia3BpLWNhcmRzLWdyaWRcIj5cclxuICAgICAgPCEtLSBLUEkgMTogVmFnYXMgUHVibGljYWRhcyAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJrcGktY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrcGktY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWxhYmVsXCI+VmFnYXMgUHVibGljYWRhczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia3BpLWNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktdmFsdWVcIj57eyByZWdpc3RlcmVkVmFjYW5jaWVzIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktYmFkZ2VcIiBbbmdDbGFzc109XCJyZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuYmFkZ2VDbGFzc1wiPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwicmVnaXN0ZXJlZFZhY2FuY2llc0JhZGdlLmlzUG9zaXRpdmVcIiBuYW1lPVwiYXJyb3ctdXBcIiBjbGFzcz1cImtwaS1iYWRnZS1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gKm5nSWY9XCJyZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuaXNOZWdhdGl2ZVwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyByZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuY2hhbmdlVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImtwaS1mb290ZXJcIj5cclxuICAgICAgICAgIG5vIHRvdGFsXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2FydGljbGU+XHJcblxyXG4gICAgICA8IS0tIEtQSSAyOiBDYW5kaWRhdG9zIEluc2NyaXRvcyAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJrcGktY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrcGktY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWxhYmVsXCI+Q2FuZGlkYXRvcyBJbnNjcml0b3M8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLXZhbHVlXCI+e3sgY2FuZGlkYXRlQXBwbGljYXRpb25zIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktYmFkZ2VcIiBbbmdDbGFzc109XCJjYW5kaWRhdGVBcHBsaWNhdGlvbnNCYWRnZS5iYWRnZUNsYXNzXCI+XHJcbiAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gKm5nSWY9XCJjYW5kaWRhdGVBcHBsaWNhdGlvbnNCYWRnZS5pc1Bvc2l0aXZlXCIgbmFtZT1cImFycm93LXVwXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwiY2FuZGlkYXRlQXBwbGljYXRpb25zQmFkZ2UuaXNOZWdhdGl2ZVwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjYW5kaWRhdGVBcHBsaWNhdGlvbnNCYWRnZS5jaGFuZ2VUZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWZvb3RlclwiPlxyXG4gICAgICAgICAge3sgY3VycmVudFBlcmlvZCA9PT0gJ1RvZGF5JyA/ICdob2plJyA6IGN1cnJlbnRQZXJpb2QgPT09ICdXZWVrJyA/ICdlc3NhIHNlbWFuYScgOiAnZXNzZSBtw6pzJyB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9hcnRpY2xlPlxyXG5cclxuICAgICAgPCEtLSBLUEkgMzogQ3VycsOtY3Vsb3MgcGFyYSBBdmFsaWFyIC0tPlxyXG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImtwaS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktbGFiZWxcIj5DdXJyw61jdWxvcyBwYXJhIEF2YWxpYXI8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLXZhbHVlXCI+e3sgcGVuZGluZ1Jldmlld3MgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImtwaS1iYWRnZVwiIFtuZ0NsYXNzXT1cInBlbmRpbmdSZXZpZXdzQmFkZ2UuYmFkZ2VDbGFzc1wiPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwicGVuZGluZ1Jldmlld3NCYWRnZS5pc1Bvc2l0aXZlXCIgbmFtZT1cImFycm93LXVwXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwicGVuZGluZ1Jldmlld3NCYWRnZS5pc05lZ2F0aXZlXCIgbmFtZT1cImFycm93LWRvd25cIiBjbGFzcz1cImtwaS1iYWRnZS1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHBlbmRpbmdSZXZpZXdzQmFkZ2UuY2hhbmdlVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImtwaS1mb290ZXJcIj5hZ3VhcmRhbmRvIGFnb3JhPC9zcGFuPlxyXG4gICAgICA8L2FydGljbGU+XHJcblxyXG4gICAgICA8IS0tIEtQSSA0OiBNw6lkaWEgZGUgQ2FuZGlkYXRvcyAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJrcGktY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrcGktY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWxhYmVsXCI+TcOpZGlhIGRlIENhbmRpZGF0b3M8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLXZhbHVlXCI+e3sgYXZlcmFnZUNhbmRpZGF0ZXNQZXJWYWNhbmN5IH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktYmFkZ2VcIiBbbmdDbGFzc109XCJhdmVyYWdlQ2FuZGlkYXRlc0JhZGdlLmJhZGdlQ2xhc3NcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiAqbmdJZj1cImF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuaXNQb3NpdGl2ZVwiIG5hbWU9XCJhcnJvdy11cFwiIGNsYXNzPVwia3BpLWJhZGdlLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiAqbmdJZj1cImF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuaXNOZWdhdGl2ZVwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBhdmVyYWdlQ2FuZGlkYXRlc0JhZGdlLmNoYW5nZVRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktZm9vdGVyXCI+cG9yIHZhZ2E8L3NwYW4+XHJcbiAgICAgIDwvYXJ0aWNsZT5cclxuXHJcbiAgICAgIDwhLS0gS1BJIDU6IFN0YXR1cyBkYXMgVmFnYXMgLS0+XHJcbiAgICAgIDxhcnRpY2xlIGNsYXNzPVwia3BpLWNhcmQga3BpLWNhcmQtLXN0YXR1c1wiPlxyXG4gICAgICAgIDxjYXJlb24tc3RhY2tlZC1ob3Jpem9udGFsLWJhclxyXG4gICAgICAgICAgW3RpdGxlXT1cIidTdGF0dXMgZGFzIFZhZ2FzJ1wiXHJcbiAgICAgICAgICBbdG90YWxMYWJlbF09XCIndmFnYXMnXCJcclxuICAgICAgICAgIFtzaG93SGVhZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgW3Nob3dMZWdlbmRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbZGF0YV09XCJkdXRpZXNTdGF0dXNJdGVtc1wiXHJcbiAgICAgICAgICBbZW1wdHlUZXh0XT1cIidTZW0gdmFnYXMgcmVnaXN0cmFkYXMnXCJcclxuICAgICAgICAgIChpdGVtU2VsZWN0ZWQpPVwib25DaGFydEl0ZW1TZWxlY3RlZCgkZXZlbnQsICdTdGF0dXMgZGFzIFZhZ2FzJylcIlxyXG4gICAgICAgID48L2NhcmVvbi1zdGFja2VkLWhvcml6b250YWwtYmFyPlxyXG4gICAgICA8L2FydGljbGU+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgPCEtLSAjcmVnaW9uIEF0dGVudGlvblNlY3Rpb24gLS0+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImF0dGVudGlvbi1zZWN0aW9uXCI+XHJcbiAgICAgIDwhLS0gI3JlZ2lvbiBBdHRlbnRpb25DYXJkIC0tPlxyXG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImF0dGVudGlvbi1jYXJkXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiYXR0ZW50aW9uLWNhcmQtdGl0bGVcIj5QcmVjaXNhIGRhIHN1YSBhdGVuw6fDo288L2gyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0ZW50aW9uSXRlbXMubGVuZ3RoID4gMDsgZWxzZSBub0F0dGVudGlvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGVudGlvbi1pdGVtcy1saXN0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXR0ZW50aW9uSXRlbXM7IGxldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiYXR0ZW50aW9uLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbnRpb24taXRlbVwiIChjbGljayk9XCJvbkF0dGVudGlvbkl0ZW1DbGljayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdHRlbnRpb24taXRlbS10aXRsZVwiPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF0dGVudGlvbi1pdGVtLXN1YnRpdGxlXCI+e3sgaXRlbS5zdWJ0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxhc3RcIiBjbGFzcz1cImF0dGVudGlvbi1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tY29uc3VsdGFudFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29uc3VsdGFudFdoYXRzQXBwKCdQcmVjaXNhIGRhIHN1YSBhdGVuw6fDo28nKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIEZhbGUgY29tIHVtIGNvbnN1bHRvclxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BdHRlbnRpb24+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaXNoWmVyb1N0YXRlOyBlbHNlIGJhc2ljQXR0ZW50aW9uWmVyb1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0ZW50aW9uLXplcm8tYm94XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGVudGlvbi16ZXJvLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiemVyby1pbmZvLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbnRpb24temVyby10ZXh0c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJhdHRlbnRpb24temVyby10aXRsZVwiPk5lbmh1bWEgdmFnYSBwcmVjaXNhIGRlIGF0ZW7Dp8OjbzwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXR0ZW50aW9uLXplcm8tc3VidGl0bGVcIj5Wb2PDqiBuw6NvIHRlbSB2YWdhcyBlbSBhYmVydG8gcGFyYSByZXZpc2FyLjwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4temVyby1wdWJsaXNoIGJ0bi16ZXJvLXB1Ymxpc2gtLWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHVibGlzaER1dHkoJ1ByZWNpc2EgZGEgc3VhIGF0ZW7Dp8OjbycpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBQdWJsaWNhciBWYWdhXHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNiYXNpY0F0dGVudGlvblplcm8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXNpYy1lbXB0eS1zdGF0ZSBiYXNpYy1lbXB0eS1zdGF0ZS0tYXR0ZW50aW9uXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWVtcHR5LWljb24td3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiYmFzaWMtZW1wdHktaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cImJhc2ljLWVtcHR5LXRpdGxlXCI+VHVkbyBlbSBkaWEhPC9oMz5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImJhc2ljLWVtcHR5LXRleHRcIj5OZW5odW1hIHZhZ2EgcHJlY2lzYSBkYSBzdWEgYXRlbsOnw6NvIG5vIG1vbWVudG8uPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNvbnN1bHRhbnRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29uc3VsdGFudFdoYXRzQXBwKCdQcmVjaXNhIGRhIHN1YSBhdGVuw6fDo28gLSBTZW0gdmFnYXMnKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBGYWxlIGNvbSB1bSBjb25zdWx0b3JcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgICAgPCEtLSAjcmVnaW9uIFBlcmZvcm1hbmNlQ2FyZCAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJwZXJmb3JtYW5jZS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcmZvcm1hbmNlLWNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJwZXJmb3JtYW5jZS1jYXJkLXRpdGxlXCI+QW7DoWxpc2UgZGUgRGVzZW1wZW5obzwvaDI+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInBlcmZvcm1hbmNlLWluZm8td3JhcHBlclwiXHJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uSW5mb01vdXNlRW50ZXIoKVwiXHJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uSW5mb01vdXNlTGVhdmUoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1pbmZvXCJcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiSW5mb3JtYcOnw7VlcyBzb2JyZSBhIEFuw6FsaXNlIGRlIERlc2VtcGVuaG9cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVJbmZvVG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gbmFtZT1cImluZm9cIiBjbGFzcz1cImluZm8taWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gVG9vbHRpcCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dJbmZvVG9vbHRpcFwiIGNsYXNzPVwiaW5mby10b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidG9vbHRpcC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICBFc3RhIGFuw6FsaXNlIG1lZGUgbyBpbnRlcmVzc2UgZG9zIGNhbmRpZGF0b3MgcGVsYSBzdWEgZW1wcmVzYSBlIMOpIGF0dWFsaXphZGEgY29udGludWFtZW50ZSDDoCBtZWRpZGEgcXVlIG1haXMgcHJvZmlzc2lvbmFpcyBkZW1vbnN0cmFtIGRlc2VqbyBkZSBmYXplciBwYXJ0ZSBkbyBzZXUgdGltZS5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gR3LDoWZpY28gZGUgT25kYXMgLS0+XHJcbiAgICAgICAgPGNhcmVvbi1wZXJmb3JtYW5jZS13YXZlIFtsZXZlbF09XCJwZXJmb3JtYW5jZUxldmVsXCI+PC9jYXJlb24tcGVyZm9ybWFuY2Utd2F2ZT5cclxuXHJcbiAgICAgICAgPCEtLSBDb250ZcO6ZG8gVGV4dHVhbCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWFuY2UtYm9keVwiPlxyXG4gICAgICAgICAgPGgzIGNsYXNzPVwicGVyZm9ybWFuY2UtaGlnaGxpZ2h0LXRpdGxlXCI+e3sgcGVyZm9ybWFuY2VUaXRsZSB9fTwvaDM+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInBlcmZvcm1hbmNlLWRlc2NyaXB0aW9uXCI+e3sgcGVyZm9ybWFuY2VEZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBCb3TDo28gV2hhdHNBcHAgLS0+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1jb25zdWx0YW50XCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuQ29uc3VsdGFudFdoYXRzQXBwKCdBbsOhbGlzZSBkZSBEZXNlbXBlbmhvJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEZhbGUgY29tIHVtIGNvbnN1bHRvclxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2FydGljbGU+XHJcbiAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gVmFjYW5jeUFuYWx5c2lzU2VjdGlvbiAtLT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwidmFjYW5jeS1hbmFseXNpcy1zZWN0aW9uIHZhY2FuY3ktYW5hbHlzaXMtY2FyZFwiPlxyXG4gICAgICA8IS0tICNyZWdpb24gU2VjdGlvbkhlYWRlciAtLT5cclxuICAgICAgPGhlYWRlciBjbGFzcz1cInZhY2FuY3ktc2VjdGlvbi1oZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFjYW5jeS1zZWN0aW9uLXRpdGxlLWdyb3VwXCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJ2YWNhbmN5LXNlY3Rpb24tdGl0bGVcIj5BbsOhbGlzZSBwb3IgVmFnYTwvaDI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhY2FuY3ktc2VjdGlvbi1zdWJ0aXRsZVwiICpuZ0lmPVwic2VsZWN0ZWREdXR5XCI+e3sgdmFjYW5jeVNlY3Rpb25TdWJ0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFjYW5jeS1zZWN0aW9uLXN1YnRpdGxlXCIgKm5nSWY9XCIhc2VsZWN0ZWREdXR5XCI+XHJcbiAgICAgICAgICAgIHt7IGlzUHVibGlzaFplcm9TdGF0ZSA/ICdOZW5odW1hIGNhbmRpZGF0dXJhIHJlZ2lzdHJhZGEnIDogJ05lbmh1bWEgdmFnYSBhdGl2YSBubyBtb21lbnRvJyB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi13cmFwcGVyXCIgKm5nSWY9XCJ2YWNhbmNpZXNBbmFseXNpcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhY2FuY3ktZHJvcGRvd24tbGFiZWxcIj5Fc2NvbGhhIGEgdmFnYTo8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhY2FuY3ktZHJvcGRvd24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInZhY2FuY3ktZHJvcGRvd24tYnRuXCJcclxuICAgICAgICAgICAgICBbY2xhc3MudmFjYW5jeS1kcm9wZG93bi1idG4tLW9wZW5dPVwiaXNEdXR5RHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHV0eURyb3Bkb3duKClcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNEdXR5RHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi1idG4tdGV4dFwiPnt7IHNlbGVjdGVkRHV0eT8udGl0bGUgfHwgJ1NlbGVjaW9uZSB1bWEgdmFnYScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiY2hldnJvbi1kb3duXCIgW3JvdGF0ZWRdPVwiaXNEdXR5RHJvcGRvd25PcGVuXCIgY2xhc3M9XCJ2YWNhbmN5LWRyb3Bkb3duLWJ0bi1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBCYWNrZHJvcCBwYXJhIGZlY2hhciBkcm9wZG93biBhbyBjbGljYXIgZm9yYSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzRHV0eURyb3Bkb3duT3BlblwiIGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi1iYWNrZHJvcFwiIChjbGljayk9XCJjbG9zZUR1dHlEcm9wZG93bigpXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE1lbnUgZmx1dHVhbnRlIGRvIGRyb3Bkb3duIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNEdXR5RHJvcGRvd25PcGVuXCIgY2xhc3M9XCJ2YWNhbmN5LWRyb3Bkb3duLW1lbnVcIiByb2xlPVwibWVudVwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkdXR5IG9mIHZhY2FuY2llc0FuYWx5c2lzXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi1pdGVtXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy52YWNhbmN5LWRyb3Bkb3duLWl0ZW0tLXNlbGVjdGVkXT1cImR1dHkuZHV0eUlkID09PSBzZWxlY3RlZER1dHk/LmR1dHlJZFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RHV0eShkdXR5KVwiXHJcbiAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkdXR5LXJhZGlvLW91dGVyXCIgW2NsYXNzLmR1dHktcmFkaW8tb3V0ZXItLWNoZWNrZWRdPVwiZHV0eS5kdXR5SWQgPT09IHNlbGVjdGVkRHV0eT8uZHV0eUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkdXR5LXJhZGlvLWlubmVyXCIgKm5nSWY9XCJkdXR5LmR1dHlJZCA9PT0gc2VsZWN0ZWREdXR5Py5kdXR5SWRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkdXR5LWl0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImR1dHktaXRlbS10aXRsZVwiPnt7IGR1dHkudGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHV0eS1pdGVtLXN1YnRpdGxlXCI+e3sgZHV0eS5zdWJ0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2hlYWRlcj5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRHV0eTsgZWxzZSBub0FjdGl2ZUR1dGllc1wiPlxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBUaW1lbGluZUNoYXJ0IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWNhbmN5LXRpbWVsaW5lLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjYXJlb24tdGltZWxpbmUtYmFyLWNoYXJ0XHJcbiAgICAgICAgICAgIFtkYXRhXT1cInNlbGVjdGVkRHV0eVRpbWVsaW5lUG9pbnRzXCJcclxuICAgICAgICAgICAgW2F1dG9CYXJXaWR0aF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtiYXJXaWR0aF09XCI2OFwiXHJcbiAgICAgICAgICAgIChpdGVtU2VsZWN0ZWQpPVwib25UaW1lbGluZVBvaW50U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jYXJlb24tdGltZWxpbmUtYmFyLWNoYXJ0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSAjcmVnaW9uIEJvdHRvbU1ldHJpY3NSb3cgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhY2FuY3ktYm90dG9tLWdyaWRcIj5cclxuICAgICAgICAgIDwhLS0gQ2FyZCBUYXhhIGRlIENvbnZlcnPDo28gLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktbWV0cmljLWNhcmQgdmFjYW5jeS1tZXRyaWMtY2FyZC0tZG9udXRcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kb251dC1jaGFydFxyXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInVGF4YSBkZSBjb252ZXJzw6NvJ1wiXHJcbiAgICAgICAgICAgICAgW3RpdGxlQm9sZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbdGl0bGVTaXplXT1cIjE0XCJcclxuICAgICAgICAgICAgICBbdGl0bGVQYWRkaW5nXT1cIjZcIlxyXG4gICAgICAgICAgICAgIFtkYXRhXT1cInNlbGVjdGVkRHV0eURvbnV0SXRlbXNcIlxyXG4gICAgICAgICAgICAgIFtjZW50ZXJUZXh0XT1cInNlbGVjdGVkRHV0eUNvbnZlcnNpb25SYXRlVGV4dFwiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiOTZcIlxyXG4gICAgICAgICAgICAgIFtzdHJva2VXaWR0aF09XCIxOFwiXHJcbiAgICAgICAgICAgID48L2NhcmVvbi1kb251dC1jaGFydD5cclxuICAgICAgICAgIDwvYXJ0aWNsZT5cclxuXHJcbiAgICAgICAgICA8IS0tIENhcmQgVmlzdWFsaXphw6fDtWVzIOKGkiBDYW5kaWRhdHVyYXMgLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktbWV0cmljLWNhcmQgdmFjYW5jeS1tZXRyaWMtY2FyZC0tZnVubmVsXCI+XHJcbiAgICAgICAgICAgIDxjYXJlb24tZnVubmVsLWJhclxyXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInVmlzdWFsaXphw6fDtWVzIOKGkiBDYW5kaWRhdHVyYXMnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVCb2xkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFt0aXRsZVNpemVdPVwiMTRcIlxyXG4gICAgICAgICAgICAgIFt0aXRsZVBhZGRpbmddPVwiNlwiXHJcbiAgICAgICAgICAgICAgW2RhdGFdPVwic2VsZWN0ZWREdXR5RnVubmVsSXRlbXNcIlxyXG4gICAgICAgICAgICAgIFttaW5CYXJXaWR0aF09XCIyNjBcIlxyXG4gICAgICAgICAgICA+PC9jYXJlb24tZnVubmVsLWJhcj5cclxuICAgICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBTYWxhcnlBbmRTdXBwb3J0Um93IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWNhbmN5LXNhbGFyeS1zdXBwb3J0LWdyaWRcIiAqbmdJZj1cInNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb25cIj5cclxuICAgICAgICAgIDwhLS0gQ2FyZCBNw6lkaWEgU2FsYXJpYWwgLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktc2FsYXJ5LWNhcmRcIj5cclxuICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cInNhbGFyeS1jYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gQ29sdW5hIDE6IFNldSB2YWxvciAtLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2FsYXJ5LW1ldHJpYy1jb2xcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2FsYXJ5LW1ldHJpYy1sYWJlbFwiPlNldSB2YWxvcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2FsYXJ5LW1ldHJpYy12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5zYWxhcnktbWV0cmljLXZhbHVlLS1ub3QtaW5mb3JtZWRdPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLk5vdEluZm9ybWVkXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLWluc3VmZmljaWVudF09XCJzYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdHRlZFlvdXJTYWxhcnkgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBEaXZpc29yIHZlcnRpY2FsIC0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYWxhcnktbWV0cmljLWRpdmlkZXJcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBDb2x1bmEgMjogTcOpZGlhIGRhIHJlZ2nDo28gLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhbGFyeS1tZXRyaWMtY29sXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNhbGFyeS1tZXRyaWMtbGFiZWxcIj5Nw6lkaWEgZGEgcmVnacOjbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2FsYXJ5LW1ldHJpYy12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5zYWxhcnktbWV0cmljLXZhbHVlLS1vcmFuZ2VdPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkJlbG93TWFya2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLWJsdWVdPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLW5hdnldPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkFib3ZlTWFya2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLWluc3VmZmljaWVudF09XCJzYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5zYWxhcnktbWV0cmljLXZhbHVlLS1tdXRlZF09XCJzYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuTm90SW5mb3JtZWRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBmb3JtYXR0ZWRSZWdpb25hbEF2ZXJhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBCYWRnZSBEaW7Dom1pY28gLS0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYWxhcnktYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2FsYXJ5QmFkZ2VDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb24uYmFkZ2VUZXh0XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZER1dHlTYWxhcnlDb21wYXJpc29uLmJhZGdlVGV4dCB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2hlYWRlcj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTGluaGEvQ29ycG8gdGV4dHVhbCBjb20gRGVzdGFxdWUgZSBFeHBsaWNhw6fDo28gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYWxhcnktY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic2FsYXJ5LWhpZ2hsaWdodC10aXRsZVwiIFtuZ0NsYXNzXT1cInNhbGFyeVRpdGxlQ29sb3JDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgc2VsZWN0ZWREdXR5U2FsYXJ5Q29tcGFyaXNvbi5oaWdobGlnaHRUaXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzYWxhcnktZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb24uZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9hcnRpY2xlPlxyXG5cclxuICAgICAgICAgIDwhLS0gQ2FyZCBkZSBTdXBvcnRlOiBEw7p2aWRhcyBzb2JyZSBlc3NlcyBkYWRvcz8gLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktc3VwcG9ydC1jYXJkXCI+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1cHBvcnQtY2FyZC10aXRsZVwiPkFpbmRhIGNvbSBkw7p2aWRhcyBzb2JyZSBlc3NlcyBkYWRvcz88L2g0PlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInN1cHBvcnQtY2FyZC1zdWJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgIFNlIGRlcG9pcyBkZSB2ZXIgb3MgZ3LDoWZpY29zIHZvY8OqIGZpY291IGNvbSBwZXJndW50YXMgc2VtIHJlc3Bvc3RhLCBmYWxlIGNvbSBhIG5vc3NhIGVxdWlwZS5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4tc3VwcG9ydC1jb25zdWx0YW50XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkNvbnN1bHRhbnRXaGF0c0FwcCgnRMO6dmlkYXMgc29icmUgZXNzZXMgZGFkb3MnKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBGYWxlIGNvbSB1bSBjb25zdWx0b3JcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2FydGljbGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BY3RpdmVEdXRpZXM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyXCIgKm5nSWY9XCJpc1B1Ymxpc2haZXJvU3RhdGU7IGVsc2UgYmFzaWNWYWNhbmN5WmVyb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLWxlZnRcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiemVyby1pbmZvLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLXRleHRzXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiemVyby1zdGF0ZS1iYW5uZXItdGl0bGVcIj5OZW5odW1hIHZhZ2EgcGFyYSBhbmFsaXNhcjwvaDM+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ6ZXJvLXN0YXRlLWJhbm5lci1zdWJ0aXRsZVwiPkNhZGFzdHJlIHVtYSB2YWdhIHBhcmEgY29tZcOnYXIgYSBhY29tcGFuaGFyIG8gZGVzZW1wZW5obyBkZWxhIGFxdWkuPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4temVyby1wdWJsaXNoXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHVibGlzaER1dHkoJ0Fuw6FsaXNlIHBvciBWYWdhJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBQdWJsaWNhciBWYWdhXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNiYXNpY1ZhY2FuY3laZXJvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWVtcHR5LXN0YXRlIGJhc2ljLWVtcHR5LXN0YXRlLS12YWNhbmN5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXNpYy1lbXB0eS1pY29uLXdyYXBcIj5cclxuICAgICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uIG5hbWU9XCJpbmZvXCIgY2xhc3M9XCJiYXNpYy1lbXB0eS1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJiYXNpYy1lbXB0eS10aXRsZVwiPk5lbmh1bWEgdmFnYSBwYXJhIGFuYWxpc2FyPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJiYXNpYy1lbXB0eS10ZXh0XCI+TmVuaHVtYSB2YWdhIGF0aXZhIG5vIG1vbWVudG8gcGFyYSBhbsOhbGlzZS48L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBBcHBsaWNhdGlvbnNQZXJWYWNhbmN5U2VjdGlvbiAtLT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYXBwbGljYXRpb25zLXBlci12YWNhbmN5LXNlY3Rpb25cIj5cclxuICAgICAgPGhlYWRlciBjbGFzcz1cImFwcGxpY2F0aW9ucy1zZWN0aW9uLWhlYWRlclwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImFwcGxpY2F0aW9ucy1zZWN0aW9uLXRpdGxlXCI+Q2FuZGlkYXR1cmFzIHBvciBWYWdhPC9oMj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFwcGxpY2F0aW9ucy1zZWN0aW9uLXN1YnRpdGxlXCIgKm5nSWY9XCJoYXNDb21wYXJpc29uRHV0aWVzXCI+XHJcbiAgICAgICAgICB7eyBjb21wYXJpc29uU3VidGl0bGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHBsaWNhdGlvbnMtc2VjdGlvbi1zdWJ0aXRsZVwiICpuZ0lmPVwiIWhhc0NvbXBhcmlzb25EdXRpZXNcIj5cclxuICAgICAgICAgIHt7IGlzUHVibGlzaFplcm9TdGF0ZSA/ICcwIGNhbmRpZGF0dXJhcyBubyB0b3RhbCwgbmVuaHVtYSB2YWdhIGF0aXZhJyA6ICdOZW5odW1hIHZhZ2EgYXRpdmEgbm8gbW9tZW50bycgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcGxpY2F0aW9ucy1jaGFydC13cmFwcGVyXCIgKm5nSWY9XCJoYXNDb21wYXJpc29uRHV0aWVzOyBlbHNlIG5vQ29tcGFyaXNvbkR1dGllc1wiPlxyXG4gICAgICAgIDxjYXJlb24tY29tcGFyaXNvbi1iYXItY2hhcnRcclxuICAgICAgICAgIFtkYXRhXT1cImNvbXBhcmlzb25JdGVtc1wiXHJcbiAgICAgICAgICBbYXV0b0JhcldpZHRoXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtiYXJXaWR0aF09XCI3NVwiXHJcbiAgICAgICAgICBbaXRlbVNsb3RXaWR0aF09XCIxMDBcIlxyXG4gICAgICAgICAgW2JhckNvbG9yXT1cIicjM0I4MkY2J1wiXHJcbiAgICAgICAgICBbemVyb0NvbG9yXT1cIicjRUY0NDQ0J1wiXHJcbiAgICAgICAgICBbdHJlbmRMaW5lQ29sb3JdPVwiJyMxRTI5M0InXCJcclxuICAgICAgICAgIFtkb3RDb2xvcl09XCInIzFFMjkzQidcIlxyXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInIzY0NzQ4QidcIlxyXG4gICAgICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJvbkNoYXJ0SXRlbVNlbGVjdGVkKCRldmVudCwgJ0NhbmRpZGF0dXJhcyBwb3IgVmFnYScpXCJcclxuICAgICAgICA+PC9jYXJlb24tY29tcGFyaXNvbi1iYXItY2hhcnQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNub0NvbXBhcmlzb25EdXRpZXM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyXCIgKm5nSWY9XCJpc1B1Ymxpc2haZXJvU3RhdGU7IGVsc2UgYmFzaWNDb21wYXJpc29uWmVyb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLWxlZnRcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiemVyby1pbmZvLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLXRleHRzXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiemVyby1zdGF0ZS1iYW5uZXItdGl0bGVcIj5OZW5odW1hIGNhbmRpZGF0dXJhIHJlZ2lzdHJhZGE8L2gzPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiemVyby1zdGF0ZS1iYW5uZXItc3VidGl0bGVcIj5TZW0gdmFnYXMgZW0gYWJlcnRvLCBhaW5kYSBuw6NvIGjDoSBjYW5kaWRhdHVyYXMgcGFyYSBtb3N0cmFyLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXplcm8tcHVibGlzaFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblB1Ymxpc2hEdXR5KCdDYW5kaWRhdHVyYXMgcG9yIFZhZ2EnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFB1YmxpY2FyIFZhZ2FcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Jhc2ljQ29tcGFyaXNvblplcm8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFzaWMtZW1wdHktc3RhdGUgYmFzaWMtZW1wdHktc3RhdGUtLWNvbXBhcmlzb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWVtcHR5LWljb24td3JhcFwiPlxyXG4gICAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gbmFtZT1cImluZm9cIiBjbGFzcz1cImJhc2ljLWVtcHR5LWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImJhc2ljLWVtcHR5LXRpdGxlXCI+TmVuaHVtYSBjYW5kaWRhdHVyYSByZWdpc3RyYWRhPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJiYXNpYy1lbXB0eS10ZXh0XCI+TmVuaHVtYSB2YWdhIGF0aXZhIG5vIG1vbWVudG8gcGFyYSBhbsOhbGlzZS48L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG4gIDwvbWFpbj5cclxuICA8IS0tICNlbmRyZWdpb24gLS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2Rhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFJeEIsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUVMLGVBQWUsRUFJZixnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFZbkMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZLEVBQUUsUUFBcUIsRUFBRSxTQUFTLEdBQUcsS0FBSztJQUNuRixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7SUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUU1QixNQUFNLFVBQVUsR0FBRyxNQUFNO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBGLElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDO0lBQ25DLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsVUFBVSxHQUFHLGlCQUFpQixDQUFDO1NBQ2hDO2FBQU0sSUFBSSxRQUFRLEtBQUssZ0JBQWdCLEVBQUU7WUFDeEMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1NBQ25FO2FBQU0sSUFBSSxRQUFRLEtBQUssZUFBZSxFQUFFO1lBQ3ZDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztTQUNuRTtLQUNGO0lBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXFFO0lBQ3pHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdkIsS0FBSyxFQUFFLG9DQUFvQztRQUMzQyxXQUFXLEVBQUUsMEhBQTBIO0tBQ3hJO0lBQ0QsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixLQUFLLEVBQUUsOERBQThEO1FBQ3JFLFdBQVcsRUFBRSxnTUFBZ007S0FDOU07SUFDRCxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCLEtBQUssRUFBRSxrRUFBa0U7UUFDekUsV0FBVyxFQUFFLDBKQUEwSjtLQUN4SztDQUNGLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQXFHN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5RjFDOzs7V0FHRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekI7OztXQUdHO1FBQ00sa0JBQWEsR0FBb0IsZUFBZSxDQUFDLElBQUksQ0FBQztRQUV0RCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUUzQzs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsV0FBVyxDQUFDO1FBRTdCOzs7V0FHRztRQUNNLGFBQVEsR0FBRyw2QkFBNkIsQ0FBQztRQUVsRDs7V0FFRztRQUNNLGlCQUFZLEdBQUcsb0RBQW9ELENBQUM7UUFFN0U7OztXQUdHO1FBQ00sb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFFOUI7OztXQUdHO1FBQ00sc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRWhDOzs7OztXQUtHO1FBQ00sa0JBQWEsR0FBd0IsU0FBUyxDQUFDO1FBS3hELGFBQWE7UUFFYixrQkFBa0I7UUFDbEI7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRTdEOztXQUVHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztRQUV4RTs7V0FFRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFMUQ7O1dBRUc7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRW5FOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXZEOztXQUVHO1FBQ08sMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFrRDdFLGFBQWE7UUFFYixxQ0FBcUM7UUFDckMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUF3Q3hCLGFBQWE7UUFFYixpQ0FBaUM7UUFDakMsbUJBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztJQTFGa0IsQ0FBQztJQXpDOUMsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0lBaUNELGFBQWE7SUFFYixhQUFhLENBQUMsT0FBTyxHQUFHLFlBQVk7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUlELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsT0FBTztTQUNSO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBNEI7UUFDL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBTyxHQUFHLFdBQVc7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtnQkFDdEMsQ0FBQyxDQUFDLFNBQVMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ3ZELENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxNQUFNLFdBQVcsR0FBRyx1Q0FBdUMsVUFBVSxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ3BGLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQU1ELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQztRQUM5QyxJQUFJLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUssS0FBYSxLQUFLLENBQUM7WUFBRSxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUMxRixJQUFJLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUssS0FBYSxLQUFLLENBQUM7WUFBRSxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUM5RixJQUFJLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUssS0FBYSxLQUFLLENBQUM7WUFBRSxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUN4RixPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsY0FBYztlQUMxQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLO2VBQ3ZELHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVztlQUN2Qyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXO2VBQzdELHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNuRSxDQUFDO0lBT0QsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksS0FBSztnQkFBRSxPQUFPLEtBQUssQ0FBQztTQUN6QjtRQUNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3JELENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBMkI7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNuRSxRQUFRLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDMUIsS0FBSyxlQUFlLENBQUMsSUFBSTtnQkFDdkIsT0FBTyxHQUFHLFVBQVUsSUFBSSxRQUFRLHFCQUFxQixDQUFDO1lBQ3hELEtBQUssZUFBZSxDQUFDLEtBQUs7Z0JBQ3hCLE9BQU8sR0FBRyxVQUFVLElBQUksUUFBUSxZQUFZLENBQUM7WUFDL0MsS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQzNCO2dCQUNFLE9BQU8sR0FBRyxVQUFVLElBQUksUUFBUSxPQUFPLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsSUFBSSwwQkFBMEI7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLGNBQWMsSUFBSSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0RixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO1NBQzFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPO1lBQ0wsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUMxRCxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1NBQy9ELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSw4QkFBOEI7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxjQUFjLElBQUksQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7U0FDdEM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQzNELE9BQU87WUFDTCxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO1lBQzdELEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7U0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFvQjtRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQixLQUFLLEVBQUUseUJBQXlCO1lBQ2hDLElBQUksRUFBRSxLQUFLO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWE7SUFFYix5Q0FBeUM7SUFDekMsSUFBSSw0QkFBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLGdCQUFnQixDQUFDLFdBQVcsSUFBSyxDQUFTLEtBQUssQ0FBQztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLGdCQUFnQixDQUFDLFFBQVEsSUFBSyxDQUFTLEtBQUssQ0FBQztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQzFGLElBQUksQ0FBQyxLQUFLLGdCQUFnQixDQUFDLFdBQVcsSUFBSyxDQUFTLEtBQUssQ0FBQztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLGdCQUFnQixDQUFDLFdBQVcsSUFBSyxDQUFTLEtBQUssQ0FBQztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLGdCQUFnQixDQUFDLGdCQUFnQixJQUFLLENBQVMsS0FBSyxDQUFDO1lBQUUsT0FBTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxRyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBcUI7UUFDbEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDekMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUNwQyxLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUUsS0FBSztZQUNmLHFCQUFxQixFQUFFLENBQUM7U0FDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsVUFBVSxLQUFLLElBQUksSUFBSSxVQUFVLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUM5SSxPQUFPLGVBQWUsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssZ0JBQWdCLENBQUMsZ0JBQWdCLElBQUksVUFBVSxDQUFDLHFCQUFxQixLQUFLLElBQUksSUFBSSxVQUFVLENBQUMscUJBQXFCLEtBQUssU0FBUyxFQUFFO1lBQ3pLLE9BQU8scUJBQXFCLENBQUM7U0FDOUI7UUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLFFBQVEsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QixLQUFLLGdCQUFnQixDQUFDLFdBQVc7Z0JBQy9CLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRO2dCQUM1QixPQUFPLG9CQUFvQixDQUFDO1lBQzlCLEtBQUssZ0JBQWdCLENBQUMsV0FBVztnQkFDL0IsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQztnQkFDRSxPQUFPLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLFFBQVEsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QixLQUFLLGdCQUFnQixDQUFDLFdBQVc7Z0JBQy9CLE9BQU8sc0JBQXNCLENBQUM7WUFDaEMsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRO2dCQUM1QixPQUFPLG9CQUFvQixDQUFDO1lBQzlCLEtBQUssZ0JBQWdCLENBQUMsV0FBVztnQkFDL0IsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQyxLQUFLLGdCQUFnQixDQUFDLFdBQVc7Z0JBQy9CLE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsS0FBSyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2QztnQkFDRSxPQUFPLHVCQUF1QixDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUNELGFBQWE7SUFFYixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksNkJBQTZCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUscUJBQXFCLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLCtCQUErQixJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSwwQkFBMEI7UUFDNUIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksMkJBQTJCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSwrQkFBK0I7UUFDakMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDO0lBQ3BELENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSx3QkFBd0IsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7SUFDN0MsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixJQUFJLDJCQUEyQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSwyQkFBMkIsQ0FBQztRQUN6RCxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNwRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSwyQkFBMkIsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLDJCQUEyQjtRQUM3QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUM7SUFDaEQsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGFBQWEsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQy9CO1FBQ0QsT0FBTztZQUNMLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2pFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1NBQ3ZFLENBQUM7SUFDSixDQUFDO0lBQ0QsYUFBYTtJQUViLDRCQUE0QjtJQUM1QixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLHdCQUF3QixDQUFDO1FBQ25HLE1BQU0sUUFBUSxHQUFHLFNBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLGVBQWUsQ0FBQztRQUNoRixPQUFPLEdBQUcsUUFBUSxRQUFRLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxhQUFhO0lBRWIsdUJBQXVCO0lBQ3ZCLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxhQUFhO0lBRWIsc0JBQXNCO0lBQ3RCLFNBQVMsQ0FBQyxNQUF1QjtRQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTTtZQUFFLE9BQU87UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVMsRUFBRSxTQUFpQjtRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQixLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBdGZVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGtpQkM5Ri9CLDhwdUJBbWdCQTsyRkRyYWEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNO3dHQU90QyxJQUFJO3NCQUFaLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBVUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxlQUFlO3NCQUF2QixLQUFLO2dCQU1HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRyxhQUFhO3NCQUFyQixLQUFLO2dCQVdJLFlBQVk7c0JBQXJCLE1BQU07Z0JBS0csWUFBWTtzQkFBckIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFlBQVk7c0JBQXJCLE1BQU07Z0JBS0csZUFBZTtzQkFBeEIsTUFBTTtnQkFLRyxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU3RhY2tlZEJhckl0ZW0sXHJcbiAgVGltZWxpbmVQb2ludCxcclxuICBEb251dENoYXJ0SXRlbSxcclxuICBGdW5uZWxCYXJJdGVtLFxyXG4gIENvbXBhcmlzb25JdGVtXHJcbn0gZnJvbSAnQGNhcmVvbmJyYXNpbC9uZy1jaGFydHMnO1xyXG5pbXBvcnQge1xyXG4gIERhc2hib2FyZE92ZXJ2aWV3RGF0YSxcclxuICBEYXNoYm9hcmRQZXJpb2QsXHJcbiAgRGFzaGJvYXJkSXRlbVNlbGVjdGVkRXZlbnQsXHJcbiAgRGFzaGJvYXJkQXR0ZW50aW9uSXRlbSxcclxuICBEYXNoYm9hcmRQZXJmb3JtYW5jZUFuYWx5c2lzLFxyXG4gIFBlcmZvcm1hbmNlTGV2ZWwsXHJcbiAgRGFzaGJvYXJkRHV0eUFuYWx5c2lzLFxyXG4gIERhc2hib2FyZER1dHlTYWxhcnlDb21wYXJpc29uLFxyXG4gIER1dHlTYWxhcnlTdGF0dXNcclxufSBmcm9tICcuL21vZGVscy9kYXNoYm9hcmQubW9kZWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIEtwaVBvbGFyaXR5ID0gJ2hpZ2hlcklzQmV0dGVyJyB8ICdsb3dlcklzQmV0dGVyJyB8ICduZXV0cmFsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgS3BpQmFkZ2VJbmZvIHtcclxuICBjaGFuZ2VUZXh0OiBzdHJpbmc7XHJcbiAgYmFkZ2VDbGFzczogc3RyaW5nO1xyXG4gIGlzUG9zaXRpdmU6IGJvb2xlYW47XHJcbiAgaXNOZWdhdGl2ZTogYm9vbGVhbjtcclxuICBpc1plcm86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRLcGlCYWRnZShkaWZmOiBudW1iZXIsIHBvbGFyaXR5OiBLcGlQb2xhcml0eSwgaXNEZWNpbWFsID0gZmFsc2UpOiBLcGlCYWRnZUluZm8ge1xyXG4gIGNvbnN0IGlzWmVybyA9IGRpZmYgPT09IDA7XHJcbiAgY29uc3QgaXNQb3NpdGl2ZSA9IGRpZmYgPiAwO1xyXG4gIGNvbnN0IGlzTmVnYXRpdmUgPSBkaWZmIDwgMDtcclxuXHJcbiAgY29uc3QgY2hhbmdlVGV4dCA9IGlzWmVyb1xyXG4gICAgPyAoaXNEZWNpbWFsID8gJzAsMCcgOiAnMCcpXHJcbiAgICA6IChpc0RlY2ltYWwgPyBNYXRoLmFicyhkaWZmKS50b0ZpeGVkKDEpLnJlcGxhY2UoJy4nLCAnLCcpIDogYCR7TWF0aC5hYnMoZGlmZil9YCk7XHJcblxyXG4gIGxldCBiYWRnZUNsYXNzID0gJ2twaS1iYWRnZS0tZ3JheSc7XHJcbiAgaWYgKCFpc1plcm8pIHtcclxuICAgIGlmIChwb2xhcml0eSA9PT0gJ25ldXRyYWwnKSB7XHJcbiAgICAgIGJhZGdlQ2xhc3MgPSAna3BpLWJhZGdlLS1ibHVlJztcclxuICAgIH0gZWxzZSBpZiAocG9sYXJpdHkgPT09ICdoaWdoZXJJc0JldHRlcicpIHtcclxuICAgICAgYmFkZ2VDbGFzcyA9IGlzUG9zaXRpdmUgPyAna3BpLWJhZGdlLS1ncmVlbicgOiAna3BpLWJhZGdlLS1jb3JhbCc7XHJcbiAgICB9IGVsc2UgaWYgKHBvbGFyaXR5ID09PSAnbG93ZXJJc0JldHRlcicpIHtcclxuICAgICAgYmFkZ2VDbGFzcyA9IGlzUG9zaXRpdmUgPyAna3BpLWJhZGdlLS1jb3JhbCcgOiAna3BpLWJhZGdlLS1ncmVlbic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4geyBjaGFuZ2VUZXh0LCBiYWRnZUNsYXNzLCBpc1Bvc2l0aXZlLCBpc05lZ2F0aXZlLCBpc1plcm8gfTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEVSRk9STUFOQ0VfVEVYVFM6IFJlY29yZDxQZXJmb3JtYW5jZUxldmVsLCB7IHRpdGxlOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSB7XHJcbiAgW1BlcmZvcm1hbmNlTGV2ZWwuQmx1ZV06IHtcclxuICAgIHRpdGxlOiAnQWluZGEgdGVtIGVzcGHDp28gcGFyYSBzZSBkZXN0YWNhci4nLFxyXG4gICAgZGVzY3JpcHRpb246ICdTdWEgaW5zdGl0dWnDp8OjbyBqw6EgZGVzcGVydGEgYm9tIGludGVyZXNzZSBlbnRyZSBvcyBjYW5kaWRhdG9zLiBGYWxlIGNvbSB1bSBjb25zdWx0b3IgZGEgQ2FyZU9uIHBhcmEgaXIgYWluZGEgbWFpcyBsb25nZS4nXHJcbiAgfSxcclxuICBbUGVyZm9ybWFuY2VMZXZlbC5PcmFuZ2VdOiB7XHJcbiAgICB0aXRsZTogJ1N1YXMgdmFnYXMgZXN0w6NvIHNlbmRvIHZpc3RhcywgbWFzIHBvdWNhIGdlbnRlIHNlIGNhbmRpZGF0YS4nLFxyXG4gICAgZGVzY3JpcHRpb246ICdJc3NvIHBvZGUgaW5kaWNhciBxdWUgb3MgdmFsb3JlcyBvZmVyZWNpZG9zIGVzdMOjbyBhYmFpeG8gZGEgbcOpZGlhIGRhIHJlZ2nDo28sIHF1ZSBmYWx0YW0gaW5mb3JtYcOnw7VlcyBtYWlzIGF0cmF0aXZhcyBvdSBxdWUgc3VhcyBpbmZvcm1hw6fDtWVzIGVzdMOjbyBpbmNvbXBsZXRhcy4gRmFsZSBjb20gdW0gY29uc3VsdG9yIGRhIENhcmVPbi4nXHJcbiAgfSxcclxuICBbUGVyZm9ybWFuY2VMZXZlbC5SZWRdOiB7XHJcbiAgICB0aXRsZTogJ1N1YSBpbnN0aXR1acOnw6NvIG7Do28gZXN0w6Egc2VuZG8gbXVpdG8gcHJvY3VyYWRhIHBlbG9zIGNhbmRpZGF0b3MuJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnRmF6IHRlbXBvIHF1ZSB2b2PDqiBuw6NvIHB1YmxpY2EgdW1hIHZhZ2EsIHBvciBpc3NvIHN1YSBhbsOhbGlzZSBkZSBkZXNlbXBlbmhvIHZlbSBjYWluZG8uIEZhbGUgY29tIHVtIGNvbnN1bHRvciBkYSBDYXJlT24gcGFyYSB0ZXIgdW0gYXBvaW8gcGVyc29uYWxpemFkby4nXHJcbiAgfVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcHJpbmNpcGFsIGRlIERhc2hib2FyZCBkZSBSZWNydXRhbWVudG8gSW5zdGl0dWNpb25hbCBkYSBDYXJlT24uXHJcbiAqIFxyXG4gKiBDZW50cmFsaXphIGUgb3JxdWVzdHJhIGEgZXhpYmljYW8gZGU6XHJcbiAqIC0gQ2FiZWNhbGhvIGNvbSBmaWx0cm9zIHRlbXBvcmFpcyByZWF0aXZvcyAoSG9qZSwgU2VtYW5hLCBNZXMpXHJcbiAqIC0gQ2FyZHMgc3VwZXJpb3JlcyBkZSBJbmRpY2Fkb3Jlcy1DaGF2ZSBkZSBQZXJmb3JtYW5jZSAoS1BJcylcclxuICogLSBTZWNhbyBhY2lvbmF2ZWwgXCJQcmVjaXNhIGRhIHN1YSBhdGVuY2FvXCIgKGFsZXJ0YXMgZGUgdmFnYXMgY3JpdGljYXMpXHJcbiAqIC0gU2VjYW8gXCJBbmFsaXNlIGRlIERlc2VtcGVuaG9cIiAoY3VydmEgZGUgb25kYXMgdmV0b3JpYWwgZSBvcmllbnRhY2FvIGNvbnN1bHRpdmEpXHJcbiAqIC0gU2VjYW8gXCJBbmFsaXNlIHBvciBWYWdhXCIgKGRyb3Bkb3duIGRlIHZhZ2FzLCB0aW1lbGluZSwgZG9udXQgZGUgY29udmVyc2FvLCBmdW5pbCBlIGFuYWxpc2Ugc2FsYXJpYWwpXHJcbiAqIC0gU2VjYW8gXCJDYW5kaWRhdHVyYXMgcG9yIFZhZ2FcIiAoZ3JhZmljbyBjb21wYXJhdGl2byBkZSBiYXJyYXMgZW50cmUgdmFnYXMpXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NhcmVvbi1kYXNoYm9hcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIC8vICNyZWdpb24gSW5wdXRzXHJcbiAgLyoqXHJcbiAgICogQ29uc29saWRhdGVkIG1ldHJpY3MgZGF0YXNldCBmZWVkaW5nIHRoZSBkYXNoYm9hcmQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0YT86IERhc2hib2FyZE92ZXJ2aWV3RGF0YTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgZGFzaGJvYXJkIGlzIGN1cnJlbnRseSBmZXRjaGluZyBkYXRhIGZyb20gdGhlIGJhY2tlbmQgQVBJLlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmUgdGltZSBwZXJpb2QgZmlsdGVyLlxyXG4gICAqIEBkZWZhdWx0ICdXZWVrJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGN1cnJlbnRQZXJpb2Q6IERhc2hib2FyZFBlcmlvZCA9IERhc2hib2FyZFBlcmlvZC5XZWVrO1xyXG5cclxuICByZWFkb25seSBEdXR5U2FsYXJ5U3RhdHVzID0gRHV0eVNhbGFyeVN0YXR1cztcclxuICByZWFkb25seSBQZXJmb3JtYW5jZUxldmVsID0gUGVyZm9ybWFuY2VMZXZlbDtcclxuICByZWFkb25seSBEYXNoYm9hcmRQZXJpb2QgPSBEYXNoYm9hcmRQZXJpb2Q7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1haW4gZGFzaGJvYXJkIHRpdGxlLlxyXG4gICAqIEBkZWZhdWx0ICdEYXNoYm9hcmQnXHJcbiAgICovXHJcbiAgQElucHV0KCkgdGl0bGUgPSAnRGFzaGJvYXJkJztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgc3VidGl0bGUgb3IgaW5zdGl0dXRpb24gbmFtZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlci5cclxuICAgKiBAZGVmYXVsdCAnVmlzw6NvIGdlcmFsIGRlIHJlY3J1dGFtZW50bydcclxuICAgKi9cclxuICBASW5wdXQoKSBzdWJ0aXRsZSA9ICdWaXPDo28gZ2VyYWwgZGUgcmVjcnV0YW1lbnRvJztcclxuXHJcbiAgLyoqXHJcbiAgICogRW1wdHkgc3RhdGUgbWVzc2FnZSB3aGVuIG5vIGRhdGEgaXMgcmV0dXJuZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ05lbmh1bSBkYWRvIHJlZ2lzdHJhZG8gcGFyYSBvIHBlcsOtb2RvIHNlbGVjaW9uYWRvLic7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN1bHRhbnQgcGhvbmUgbnVtYmVyIGZvciBXaGF0c0FwcCByZWRpcmVjdC5cclxuICAgKiBAZGVmYXVsdCAnZW1wdHkgc3RyaW5nJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbnN1bHRhbnRQaG9uZSA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsIG1lc3NhZ2UgZm9yIFdoYXRzQXBwIGNvbnN1bHRhbnQgY2hhdC5cclxuICAgKiBAZGVmYXVsdCAnZW1wdHkgc3RyaW5nJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbnN1bHRhbnRNZXNzYWdlID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgemVyb2VkIHN0YXRlcyBkaXNwbGF5IHRoZSBhY3Rpb25hYmxlICdQdWJsaWNhciBWYWdhJyBDVEEgYmFubmVyIG9yIGEgYmFzaWMgaW5mb3JtYXRpb25hbCB6ZXJvIHN0YXRlLlxyXG4gICAqIC0gJ3B1Ymxpc2gnOiBkaXNwbGF5cyB0aGUgc3BlY2lhbCBidXNpbmVzcyB6ZXJvIHN0YXRlIHdpdGggdGhlICdQdWJsaWNhciBWYWdhJyBhY3Rpb24gYnV0dG9uLlxyXG4gICAqIC0gJ2Jhc2ljJzogZGlzcGxheXMgdGhlIHNpbXBsZS9iYXNpYyB6ZXJvIHN0YXRlIHdpdGhvdXQgdGhlICdQdWJsaWNhciBWYWdhJyBhY3Rpb24gYnV0dG9uLlxyXG4gICAqIEBkZWZhdWx0ICdwdWJsaXNoJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHplcm9TdGF0ZU1vZGU6ICdwdWJsaXNoJyB8ICdiYXNpYycgPSAncHVibGlzaCc7XHJcblxyXG4gIGdldCBpc1B1Ymxpc2haZXJvU3RhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy56ZXJvU3RhdGVNb2RlID09PSAncHVibGlzaCc7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBPdXRwdXRzXHJcbiAgLyoqXHJcbiAgICogRW1pdHRlZCB3aGVuZXZlciB0aGUgdXNlciBzZWxlY3RzIGEgZGlmZmVyZW50IHBlcmlvZCBmaWx0ZXIgKFRvZGF5LCBXZWVrLCBNb250aCkuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHBlcmlvZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkUGVyaW9kPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIGFuIGludGVyYWN0aXZlIGVsZW1lbnQgaW4gYW55IGNoYXJ0IGlzIGNsaWNrZWQgKHJlc2VydmVkIGZvciB1cGNvbWluZyBjaGFydCBzZWN0aW9ucykuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkSXRlbVNlbGVjdGVkRXZlbnQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbmV2ZXIgdGhlIHVzZXIgY2xpY2tzIG9uICdQdWJsaWNhciBWYWdhJyBhY3Jvc3MgYW55IG9mIHRoZSB6ZXJvLXN0YXRlIGJhbm5lcnMuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1Ymxpc2hEdXR5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0dGVkIHdoZW5ldmVyIHRoZSB1c2VyIHNlbGVjdHMgYSBkdXR5IGluIHRoZSB2YWNhbmN5IGFuYWx5c2lzIGRyb3Bkb3duLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBkdXR5U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZER1dHlBbmFseXNpcz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHRlZCB3aGVuZXZlciB0aGUgdXNlciBjbGlja3Mgb24gJ0ZhbGUgY29tIHVtIGNvbnN1bHRvcicgYWNyb3NzIGFueSBzZWN0aW9uLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjb25zdWx0YW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHRlZCB3aGVuZXZlciBhIHZhY2FuY3kgaW4gdGhlIGF0dGVudGlvbiBsaXN0IGlzIGNsaWNrZWQuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGF0dGVudGlvbkl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQXR0ZW50aW9uSXRlbT4oKTtcclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIG9uUHVibGlzaER1dHkoc2VjdGlvbiA9ICdaZXJvIFN0YXRlJyk6IHZvaWQge1xyXG4gICAgdGhpcy5wdWJsaXNoRHV0eS5lbWl0KHNlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7XHJcbiAgICAgIHRoaXMuc3luY1NlbGVjdGVkRHV0eSgpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydsb2FkaW5nJ10gfHwgY2hhbmdlc1snY3VycmVudFBlcmlvZCddKSB7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzeW5jU2VsZWN0ZWREdXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnZhY2FuY2llc0FuYWx5c2lzIHx8IHRoaXMudmFjYW5jaWVzQW5hbHlzaXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREdXR5SWQgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBleGlzdHMgPSB0aGlzLnZhY2FuY2llc0FuYWx5c2lzLnNvbWUoZCA9PiBkLmR1dHlJZCA9PT0gdGhpcy5zZWxlY3RlZER1dHlJZCk7XHJcbiAgICBpZiAoIWV4aXN0cykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRHV0eUlkID0gdGhpcy52YWNhbmNpZXNBbmFseXNpc1swXS5kdXR5SWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uIEF0dGVudGlvblNlY3Rpb25cclxuICBnZXQgYXR0ZW50aW9uSXRlbXMoKTogRGFzaGJvYXJkQXR0ZW50aW9uSXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmF0dGVudGlvbkl0ZW1zID8/IFtdO1xyXG4gIH1cclxuXHJcbiAgb25BdHRlbnRpb25JdGVtQ2xpY2soaXRlbTogRGFzaGJvYXJkQXR0ZW50aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgdGhpcy5hdHRlbnRpb25JdGVtU2VsZWN0ZWQuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIG9wZW5Db25zdWx0YW50V2hhdHNBcHAoc2VjdGlvbiA9ICdDb25zdWx0b3InKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN1bHRhbnRDbGljay5lbWl0KHNlY3Rpb24pO1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIGNvbnN0IGNsZWFuUGhvbmUgPSAodGhpcy5jb25zdWx0YW50UGhvbmUgfHwgJycpLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICAgIGNvbnN0IHRleHRQYXJhbSA9IHRoaXMuY29uc3VsdGFudE1lc3NhZ2VcclxuICAgICAgICA/IGAmdGV4dD0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNvbnN1bHRhbnRNZXNzYWdlKX1gXHJcbiAgICAgICAgOiAnJztcclxuICAgICAgY29uc3Qgd2hhdHNhcHBVcmwgPSBgaHR0cHM6Ly9hcGkud2hhdHNhcHAuY29tL3NlbmQ/cGhvbmU9JHtjbGVhblBob25lfSR7dGV4dFBhcmFtfWA7XHJcbiAgICAgIHdpbmRvdy5vcGVuKHdoYXRzYXBwVXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFBlcmZvcm1hbmNlQW5hbHlzaXNTZWN0aW9uXHJcbiAgc2hvd0luZm9Ub29sdGlwID0gZmFsc2U7XHJcblxyXG4gIHRvZ2dsZUluZm9Ub29sdGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93SW5mb1Rvb2x0aXAgPSAhdGhpcy5zaG93SW5mb1Rvb2x0aXA7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uSW5mb01vdXNlRW50ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dJbmZvVG9vbHRpcCA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uSW5mb01vdXNlTGVhdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dJbmZvVG9vbHRpcCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVyZm9ybWFuY2VBbmFseXNpcygpOiBEYXNoYm9hcmRQZXJmb3JtYW5jZUFuYWx5c2lzIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBlcmZvcm1hbmNlQW5hbHlzaXM7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVyZm9ybWFuY2VMZXZlbCgpOiBQZXJmb3JtYW5jZUxldmVsIHtcclxuICAgIGNvbnN0IGxldmVsID0gdGhpcy5wZXJmb3JtYW5jZUFuYWx5c2lzPy5sZXZlbDtcclxuICAgIGlmIChsZXZlbCA9PT0gUGVyZm9ybWFuY2VMZXZlbC5CbHVlIHx8IChsZXZlbCBhcyBhbnkpID09PSAwKSByZXR1cm4gUGVyZm9ybWFuY2VMZXZlbC5CbHVlO1xyXG4gICAgaWYgKGxldmVsID09PSBQZXJmb3JtYW5jZUxldmVsLk9yYW5nZSB8fCAobGV2ZWwgYXMgYW55KSA9PT0gMSkgcmV0dXJuIFBlcmZvcm1hbmNlTGV2ZWwuT3JhbmdlO1xyXG4gICAgaWYgKGxldmVsID09PSBQZXJmb3JtYW5jZUxldmVsLlJlZCB8fCAobGV2ZWwgYXMgYW55KSA9PT0gMikgcmV0dXJuIFBlcmZvcm1hbmNlTGV2ZWwuUmVkO1xyXG4gICAgcmV0dXJuIFBlcmZvcm1hbmNlTGV2ZWwuUmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlcmZvcm1hbmNlVGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnBlcmZvcm1hbmNlQW5hbHlzaXM/LmhpZ2hsaWdodFRpdGxlXHJcbiAgICAgIHx8IERFRkFVTFRfUEVSRk9STUFOQ0VfVEVYVFNbdGhpcy5wZXJmb3JtYW5jZUxldmVsXT8udGl0bGVcclxuICAgICAgfHwgREVGQVVMVF9QRVJGT1JNQU5DRV9URVhUU1tQZXJmb3JtYW5jZUxldmVsLlJlZF0udGl0bGU7XHJcbiAgfVxyXG5cclxuICBnZXQgcGVyZm9ybWFuY2VEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybWFuY2VBbmFseXNpcz8uZGVzY3JpcHRpb25cclxuICAgICAgfHwgREVGQVVMVF9QRVJGT1JNQU5DRV9URVhUU1t0aGlzLnBlcmZvcm1hbmNlTGV2ZWxdPy5kZXNjcmlwdGlvblxyXG4gICAgICB8fCBERUZBVUxUX1BFUkZPUk1BTkNFX1RFWFRTW1BlcmZvcm1hbmNlTGV2ZWwuUmVkXS5kZXNjcmlwdGlvbjtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFZhY2FuY3lBbmFseXNpc1NlY3Rpb25cclxuICBzZWxlY3RlZER1dHlJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgaXNEdXR5RHJvcGRvd25PcGVuID0gZmFsc2U7XHJcblxyXG4gIGdldCB2YWNhbmNpZXNBbmFseXNpcygpOiBEYXNoYm9hcmREdXR5QW5hbHlzaXNbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy52YWNhbmNpZXNBbmFseXNpcyA/PyBbXTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZER1dHkoKTogRGFzaGJvYXJkRHV0eUFuYWx5c2lzIHwgbnVsbCB7XHJcbiAgICBpZiAodGhpcy52YWNhbmNpZXNBbmFseXNpcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREdXR5SWQpIHtcclxuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnZhY2FuY2llc0FuYWx5c2lzLmZpbmQoZCA9PiBkLmR1dHlJZCA9PT0gdGhpcy5zZWxlY3RlZER1dHlJZCk7XHJcbiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudmFjYW5jaWVzQW5hbHlzaXNbMF07XHJcbiAgfVxyXG5cclxuICB0b2dnbGVEdXR5RHJvcGRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRHV0eURyb3Bkb3duT3BlbiA9ICF0aGlzLmlzRHV0eURyb3Bkb3duT3BlbjtcclxuICB9XHJcblxyXG4gIGNsb3NlRHV0eURyb3Bkb3duKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0R1dHlEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdER1dHkoZHV0eTogRGFzaGJvYXJkRHV0eUFuYWx5c2lzKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRHV0eUlkID0gZHV0eS5kdXR5SWQ7XHJcbiAgICB0aGlzLmlzRHV0eURyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5kdXR5U2VsZWN0ZWQuZW1pdChkdXR5KTtcclxuICB9XHJcblxyXG4gIGdldCB2YWNhbmN5U2VjdGlvblN1YnRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gdGhpcy5zZWxlY3RlZER1dHk/LmNhbmRpZGF0ZXNDb3VudCA/PyAwO1xyXG4gICAgY29uc3QgY2FuZFRleHQgPSBjYW5kaWRhdGVzID09PSAxID8gJ2NhbmRpZGF0dXJhJyA6ICdjYW5kaWRhdHVyYXMnO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRQZXJpb2QpIHtcclxuICAgICAgY2FzZSBEYXNoYm9hcmRQZXJpb2QuV2VlazpcclxuICAgICAgICByZXR1cm4gYCR7Y2FuZGlkYXRlc30gJHtjYW5kVGV4dH0gbm9zIMO6bHRpbW9zIDcgZGlhc2A7XHJcbiAgICAgIGNhc2UgRGFzaGJvYXJkUGVyaW9kLk1vbnRoOlxyXG4gICAgICAgIHJldHVybiBgJHtjYW5kaWRhdGVzfSAke2NhbmRUZXh0fSBuZXN0ZSBtw6pzYDtcclxuICAgICAgY2FzZSBEYXNoYm9hcmRQZXJpb2QuVG9kYXk6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGAke2NhbmRpZGF0ZXN9ICR7Y2FuZFRleHR9IGhvamVgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkRHV0eVRpbWVsaW5lUG9pbnRzKCk6IFRpbWVsaW5lUG9pbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZER1dHk/LnRpbWVsaW5lUG9pbnRzID8/IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkRHV0eURvbnV0SXRlbXMoKTogRG9udXRDaGFydEl0ZW1bXSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZER1dHk/LmNvbnZlcnNpb25Eb251dCAmJiB0aGlzLnNlbGVjdGVkRHV0eS5jb252ZXJzaW9uRG9udXQubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZER1dHkuY29udmVyc2lvbkRvbnV0O1xyXG4gICAgfVxyXG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLnNlbGVjdGVkRHV0eT8udmlld3NDb3VudCA/PyAwO1xyXG4gICAgY29uc3QgY2FuZGlkYXRlcyA9IHRoaXMuc2VsZWN0ZWREdXR5Py5jYW5kaWRhdGVzQ291bnQgPz8gMDtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHsgbGFiZWw6ICdWaXN1YWxpemHDp8O1ZXMnLCB2YWx1ZTogdmlld3MsIGNvbG9yOiAnIzFFMUI0QicgfSxcclxuICAgICAgeyBsYWJlbDogJ0NhbmRpZGF0dXJhcycsIHZhbHVlOiBjYW5kaWRhdGVzLCBjb2xvcjogJyMzQjgyRjYnIH1cclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWREdXR5Q29udmVyc2lvblJhdGVUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCByYXRlID0gdGhpcy5zZWxlY3RlZER1dHk/LmNvbnZlcnNpb25SYXRlID8/IDA7XHJcbiAgICByZXR1cm4gYCR7cmF0ZX0lYDtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZER1dHlGdW5uZWxJdGVtcygpOiBGdW5uZWxCYXJJdGVtW10ge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREdXR5Py5mdW5uZWxJdGVtcyAmJiB0aGlzLnNlbGVjdGVkRHV0eS5mdW5uZWxJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRHV0eS5mdW5uZWxJdGVtcztcclxuICAgIH1cclxuICAgIGNvbnN0IHZpZXdzID0gdGhpcy5zZWxlY3RlZER1dHk/LnZpZXdzQ291bnQgPz8gMDtcclxuICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSB0aGlzLnNlbGVjdGVkRHV0eT8uY2FuZGlkYXRlc0NvdW50ID8/IDA7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7IGxhYmVsOiAnVmlzdWFsaXphw6fDtWVzJywgY291bnQ6IHZpZXdzLCBiYXJDb2xvcjogJyMxRTFCNEInIH0sXHJcbiAgICAgIHsgbGFiZWw6ICdDYW5kaWRhdHVyYXMnLCBjb3VudDogY2FuZGlkYXRlcywgYmFyQ29sb3I6ICcjM0I4MkY2JyB9XHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgb25UaW1lbGluZVBvaW50U2VsZWN0ZWQocG9pbnQ6IFRpbWVsaW5lUG9pbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoe1xyXG4gICAgICBjaGFydDogJ0xpbmhhIFRlbXBvcmFsIHBvciBWYWdhJyxcclxuICAgICAgaXRlbTogcG9pbnRcclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gVmFjYW5jeVNhbGFyeUNvbXBhcmlzb25TZWN0aW9uXHJcbiAgZ2V0IHNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb24oKTogRGFzaGJvYXJkRHV0eVNhbGFyeUNvbXBhcmlzb24gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREdXR5Py5zYWxhcnlDb21wYXJpc29uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNhbGFyeVN0YXR1cygpOiBEdXR5U2FsYXJ5U3RhdHVzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzID0gdGhpcy5zZWxlY3RlZER1dHlTYWxhcnlDb21wYXJpc29uPy5zdGF0dXM7XHJcbiAgICBpZiAocyA9PT0gRHV0eVNhbGFyeVN0YXR1cy5CZWxvd01hcmtldCB8fCAocyBhcyBhbnkpID09PSAwKSByZXR1cm4gRHV0eVNhbGFyeVN0YXR1cy5CZWxvd01hcmtldDtcclxuICAgIGlmIChzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0IHx8IChzIGFzIGFueSkgPT09IDEpIHJldHVybiBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0O1xyXG4gICAgaWYgKHMgPT09IER1dHlTYWxhcnlTdGF0dXMuQWJvdmVNYXJrZXQgfHwgKHMgYXMgYW55KSA9PT0gMikgcmV0dXJuIER1dHlTYWxhcnlTdGF0dXMuQWJvdmVNYXJrZXQ7XHJcbiAgICBpZiAocyA9PT0gRHV0eVNhbGFyeVN0YXR1cy5Ob3RJbmZvcm1lZCB8fCAocyBhcyBhbnkpID09PSAzKSByZXR1cm4gRHV0eVNhbGFyeVN0YXR1cy5Ob3RJbmZvcm1lZDtcclxuICAgIGlmIChzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkluc3VmZmljaWVudERhdGEgfHwgKHMgYXMgYW55KSA9PT0gNCkgcmV0dXJuIER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YTtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0Q3VycmVuY3kodmFsdWU/OiBudW1iZXIgfCBudWxsKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ3B0LUJSJywge1xyXG4gICAgICBzdHlsZTogJ2N1cnJlbmN5JyxcclxuICAgICAgY3VycmVuY3k6ICdCUkwnLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDBcclxuICAgIH0pLmZvcm1hdCh2YWx1ZSkucmVwbGFjZSgvXFx1MDBBMC9nLCAnICcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcm1hdHRlZFlvdXJTYWxhcnkoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLnNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb247XHJcbiAgICBpZiAoIWNvbXBhcmlzb24gfHwgdGhpcy5zYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuTm90SW5mb3JtZWQgfHwgY29tcGFyaXNvbi55b3VyU2FsYXJ5ID09PSBudWxsIHx8IGNvbXBhcmlzb24ueW91clNhbGFyeSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnTsOjbyBpbmZvcm1hZG8nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0Q3VycmVuY3koY29tcGFyaXNvbi55b3VyU2FsYXJ5KTtcclxuICB9XHJcblxyXG4gIGdldCBmb3JtYXR0ZWRSZWdpb25hbEF2ZXJhZ2UoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLnNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb247XHJcbiAgICBpZiAoIWNvbXBhcmlzb24gfHwgdGhpcy5zYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YSB8fCBjb21wYXJpc29uLnJlZ2lvbmFsQXZlcmFnZVNhbGFyeSA9PT0gbnVsbCB8fCBjb21wYXJpc29uLnJlZ2lvbmFsQXZlcmFnZVNhbGFyeSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnRGFkb3MgaW5zdWZpY2llbnRlcyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRDdXJyZW5jeShjb21wYXJpc29uLnJlZ2lvbmFsQXZlcmFnZVNhbGFyeSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2FsYXJ5QmFkZ2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh0aGlzLnNhbGFyeVN0YXR1cykge1xyXG4gICAgICBjYXNlIER1dHlTYWxhcnlTdGF0dXMuQmVsb3dNYXJrZXQ6XHJcbiAgICAgICAgcmV0dXJuICdzYWxhcnktYmFkZ2UtLW9yYW5nZSc7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5BdE1hcmtldDpcclxuICAgICAgICByZXR1cm4gJ3NhbGFyeS1iYWRnZS0tYmx1ZSc7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5BYm92ZU1hcmtldDpcclxuICAgICAgICByZXR1cm4gJ3NhbGFyeS1iYWRnZS0tcHVycGxlJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2FsYXJ5VGl0bGVDb2xvckNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuc2FsYXJ5U3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5CZWxvd01hcmtldDpcclxuICAgICAgICByZXR1cm4gJ3NhbGFyeS10aXRsZS0tb3JhbmdlJztcclxuICAgICAgY2FzZSBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0OlxyXG4gICAgICAgIHJldHVybiAnc2FsYXJ5LXRpdGxlLS1ibHVlJztcclxuICAgICAgY2FzZSBEdXR5U2FsYXJ5U3RhdHVzLkFib3ZlTWFya2V0OlxyXG4gICAgICAgIHJldHVybiAnc2FsYXJ5LXRpdGxlLS1wdXJwbGUnO1xyXG4gICAgICBjYXNlIER1dHlTYWxhcnlTdGF0dXMuTm90SW5mb3JtZWQ6XHJcbiAgICAgICAgcmV0dXJuICdzYWxhcnktdGl0bGUtLXJlZCc7XHJcbiAgICAgIGNhc2UgRHV0eVNhbGFyeVN0YXR1cy5JbnN1ZmZpY2llbnREYXRhOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnc2FsYXJ5LXRpdGxlLS1kZWZhdWx0JztcclxuICAgIH1cclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIEtwaUdldHRlcnNcclxuICAvLyAxLiBWYWdhcyBQdWJsaWNhZGFzXHJcbiAgZ2V0IHJlZ2lzdGVyZWRWYWNhbmNpZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmtwaXM/LnJlZ2lzdGVyZWRWYWNhbmNpZXMgPz8gMDtcclxuICB9XHJcblxyXG4gIGdldCByZWdpc3RlcmVkVmFjYW5jaWVzRGlmZigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8ucmVnaXN0ZXJlZFZhY2FuY2llc0RpZmZlcmVuY2UgPz8gMDtcclxuICB9XHJcblxyXG4gIGdldCByZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UoKTogS3BpQmFkZ2VJbmZvIHtcclxuICAgIHJldHVybiBmb3JtYXRLcGlCYWRnZSh0aGlzLnJlZ2lzdGVyZWRWYWNhbmNpZXNEaWZmLCAnbmV1dHJhbCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ2lzdGVyZWRWYWNhbmNpZXNDaGFuZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyZWRWYWNhbmNpZXNCYWRnZS5jaGFuZ2VUZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ2lzdGVyZWRWYWNhbmNpZXNCYWRnZUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuYmFkZ2VDbGFzcztcclxuICB9XHJcblxyXG4gIC8vIDIuIENhbmRpZGF0b3MgSW5zY3JpdG9zXHJcbiAgZ2V0IGNhbmRpZGF0ZUFwcGxpY2F0aW9ucygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8uY2FuZGlkYXRlQXBwbGljYXRpb25zID8/IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuZGlkYXRlQXBwbGljYXRpb25zRGlmZigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8uY2FuZGlkYXRlQXBwbGljYXRpb25zRGlmZmVyZW5jZSA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhbmRpZGF0ZUFwcGxpY2F0aW9uc0JhZGdlKCk6IEtwaUJhZGdlSW5mbyB7XHJcbiAgICByZXR1cm4gZm9ybWF0S3BpQmFkZ2UodGhpcy5jYW5kaWRhdGVBcHBsaWNhdGlvbnNEaWZmLCAnaGlnaGVySXNCZXR0ZXInKTtcclxuICB9XHJcblxyXG4gIGdldCBjYW5kaWRhdGVBcHBsaWNhdGlvbnNDaGFuZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNhbmRpZGF0ZUFwcGxpY2F0aW9uc0JhZGdlLmNoYW5nZVRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuZGlkYXRlQXBwbGljYXRpb25zQmFkZ2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuZGlkYXRlQXBwbGljYXRpb25zQmFkZ2UuYmFkZ2VDbGFzcztcclxuICB9XHJcblxyXG4gIC8vIDMuIEN1cnLDrWN1bG9zIHBhcmEgQXZhbGlhclxyXG4gIGdldCBwZW5kaW5nUmV2aWV3cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8ucGVuZGluZ1Jldmlld3MgPz8gMDtcclxuICB9XHJcblxyXG4gIGdldCBwZW5kaW5nUmV2aWV3c0RpZmYoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmtwaXM/LnBlbmRpbmdSZXZpZXdzRGlmZmVyZW5jZSA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlbmRpbmdSZXZpZXdzQmFkZ2UoKTogS3BpQmFkZ2VJbmZvIHtcclxuICAgIHJldHVybiBmb3JtYXRLcGlCYWRnZSh0aGlzLnBlbmRpbmdSZXZpZXdzRGlmZiwgJ2xvd2VySXNCZXR0ZXInKTtcclxuICB9XHJcblxyXG4gIGdldCBwZW5kaW5nUmV2aWV3c0NoYW5nZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1Jldmlld3NCYWRnZS5jaGFuZ2VUZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlbmRpbmdSZXZpZXdzQmFkZ2VDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ1Jldmlld3NCYWRnZS5iYWRnZUNsYXNzO1xyXG4gIH1cclxuXHJcbiAgLy8gNC4gTcOpZGlhIGRlIENhbmRpZGF0b3NcclxuICBnZXQgYXZlcmFnZUNhbmRpZGF0ZXNQZXJWYWNhbmN5KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhdmcgPSB0aGlzLmRhdGE/LmtwaXM/LmF2ZXJhZ2VDYW5kaWRhdGVzUGVyVmFjYW5jeTtcclxuICAgIGlmIChhdmcgPT09IHVuZGVmaW5lZCB8fCBhdmcgPT09IG51bGwpIHJldHVybiAnMCwwJztcclxuICAgIHJldHVybiBhdmcudG9GaXhlZCgxKS5yZXBsYWNlKCcuJywgJywnKTtcclxuICB9XHJcblxyXG4gIGdldCBhdmVyYWdlQ2FuZGlkYXRlc0RpZmYoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmtwaXM/LmF2ZXJhZ2VDYW5kaWRhdGVzRGlmZmVyZW5jZSA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UoKTogS3BpQmFkZ2VJbmZvIHtcclxuICAgIHJldHVybiBmb3JtYXRLcGlCYWRnZSh0aGlzLmF2ZXJhZ2VDYW5kaWRhdGVzRGlmZiwgJ2hpZ2hlcklzQmV0dGVyJywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXZlcmFnZUNhbmRpZGF0ZXNDaGFuZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuY2hhbmdlVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBhdmVyYWdlQ2FuZGlkYXRlc0JhZGdlQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuYmFkZ2VDbGFzcztcclxuICB9XHJcblxyXG4gIC8vIDUuIFN0YXR1cyBkYXMgVmFnYXNcclxuICBnZXQgb3BlblZhY2FuY2llcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8ub3BlblZhY2FuY2llcyA/PyAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsb3NlZFZhY2FuY2llcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8uY2xvc2VkVmFjYW5jaWVzID8/IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgdG90YWxEdXRpZXNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8ua3Bpcz8udG90YWxWYWNhbmNpZXMgPz8gKHRoaXMub3BlblZhY2FuY2llcyArIHRoaXMuY2xvc2VkVmFjYW5jaWVzKTtcclxuICB9XHJcblxyXG4gIGdldCBkdXRpZXNTdGF0dXNJdGVtcygpOiBTdGFja2VkQmFySXRlbVtdIHtcclxuICAgIGlmICh0aGlzLmRhdGE/LmR1dGllc1N0YXR1cyAmJiB0aGlzLmRhdGEuZHV0aWVzU3RhdHVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5kdXRpZXNTdGF0dXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7IGxhYmVsOiAnQWJlcnRhcycsIHZhbHVlOiB0aGlzLm9wZW5WYWNhbmNpZXMsIGNvbG9yOiAnIzNCODJGNicgfSxcclxuICAgICAgeyBsYWJlbDogJ0VuY2VycmFkYXMnLCB2YWx1ZTogdGhpcy5jbG9zZWRWYWNhbmNpZXMsIGNvbG9yOiAnIzFFMUI0QicgfVxyXG4gICAgXTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIENvbXBhcmlzb25TZWN0aW9uXHJcbiAgZ2V0IGNvbXBhcmlzb25JdGVtcygpOiBDb21wYXJpc29uSXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LmNvbXBhcmlzb24gPz8gW107XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzQ29tcGFyaXNvbkR1dGllcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb25JdGVtcy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRvdGFsQ29tcGFyaXNvbkNhbmRpZGF0ZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb25JdGVtcy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgKGN1cnIudmFsdWUgfHwgMCksIDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRvdGFsQ29tcGFyaXNvblZhY2FuY2llcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcGFyaXNvbkl0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldCBjb21wYXJpc29uU3VidGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNhbmRDb3VudCA9IHRoaXMudG90YWxDb21wYXJpc29uQ2FuZGlkYXRlcztcclxuICAgIGNvbnN0IGR1dHlDb3VudCA9IHRoaXMudG90YWxDb21wYXJpc29uVmFjYW5jaWVzO1xyXG4gICAgY29uc3QgY2FuZFRleHQgPSBjYW5kQ291bnQgPT09IDEgPyAnMSBjYW5kaWRhdHVyYSBubyB0b3RhbCcgOiBgJHtjYW5kQ291bnR9IGNhbmRpZGF0dXJhcyBubyB0b3RhbGA7XHJcbiAgICBjb25zdCBkdXR5VGV4dCA9IGR1dHlDb3VudCA9PT0gMSA/ICcxIHZhZ2EgYXRpdmEnIDogYCR7ZHV0eUNvdW50fSB2YWdhcyBhdGl2YXNgO1xyXG4gICAgcmV0dXJuIGAke2NhbmRUZXh0fSwgZW0gJHtkdXR5VGV4dH1gO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gIC8vICNyZWdpb24gU3RhdGVIZWxwZXJzXHJcbiAgZ2V0IGhhc0RhdGEoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmRhdGEgJiYgISF0aGlzLmRhdGEua3BpcztcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFVzZXJBY3Rpb25zXHJcbiAgc2V0UGVyaW9kKHBlcmlvZDogRGFzaGJvYXJkUGVyaW9kKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGVyaW9kID09PSBwZXJpb2QpIHJldHVybjtcclxuICAgIHRoaXMuY3VycmVudFBlcmlvZCA9IHBlcmlvZDtcclxuICAgIHRoaXMucGVyaW9kQ2hhbmdlLmVtaXQocGVyaW9kKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhcnRJdGVtU2VsZWN0ZWQoaXRlbTogYW55LCBjaGFydE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgIGNoYXJ0OiBjaGFydE5hbWUsXHJcbiAgICAgIGl0ZW1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmVvbi1kYXNoYm9hcmQtY29udGFpbmVyXCI+XHJcbiAgPCEtLSAjcmVnaW9uIERhc2hib2FyZEhlYWRlciAtLT5cclxuICA8aGVhZGVyIGNsYXNzPVwiZGFzaGJvYXJkLWhlYWRlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZXNcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWFpbi10aXRsZVwiPnt7IHRpdGxlIH19PC9oMT5cclxuICAgICAgPHAgKm5nSWY9XCJzdWJ0aXRsZVwiIGNsYXNzPVwic3VidGl0bGVcIj5cclxuICAgICAgICB7eyBzdWJ0aXRsZSB9fVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicGVyaW9kLWZpbHRlci1ncm91cFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJpb2QtcGlsbFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50UGVyaW9kID09PSBEYXNoYm9hcmRQZXJpb2QuVG9kYXlcIlxyXG4gICAgICAgIChjbGljayk9XCJzZXRQZXJpb2QoRGFzaGJvYXJkUGVyaW9kLlRvZGF5KVwiXHJcbiAgICAgID5cclxuICAgICAgICBIb2plXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJpb2QtcGlsbFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50UGVyaW9kID09PSBEYXNoYm9hcmRQZXJpb2QuV2Vla1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNldFBlcmlvZChEYXNoYm9hcmRQZXJpb2QuV2VlaylcIlxyXG4gICAgICA+XHJcbiAgICAgICAgU2VtYW5hXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJpb2QtcGlsbFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjdXJyZW50UGVyaW9kID09PSBEYXNoYm9hcmRQZXJpb2QuTW9udGhcIlxyXG4gICAgICAgIChjbGljayk9XCJzZXRQZXJpb2QoRGFzaGJvYXJkUGVyaW9kLk1vbnRoKVwiXHJcbiAgICAgID5cclxuICAgICAgICBNw6pzXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcbiAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICA8IS0tICNyZWdpb24gTG9hZGluZ1NrZWxldG9uU3RhdGUgLS0+XHJcbiAgPGNhcmVvbi1kYXNoYm9hcmQtc2tlbGV0b24gKm5nSWY9XCJsb2FkaW5nXCI+PC9jYXJlb24tZGFzaGJvYXJkLXNrZWxldG9uPlxyXG4gIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgPCEtLSAjcmVnaW9uIEVtcHR5U3RhdGUgLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFoYXNEYXRhXCIgY2xhc3M9XCJkYXNoYm9hcmQtZW1wdHktc3RhdGVcIj5cclxuICAgIDxwIGNsYXNzPVwiZW1wdHktdGl0bGVcIj5TZW0gcmVnaXN0cm9zPC9wPlxyXG4gICAgPHAgY2xhc3M9XCJlbXB0eS1kZXNjcmlwdGlvblwiPnt7IGVtcHR5TWVzc2FnZSB9fTwvcD5cclxuICA8L2Rpdj5cclxuICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gIDwhLS0gI3JlZ2lvbiBEYXNoYm9hcmRDb250ZW50IC0tPlxyXG4gIDxtYWluICpuZ0lmPVwiIWxvYWRpbmcgJiYgaGFzRGF0YVwiIGNsYXNzPVwiZGFzaGJvYXJkLWNvbnRlbnRcIj5cclxuICAgIDwhLS0gI3JlZ2lvbiBLcGlDYXJkc1JvdyAtLT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwia3BpLWNhcmRzLWdyaWRcIj5cclxuICAgICAgPCEtLSBLUEkgMTogVmFnYXMgUHVibGljYWRhcyAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJrcGktY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrcGktY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWxhYmVsXCI+VmFnYXMgUHVibGljYWRhczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia3BpLWNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktdmFsdWVcIj57eyByZWdpc3RlcmVkVmFjYW5jaWVzIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktYmFkZ2VcIiBbbmdDbGFzc109XCJyZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuYmFkZ2VDbGFzc1wiPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwicmVnaXN0ZXJlZFZhY2FuY2llc0JhZGdlLmlzUG9zaXRpdmVcIiBuYW1lPVwiYXJyb3ctdXBcIiBjbGFzcz1cImtwaS1iYWRnZS1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gKm5nSWY9XCJyZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuaXNOZWdhdGl2ZVwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyByZWdpc3RlcmVkVmFjYW5jaWVzQmFkZ2UuY2hhbmdlVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImtwaS1mb290ZXJcIj5cclxuICAgICAgICAgIG5vIHRvdGFsXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2FydGljbGU+XHJcblxyXG4gICAgICA8IS0tIEtQSSAyOiBDYW5kaWRhdG9zIEluc2NyaXRvcyAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJrcGktY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrcGktY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWxhYmVsXCI+Q2FuZGlkYXRvcyBJbnNjcml0b3M8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLXZhbHVlXCI+e3sgY2FuZGlkYXRlQXBwbGljYXRpb25zIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktYmFkZ2VcIiBbbmdDbGFzc109XCJjYW5kaWRhdGVBcHBsaWNhdGlvbnNCYWRnZS5iYWRnZUNsYXNzXCI+XHJcbiAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gKm5nSWY9XCJjYW5kaWRhdGVBcHBsaWNhdGlvbnNCYWRnZS5pc1Bvc2l0aXZlXCIgbmFtZT1cImFycm93LXVwXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwiY2FuZGlkYXRlQXBwbGljYXRpb25zQmFkZ2UuaXNOZWdhdGl2ZVwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjYW5kaWRhdGVBcHBsaWNhdGlvbnNCYWRnZS5jaGFuZ2VUZXh0IH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWZvb3RlclwiPlxyXG4gICAgICAgICAge3sgY3VycmVudFBlcmlvZCA9PT0gJ1RvZGF5JyA/ICdob2plJyA6IGN1cnJlbnRQZXJpb2QgPT09ICdXZWVrJyA/ICdlc3NhIHNlbWFuYScgOiAnZXNzZSBtw6pzJyB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9hcnRpY2xlPlxyXG5cclxuICAgICAgPCEtLSBLUEkgMzogQ3VycsOtY3Vsb3MgcGFyYSBBdmFsaWFyIC0tPlxyXG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImtwaS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktbGFiZWxcIj5DdXJyw61jdWxvcyBwYXJhIEF2YWxpYXI8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLXZhbHVlXCI+e3sgcGVuZGluZ1Jldmlld3MgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImtwaS1iYWRnZVwiIFtuZ0NsYXNzXT1cInBlbmRpbmdSZXZpZXdzQmFkZ2UuYmFkZ2VDbGFzc1wiPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwicGVuZGluZ1Jldmlld3NCYWRnZS5pc1Bvc2l0aXZlXCIgbmFtZT1cImFycm93LXVwXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uICpuZ0lmPVwicGVuZGluZ1Jldmlld3NCYWRnZS5pc05lZ2F0aXZlXCIgbmFtZT1cImFycm93LWRvd25cIiBjbGFzcz1cImtwaS1iYWRnZS1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHBlbmRpbmdSZXZpZXdzQmFkZ2UuY2hhbmdlVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImtwaS1mb290ZXJcIj5hZ3VhcmRhbmRvIGFnb3JhPC9zcGFuPlxyXG4gICAgICA8L2FydGljbGU+XHJcblxyXG4gICAgICA8IS0tIEtQSSA0OiBNw6lkaWEgZGUgQ2FuZGlkYXRvcyAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJrcGktY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrcGktY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLWxhYmVsXCI+TcOpZGlhIGRlIENhbmRpZGF0b3M8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtwaS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwia3BpLXZhbHVlXCI+e3sgYXZlcmFnZUNhbmRpZGF0ZXNQZXJWYWNhbmN5IH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktYmFkZ2VcIiBbbmdDbGFzc109XCJhdmVyYWdlQ2FuZGlkYXRlc0JhZGdlLmJhZGdlQ2xhc3NcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiAqbmdJZj1cImF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuaXNQb3NpdGl2ZVwiIG5hbWU9XCJhcnJvdy11cFwiIGNsYXNzPVwia3BpLWJhZGdlLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiAqbmdJZj1cImF2ZXJhZ2VDYW5kaWRhdGVzQmFkZ2UuaXNOZWdhdGl2ZVwiIG5hbWU9XCJhcnJvdy1kb3duXCIgY2xhc3M9XCJrcGktYmFkZ2UtaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBhdmVyYWdlQ2FuZGlkYXRlc0JhZGdlLmNoYW5nZVRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJrcGktZm9vdGVyXCI+cG9yIHZhZ2E8L3NwYW4+XHJcbiAgICAgIDwvYXJ0aWNsZT5cclxuXHJcbiAgICAgIDwhLS0gS1BJIDU6IFN0YXR1cyBkYXMgVmFnYXMgLS0+XHJcbiAgICAgIDxhcnRpY2xlIGNsYXNzPVwia3BpLWNhcmQga3BpLWNhcmQtLXN0YXR1c1wiPlxyXG4gICAgICAgIDxjYXJlb24tc3RhY2tlZC1ob3Jpem9udGFsLWJhclxyXG4gICAgICAgICAgW3RpdGxlXT1cIidTdGF0dXMgZGFzIFZhZ2FzJ1wiXHJcbiAgICAgICAgICBbdG90YWxMYWJlbF09XCIndmFnYXMnXCJcclxuICAgICAgICAgIFtzaG93SGVhZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgW3Nob3dMZWdlbmRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbZGF0YV09XCJkdXRpZXNTdGF0dXNJdGVtc1wiXHJcbiAgICAgICAgICBbZW1wdHlUZXh0XT1cIidTZW0gdmFnYXMgcmVnaXN0cmFkYXMnXCJcclxuICAgICAgICAgIChpdGVtU2VsZWN0ZWQpPVwib25DaGFydEl0ZW1TZWxlY3RlZCgkZXZlbnQsICdTdGF0dXMgZGFzIFZhZ2FzJylcIlxyXG4gICAgICAgID48L2NhcmVvbi1zdGFja2VkLWhvcml6b250YWwtYmFyPlxyXG4gICAgICA8L2FydGljbGU+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgPCEtLSAjcmVnaW9uIEF0dGVudGlvblNlY3Rpb24gLS0+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImF0dGVudGlvbi1zZWN0aW9uXCI+XHJcbiAgICAgIDwhLS0gI3JlZ2lvbiBBdHRlbnRpb25DYXJkIC0tPlxyXG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImF0dGVudGlvbi1jYXJkXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiYXR0ZW50aW9uLWNhcmQtdGl0bGVcIj5QcmVjaXNhIGRhIHN1YSBhdGVuw6fDo288L2gyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0ZW50aW9uSXRlbXMubGVuZ3RoID4gMDsgZWxzZSBub0F0dGVudGlvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGVudGlvbi1pdGVtcy1saXN0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYXR0ZW50aW9uSXRlbXM7IGxldCBsYXN0ID0gbGFzdFwiIGNsYXNzPVwiYXR0ZW50aW9uLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbnRpb24taXRlbVwiIChjbGljayk9XCJvbkF0dGVudGlvbkl0ZW1DbGljayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdHRlbnRpb24taXRlbS10aXRsZVwiPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF0dGVudGlvbi1pdGVtLXN1YnRpdGxlXCI+e3sgaXRlbS5zdWJ0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxhc3RcIiBjbGFzcz1cImF0dGVudGlvbi1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tY29uc3VsdGFudFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29uc3VsdGFudFdoYXRzQXBwKCdQcmVjaXNhIGRhIHN1YSBhdGVuw6fDo28nKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIEZhbGUgY29tIHVtIGNvbnN1bHRvclxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BdHRlbnRpb24+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQdWJsaXNoWmVyb1N0YXRlOyBlbHNlIGJhc2ljQXR0ZW50aW9uWmVyb1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0ZW50aW9uLXplcm8tYm94XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF0dGVudGlvbi16ZXJvLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiemVyby1pbmZvLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbnRpb24temVyby10ZXh0c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJhdHRlbnRpb24temVyby10aXRsZVwiPk5lbmh1bWEgdmFnYSBwcmVjaXNhIGRlIGF0ZW7Dp8OjbzwvaDM+XHJcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYXR0ZW50aW9uLXplcm8tc3VidGl0bGVcIj5Wb2PDqiBuw6NvIHRlbSB2YWdhcyBlbSBhYmVydG8gcGFyYSByZXZpc2FyLjwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4temVyby1wdWJsaXNoIGJ0bi16ZXJvLXB1Ymxpc2gtLWZ1bGxcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHVibGlzaER1dHkoJ1ByZWNpc2EgZGEgc3VhIGF0ZW7Dp8OjbycpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBQdWJsaWNhciBWYWdhXHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNiYXNpY0F0dGVudGlvblplcm8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXNpYy1lbXB0eS1zdGF0ZSBiYXNpYy1lbXB0eS1zdGF0ZS0tYXR0ZW50aW9uXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWVtcHR5LWljb24td3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiYmFzaWMtZW1wdHktaWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cImJhc2ljLWVtcHR5LXRpdGxlXCI+VHVkbyBlbSBkaWEhPC9oMz5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImJhc2ljLWVtcHR5LXRleHRcIj5OZW5odW1hIHZhZ2EgcHJlY2lzYSBkYSBzdWEgYXRlbsOnw6NvIG5vIG1vbWVudG8uPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNvbnN1bHRhbnRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ29uc3VsdGFudFdoYXRzQXBwKCdQcmVjaXNhIGRhIHN1YSBhdGVuw6fDo28gLSBTZW0gdmFnYXMnKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBGYWxlIGNvbSB1bSBjb25zdWx0b3JcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgICAgPCEtLSAjcmVnaW9uIFBlcmZvcm1hbmNlQ2FyZCAtLT5cclxuICAgICAgPGFydGljbGUgY2xhc3M9XCJwZXJmb3JtYW5jZS1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBlcmZvcm1hbmNlLWNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJwZXJmb3JtYW5jZS1jYXJkLXRpdGxlXCI+QW7DoWxpc2UgZGUgRGVzZW1wZW5obzwvaDI+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInBlcmZvcm1hbmNlLWluZm8td3JhcHBlclwiXHJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uSW5mb01vdXNlRW50ZXIoKVwiXHJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uSW5mb01vdXNlTGVhdmUoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1pbmZvXCJcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiSW5mb3JtYcOnw7VlcyBzb2JyZSBhIEFuw6FsaXNlIGRlIERlc2VtcGVuaG9cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVJbmZvVG9vbHRpcCgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gbmFtZT1cImluZm9cIiBjbGFzcz1cImluZm8taWNvblwiPjwvY2FyZW9uLWRhc2hib2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gVG9vbHRpcCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dJbmZvVG9vbHRpcFwiIGNsYXNzPVwiaW5mby10b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidG9vbHRpcC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICBFc3RhIGFuw6FsaXNlIG1lZGUgbyBpbnRlcmVzc2UgZG9zIGNhbmRpZGF0b3MgcGVsYSBzdWEgZW1wcmVzYSBlIMOpIGF0dWFsaXphZGEgY29udGludWFtZW50ZSDDoCBtZWRpZGEgcXVlIG1haXMgcHJvZmlzc2lvbmFpcyBkZW1vbnN0cmFtIGRlc2VqbyBkZSBmYXplciBwYXJ0ZSBkbyBzZXUgdGltZS5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gR3LDoWZpY28gZGUgT25kYXMgLS0+XHJcbiAgICAgICAgPGNhcmVvbi1wZXJmb3JtYW5jZS13YXZlIFtsZXZlbF09XCJwZXJmb3JtYW5jZUxldmVsXCI+PC9jYXJlb24tcGVyZm9ybWFuY2Utd2F2ZT5cclxuXHJcbiAgICAgICAgPCEtLSBDb250ZcO6ZG8gVGV4dHVhbCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyZm9ybWFuY2UtYm9keVwiPlxyXG4gICAgICAgICAgPGgzIGNsYXNzPVwicGVyZm9ybWFuY2UtaGlnaGxpZ2h0LXRpdGxlXCI+e3sgcGVyZm9ybWFuY2VUaXRsZSB9fTwvaDM+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInBlcmZvcm1hbmNlLWRlc2NyaXB0aW9uXCI+e3sgcGVyZm9ybWFuY2VEZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBCb3TDo28gV2hhdHNBcHAgLS0+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1jb25zdWx0YW50XCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuQ29uc3VsdGFudFdoYXRzQXBwKCdBbsOhbGlzZSBkZSBEZXNlbXBlbmhvJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIEZhbGUgY29tIHVtIGNvbnN1bHRvclxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2FydGljbGU+XHJcbiAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICA8IS0tICNyZWdpb24gVmFjYW5jeUFuYWx5c2lzU2VjdGlvbiAtLT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwidmFjYW5jeS1hbmFseXNpcy1zZWN0aW9uIHZhY2FuY3ktYW5hbHlzaXMtY2FyZFwiPlxyXG4gICAgICA8IS0tICNyZWdpb24gU2VjdGlvbkhlYWRlciAtLT5cclxuICAgICAgPGhlYWRlciBjbGFzcz1cInZhY2FuY3ktc2VjdGlvbi1oZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFjYW5jeS1zZWN0aW9uLXRpdGxlLWdyb3VwXCI+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJ2YWNhbmN5LXNlY3Rpb24tdGl0bGVcIj5BbsOhbGlzZSBwb3IgVmFnYTwvaDI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhY2FuY3ktc2VjdGlvbi1zdWJ0aXRsZVwiICpuZ0lmPVwic2VsZWN0ZWREdXR5XCI+e3sgdmFjYW5jeVNlY3Rpb25TdWJ0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFjYW5jeS1zZWN0aW9uLXN1YnRpdGxlXCIgKm5nSWY9XCIhc2VsZWN0ZWREdXR5XCI+XHJcbiAgICAgICAgICAgIHt7IGlzUHVibGlzaFplcm9TdGF0ZSA/ICdOZW5odW1hIGNhbmRpZGF0dXJhIHJlZ2lzdHJhZGEnIDogJ05lbmh1bWEgdmFnYSBhdGl2YSBubyBtb21lbnRvJyB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi13cmFwcGVyXCIgKm5nSWY9XCJ2YWNhbmNpZXNBbmFseXNpcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhY2FuY3ktZHJvcGRvd24tbGFiZWxcIj5Fc2NvbGhhIGEgdmFnYTo8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhY2FuY3ktZHJvcGRvd24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInZhY2FuY3ktZHJvcGRvd24tYnRuXCJcclxuICAgICAgICAgICAgICBbY2xhc3MudmFjYW5jeS1kcm9wZG93bi1idG4tLW9wZW5dPVwiaXNEdXR5RHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHV0eURyb3Bkb3duKClcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNEdXR5RHJvcGRvd25PcGVuXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi1idG4tdGV4dFwiPnt7IHNlbGVjdGVkRHV0eT8udGl0bGUgfHwgJ1NlbGVjaW9uZSB1bWEgdmFnYScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiY2hldnJvbi1kb3duXCIgW3JvdGF0ZWRdPVwiaXNEdXR5RHJvcGRvd25PcGVuXCIgY2xhc3M9XCJ2YWNhbmN5LWRyb3Bkb3duLWJ0bi1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBCYWNrZHJvcCBwYXJhIGZlY2hhciBkcm9wZG93biBhbyBjbGljYXIgZm9yYSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzRHV0eURyb3Bkb3duT3BlblwiIGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi1iYWNrZHJvcFwiIChjbGljayk9XCJjbG9zZUR1dHlEcm9wZG93bigpXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE1lbnUgZmx1dHVhbnRlIGRvIGRyb3Bkb3duIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNEdXR5RHJvcGRvd25PcGVuXCIgY2xhc3M9XCJ2YWNhbmN5LWRyb3Bkb3duLW1lbnVcIiByb2xlPVwibWVudVwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkdXR5IG9mIHZhY2FuY2llc0FuYWx5c2lzXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmFjYW5jeS1kcm9wZG93bi1pdGVtXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy52YWNhbmN5LWRyb3Bkb3duLWl0ZW0tLXNlbGVjdGVkXT1cImR1dHkuZHV0eUlkID09PSBzZWxlY3RlZER1dHk/LmR1dHlJZFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RHV0eShkdXR5KVwiXHJcbiAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkdXR5LXJhZGlvLW91dGVyXCIgW2NsYXNzLmR1dHktcmFkaW8tb3V0ZXItLWNoZWNrZWRdPVwiZHV0eS5kdXR5SWQgPT09IHNlbGVjdGVkRHV0eT8uZHV0eUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkdXR5LXJhZGlvLWlubmVyXCIgKm5nSWY9XCJkdXR5LmR1dHlJZCA9PT0gc2VsZWN0ZWREdXR5Py5kdXR5SWRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkdXR5LWl0ZW0tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImR1dHktaXRlbS10aXRsZVwiPnt7IGR1dHkudGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHV0eS1pdGVtLXN1YnRpdGxlXCI+e3sgZHV0eS5zdWJ0aXRsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2hlYWRlcj5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRHV0eTsgZWxzZSBub0FjdGl2ZUR1dGllc1wiPlxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBUaW1lbGluZUNoYXJ0IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWNhbmN5LXRpbWVsaW5lLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjYXJlb24tdGltZWxpbmUtYmFyLWNoYXJ0XHJcbiAgICAgICAgICAgIFtkYXRhXT1cInNlbGVjdGVkRHV0eVRpbWVsaW5lUG9pbnRzXCJcclxuICAgICAgICAgICAgW2F1dG9CYXJXaWR0aF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtiYXJXaWR0aF09XCI2OFwiXHJcbiAgICAgICAgICAgIChpdGVtU2VsZWN0ZWQpPVwib25UaW1lbGluZVBvaW50U2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jYXJlb24tdGltZWxpbmUtYmFyLWNoYXJ0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSAjcmVnaW9uIEJvdHRvbU1ldHJpY3NSb3cgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInZhY2FuY3ktYm90dG9tLWdyaWRcIj5cclxuICAgICAgICAgIDwhLS0gQ2FyZCBUYXhhIGRlIENvbnZlcnPDo28gLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktbWV0cmljLWNhcmQgdmFjYW5jeS1tZXRyaWMtY2FyZC0tZG9udXRcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kb251dC1jaGFydFxyXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInVGF4YSBkZSBjb252ZXJzw6NvJ1wiXHJcbiAgICAgICAgICAgICAgW3RpdGxlQm9sZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbdGl0bGVTaXplXT1cIjE0XCJcclxuICAgICAgICAgICAgICBbdGl0bGVQYWRkaW5nXT1cIjZcIlxyXG4gICAgICAgICAgICAgIFtkYXRhXT1cInNlbGVjdGVkRHV0eURvbnV0SXRlbXNcIlxyXG4gICAgICAgICAgICAgIFtjZW50ZXJUZXh0XT1cInNlbGVjdGVkRHV0eUNvbnZlcnNpb25SYXRlVGV4dFwiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiOTZcIlxyXG4gICAgICAgICAgICAgIFtzdHJva2VXaWR0aF09XCIxOFwiXHJcbiAgICAgICAgICAgID48L2NhcmVvbi1kb251dC1jaGFydD5cclxuICAgICAgICAgIDwvYXJ0aWNsZT5cclxuXHJcbiAgICAgICAgICA8IS0tIENhcmQgVmlzdWFsaXphw6fDtWVzIOKGkiBDYW5kaWRhdHVyYXMgLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktbWV0cmljLWNhcmQgdmFjYW5jeS1tZXRyaWMtY2FyZC0tZnVubmVsXCI+XHJcbiAgICAgICAgICAgIDxjYXJlb24tZnVubmVsLWJhclxyXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInVmlzdWFsaXphw6fDtWVzIOKGkiBDYW5kaWRhdHVyYXMnXCJcclxuICAgICAgICAgICAgICBbdGl0bGVCb2xkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFt0aXRsZVNpemVdPVwiMTRcIlxyXG4gICAgICAgICAgICAgIFt0aXRsZVBhZGRpbmddPVwiNlwiXHJcbiAgICAgICAgICAgICAgW2RhdGFdPVwic2VsZWN0ZWREdXR5RnVubmVsSXRlbXNcIlxyXG4gICAgICAgICAgICAgIFttaW5CYXJXaWR0aF09XCIyNjBcIlxyXG4gICAgICAgICAgICA+PC9jYXJlb24tZnVubmVsLWJhcj5cclxuICAgICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gI3JlZ2lvbiBTYWxhcnlBbmRTdXBwb3J0Um93IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWNhbmN5LXNhbGFyeS1zdXBwb3J0LWdyaWRcIiAqbmdJZj1cInNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb25cIj5cclxuICAgICAgICAgIDwhLS0gQ2FyZCBNw6lkaWEgU2FsYXJpYWwgLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktc2FsYXJ5LWNhcmRcIj5cclxuICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cInNhbGFyeS1jYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gQ29sdW5hIDE6IFNldSB2YWxvciAtLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2FsYXJ5LW1ldHJpYy1jb2xcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2FsYXJ5LW1ldHJpYy1sYWJlbFwiPlNldSB2YWxvcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2FsYXJ5LW1ldHJpYy12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5zYWxhcnktbWV0cmljLXZhbHVlLS1ub3QtaW5mb3JtZWRdPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLk5vdEluZm9ybWVkXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLWluc3VmZmljaWVudF09XCJzYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdHRlZFlvdXJTYWxhcnkgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBEaXZpc29yIHZlcnRpY2FsIC0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYWxhcnktbWV0cmljLWRpdmlkZXJcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBDb2x1bmEgMjogTcOpZGlhIGRhIHJlZ2nDo28gLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhbGFyeS1tZXRyaWMtY29sXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNhbGFyeS1tZXRyaWMtbGFiZWxcIj5Nw6lkaWEgZGEgcmVnacOjbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2FsYXJ5LW1ldHJpYy12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5zYWxhcnktbWV0cmljLXZhbHVlLS1vcmFuZ2VdPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkJlbG93TWFya2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLWJsdWVdPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkF0TWFya2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLW5hdnldPVwic2FsYXJ5U3RhdHVzID09PSBEdXR5U2FsYXJ5U3RhdHVzLkFib3ZlTWFya2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNhbGFyeS1tZXRyaWMtdmFsdWUtLWluc3VmZmljaWVudF09XCJzYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuSW5zdWZmaWNpZW50RGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5zYWxhcnktbWV0cmljLXZhbHVlLS1tdXRlZF09XCJzYWxhcnlTdGF0dXMgPT09IER1dHlTYWxhcnlTdGF0dXMuTm90SW5mb3JtZWRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBmb3JtYXR0ZWRSZWdpb25hbEF2ZXJhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBCYWRnZSBEaW7Dom1pY28gLS0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYWxhcnktYmFkZ2VcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2FsYXJ5QmFkZ2VDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb24uYmFkZ2VUZXh0XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZER1dHlTYWxhcnlDb21wYXJpc29uLmJhZGdlVGV4dCB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2hlYWRlcj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTGluaGEvQ29ycG8gdGV4dHVhbCBjb20gRGVzdGFxdWUgZSBFeHBsaWNhw6fDo28gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYWxhcnktY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic2FsYXJ5LWhpZ2hsaWdodC10aXRsZVwiIFtuZ0NsYXNzXT1cInNhbGFyeVRpdGxlQ29sb3JDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgc2VsZWN0ZWREdXR5U2FsYXJ5Q29tcGFyaXNvbi5oaWdobGlnaHRUaXRsZSB9fVxyXG4gICAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzYWxhcnktZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkRHV0eVNhbGFyeUNvbXBhcmlzb24uZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9hcnRpY2xlPlxyXG5cclxuICAgICAgICAgIDwhLS0gQ2FyZCBkZSBTdXBvcnRlOiBEw7p2aWRhcyBzb2JyZSBlc3NlcyBkYWRvcz8gLS0+XHJcbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInZhY2FuY3ktc3VwcG9ydC1jYXJkXCI+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInN1cHBvcnQtY2FyZC10aXRsZVwiPkFpbmRhIGNvbSBkw7p2aWRhcyBzb2JyZSBlc3NlcyBkYWRvcz88L2g0PlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInN1cHBvcnQtY2FyZC1zdWJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgIFNlIGRlcG9pcyBkZSB2ZXIgb3MgZ3LDoWZpY29zIHZvY8OqIGZpY291IGNvbSBwZXJndW50YXMgc2VtIHJlc3Bvc3RhLCBmYWxlIGNvbSBhIG5vc3NhIGVxdWlwZS5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4tc3VwcG9ydC1jb25zdWx0YW50XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkNvbnN1bHRhbnRXaGF0c0FwcCgnRMO6dmlkYXMgc29icmUgZXNzZXMgZGFkb3MnKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBGYWxlIGNvbSB1bSBjb25zdWx0b3JcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2FydGljbGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9BY3RpdmVEdXRpZXM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyXCIgKm5nSWY9XCJpc1B1Ymxpc2haZXJvU3RhdGU7IGVsc2UgYmFzaWNWYWNhbmN5WmVyb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLWxlZnRcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiemVyby1pbmZvLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLXRleHRzXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiemVyby1zdGF0ZS1iYW5uZXItdGl0bGVcIj5OZW5odW1hIHZhZ2EgcGFyYSBhbmFsaXNhcjwvaDM+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ6ZXJvLXN0YXRlLWJhbm5lci1zdWJ0aXRsZVwiPkNhZGFzdHJlIHVtYSB2YWdhIHBhcmEgY29tZcOnYXIgYSBhY29tcGFuaGFyIG8gZGVzZW1wZW5obyBkZWxhIGFxdWkuPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4temVyby1wdWJsaXNoXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHVibGlzaER1dHkoJ0Fuw6FsaXNlIHBvciBWYWdhJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBQdWJsaWNhciBWYWdhXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNiYXNpY1ZhY2FuY3laZXJvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWVtcHR5LXN0YXRlIGJhc2ljLWVtcHR5LXN0YXRlLS12YWNhbmN5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXNpYy1lbXB0eS1pY29uLXdyYXBcIj5cclxuICAgICAgICAgICAgICA8Y2FyZW9uLWRhc2hib2FyZC1pY29uIG5hbWU9XCJpbmZvXCIgY2xhc3M9XCJiYXNpYy1lbXB0eS1pY29uXCI+PC9jYXJlb24tZGFzaGJvYXJkLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJiYXNpYy1lbXB0eS10aXRsZVwiPk5lbmh1bWEgdmFnYSBwYXJhIGFuYWxpc2FyPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJiYXNpYy1lbXB0eS10ZXh0XCI+TmVuaHVtYSB2YWdhIGF0aXZhIG5vIG1vbWVudG8gcGFyYSBhbsOhbGlzZS48L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuICAgIDwhLS0gI3JlZ2lvbiBBcHBsaWNhdGlvbnNQZXJWYWNhbmN5U2VjdGlvbiAtLT5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiYXBwbGljYXRpb25zLXBlci12YWNhbmN5LXNlY3Rpb25cIj5cclxuICAgICAgPGhlYWRlciBjbGFzcz1cImFwcGxpY2F0aW9ucy1zZWN0aW9uLWhlYWRlclwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImFwcGxpY2F0aW9ucy1zZWN0aW9uLXRpdGxlXCI+Q2FuZGlkYXR1cmFzIHBvciBWYWdhPC9oMj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImFwcGxpY2F0aW9ucy1zZWN0aW9uLXN1YnRpdGxlXCIgKm5nSWY9XCJoYXNDb21wYXJpc29uRHV0aWVzXCI+XHJcbiAgICAgICAgICB7eyBjb21wYXJpc29uU3VidGl0bGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHBsaWNhdGlvbnMtc2VjdGlvbi1zdWJ0aXRsZVwiICpuZ0lmPVwiIWhhc0NvbXBhcmlzb25EdXRpZXNcIj5cclxuICAgICAgICAgIHt7IGlzUHVibGlzaFplcm9TdGF0ZSA/ICcwIGNhbmRpZGF0dXJhcyBubyB0b3RhbCwgbmVuaHVtYSB2YWdhIGF0aXZhJyA6ICdOZW5odW1hIHZhZ2EgYXRpdmEgbm8gbW9tZW50bycgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcGxpY2F0aW9ucy1jaGFydC13cmFwcGVyXCIgKm5nSWY9XCJoYXNDb21wYXJpc29uRHV0aWVzOyBlbHNlIG5vQ29tcGFyaXNvbkR1dGllc1wiPlxyXG4gICAgICAgIDxjYXJlb24tY29tcGFyaXNvbi1iYXItY2hhcnRcclxuICAgICAgICAgIFtkYXRhXT1cImNvbXBhcmlzb25JdGVtc1wiXHJcbiAgICAgICAgICBbYXV0b0JhcldpZHRoXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtiYXJXaWR0aF09XCI3NVwiXHJcbiAgICAgICAgICBbaXRlbVNsb3RXaWR0aF09XCIxMDBcIlxyXG4gICAgICAgICAgW2JhckNvbG9yXT1cIicjM0I4MkY2J1wiXHJcbiAgICAgICAgICBbemVyb0NvbG9yXT1cIicjRUY0NDQ0J1wiXHJcbiAgICAgICAgICBbdHJlbmRMaW5lQ29sb3JdPVwiJyMxRTI5M0InXCJcclxuICAgICAgICAgIFtkb3RDb2xvcl09XCInIzFFMjkzQidcIlxyXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInIzY0NzQ4QidcIlxyXG4gICAgICAgICAgKGl0ZW1TZWxlY3RlZCk9XCJvbkNoYXJ0SXRlbVNlbGVjdGVkKCRldmVudCwgJ0NhbmRpZGF0dXJhcyBwb3IgVmFnYScpXCJcclxuICAgICAgICA+PC9jYXJlb24tY29tcGFyaXNvbi1iYXItY2hhcnQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNub0NvbXBhcmlzb25EdXRpZXM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyXCIgKm5nSWY9XCJpc1B1Ymxpc2haZXJvU3RhdGU7IGVsc2UgYmFzaWNDb21wYXJpc29uWmVyb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLWxlZnRcIj5cclxuICAgICAgICAgICAgPGNhcmVvbi1kYXNoYm9hcmQtaWNvbiBuYW1lPVwiaW5mb1wiIGNsYXNzPVwiemVyby1pbmZvLWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInplcm8tc3RhdGUtYmFubmVyLXRleHRzXCI+XHJcbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiemVyby1zdGF0ZS1iYW5uZXItdGl0bGVcIj5OZW5odW1hIGNhbmRpZGF0dXJhIHJlZ2lzdHJhZGE8L2gzPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiemVyby1zdGF0ZS1iYW5uZXItc3VidGl0bGVcIj5TZW0gdmFnYXMgZW0gYWJlcnRvLCBhaW5kYSBuw6NvIGjDoSBjYW5kaWRhdHVyYXMgcGFyYSBtb3N0cmFyLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLXplcm8tcHVibGlzaFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblB1Ymxpc2hEdXR5KCdDYW5kaWRhdHVyYXMgcG9yIFZhZ2EnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIFB1YmxpY2FyIFZhZ2FcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2Jhc2ljQ29tcGFyaXNvblplcm8+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFzaWMtZW1wdHktc3RhdGUgYmFzaWMtZW1wdHktc3RhdGUtLWNvbXBhcmlzb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhc2ljLWVtcHR5LWljb24td3JhcFwiPlxyXG4gICAgICAgICAgICAgIDxjYXJlb24tZGFzaGJvYXJkLWljb24gbmFtZT1cImluZm9cIiBjbGFzcz1cImJhc2ljLWVtcHR5LWljb25cIj48L2NhcmVvbi1kYXNoYm9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImJhc2ljLWVtcHR5LXRpdGxlXCI+TmVuaHVtYSBjYW5kaWRhdHVyYSByZWdpc3RyYWRhPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJiYXNpYy1lbXB0eS10ZXh0XCI+TmVuaHVtYSB2YWdhIGF0aXZhIG5vIG1vbWVudG8gcGFyYSBhbsOhbGlzZS48L3A+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgPCEtLSAjZW5kcmVnaW9uIC0tPlxyXG4gIDwvbWFpbj5cclxuICA8IS0tICNlbmRyZWdpb24gLS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -194,9 +194,9 @@ class DashboardComponent {
|
|
|
194
194
|
this.emptyMessage = 'Nenhum dado registrado para o período selecionado.';
|
|
195
195
|
/**
|
|
196
196
|
* Consultant phone number for WhatsApp redirect.
|
|
197
|
-
* @default '
|
|
197
|
+
* @default 'empty string'
|
|
198
198
|
*/
|
|
199
|
-
this.consultantPhone = '
|
|
199
|
+
this.consultantPhone = '';
|
|
200
200
|
/**
|
|
201
201
|
* Initial message for WhatsApp consultant chat.
|
|
202
202
|
* @default 'empty string'
|
|
@@ -280,7 +280,7 @@ class DashboardComponent {
|
|
|
280
280
|
openConsultantWhatsApp(section = 'Consultor') {
|
|
281
281
|
this.consultantClick.emit(section);
|
|
282
282
|
if (typeof window !== 'undefined') {
|
|
283
|
-
const cleanPhone = (this.consultantPhone || '
|
|
283
|
+
const cleanPhone = (this.consultantPhone || '').replace(/\D/g, '');
|
|
284
284
|
const textParam = this.consultantMessage
|
|
285
285
|
? `&text=${encodeURIComponent(this.consultantMessage)}`
|
|
286
286
|
: '';
|