@skyux/colorpicker 7.6.0 → 7.6.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/documentation.json
CHANGED
|
@@ -403,7 +403,7 @@
|
|
|
403
403
|
"isPublic": true
|
|
404
404
|
},
|
|
405
405
|
"comment": {
|
|
406
|
-
"shortText": "The HTML element ID
|
|
406
|
+
"shortText": "The HTML element ID of the element that labels the\ncolorpicker. This sets the colorpicker's `aria-labelledby` attribute\n[to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility).\nIf the colorpicker does not include a visible label, use `label` instead."
|
|
407
407
|
},
|
|
408
408
|
"decorators": [
|
|
409
409
|
{
|
|
@@ -461,4 +461,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
461
461
|
read: ElementRef,
|
|
462
462
|
}]
|
|
463
463
|
}] } });
|
|
464
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9ycGlja2VyL3NyYy9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvc3JjL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxzQkFBc0IsR0FNdkIsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBSzdFLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBMlBsQyxZQUNFLFFBQXlCLEVBQ3pCLGNBQWlDLEVBQ2pDLFdBQWtDLEVBQ2xDLFVBQTZCLEVBQzdCLEdBQTBCLEVBQ2QsUUFBMEI7O1FBelB4Qzs7O1dBR0c7UUFFSSx5QkFB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QUM7UUFDRixPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7S0FDakU7SUFDRCwwQkFBMEI7SUFDMUIsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztxSEFya0JVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlXQUh2QixDQUFDLHFCQUFxQixDQUFDLHVJQThLMUIsV0FBVywrR0FLWCxVQUFVLDJHQUtWLFVBQVUsNkJDMU9wQixrcVVBOFRBOzRGRHpRYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMscUJBQXFCLENBQUMsaUJBQ25CLGlCQUFpQixDQUFDLElBQUk7OzBCQW1RbEMsUUFBUTs0Q0EzUEosZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVFDLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFVQyxLQUFLO3NCQURYLEtBQUs7Z0JBVUMsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxvQkFBb0I7c0JBRDFCLE1BQU07Z0JBT0Esb0JBQW9CO3NCQUQxQixNQUFNO2dCQVFBLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSztnQkFzSEksc0JBQXNCO3NCQUgvQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFO3dCQUNuQyxJQUFJLEVBQUUsV0FBVztxQkFDbEI7Z0JBTVMsZ0JBQWdCO3NCQUh6QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsVUFBVTtxQkFDakI7Z0JBTWEsY0FBYztzQkFIM0IsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUFmZml4QXV0b0ZpdENvbnRleHQsXG4gIFNreUFmZml4U2VydmljZSxcbiAgU2t5QWZmaXhlcixcbiAgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICBTa3lPdmVybGF5SW5zdGFuY2UsXG4gIFNreU92ZXJsYXlTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJY29uVHlwZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTbGlkZXJEaW1lbnNpb24sIFNsaWRlclBvc2l0aW9uIH0gZnJvbSAnLi9jb2xvcnBpY2tlci1jbGFzc2VzJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyU2VydmljZSB9IGZyb20gJy4vY29sb3JwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLWF4aXMnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvciB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItY29sb3InO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJIc3ZhIH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1oc3ZhJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyTWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJPdXRwdXQgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLW91dHB1dCc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlclJlc3VsdCB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItcmVzdWx0JztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyUmdiYSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItcmdiYSc7XG5cbmxldCBjb21wb25lbnRJZEluZGV4ID0gMDtcblxuLyoqXG4gKiBUaGUgU0tZIFVYLXRoZW1lZCByZXBsYWNlbWVudCBmb3IgdGhlIEhUTUwgYGlucHV0YCBlbGVtZW50IHdpdGggYHR5cGU9XCJjb2xvclwiYC5cbiAqIFRoZSB2YWx1ZSB0aGF0IHVzZXJzIHNlbGVjdCBpcyBkcml2ZW4gdGhyb3VnaCB0aGUgYG5nTW9kZWxgIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb25cbiAqIHRoZSBgaW5wdXRgIGVsZW1lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jb2xvcnBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvcnBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbG9ycGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NreUNvbG9ycGlja2VyU2VydmljZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbG9ycGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFtGb250IEF3ZXNvbWUgNC43XShodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NC43L2ljb25zLykgaWNvbiB0byBvdmVybGF5IG9uIHRvcCBvZiB0aGUgcGlja2VyLiBEbyBub3Qgc3BlY2lmeSB0aGUgYGZhIGZhLWAgY2xhc3Nlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGlja2VyQnV0dG9uSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBpY29uIHRvIGRpc3BsYXkuIFNwZWNpZnlpbmcgYGZhYCB3aWxsIGRpc3BsYXkgYSBGb250IEF3ZXNvbWUgaWNvbiwgd2hpbGUgc3BlY2lmeWluZyBgc2t5dXhgIHdpbGwgZGlzcGxheSBhbiBpY29uIGZyb20gdGhlIGN1c3RvbSBTS1kgVVggaWNvbiBmb250LiBOb3RlIHRoYXQgdGhlIGN1c3RvbSBTS1kgVVggaWNvbiBmb250IGlzIGN1cnJlbnRseSBpbiBiZXRhLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwaWNrZXJCdXR0b25JY29uVHlwZTogU2t5SWNvblR5cGUgPSAnZmEnO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGNvbG9ycGlja2VyLiBUaGlzIHNldHMgdGhlIGNvbG9ycGlja2VyJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSlcbiAgICogd2hlbiB0aGUgY29sb3JwaWNrZXIgZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIElmIHRoZSBjb2xvcnBpY2tlciBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgXCJTZWxlY3QgY29sb3IgdmFsdWVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgKHdpdGhvdXQgdGhlIGxlYWRpbmcgYCNgKSBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVscyB0aGVcbiAgICogY29sb3JwaWNrZXIuIFRoaXMgc2V0cyB0aGUgY29sb3JwaWNrZXIncyBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGVcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2NoZWNrYm94I2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgY29sb3JwaWNrZXIgZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCBhIGNvbG9yIGluIHRoZSBjb2xvcnBpY2tlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDb2xvckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUNvbG9ycGlja2VyT3V0cHV0PigpO1xuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCAqKkFwcGx5KiogaW4gdGhlIGNvbG9ycGlja2VyIHRvIGFwcGx5IGEgY29sb3IuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ29sb3JBcHBsaWVkID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lDb2xvcnBpY2tlclJlc3VsdD4oKTtcblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgY29sb3JwaWNrZXIuIFRoZSBjb21tYW5kcyBzaG91bGRcbiAgICogcmVzcGVjdCB0aGUgYFNreUNvbG9yUGlja2VyTWVzc2FnZWAgdHlwZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5Q29sb3JwaWNrZXJNZXNzYWdlPigpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSByZXNldCBidXR0b24gdG8gbGV0IHVzZXJzIHJldHVybiB0byB0aGUgZGVmYXVsdCBjb2xvci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93UmVzZXRCdXR0b24gPSB0cnVlO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2JhY2tncm91bmRDb2xvckZvckRpc3BsYXkgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5waWNrZXJCdXR0b25JY29uKSB7XG4gICAgICB0aGlzLmljb25Db2xvciA9IHRoaXMuI2dldEFjY2Vzc2libGVJY29uQ29sb3IodGhpcy5zZWxlY3RlZENvbG9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJhY2tncm91bmRDb2xvckZvckRpc3BsYXkoKTogc3RyaW5nIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0aGlzLiNfYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSB8fCAnI2ZmZic7XG4gIH1cblxuICBwdWJsaWMgc2V0IGh1ZShjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQXhpcykge1xuICAgIGlmIChcbiAgICAgIHRoaXMuI2hzdmEgJiZcbiAgICAgIGNoYW5nZS54Q29vcmRpbmF0ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjaGFuZ2UubWF4UmFuZ2UgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy4jaHN2YS5odWUgPSBjaGFuZ2UueENvb3JkaW5hdGUgLyBjaGFuZ2UubWF4UmFuZ2U7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlZChjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICBpZiAodGhpcy4jaHN2YSkge1xuICAgICAgY29uc3QgcmdiYSA9IHRoaXMuI3N2Yy5oc3ZhVG9SZ2JhKHRoaXMuI2hzdmEpO1xuXG4gICAgICAvLyBUT0RPOiBUaGlzIGNvZGUgYXNzdW1lZCBub24tbnVsbCBwcmUtc3RyaWN0IG1vZGUuIFJlZXZhbHVhdGUgaW4gdGhlIGZ1dHVyZT9cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICByZ2JhLnJlZCA9IGNoYW5nZS5jb2xvclZhbHVlISAvIGNoYW5nZS5tYXhSYW5nZSE7XG4gICAgICB0aGlzLiNoc3ZhID0gdGhpcy4jc3ZjLnJnYmFUb0hzdmEocmdiYSk7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGdyZWVuKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIGlmICh0aGlzLiNoc3ZhKSB7XG4gICAgICBjb25zdCByZ2JhID0gdGhpcy4jc3ZjLmhzdmFUb1JnYmEodGhpcy4jaHN2YSk7XG5cbiAgICAgIC8vIFRPRE86IFRoaXMgY29kZSBhc3N1bWVkIG5vbi1udWxsIHByZS1zdHJpY3QgbW9kZS4gUmVldmFsdWF0ZSBpbiB0aGUgZnV0dXJlP1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIHJnYmEuZ3JlZW4gPSBjaGFuZ2UuY29sb3JWYWx1ZSEgLyBjaGFuZ2UubWF4UmFuZ2UhO1xuICAgICAgdGhpcy4jaHN2YSA9IHRoaXMuI3N2Yy5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBibHVlKGNoYW5nZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcikge1xuICAgIGlmICh0aGlzLiNoc3ZhKSB7XG4gICAgICBjb25zdCByZ2JhID0gdGhpcy4jc3ZjLmhzdmFUb1JnYmEodGhpcy4jaHN2YSk7XG5cbiAgICAgIC8vIFRPRE86IFRoaXMgY29kZSBhc3N1bWVkIG5vbi1udWxsIHByZS1zdHJpY3QgbW9kZS4gUmVldmFsdWF0ZSBpbiB0aGUgZnV0dXJlP1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIHJnYmEuYmx1ZSA9IGNoYW5nZS5jb2xvclZhbHVlISAvIGNoYW5nZS5tYXhSYW5nZSE7XG4gICAgICB0aGlzLiNoc3ZhID0gdGhpcy4jc3ZjLnJnYmFUb0hzdmEocmdiYSk7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGFscGhhQXhpcyhjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQXhpcykge1xuICAgIGlmIChcbiAgICAgIHRoaXMuI2hzdmEgJiZcbiAgICAgIGNoYW5nZS54Q29vcmRpbmF0ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjaGFuZ2UubWF4UmFuZ2UgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy4jaHN2YS5hbHBoYSA9IGNoYW5nZS54Q29vcmRpbmF0ZSAvIGNoYW5nZS5tYXhSYW5nZTtcbiAgICAgIHRoaXMuI3VwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgYWxwaGFDb2xvcihjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICBpZiAodGhpcy4jaHN2YSkge1xuICAgICAgLy8gVE9ETzogVGhpcyBjb2RlIGFzc3VtZWQgbm9uLW51bGwgcHJlLXN0cmljdCBtb2RlLiBSZWV2YWx1YXRlIGluIHRoZSBmdXR1cmU/XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgdGhpcy4jaHN2YS5hbHBoYSA9IGNoYW5nZS5jb2xvclZhbHVlISAvIGNoYW5nZS5tYXhSYW5nZSE7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGhleChjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICB0aGlzLnVwZGF0ZVBpY2tlclZhbHVlcyhjaGFuZ2UuY29sb3IpO1xuICB9XG5cbiAgcHVibGljIHNldCBzYXR1cmF0aW9uQW5kTGlnaHRuZXNzKHZhbHVlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLiNoc3ZhICYmXG4gICAgICB2YWx1ZS54Q29vcmRpbmF0ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB2YWx1ZS54QXhpcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB2YWx1ZS55Q29vcmRpbmF0ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB2YWx1ZS55QXhpcyAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICB0aGlzLiNoc3ZhLnNhdHVyYXRpb24gPSB2YWx1ZS54Q29vcmRpbmF0ZSAvIHZhbHVlLnhBeGlzO1xuICAgICAgdGhpcy4jaHN2YS52YWx1ZSA9IHZhbHVlLnlDb29yZGluYXRlIC8gdmFsdWUueUF4aXM7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2t5Q29sb3JwaWNrZXJBbHBoYUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZXR1cm5Gb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGluaXRpYWxDb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbGFzdEFwcGxpZWRDb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaXNWaXNpYmxlID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKCdjb2xvcnBpY2tlclRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBwcm90ZWN0ZWQgY29sb3JwaWNrZXJUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlckJ1dHRvblJlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwcm90ZWN0ZWQgdHJpZ2dlckJ1dHRvblJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjb2xvcnBpY2tlclJlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwcm90ZWN0ZWQgc2V0IGNvbG9ycGlja2VyUmVmKHZhbHVlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfY29sb3JwaWNrZXJSZWYgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG5cbiAgICAgIHRoaXMuI3JlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICB0aGlzLiNwaWNrZXJVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgY29sb3JwaWNrZXIgaGFzIGZ1bGx5IHJlbmRlcmVkIGJlZm9yZSBhZGRpbmcgdGhlIGFmZml4ZXIuIEFkZGVkIHRvIGFkZHJlc3MgYVxuICAgICAgLy8gcmFjZSBjb25kaXRpb24gd2hlbiBydW5uaW5nIHVuZGVyIHByb2R1Y3Rpb24gY29uZGl0aW9ucy5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLiNjcmVhdGVBZmZpeGVyKCk7XG4gICAgICAgIHRoaXMuaXNQaWNrZXJWaXNpYmxlID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLiNjb3JlQWRhcHRlci5nZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgJy5za3ktY29sb3JwaWNrZXInLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjb2xvcnBpY2tlclJlZigpOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NvbG9ycGlja2VyUmVmO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbG9ycGlja2VySWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdHJpZ2dlckJ1dHRvbklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBza3lDb2xvcnBpY2tlckhleElkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBza3lDb2xvcnBpY2tlclJlZElkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBza3lDb2xvcnBpY2tlckdyZWVuSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIHNreUNvbG9ycGlja2VyQmx1ZUlkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBzbGlkZXI6IFNsaWRlclBvc2l0aW9uO1xuICBwcm90ZWN0ZWQgYWxsb3dUcmFuc3BhcmVuY3k6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBhbHBoYVNsaWRlckNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBoZXhUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBodWVTbGlkZXJDb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgcHJlc2V0Q29sb3JzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIHJnYmFUZXh0OiBTa3lDb2xvcnBpY2tlclJnYmEgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yOiBTa3lDb2xvcnBpY2tlck91dHB1dCB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGljb25Db2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgaXNQaWNrZXJWaXNpYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICNpZEluZGV4OiBudW1iZXI7XG4gICNhbHBoYUNoYW5uZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI2Zvcm1hdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjb3V0cHV0Rm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNoc3ZhOiBTa3lDb2xvcnBpY2tlckhzdmEgfCB1bmRlZmluZWQ7XG4gICNzbGlkZXJEaW1NYXg6IFNsaWRlckRpbWVuc2lvbjtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjYWZmaXhlcjogU2t5QWZmaXhlciB8IHVuZGVmaW5lZDtcbiAgI292ZXJsYXk6IFNreU92ZXJsYXlJbnN0YW5jZSB8IHVuZGVmaW5lZDtcbiAgI3BpY2tlclVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+IHwgdW5kZWZpbmVkO1xuXG4gICNhZmZpeFN2YzogU2t5QWZmaXhTZXJ2aWNlO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI292ZXJsYXlTdmM6IFNreU92ZXJsYXlTZXJ2aWNlO1xuICAjc3ZjOiBTa3lDb2xvcnBpY2tlclNlcnZpY2U7XG4gICN0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gICNfYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjX2NvbG9ycGlja2VyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWZmaXhTdmM6IFNreUFmZml4U2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBvdmVybGF5U3ZjOiBTa3lPdmVybGF5U2VydmljZSxcbiAgICBzdmM6IFNreUNvbG9ycGlja2VyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNhZmZpeFN2YyA9IGFmZml4U3ZjO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jY29yZUFkYXB0ZXIgPSBjb3JlQWRhcHRlcjtcbiAgICB0aGlzLiNvdmVybGF5U3ZjID0gb3ZlcmxheVN2YztcbiAgICB0aGlzLiNzdmMgPSBzdmM7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcblxuICAgIGNvbXBvbmVudElkSW5kZXgrKztcblxuICAgIHRoaXMuI2lkSW5kZXggPSBjb21wb25lbnRJZEluZGV4O1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJSZWRJZCA9IGBza3ktY29sb3JwaWNrZXItcmVkLSR7dGhpcy4jaWRJbmRleH1gO1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJIZXhJZCA9IGBza3ktY29sb3JwaWNrZXItaGV4LS0ke3RoaXMuI2lkSW5kZXh9YDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VyUmVkSWQgPSBgc2t5LWNvbG9ycGlja2VyLXJlZC0tJHt0aGlzLiNpZEluZGV4fWA7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckdyZWVuSWQgPSBgc2t5LWNvbG9ycGlja2VyLWdyZWVuLS0ke3RoaXMuI2lkSW5kZXh9YDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VyQmx1ZUlkID0gYHNreS1jb2xvcnBpY2tlci1ibHVlLS0ke3RoaXMuI2lkSW5kZXh9YDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VyQWxwaGFJZCA9IGBza3ktY29sb3JwaWNrZXItYWxwaGEtLSR7dGhpcy4jaWRJbmRleH1gO1xuICAgIHRoaXMuY29sb3JwaWNrZXJJZCA9IGBza3ktY29sb3JwaWNrZXItLSR7dGhpcy4jaWRJbmRleH1gO1xuICAgIHRoaXMudHJpZ2dlckJ1dHRvbklkID0gYHNreS1jb2xvcnBpY2tlci1idXR0b24tLSR7dGhpcy4jaWRJbmRleH1gO1xuXG4gICAgdGhpcy4jc2xpZGVyRGltTWF4ID0gbmV3IFNsaWRlckRpbWVuc2lvbigxODIsIDI3MCwgMTcwLCAxODIpO1xuICAgIHRoaXMuc2xpZGVyID0gbmV3IFNsaWRlclBvc2l0aW9uKDAsIDAsIDAsIDApO1xuICB9XG5cbiAgcHVibGljIHNldERpYWxvZyhcbiAgICBjb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG91dHB1dEZvcm1hdDogc3RyaW5nLFxuICAgIHByZXNldENvbG9yczogQXJyYXk8c3RyaW5nPixcbiAgICBhbHBoYUNoYW5uZWw6IHN0cmluZyxcbiAgICBhbGxvd1RyYW5zcGFyZW5jeTogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxDb2xvciA9IGNvbG9yO1xuICAgIHRoaXMuI291dHB1dEZvcm1hdCA9IG91dHB1dEZvcm1hdDtcbiAgICB0aGlzLnByZXNldENvbG9ycyA9IHByZXNldENvbG9ycztcbiAgICB0aGlzLiNhbHBoYUNoYW5uZWwgPSBhbHBoYUNoYW5uZWw7XG4gICAgdGhpcy5hbGxvd1RyYW5zcGFyZW5jeSA9IGFsbG93VHJhbnNwYXJlbmN5O1xuXG4gICAgaWYgKHRoaXMuI291dHB1dEZvcm1hdCA9PT0gJ3JnYmEnKSB7XG4gICAgICB0aGlzLiNmb3JtYXQgPSAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy4jb3V0cHV0Rm9ybWF0ID09PSAnaHNsYScpIHtcbiAgICAgIHRoaXMuI2Zvcm1hdCA9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2Zvcm1hdCA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogU2t5Q29sb3JwaWNrZXJNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2FkZFRyaWdnZXJCdXR0b25FdmVudExpc3RlbmVycygpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jdGhlbWVTdmMpIHtcbiAgICAgIHRoaXMuI3RoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodGhlbWVTZXR0aW5ncykgPT4ge1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgY29uc3QgdGhlbWVOYW1lID0gdGhlbWVTZXR0aW5ncy5jdXJyZW50U2V0dGluZ3M/LnRoZW1lPy5uYW1lO1xuXG4gICAgICAgICAgLy8gSHVlL2FscGhhIHNsaWRlciBiYXJzIGhhdmUgZGlmZmVyZW50IHdpZHRocyBpbiBNb2Rlcm4gdGhlbWUuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgaWYgKHRoZW1lTmFtZSA9PT0gJ21vZGVybicpIHtcbiAgICAgICAgICAgIHRoaXMuI3NsaWRlckRpbU1heCA9IG5ldyBTbGlkZXJEaW1lbnNpb24oMTc0LCAyNzAsIDE3MCwgMTc0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jc2xpZGVyRGltTWF4ID0gbmV3IFNsaWRlckRpbWVuc2lvbigxODIsIDI3MCwgMTcwLCAxODIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLiN1cGRhdGVTbGlkZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblRyaWdnZXJCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLk9wZW4pO1xuICB9XG5cbiAgcHVibGljIGNsb3NlUGlja2VyKCk6IHZvaWQge1xuICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMudHJpZ2dlckJ1dHRvblJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25BcHBseUNvbG9yQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb2xvcikge1xuICAgICAgdGhpcy5zZWxlY3RlZENvbG9yQ2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb2xvcik7XG4gICAgICB0aGlzLnNlbGVjdGVkQ29sb3JBcHBsaWVkLmVtaXQoeyBjb2xvcjogdGhpcy5zZWxlY3RlZENvbG9yIH0pO1xuICAgICAgdGhpcy5sYXN0QXBwbGllZENvbG9yID0gdGhpcy5zZWxlY3RlZENvbG9yLnJnYmFUZXh0O1xuICAgICAgdGhpcy51cGRhdGVQaWNrZXJWYWx1ZXModGhpcy5sYXN0QXBwbGllZENvbG9yKTtcbiAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSA9IHRoaXMuc2VsZWN0ZWRDb2xvci5yZ2JhVGV4dDtcbiAgICB9XG5cbiAgICB0aGlzLmNsb3NlUGlja2VyKCk7XG4gIH1cblxuICBwdWJsaWMgb25DYW5jZWxDbGljaygpOiB2b2lkIHtcbiAgICAvLyBSZXZlcnQgcGlja2VyIHZhbHVlcyBiYWNrIHRvIHByZXZpb3VzIGNvbG9yLlxuICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMuYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSk7XG4gICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICB9XG5cbiAgcHVibGljIG9uUHJlc2V0Q2xpY2sodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlc2V0Q2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5SZXNldCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUGlja2VyVmFsdWVzKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBoc3ZhID0gdGhpcy4jZ2V0SHN2YVZhbHVlKHZhbHVlKTtcbiAgICBpZiAoaHN2YSkge1xuICAgICAgdGhpcy4jaHN2YSA9IGhzdmE7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNoc3ZhKSB7XG4gICAgICBjb25zdCByZ2JhOiBTa3lDb2xvcnBpY2tlclJnYmEgPSB0aGlzLiNzdmMuaHN2YVRvUmdiYSh0aGlzLiNoc3ZhKTtcbiAgICAgIGNvbnN0IGRSZ2JhOiBTa3lDb2xvcnBpY2tlclJnYmEgPSB0aGlzLiNzdmMuZGVub3JtYWxpemVSR0JBKHJnYmEpO1xuXG4gICAgICBjb25zdCBoc3ZhOiBTa3lDb2xvcnBpY2tlckhzdmEgPSB7XG4gICAgICAgIGh1ZTogdGhpcy4jaHN2YS5odWUsXG4gICAgICAgIHNhdHVyYXRpb246IDEsXG4gICAgICAgIHZhbHVlOiAxLFxuICAgICAgICBhbHBoYTogMSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGh1ZVJnYmEgPSB0aGlzLiNzdmMuZGVub3JtYWxpemVSR0JBKHRoaXMuI3N2Yy5oc3ZhVG9SZ2JhKGhzdmEpKTtcblxuICAgICAgdGhpcy5yZ2JhVGV4dCA9IGRSZ2JhO1xuICAgICAgdGhpcy5oZXhUZXh0ID0gdGhpcy4jc3ZjLmhleFRleHQoZFJnYmEsIHRoaXMuI2FscGhhQ2hhbm5lbCA9PT0gJ2hleDgnKTtcblxuICAgICAgdGhpcy5hbHBoYVNsaWRlckNvbG9yID0gYHJnYmEoJHtkUmdiYS5yZWR9LCR7ZFJnYmEuZ3JlZW59LCR7ZFJnYmEuYmx1ZX0sJHtkUmdiYS5hbHBoYX0pYDtcbiAgICAgIHRoaXMuaHVlU2xpZGVyQ29sb3IgPSBgcmdiYSgke2h1ZVJnYmEucmVkfSwke2h1ZVJnYmEuZ3JlZW59LCR7aHVlUmdiYS5ibHVlfSwke3JnYmEuYWxwaGF9KWA7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jZm9ybWF0ID09PSAwICYmXG4gICAgICAgIHRoaXMuI2hzdmEuYWxwaGEgPCAxICYmXG4gICAgICAgIHRoaXMuI2FscGhhQ2hhbm5lbCA9PT0gJ2hleDYnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jZm9ybWF0Kys7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvciA9IHRoaXMuI3N2Yy5za3lDb2xvcnBpY2tlck91dCh0aGlzLiNoc3ZhKTtcblxuICAgICAgdGhpcy4jdXBkYXRlU2xpZGVyKCk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZVNsaWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jaHN2YSAmJiB0aGlzLiNzbGlkZXJEaW1NYXgpIHtcbiAgICAgIHRoaXMuc2xpZGVyID0gbmV3IFNsaWRlclBvc2l0aW9uKFxuICAgICAgICB0aGlzLiNoc3ZhLmh1ZSAqIHRoaXMuI3NsaWRlckRpbU1heC5odWUgLSA4LFxuICAgICAgICB0aGlzLiNoc3ZhLnNhdHVyYXRpb24gKiB0aGlzLiNzbGlkZXJEaW1NYXguc2F0dXJhdGlvbiAtIDgsXG4gICAgICAgICgxIC0gdGhpcy4jaHN2YS52YWx1ZSkgKiB0aGlzLiNzbGlkZXJEaW1NYXgudmFsdWUgLSA4LFxuICAgICAgICB0aGlzLiNoc3ZhLmFscGhhICogdGhpcy4jc2xpZGVyRGltTWF4LmFscGhhIC0gOFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAjb3BlblBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmlzUGlja2VyVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuI3JlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLiNjcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICB9XG5cbiAgI3NlbmRNZXNzYWdlKHR5cGU6IFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUpIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGUgfSk7XG4gIH1cblxuICAjaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlOiBTa3lDb2xvcnBpY2tlck1lc3NhZ2UpIHtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgY2FzZSBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLk9wZW46XG4gICAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICB0aGlzLiNvcGVuUGlja2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5DbG9zZTpcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuUmVzZXQ6XG4gICAgICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMuaW5pdGlhbENvbG9yKTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gdGhpcy5pbml0aWFsQ29sb3I7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvckNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ29sb3IpO1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNvZGUgYXNzdW1lZCBub24tbnVsbCBwcmUtc3RyaWN0IG1vZGUuIFJlZXZhbHVhdGUgaW4gdGhlIGZ1dHVyZT9cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbG9yQXBwbGllZC5lbWl0KHsgY29sb3I6IHRoaXMuc2VsZWN0ZWRDb2xvciEgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuVG9nZ2xlUmVzZXRCdXR0b246XG4gICAgICAgIHRoaXMuc2hvd1Jlc2V0QnV0dG9uID0gIXRoaXMuc2hvd1Jlc2V0QnV0dG9uO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAjY3JlYXRlQWZmaXhlcigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbG9ycGlja2VyUmVmICYmXG4gICAgICB0aGlzLnRyaWdnZXJCdXR0b25SZWYgJiZcbiAgICAgIHRoaXMuI3BpY2tlclVuc3Vic2NyaWJlXG4gICAgKSB7XG4gICAgICBjb25zdCBhZmZpeGVyID0gdGhpcy4jYWZmaXhTdmMuY3JlYXRlQWZmaXhlcih0aGlzLmNvbG9ycGlja2VyUmVmKTtcblxuICAgICAgYWZmaXhlci5wbGFjZW1lbnRDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI3BpY2tlclVuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1BpY2tlclZpc2libGUgPSBjaGFuZ2UucGxhY2VtZW50ICE9PSBudWxsO1xuICAgICAgICB9KTtcblxuICAgICAgYWZmaXhlci5hZmZpeFRvKHRoaXMudHJpZ2dlckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LlZpZXdwb3J0LFxuICAgICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiAnbGVmdCcsXG4gICAgICAgIGlzU3RpY2t5OiB0cnVlLFxuICAgICAgICBwbGFjZW1lbnQ6ICdiZWxvdycsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy4jYWZmaXhlciA9IGFmZml4ZXI7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lBZmZpeGVyKCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNhZmZpeGVyKSB7XG4gICAgICB0aGlzLiNhZmZpeGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuI2FmZml4ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sb3JwaWNrZXJUZW1wbGF0ZVJlZikge1xuICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuI292ZXJsYXlTdmMuY3JlYXRlKHtcbiAgICAgICAgZW5hYmxlQ2xvc2U6IGZhbHNlLFxuICAgICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIG92ZXJsYXkuYXR0YWNoVGVtcGxhdGUodGhpcy5jb2xvcnBpY2tlclRlbXBsYXRlUmVmKTtcblxuICAgICAgdGhpcy4jb3ZlcmxheSA9IG92ZXJsYXk7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNvdmVybGF5KSB7XG4gICAgICB0aGlzLiNvdmVybGF5U3ZjLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgICAgdGhpcy4jb3ZlcmxheSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjYWRkVHJpZ2dlckJ1dHRvbkV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh3aW5kb3cuZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGtleWJvYXJkRXZlbnQgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xuICAgICAgICBjb25zdCBrZXkgPSBrZXlib2FyZEV2ZW50LmtleT8udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGtleSA9PT0gJ2VzY2FwZScpIHtcbiAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAjcmVtb3ZlUGlja2VyRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jcGlja2VyVW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuI3BpY2tlclVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgIHRoaXMuI3BpY2tlclVuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLiNwaWNrZXJVbnN1YnNjcmliZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjZ2V0SHN2YVZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBTa3lDb2xvcnBpY2tlckhzdmEgfCB1bmRlZmluZWQge1xuICAgIGxldCBoc3ZhOiBTa3lDb2xvcnBpY2tlckhzdmEgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLiNhbHBoYUNoYW5uZWwgPT09ICdoZXg4Jykge1xuICAgICAgICBoc3ZhID0gdGhpcy4jc3ZjLnN0cmluZ1RvSHN2YSh2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgIGlmICghaHN2YSAmJiAhdGhpcy4jaHN2YSkge1xuICAgICAgICAgIGhzdmEgPSB0aGlzLiNzdmMuc3RyaW5nVG9Ic3ZhKHZhbHVlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhzdmEgPSB0aGlzLiNzdmMuc3RyaW5nVG9Ic3ZhKHZhbHVlLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGhzdmE7XG4gIH1cblxuICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9BRVJUI2NvbG9yLWNvbnRyYXN0XG4gICNnZXRBY2Nlc3NpYmxlSWNvbkNvbG9yKFxuICAgIGJhY2tncm91bmRDb2xvcjogU2t5Q29sb3JwaWNrZXJPdXRwdXQgfCB1bmRlZmluZWRcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBjb25zdCByZ2IgPSBiYWNrZ3JvdW5kQ29sb3IucmdiYTtcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSBNYXRoLnJvdW5kKFxuICAgICAgICAocmdiLnJlZCAqIDI5OSArIHJnYi5ncmVlbiAqIDU4NyArIHJnYi5ibHVlICogMTE0KSAvIDEwMDBcbiAgICAgICk7XG4gICAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IDEyNSA/ICdyZ2IoMCwgMCwgMCknIDogJ3JnYigyNTUsIDI1NSwgMjU1KSc7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LWNvbG9ycGlja2VyLWhpZGRlbic6ICFpc1Zpc2libGUsXG4gICAgJ3NreS1jb2xvcnBpY2tlci1kaXNhYmxlZCc6IGRpc2FibGVkXG4gIH1cIlxuPlxuICA8ZGl2IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWJ1dHRvblwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc09wZW4gPyBjb2xvcnBpY2tlcklkIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICBsYWJlbCB8fFxuICAgICAgKGxhYmVsbGVkQnlcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogKCdza3l1eF9jb2xvcnBpY2tlcl9kcm9wZG93bl9idXR0b24nIHwgc2t5TGliUmVzb3VyY2VzKSlcbiAgICBcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5XCJcbiAgICBbYXR0ci5pZF09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgbGFiZWwgfHxcbiAgICAgIChsYWJlbGxlZEJ5XG4gICAgICAgID8gbnVsbFxuICAgICAgICA6ICgnc2t5dXhfY29sb3JwaWNrZXJfZHJvcGRvd25fYnV0dG9uJyB8IHNreUxpYlJlc291cmNlcykpXG4gICAgXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktY29sb3JwaWNrZXItYnV0dG9uLWRpc2FibGVkJzogZGlzYWJsZWRcbiAgICB9XCJcbiAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAnc2t5LW1hcmdpbi1pbmxpbmUtc20nOiAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhY2tncm91bmRDb2xvckZvckRpc3BsYXlcIlxuICAgIChjbGljayk9XCJvblRyaWdnZXJCdXR0b25DbGljaygpXCJcbiAgICAjdHJpZ2dlckJ1dHRvblJlZlxuICA+XG4gICAgPHNreS1pY29uXG4gICAgICAqbmdJZj1cInBpY2tlckJ1dHRvbkljb25cIlxuICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItYnV0dG9uLWljb25cIlxuICAgICAgW2ljb25dPVwicGlja2VyQnV0dG9uSWNvblwiXG4gICAgICBbaWNvblR5cGVdPVwicGlja2VyQnV0dG9uSWNvblR5cGVcIlxuICAgICAgW3NpemVdPVwiJzF4J1wiXG4gICAgICBbc3R5bGUuY29sb3JdPVwiaWNvbkNvbG9yXCJcbiAgICA+XG4gICAgPC9za3ktaWNvbj5cbiAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ21vZGVybidcIj5cbiAgICAgIDxza3ktaWNvblxuICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1idXR0b24tbW9kZXJuLWNoZXZyb25cIlxuICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWNvbG9ycGlja2VyLWJ1dHRvbi1tb2Rlcm4tY2hldnJvbi1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG5cbiAgPG5nLXRlbXBsYXRlICNjb2xvcnBpY2tlclRlbXBsYXRlUmVmPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNvbnRhaW5lclwiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgICAgW2F0dHIuaWRdPVwiY29sb3JwaWNrZXJJZFwiXG4gICAgICBbaGlkZGVuXT1cIiFpc1BpY2tlclZpc2libGVcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXNoYWRvdyc6ICdkZWZhdWx0JyxcbiAgICAgICAgJ3NreS1lbGV2YXRpb24tNCc6ICdtb2Rlcm4nXG4gICAgICB9XCJcbiAgICAgICNjb2xvcnBpY2tlclJlZlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktY29sb3JwaWNrZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2F0dXJhdGlvbi1saWdodG5lc3NcIlxuICAgICAgICAgIFtjb2xvcl09XCJzbGlkZXIuc2F0dXJhdGlvbiAtIHNsaWRlci52YWx1ZSArICcnXCJcbiAgICAgICAgICBbc2t5Q29sb3JwaWNrZXJTbGlkZXJdXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaHVlU2xpZGVyQ29sb3JcIlxuICAgICAgICAgIFt4QXhpc109XCIxXCJcbiAgICAgICAgICBbeUF4aXNdPVwiMVwiXG4gICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwic2F0dXJhdGlvbkFuZExpZ2h0bmVzcyA9ICRldmVudFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwic2xpZGVyLnNhdHVyYXRpb25cIlxuICAgICAgICAgICAgW3N0eWxlLnRvcC5weF09XCJzbGlkZXIudmFsdWVcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJveFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtY29sb3ItYmFja2dyb3VuZCBza3ktcm91bmRlZC1jaXJjbGVcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1jb2xvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJzZWxlY3RlZENvbG9yPy5yZ2JhVGV4dFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiaHVlXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyU2xpZGVyXVxuICAgICAgICAgICAgICBbeEF4aXNdPVwiMVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImh1ZSA9ICRldmVudFwiXG4gICAgICAgICAgICAgICNodWVTbGlkZXJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yIHNreS1yb3VuZGVkLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwic2xpZGVyLmh1ZVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuYWxsb3dUcmFuc3BhcmVuY3lcIlxuICAgICAgICAgICAgICBjbGFzcz1cImFscGhhXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyU2xpZGVyXVxuICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJhbHBoYVNsaWRlckNvbG9yXCJcbiAgICAgICAgICAgICAgW3hBeGlzXT1cIjFcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJhbHBoYUF4aXMgPSAkZXZlbnRcIlxuICAgICAgICAgICAgICAjYWxwaGFTbGlkZXJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yIHNreS1yb3VuZGVkLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwic2xpZGVyLmFscGhhXCJcbiAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZ2JhLXRleHRcIj5cbiAgICAgICAgICA8c2t5LWlucHV0LWJveD5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfY29sb3JwaWNrZXJfYXJpYV9oZXgnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cInNreUNvbG9ycGlja2VySGV4SWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfaGV4JyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1mb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiXiM/KFtBLUZhLWYwLTldezZ9fFtBLUZhLWYwLTldezN9KSRcIlxuICAgICAgICAgICAgICBbYXR0ci5pZF09XCJza3lDb2xvcnBpY2tlckhleElkXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImhleFRleHRcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJoZXggPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfcmVkJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlclJlZElkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX3JlZCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbWF4PVwiMjU1XCJcbiAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJSZWRJZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIyNTVcIlxuICAgICAgICAgICAgICBbc2t5Q29sb3JwaWNrZXJUZXh0XVxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmdiYVRleHQ/LnJlZFwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cInJlZCA9ICRldmVudFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LWlucHV0LWJveD5cbiAgICAgICAgICA8c2t5LWlucHV0LWJveD5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAnc2t5dXhfY29sb3JwaWNrZXJfYXJpYV9ncmVlbicgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cInNreUNvbG9ycGlja2VyR3JlZW5JZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9ncmVlbicgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbWF4PVwiMjU1XCJcbiAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJHcmVlbklkXCJcbiAgICAgICAgICAgICAgW21heFJhbmdlXT1cIjI1NVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJyZ2JhVGV4dD8uZ3JlZW5cIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJncmVlbiA9ICRldmVudFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LWlucHV0LWJveD5cbiAgICAgICAgICA8c2t5LWlucHV0LWJveD5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAnc2t5dXhfY29sb3JwaWNrZXJfYXJpYV9ibHVlJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbYXR0ci5mb3JdPVwic2t5Q29sb3JwaWNrZXJCbHVlSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfYmx1ZScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbWF4PVwiMjU1XCJcbiAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJCbHVlSWRcIlxuICAgICAgICAgICAgICBbbWF4UmFuZ2VdPVwiMjU1XCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5ibHVlXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiYmx1ZSA9ICRldmVudFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LWlucHV0LWJveD5cbiAgICAgICAgICA8c2t5LWlucHV0LWJveCAqbmdJZj1cInRoaXMuYWxsb3dUcmFuc3BhcmVuY3lcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAnc2t5dXhfY29sb3JwaWNrZXJfYXJpYV9hbHBoYScgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cInNreUNvbG9ycGlja2VyQWxwaGFJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9hbHBoYScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgbWF4PVwiMVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0rKFtcXC4sXVswLTldezEsMn0pP1wiXG4gICAgICAgICAgICAgIHN0ZXA9XCIwLjFcIlxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJBbHBoYUlkXCJcbiAgICAgICAgICAgICAgW21heFJhbmdlXT1cIjFcIlxuICAgICAgICAgICAgICBbc2t5Q29sb3JwaWNrZXJUZXh0XVxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmdiYVRleHQ/LmFscGhhXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiYWxwaGFDb2xvciA9ICRldmVudFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LWlucHV0LWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cInByZXNldENvbG9ycyAmJiBwcmVzZXRDb2xvcnMubGVuZ3RoXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1wcmVzZXQtY29sb3ItYXJlYVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sb3Igb2YgcHJlc2V0Q29sb3JzIHwgc2xpY2U6IDA6MTI7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAoJ3NreXV4X2NvbG9ycGlja2VyX3ByZXNldF9jb2xvcicgfCBza3lMaWJSZXNvdXJjZXMpICsgJyAnICsgY29sb3JcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdza3ktcHJlc2V0LWNvbG9yJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAnc2t5LWJ0biBza3ktYnRuLWxpbmsnOiAnbW9kZXJuJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByZXNldENsaWNrKGNvbG9yKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWZvb3RlclwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LXBhZGRpbmctZXZlbi1sYXJnZSc6ICdkZWZhdWx0J1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJza3ktY29sb3JwaWNrZXItY29sdW1uXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tcHJpbWFyeSBza3ktYnRuLWNvbG9ycGlja2VyLWFwcGx5XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfY29sb3JwaWNrZXJfYXBwbHknIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cInsgJ3NreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybicgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BcHBseUNvbG9yQ2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2FwcGx5JyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWJ0bi1jb2xvcnBpY2tlci1jbG9zZVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2Nsb3NlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWxDbGljaygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfY2xvc2UnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8c3BhblxuICAgICpuZ0lmPVwiYWxsb3dUcmFuc3BhcmVuY3lcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItY2hlY2tlcmVkLWJhY2tncm91bmRcIlxuICA+XG4gIDwvc3Bhbj5cblxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJzaG93UmVzZXRCdXR0b25cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX3Jlc2V0JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNvbG9ycGlja2VyLXJlc2V0LWJ1dHRvbi1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgfVwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1jb2xvcnBpY2tlci1yZXNldC1idXR0b24nOiAnZGVmYXVsdCcsXG4gICAgICAnc2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktY29sb3JwaWNrZXItcmVzZXQtYnV0dG9uLW1vZGVybic6XG4gICAgICAgICdtb2Rlcm4nXG4gICAgfVwiXG4gICAgKGNsaWNrKT1cIm9uUmVzZXRDbGljaygpXCJcbiAgPlxuICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJ0aW1lc1wiIHNpemU9XCJzbVwiPiA8L3NreS1pY29uPlxuICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCIgaWNvbj1cInRyYXNoXCIgaWNvblR5cGU9XCJza3l1eFwiIHNpemU9XCJsZ1wiPlxuICAgIDwvc2t5LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
464
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9ycGlja2VyL3NyYy9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvc3JjL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxzQkFBc0IsR0FNdkIsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0FBSzdFLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBMlBsQyxZQUNFLFFBQXlCLEVBQ3pCLGNBQWlDLEVBQ2pDLFdBQWtDLEVBQ2xDLFVBQTZCLEVBQzdCLEdBQTBCLEVBQ2QsUUFBMEI7O1FBelB4Qzs7O1dBR0c7UUFFSSx5QkFB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QUM7UUFDRixPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7S0FDakU7SUFDRCwwQkFBMEI7SUFDMUIsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztxSEFya0JVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLGlXQUh2QixDQUFDLHFCQUFxQixDQUFDLHVJQThLMUIsV0FBVywrR0FLWCxVQUFVLDJHQUtWLFVBQVUsNkJDMU9wQixrcVVBOFRBOzRGRHpRYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMscUJBQXFCLENBQUMsaUJBQ25CLGlCQUFpQixDQUFDLElBQUk7OzBCQW1RbEMsUUFBUTs0Q0EzUEosZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVFDLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFVQyxLQUFLO3NCQURYLEtBQUs7Z0JBVUMsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxvQkFBb0I7c0JBRDFCLE1BQU07Z0JBT0Esb0JBQW9CO3NCQUQxQixNQUFNO2dCQVFBLGFBQWE7c0JBRG5CLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSztnQkFzSEksc0JBQXNCO3NCQUgvQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFO3dCQUNuQyxJQUFJLEVBQUUsV0FBVztxQkFDbEI7Z0JBTVMsZ0JBQWdCO3NCQUh6QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsVUFBVTtxQkFDakI7Z0JBTWEsY0FBYztzQkFIM0IsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUFmZml4QXV0b0ZpdENvbnRleHQsXG4gIFNreUFmZml4U2VydmljZSxcbiAgU2t5QWZmaXhlcixcbiAgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICBTa3lPdmVybGF5SW5zdGFuY2UsXG4gIFNreU92ZXJsYXlTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJY29uVHlwZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTbGlkZXJEaW1lbnNpb24sIFNsaWRlclBvc2l0aW9uIH0gZnJvbSAnLi9jb2xvcnBpY2tlci1jbGFzc2VzJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyU2VydmljZSB9IGZyb20gJy4vY29sb3JwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLWF4aXMnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvciB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItY29sb3InO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJIc3ZhIH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1oc3ZhJztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyTWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90eXBlcy9jb2xvcnBpY2tlci1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJPdXRwdXQgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLW91dHB1dCc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlclJlc3VsdCB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItcmVzdWx0JztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyUmdiYSB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItcmdiYSc7XG5cbmxldCBjb21wb25lbnRJZEluZGV4ID0gMDtcblxuLyoqXG4gKiBUaGUgU0tZIFVYLXRoZW1lZCByZXBsYWNlbWVudCBmb3IgdGhlIEhUTUwgYGlucHV0YCBlbGVtZW50IHdpdGggYHR5cGU9XCJjb2xvclwiYC5cbiAqIFRoZSB2YWx1ZSB0aGF0IHVzZXJzIHNlbGVjdCBpcyBkcml2ZW4gdGhyb3VnaCB0aGUgYG5nTW9kZWxgIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb25cbiAqIHRoZSBgaW5wdXRgIGVsZW1lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1jb2xvcnBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvcnBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbG9ycGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1NreUNvbG9ycGlja2VyU2VydmljZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbG9ycGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFtGb250IEF3ZXNvbWUgNC43XShodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NC43L2ljb25zLykgaWNvbiB0byBvdmVybGF5IG9uIHRvcCBvZiB0aGUgcGlja2VyLiBEbyBub3Qgc3BlY2lmeSB0aGUgYGZhIGZhLWAgY2xhc3Nlcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGlja2VyQnV0dG9uSWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBpY29uIHRvIGRpc3BsYXkuIFNwZWNpZnlpbmcgYGZhYCB3aWxsIGRpc3BsYXkgYSBGb250IEF3ZXNvbWUgaWNvbiwgd2hpbGUgc3BlY2lmeWluZyBgc2t5dXhgIHdpbGwgZGlzcGxheSBhbiBpY29uIGZyb20gdGhlIGN1c3RvbSBTS1kgVVggaWNvbiBmb250LiBOb3RlIHRoYXQgdGhlIGN1c3RvbSBTS1kgVVggaWNvbiBmb250IGlzIGN1cnJlbnRseSBpbiBiZXRhLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwaWNrZXJCdXR0b25JY29uVHlwZTogU2t5SWNvblR5cGUgPSAnZmEnO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGNvbG9ycGlja2VyLiBUaGlzIHNldHMgdGhlIGNvbG9ycGlja2VyJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvY2hlY2tib3gjYWNjZXNzaWJpbGl0eSlcbiAgICogd2hlbiB0aGUgY29sb3JwaWNrZXIgZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwuIElmIHRoZSBjb2xvcnBpY2tlciBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICogQGRlZmF1bHQgXCJTZWxlY3QgY29sb3IgdmFsdWVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBsYWJlbHMgdGhlXG4gICAqIGNvbG9ycGlja2VyLiBUaGlzIHNldHMgdGhlIGNvbG9ycGlja2VyJ3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCNhY2Nlc3NpYmlsaXR5KS5cbiAgICogSWYgdGhlIGNvbG9ycGlja2VyIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGxhYmVsYCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsbGVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgYSBjb2xvciBpbiB0aGUgY29sb3JwaWNrZXIuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ29sb3JDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lDb2xvcnBpY2tlck91dHB1dD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgKipBcHBseSoqIGluIHRoZSBjb2xvcnBpY2tlciB0byBhcHBseSBhIGNvbG9yLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENvbG9yQXBwbGllZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5Q29sb3JwaWNrZXJSZXN1bHQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIGNvbG9ycGlja2VyLiBUaGUgY29tbWFuZHMgc2hvdWxkXG4gICAqIHJlc3BlY3QgdGhlIGBTa3lDb2xvclBpY2tlck1lc3NhZ2VgIHR5cGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUNvbG9ycGlja2VyTWVzc2FnZT4oKTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGEgcmVzZXQgYnV0dG9uIHRvIGxldCB1c2VycyByZXR1cm4gdG8gdGhlIGRlZmF1bHQgY29sb3IuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Jlc2V0QnV0dG9uID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGJhY2tncm91bmRDb2xvckZvckRpc3BsYXkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gdmFsdWU7XG4gICAgaWYgKHRoaXMucGlja2VyQnV0dG9uSWNvbikge1xuICAgICAgdGhpcy5pY29uQ29sb3IgPSB0aGlzLiNnZXRBY2Nlc3NpYmxlSWNvbkNvbG9yKHRoaXMuc2VsZWN0ZWRDb2xvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBiYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy4jX2JhY2tncm91bmRDb2xvckZvckRpc3BsYXkgfHwgJyNmZmYnO1xuICB9XG5cbiAgcHVibGljIHNldCBodWUoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLiNoc3ZhICYmXG4gICAgICBjaGFuZ2UueENvb3JkaW5hdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgY2hhbmdlLm1heFJhbmdlICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHRoaXMuI2hzdmEuaHVlID0gY2hhbmdlLnhDb29yZGluYXRlIC8gY2hhbmdlLm1heFJhbmdlO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCByZWQoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUNvbG9yKSB7XG4gICAgaWYgKHRoaXMuI2hzdmEpIHtcbiAgICAgIGNvbnN0IHJnYmEgPSB0aGlzLiNzdmMuaHN2YVRvUmdiYSh0aGlzLiNoc3ZhKTtcblxuICAgICAgLy8gVE9ETzogVGhpcyBjb2RlIGFzc3VtZWQgbm9uLW51bGwgcHJlLXN0cmljdCBtb2RlLiBSZWV2YWx1YXRlIGluIHRoZSBmdXR1cmU/XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgcmdiYS5yZWQgPSBjaGFuZ2UuY29sb3JWYWx1ZSEgLyBjaGFuZ2UubWF4UmFuZ2UhO1xuICAgICAgdGhpcy4jaHN2YSA9IHRoaXMuI3N2Yy5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBncmVlbihjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICBpZiAodGhpcy4jaHN2YSkge1xuICAgICAgY29uc3QgcmdiYSA9IHRoaXMuI3N2Yy5oc3ZhVG9SZ2JhKHRoaXMuI2hzdmEpO1xuXG4gICAgICAvLyBUT0RPOiBUaGlzIGNvZGUgYXNzdW1lZCBub24tbnVsbCBwcmUtc3RyaWN0IG1vZGUuIFJlZXZhbHVhdGUgaW4gdGhlIGZ1dHVyZT9cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICByZ2JhLmdyZWVuID0gY2hhbmdlLmNvbG9yVmFsdWUhIC8gY2hhbmdlLm1heFJhbmdlITtcbiAgICAgIHRoaXMuI2hzdmEgPSB0aGlzLiNzdmMucmdiYVRvSHN2YShyZ2JhKTtcbiAgICAgIHRoaXMuI3VwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgYmx1ZShjaGFuZ2U6IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IpIHtcbiAgICBpZiAodGhpcy4jaHN2YSkge1xuICAgICAgY29uc3QgcmdiYSA9IHRoaXMuI3N2Yy5oc3ZhVG9SZ2JhKHRoaXMuI2hzdmEpO1xuXG4gICAgICAvLyBUT0RPOiBUaGlzIGNvZGUgYXNzdW1lZCBub24tbnVsbCBwcmUtc3RyaWN0IG1vZGUuIFJlZXZhbHVhdGUgaW4gdGhlIGZ1dHVyZT9cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICByZ2JhLmJsdWUgPSBjaGFuZ2UuY29sb3JWYWx1ZSEgLyBjaGFuZ2UubWF4UmFuZ2UhO1xuICAgICAgdGhpcy4jaHN2YSA9IHRoaXMuI3N2Yy5yZ2JhVG9Ic3ZhKHJnYmEpO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBhbHBoYUF4aXMoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLiNoc3ZhICYmXG4gICAgICBjaGFuZ2UueENvb3JkaW5hdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgY2hhbmdlLm1heFJhbmdlICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHRoaXMuI2hzdmEuYWxwaGEgPSBjaGFuZ2UueENvb3JkaW5hdGUgLyBjaGFuZ2UubWF4UmFuZ2U7XG4gICAgICB0aGlzLiN1cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGFscGhhQ29sb3IoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUNvbG9yKSB7XG4gICAgaWYgKHRoaXMuI2hzdmEpIHtcbiAgICAgIC8vIFRPRE86IFRoaXMgY29kZSBhc3N1bWVkIG5vbi1udWxsIHByZS1zdHJpY3QgbW9kZS4gUmVldmFsdWF0ZSBpbiB0aGUgZnV0dXJlP1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIHRoaXMuI2hzdmEuYWxwaGEgPSBjaGFuZ2UuY29sb3JWYWx1ZSEgLyBjaGFuZ2UubWF4UmFuZ2UhO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBoZXgoY2hhbmdlOiBTa3lDb2xvcnBpY2tlckNoYW5nZUNvbG9yKSB7XG4gICAgdGhpcy51cGRhdGVQaWNrZXJWYWx1ZXMoY2hhbmdlLmNvbG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2F0dXJhdGlvbkFuZExpZ2h0bmVzcyh2YWx1ZTogU2t5Q29sb3JwaWNrZXJDaGFuZ2VBeGlzKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy4jaHN2YSAmJlxuICAgICAgdmFsdWUueENvb3JkaW5hdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUueEF4aXMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUueUNvb3JkaW5hdGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUueUF4aXMgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy4jaHN2YS5zYXR1cmF0aW9uID0gdmFsdWUueENvb3JkaW5hdGUgLyB2YWx1ZS54QXhpcztcbiAgICAgIHRoaXMuI2hzdmEudmFsdWUgPSB2YWx1ZS55Q29vcmRpbmF0ZSAvIHZhbHVlLnlBeGlzO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNreUNvbG9ycGlja2VyQWxwaGFJZDogc3RyaW5nO1xuICBwdWJsaWMgcmV0dXJuRm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpbml0aWFsQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGxhc3RBcHBsaWVkQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGlzVmlzaWJsZSA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnY29sb3JwaWNrZXJUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgcHJvdGVjdGVkIGNvbG9ycGlja2VyVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJCdXR0b25SZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHJvdGVjdGVkIHRyaWdnZXJCdXR0b25SZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY29sb3JwaWNrZXJSZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHJvdGVjdGVkIHNldCBjb2xvcnBpY2tlclJlZih2YWx1ZTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX2NvbG9ycGlja2VyUmVmID0gdmFsdWU7XG4gICAgICB0aGlzLiNkZXN0cm95QWZmaXhlcigpO1xuXG4gICAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgICAgdGhpcy4jcGlja2VyVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGNvbG9ycGlja2VyIGhhcyBmdWxseSByZW5kZXJlZCBiZWZvcmUgYWRkaW5nIHRoZSBhZmZpeGVyLiBBZGRlZCB0byBhZGRyZXNzIGFcbiAgICAgIC8vIHJhY2UgY29uZGl0aW9uIHdoZW4gcnVubmluZyB1bmRlciBwcm9kdWN0aW9uIGNvbmRpdGlvbnMuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy4jY3JlYXRlQWZmaXhlcigpO1xuICAgICAgICB0aGlzLmlzUGlja2VyVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy4jY29yZUFkYXB0ZXIuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW5BbmRBcHBseUZvY3VzKFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICcuc2t5LWNvbG9ycGlja2VyJyxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29sb3JwaWNrZXJSZWYoKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jb2xvcnBpY2tlclJlZjtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb2xvcnBpY2tlcklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHRyaWdnZXJCdXR0b25JZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc2t5Q29sb3JwaWNrZXJIZXhJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc2t5Q29sb3JwaWNrZXJSZWRJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc2t5Q29sb3JwaWNrZXJHcmVlbklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBza3lDb2xvcnBpY2tlckJsdWVJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc2xpZGVyOiBTbGlkZXJQb3NpdGlvbjtcbiAgcHJvdGVjdGVkIGFsbG93VHJhbnNwYXJlbmN5OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgYWxwaGFTbGlkZXJDb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgaGV4VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgaHVlU2xpZGVyQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIHByZXNldENvbG9yczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCByZ2JhVGV4dDogU2t5Q29sb3JwaWNrZXJSZ2JhIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb2xvcjogU2t5Q29sb3JwaWNrZXJPdXRwdXQgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBpY29uQ29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGlzUGlja2VyVmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAjaWRJbmRleDogbnVtYmVyO1xuICAjYWxwaGFDaGFubmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNmb3JtYXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgI291dHB1dEZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjaHN2YTogU2t5Q29sb3JwaWNrZXJIc3ZhIHwgdW5kZWZpbmVkO1xuICAjc2xpZGVyRGltTWF4OiBTbGlkZXJEaW1lbnNpb247XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2FmZml4ZXI6IFNreUFmZml4ZXIgfCB1bmRlZmluZWQ7XG4gICNvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2UgfCB1bmRlZmluZWQ7XG4gICNwaWNrZXJVbnN1YnNjcmliZTogU3ViamVjdDx2b2lkPiB8IHVuZGVmaW5lZDtcblxuICAjYWZmaXhTdmM6IFNreUFmZml4U2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2U7XG4gICNvdmVybGF5U3ZjOiBTa3lPdmVybGF5U2VydmljZTtcbiAgI3N2YzogU2t5Q29sb3JwaWNrZXJTZXJ2aWNlO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICAjX2JhY2tncm91bmRDb2xvckZvckRpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19jb2xvcnBpY2tlclJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFmZml4U3ZjOiBTa3lBZmZpeFNlcnZpY2UsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGNvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgb3ZlcmxheVN2YzogU2t5T3ZlcmxheVNlcnZpY2UsXG4gICAgc3ZjOiBTa3lDb2xvcnBpY2tlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jYWZmaXhTdmMgPSBhZmZpeFN2YztcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyID0gY29yZUFkYXB0ZXI7XG4gICAgdGhpcy4jb3ZlcmxheVN2YyA9IG92ZXJsYXlTdmM7XG4gICAgdGhpcy4jc3ZjID0gc3ZjO1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG5cbiAgICBjb21wb25lbnRJZEluZGV4Kys7XG5cbiAgICB0aGlzLiNpZEluZGV4ID0gY29tcG9uZW50SWRJbmRleDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VyUmVkSWQgPSBgc2t5LWNvbG9ycGlja2VyLXJlZC0ke3RoaXMuI2lkSW5kZXh9YDtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VySGV4SWQgPSBgc2t5LWNvbG9ycGlja2VyLWhleC0tJHt0aGlzLiNpZEluZGV4fWA7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlclJlZElkID0gYHNreS1jb2xvcnBpY2tlci1yZWQtLSR7dGhpcy4jaWRJbmRleH1gO1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJHcmVlbklkID0gYHNreS1jb2xvcnBpY2tlci1ncmVlbi0tJHt0aGlzLiNpZEluZGV4fWA7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckJsdWVJZCA9IGBza3ktY29sb3JwaWNrZXItYmx1ZS0tJHt0aGlzLiNpZEluZGV4fWA7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlckFscGhhSWQgPSBgc2t5LWNvbG9ycGlja2VyLWFscGhhLS0ke3RoaXMuI2lkSW5kZXh9YDtcbiAgICB0aGlzLmNvbG9ycGlja2VySWQgPSBgc2t5LWNvbG9ycGlja2VyLS0ke3RoaXMuI2lkSW5kZXh9YDtcbiAgICB0aGlzLnRyaWdnZXJCdXR0b25JZCA9IGBza3ktY29sb3JwaWNrZXItYnV0dG9uLS0ke3RoaXMuI2lkSW5kZXh9YDtcblxuICAgIHRoaXMuI3NsaWRlckRpbU1heCA9IG5ldyBTbGlkZXJEaW1lbnNpb24oMTgyLCAyNzAsIDE3MCwgMTgyKTtcbiAgICB0aGlzLnNsaWRlciA9IG5ldyBTbGlkZXJQb3NpdGlvbigwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaWFsb2coXG4gICAgY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBvdXRwdXRGb3JtYXQ6IHN0cmluZyxcbiAgICBwcmVzZXRDb2xvcnM6IEFycmF5PHN0cmluZz4sXG4gICAgYWxwaGFDaGFubmVsOiBzdHJpbmcsXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsQ29sb3IgPSBjb2xvcjtcbiAgICB0aGlzLiNvdXRwdXRGb3JtYXQgPSBvdXRwdXRGb3JtYXQ7XG4gICAgdGhpcy5wcmVzZXRDb2xvcnMgPSBwcmVzZXRDb2xvcnM7XG4gICAgdGhpcy4jYWxwaGFDaGFubmVsID0gYWxwaGFDaGFubmVsO1xuICAgIHRoaXMuYWxsb3dUcmFuc3BhcmVuY3kgPSBhbGxvd1RyYW5zcGFyZW5jeTtcblxuICAgIGlmICh0aGlzLiNvdXRwdXRGb3JtYXQgPT09ICdyZ2JhJykge1xuICAgICAgdGhpcy4jZm9ybWF0ID0gMTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuI291dHB1dEZvcm1hdCA9PT0gJ2hzbGEnKSB7XG4gICAgICB0aGlzLiNmb3JtYXQgPSAyO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNmb3JtYXQgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreUNvbG9ycGlja2VyTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLiNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNhZGRUcmlnZ2VyQnV0dG9uRXZlbnRMaXN0ZW5lcnMoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI3RoZW1lU3ZjKSB7XG4gICAgICB0aGlzLiN0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHRoZW1lU2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGNvbnN0IHRoZW1lTmFtZSA9IHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZTtcblxuICAgICAgICAgIC8vIEh1ZS9hbHBoYSBzbGlkZXIgYmFycyBoYXZlIGRpZmZlcmVudCB3aWR0aHMgaW4gTW9kZXJuIHRoZW1lLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgIGlmICh0aGVtZU5hbWUgPT09ICdtb2Rlcm4nKSB7XG4gICAgICAgICAgICB0aGlzLiNzbGlkZXJEaW1NYXggPSBuZXcgU2xpZGVyRGltZW5zaW9uKDE3NCwgMjcwLCAxNzAsIDE3NCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI3NsaWRlckRpbU1heCA9IG5ldyBTbGlkZXJEaW1lbnNpb24oMTgyLCAyNzAsIDE3MCwgMTgyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy4jdXBkYXRlU2xpZGVyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jcmVtb3ZlUGlja2VyRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLiNkZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuI2Rlc3Ryb3lPdmVybGF5KCk7XG4gIH1cblxuICBwdWJsaWMgb25UcmlnZ2VyQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5PcGVuKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLiNkZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuI2Rlc3Ryb3lPdmVybGF5KCk7XG4gICAgdGhpcy4jcmVtb3ZlUGlja2VyRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRyaWdnZXJCdXR0b25SZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uQXBwbHlDb2xvckNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29sb3IpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvckNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ29sb3IpO1xuICAgICAgdGhpcy5zZWxlY3RlZENvbG9yQXBwbGllZC5lbWl0KHsgY29sb3I6IHRoaXMuc2VsZWN0ZWRDb2xvciB9KTtcbiAgICAgIHRoaXMubGFzdEFwcGxpZWRDb2xvciA9IHRoaXMuc2VsZWN0ZWRDb2xvci5yZ2JhVGV4dDtcbiAgICAgIHRoaXMudXBkYXRlUGlja2VyVmFsdWVzKHRoaXMubGFzdEFwcGxpZWRDb2xvcik7XG4gICAgICB0aGlzLmJhY2tncm91bmRDb2xvckZvckRpc3BsYXkgPSB0aGlzLnNlbGVjdGVkQ29sb3IucmdiYVRleHQ7XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsQ2xpY2soKTogdm9pZCB7XG4gICAgLy8gUmV2ZXJ0IHBpY2tlciB2YWx1ZXMgYmFjayB0byBwcmV2aW91cyBjb2xvci5cbiAgICB0aGlzLnVwZGF0ZVBpY2tlclZhbHVlcyh0aGlzLmJhY2tncm91bmRDb2xvckZvckRpc3BsYXkpO1xuICAgIHRoaXMuY2xvc2VQaWNrZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByZXNldENsaWNrKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVBpY2tlclZhbHVlcyh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25SZXNldENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuUmVzZXQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBpY2tlclZhbHVlcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3QgaHN2YSA9IHRoaXMuI2dldEhzdmFWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKGhzdmEpIHtcbiAgICAgIHRoaXMuI2hzdmEgPSBoc3ZhO1xuICAgICAgdGhpcy4jdXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jaHN2YSkge1xuICAgICAgY29uc3QgcmdiYTogU2t5Q29sb3JwaWNrZXJSZ2JhID0gdGhpcy4jc3ZjLmhzdmFUb1JnYmEodGhpcy4jaHN2YSk7XG4gICAgICBjb25zdCBkUmdiYTogU2t5Q29sb3JwaWNrZXJSZ2JhID0gdGhpcy4jc3ZjLmRlbm9ybWFsaXplUkdCQShyZ2JhKTtcblxuICAgICAgY29uc3QgaHN2YTogU2t5Q29sb3JwaWNrZXJIc3ZhID0ge1xuICAgICAgICBodWU6IHRoaXMuI2hzdmEuaHVlLFxuICAgICAgICBzYXR1cmF0aW9uOiAxLFxuICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgYWxwaGE6IDEsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBodWVSZ2JhID0gdGhpcy4jc3ZjLmRlbm9ybWFsaXplUkdCQSh0aGlzLiNzdmMuaHN2YVRvUmdiYShoc3ZhKSk7XG5cbiAgICAgIHRoaXMucmdiYVRleHQgPSBkUmdiYTtcbiAgICAgIHRoaXMuaGV4VGV4dCA9IHRoaXMuI3N2Yy5oZXhUZXh0KGRSZ2JhLCB0aGlzLiNhbHBoYUNoYW5uZWwgPT09ICdoZXg4Jyk7XG5cbiAgICAgIHRoaXMuYWxwaGFTbGlkZXJDb2xvciA9IGByZ2JhKCR7ZFJnYmEucmVkfSwke2RSZ2JhLmdyZWVufSwke2RSZ2JhLmJsdWV9LCR7ZFJnYmEuYWxwaGF9KWA7XG4gICAgICB0aGlzLmh1ZVNsaWRlckNvbG9yID0gYHJnYmEoJHtodWVSZ2JhLnJlZH0sJHtodWVSZ2JhLmdyZWVufSwke2h1ZVJnYmEuYmx1ZX0sJHtyZ2JhLmFscGhhfSlgO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI2Zvcm1hdCA9PT0gMCAmJlxuICAgICAgICB0aGlzLiNoc3ZhLmFscGhhIDwgMSAmJlxuICAgICAgICB0aGlzLiNhbHBoYUNoYW5uZWwgPT09ICdoZXg2J1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI2Zvcm1hdCsrO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkQ29sb3IgPSB0aGlzLiNzdmMuc2t5Q29sb3JwaWNrZXJPdXQodGhpcy4jaHN2YSk7XG5cbiAgICAgIHRoaXMuI3VwZGF0ZVNsaWRlcigpO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVTbGlkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2hzdmEgJiYgdGhpcy4jc2xpZGVyRGltTWF4KSB7XG4gICAgICB0aGlzLnNsaWRlciA9IG5ldyBTbGlkZXJQb3NpdGlvbihcbiAgICAgICAgdGhpcy4jaHN2YS5odWUgKiB0aGlzLiNzbGlkZXJEaW1NYXguaHVlIC0gOCxcbiAgICAgICAgdGhpcy4jaHN2YS5zYXR1cmF0aW9uICogdGhpcy4jc2xpZGVyRGltTWF4LnNhdHVyYXRpb24gLSA4LFxuICAgICAgICAoMSAtIHRoaXMuI2hzdmEudmFsdWUpICogdGhpcy4jc2xpZGVyRGltTWF4LnZhbHVlIC0gOCxcbiAgICAgICAgdGhpcy4jaHN2YS5hbHBoYSAqIHRoaXMuI3NsaWRlckRpbU1heC5hbHBoYSAtIDhcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI29wZW5QaWNrZXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc1BpY2tlclZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuI2Rlc3Ryb3lPdmVybGF5KCk7XG4gICAgdGhpcy4jY3JlYXRlT3ZlcmxheSgpO1xuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gICNzZW5kTWVzc2FnZSh0eXBlOiBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlKSB7XG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtLm5leHQoeyB0eXBlIH0pO1xuICB9XG5cbiAgI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZTogU2t5Q29sb3JwaWNrZXJNZXNzYWdlKSB7XG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5PcGVuOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy4jb3BlblBpY2tlcigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuQ2xvc2U6XG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgIHRoaXMuY2xvc2VQaWNrZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLlJlc2V0OlxuICAgICAgICB0aGlzLnVwZGF0ZVBpY2tlclZhbHVlcyh0aGlzLmluaXRpYWxDb2xvcik7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSA9IHRoaXMuaW5pdGlhbENvbG9yO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29sb3JDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvbG9yKTtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBjb2RlIGFzc3VtZWQgbm9uLW51bGwgcHJlLXN0cmljdCBtb2RlLiBSZWV2YWx1YXRlIGluIHRoZSBmdXR1cmU/XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvckFwcGxpZWQuZW1pdCh7IGNvbG9yOiB0aGlzLnNlbGVjdGVkQ29sb3IhIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lDb2xvcnBpY2tlck1lc3NhZ2VUeXBlLlRvZ2dsZVJlc2V0QnV0dG9uOlxuICAgICAgICB0aGlzLnNob3dSZXNldEJ1dHRvbiA9ICF0aGlzLnNob3dSZXNldEJ1dHRvbjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZUFmZml4ZXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb2xvcnBpY2tlclJlZiAmJlxuICAgICAgdGhpcy50cmlnZ2VyQnV0dG9uUmVmICYmXG4gICAgICB0aGlzLiNwaWNrZXJVbnN1YnNjcmliZVxuICAgICkge1xuICAgICAgY29uc3QgYWZmaXhlciA9IHRoaXMuI2FmZml4U3ZjLmNyZWF0ZUFmZml4ZXIodGhpcy5jb2xvcnBpY2tlclJlZik7XG5cbiAgICAgIGFmZml4ZXIucGxhY2VtZW50Q2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNwaWNrZXJVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNQaWNrZXJWaXNpYmxlID0gY2hhbmdlLnBsYWNlbWVudCAhPT0gbnVsbDtcbiAgICAgICAgfSk7XG5cbiAgICAgIGFmZml4ZXIuYWZmaXhUbyh0aGlzLnRyaWdnZXJCdXR0b25SZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICBhdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dC5WaWV3cG9ydCxcbiAgICAgICAgZW5hYmxlQXV0b0ZpdDogdHJ1ZSxcbiAgICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogJ2xlZnQnLFxuICAgICAgICBpc1N0aWNreTogdHJ1ZSxcbiAgICAgICAgcGxhY2VtZW50OiAnYmVsb3cnLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI2FmZml4ZXIgPSBhZmZpeGVyO1xuICAgIH1cbiAgfVxuXG4gICNkZXN0cm95QWZmaXhlcigpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jYWZmaXhlcikge1xuICAgICAgdGhpcy4jYWZmaXhlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLiNhZmZpeGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICNjcmVhdGVPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbG9ycGlja2VyVGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNvdmVybGF5U3ZjLmNyZWF0ZSh7XG4gICAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBvdmVybGF5LmF0dGFjaFRlbXBsYXRlKHRoaXMuY29sb3JwaWNrZXJUZW1wbGF0ZVJlZik7XG5cbiAgICAgIHRoaXMuI292ZXJsYXkgPSBvdmVybGF5O1xuICAgIH1cbiAgfVxuXG4gICNkZXN0cm95T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jb3ZlcmxheSkge1xuICAgICAgdGhpcy4jb3ZlcmxheVN2Yy5jbG9zZSh0aGlzLiNvdmVybGF5KTtcbiAgICAgIHRoaXMuI292ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2FkZFRyaWdnZXJCdXR0b25FdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQod2luZG93LmRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBrZXlib2FyZEV2ZW50ID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5Ym9hcmRFdmVudC5rZXk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChrZXkgPT09ICdlc2NhcGUnKSB7XG4gICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5Q29sb3JwaWNrZXJNZXNzYWdlVHlwZS5DbG9zZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI3JlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI3BpY2tlclVuc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLiNwaWNrZXJVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICB0aGlzLiNwaWNrZXJVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy4jcGlja2VyVW5zdWJzY3JpYmUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2dldEhzdmFWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogU2t5Q29sb3JwaWNrZXJIc3ZhIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgaHN2YTogU2t5Q29sb3JwaWNrZXJIc3ZhIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy4jYWxwaGFDaGFubmVsID09PSAnaGV4OCcpIHtcbiAgICAgICAgaHN2YSA9IHRoaXMuI3N2Yy5zdHJpbmdUb0hzdmEodmFsdWUsIHRydWUpO1xuICAgICAgICBpZiAoIWhzdmEgJiYgIXRoaXMuI2hzdmEpIHtcbiAgICAgICAgICBoc3ZhID0gdGhpcy4jc3ZjLnN0cmluZ1RvSHN2YSh2YWx1ZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoc3ZhID0gdGhpcy4jc3ZjLnN0cmluZ1RvSHN2YSh2YWx1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBoc3ZhO1xuICB9XG5cbiAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvQUVSVCNjb2xvci1jb250cmFzdFxuICAjZ2V0QWNjZXNzaWJsZUljb25Db2xvcihcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IFNreUNvbG9ycGlja2VyT3V0cHV0IHwgdW5kZWZpbmVkXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGJhY2tncm91bmRDb2xvcikge1xuICAgICAgY29uc3QgcmdiID0gYmFja2dyb3VuZENvbG9yLnJnYmE7XG4gICAgICBjb25zdCBicmlnaHRuZXNzID0gTWF0aC5yb3VuZChcbiAgICAgICAgKHJnYi5yZWQgKiAyOTkgKyByZ2IuZ3JlZW4gKiA1ODcgKyByZ2IuYmx1ZSAqIDExNCkgLyAxMDAwXG4gICAgICApO1xuICAgICAgcmV0dXJuIGJyaWdodG5lc3MgPiAxMjUgPyAncmdiKDAsIDAsIDApJyA6ICdyZ2IoMjU1LCAyNTUsIDI1NSknO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXBcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3NreS1jb2xvcnBpY2tlci1oaWRkZW4nOiAhaXNWaXNpYmxlLFxuICAgICdza3ktY29sb3JwaWNrZXItZGlzYWJsZWQnOiBkaXNhYmxlZFxuICB9XCJcbj5cbiAgPGRpdiBbaGlkZGVuXT1cInRydWVcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxidXR0b25cbiAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1idXR0b25cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaXNPcGVuID8gY29sb3JwaWNrZXJJZCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNPcGVuXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgbGFiZWwgfHxcbiAgICAgIChsYWJlbGxlZEJ5XG4gICAgICAgID8gbnVsbFxuICAgICAgICA6ICgnc2t5dXhfY29sb3JwaWNrZXJfZHJvcGRvd25fYnV0dG9uJyB8IHNreUxpYlJlc291cmNlcykpXG4gICAgXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxsZWRCeVwiXG4gICAgW2F0dHIuaWRdPVwidHJpZ2dlckJ1dHRvbklkXCJcbiAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgIGxhYmVsIHx8XG4gICAgICAobGFiZWxsZWRCeVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiAoJ3NreXV4X2NvbG9ycGlja2VyX2Ryb3Bkb3duX2J1dHRvbicgfCBza3lMaWJSZXNvdXJjZXMpKVxuICAgIFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LWNvbG9ycGlja2VyLWJ1dHRvbi1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgfVwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybidcbiAgICB9XCJcbiAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5XCJcbiAgICAoY2xpY2spPVwib25UcmlnZ2VyQnV0dG9uQ2xpY2soKVwiXG4gICAgI3RyaWdnZXJCdXR0b25SZWZcbiAgPlxuICAgIDxza3ktaWNvblxuICAgICAgKm5nSWY9XCJwaWNrZXJCdXR0b25JY29uXCJcbiAgICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWJ1dHRvbi1pY29uXCJcbiAgICAgIFtpY29uXT1cInBpY2tlckJ1dHRvbkljb25cIlxuICAgICAgW2ljb25UeXBlXT1cInBpY2tlckJ1dHRvbkljb25UeXBlXCJcbiAgICAgIFtzaXplXT1cIicxeCdcIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cImljb25Db2xvclwiXG4gICAgPlxuICAgIDwvc2t5LWljb24+XG4gICAgPG5nLWNvbnRhaW5lciAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCI+XG4gICAgICA8c2t5LWljb25cbiAgICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItYnV0dG9uLW1vZGVybi1jaGV2cm9uXCJcbiAgICAgICAgaWNvbj1cImNoZXZyb24tZG93blwiXG4gICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICBzaXplPVwieHNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1jb2xvcnBpY2tlci1idXR0b24tbW9kZXJuLWNoZXZyb24tZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWljb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYnV0dG9uPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY29sb3JwaWNrZXJUZW1wbGF0ZVJlZj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1jb250YWluZXJcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidHJpZ2dlckJ1dHRvbklkXCJcbiAgICAgIFthdHRyLmlkXT1cImNvbG9ycGlja2VySWRcIlxuICAgICAgW2hpZGRlbl09XCIhaXNQaWNrZXJWaXNpYmxlXCJcbiAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgJ3NreS1zaGFkb3cnOiAnZGVmYXVsdCcsXG4gICAgICAgICdza3ktZWxldmF0aW9uLTQnOiAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgICAjY29sb3JwaWNrZXJSZWZcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LWNvbG9ycGlja2VyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNhdHVyYXRpb24tbGlnaHRuZXNzXCJcbiAgICAgICAgICBbY29sb3JdPVwic2xpZGVyLnNhdHVyYXRpb24gLSBzbGlkZXIudmFsdWUgKyAnJ1wiXG4gICAgICAgICAgW3NreUNvbG9ycGlja2VyU2xpZGVyXVxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImh1ZVNsaWRlckNvbG9yXCJcbiAgICAgICAgICBbeEF4aXNdPVwiMVwiXG4gICAgICAgICAgW3lBeGlzXT1cIjFcIlxuICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cInNhdHVyYXRpb25BbmRMaWdodG5lc3MgPSAkZXZlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3Igc2t5LXJvdW5kZWQtY2lyY2xlXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5zYXR1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzdHlsZS50b3AucHhdPVwic2xpZGVyLnZhbHVlXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNvbG9yLWJhY2tncm91bmQgc2t5LXJvdW5kZWQtY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtY29sb3Igc2t5LXJvdW5kZWQtY2lyY2xlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwic2VsZWN0ZWRDb2xvcj8ucmdiYVRleHRcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImh1ZVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclNsaWRlcl1cbiAgICAgICAgICAgICAgW3hBeGlzXT1cIjFcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJodWUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgICAjaHVlU2xpZGVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5odWVcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLmFsbG93VHJhbnNwYXJlbmN5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhbHBoYVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclNsaWRlcl1cbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYWxwaGFTbGlkZXJDb2xvclwiXG4gICAgICAgICAgICAgIFt4QXhpc109XCIxXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiYWxwaGFBeGlzID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgI2FscGhhU2xpZGVyXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvciBza3ktcm91bmRlZC1jaXJjbGVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInNsaWRlci5hbHBoYVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicmdiYS10ZXh0XCI+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfaGV4JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckhleElkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2hleCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIl4jPyhbQS1GYS1mMC05XXs2fXxbQS1GYS1mMC05XXszfSkkXCJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwic2t5Q29sb3JwaWNrZXJIZXhJZFwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJoZXhUZXh0XCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiaGV4ID0gJGV2ZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgICAgIDxza3ktaW5wdXQtYm94PlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9hcmlhX3JlZCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgICAgICBbYXR0ci5mb3JdPVwic2t5Q29sb3JwaWNrZXJSZWRJZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9yZWQnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyUmVkSWRcIlxuICAgICAgICAgICAgICBbbWF4UmFuZ2VdPVwiMjU1XCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5yZWRcIlxuICAgICAgICAgICAgICAobmV3Q29sb3JDb250cmFzdCk9XCJyZWQgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfZ3JlZW4nIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckdyZWVuSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfZ3JlZW4nIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyR3JlZW5JZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIyNTVcIlxuICAgICAgICAgICAgICBbc2t5Q29sb3JwaWNrZXJUZXh0XVxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmdiYVRleHQ/LmdyZWVuXCJcbiAgICAgICAgICAgICAgKG5ld0NvbG9yQ29udHJhc3QpPVwiZ3JlZW4gPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfYmx1ZScgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cInNreUNvbG9ycGlja2VyQmx1ZUlkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2JsdWUnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjI1NVwiXG4gICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyQmx1ZUlkXCJcbiAgICAgICAgICAgICAgW21heFJhbmdlXT1cIjI1NVwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlclRleHRdXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJyZ2JhVGV4dD8uYmx1ZVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImJsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3ggKm5nSWY9XCJ0aGlzLmFsbG93VHJhbnNwYXJlbmN5XCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgJ3NreXV4X2NvbG9ycGlja2VyX2FyaWFfYWxwaGEnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJza3lDb2xvcnBpY2tlckFscGhhSWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfY29sb3JwaWNrZXJfYWxwaGEnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIG1heD1cIjFcIlxuICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgcGF0dGVybj1cIlswLTldKyhbXFwuLF1bMC05XXsxLDJ9KT9cIlxuICAgICAgICAgICAgICBzdGVwPVwiMC4xXCJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cInNreUNvbG9ycGlja2VyQWxwaGFJZFwiXG4gICAgICAgICAgICAgIFttYXhSYW5nZV09XCIxXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VyVGV4dF1cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJnYmFUZXh0Py5hbHBoYVwiXG4gICAgICAgICAgICAgIChuZXdDb2xvckNvbnRyYXN0KT1cImFscGhhQ29sb3IgPSAkZXZlbnRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJwcmVzZXRDb2xvcnMgJiYgcHJlc2V0Q29sb3JzLmxlbmd0aFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktY29sb3JwaWNrZXItcHJlc2V0LWNvbG9yLWFyZWFcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbG9yIG9mIHByZXNldENvbG9ycyB8IHNsaWNlOiAwOjEyOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgKCdza3l1eF9jb2xvcnBpY2tlcl9wcmVzZXRfY29sb3InIHwgc2t5TGliUmVzb3VyY2VzKSArICcgJyArIGNvbG9yXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LXByZXNldC1jb2xvcic6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgJ3NreS1idG4gc2t5LWJ0bi1saW5rJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25QcmVzZXRDbGljayhjb2xvcilcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1jb2xvcnBpY2tlci1mb290ZXJcIlxuICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1wYWRkaW5nLWV2ZW4tbGFyZ2UnOiAnZGVmYXVsdCdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNvbHVtblwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnkgc2t5LWJ0bi1jb2xvcnBpY2tlci1hcHBseVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X2NvbG9ycGlja2VyX2FwcGx5JyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7ICdza3ktbWFyZ2luLWlubGluZS1zbSc6ICdtb2Rlcm4nIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlDb2xvckNsaWNrKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdza3l1eF9jb2xvcnBpY2tlcl9hcHBseScgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1idG4tY29sb3JwaWNrZXItY2xvc2VcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9jbG9zZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ3NreXV4X2NvbG9ycGlja2VyX2Nsb3NlJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPHNwYW5cbiAgICAqbmdJZj1cImFsbG93VHJhbnNwYXJlbmN5XCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGNsYXNzPVwic2t5LWNvbG9ycGlja2VyLWNoZWNrZXJlZC1iYWNrZ3JvdW5kXCJcbiAgPlxuICA8L3NwYW4+XG5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2hvd1Jlc2V0QnV0dG9uXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9jb2xvcnBpY2tlcl9yZXNldCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1jb2xvcnBpY2tlci1yZXNldC1idXR0b24tZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICdza3ktY29sb3JwaWNrZXItcmVzZXQtYnV0dG9uJzogJ2RlZmF1bHQnLFxuICAgICAgJ3NreS1idG4gc2t5LWJ0bi1pY29uLWJvcmRlcmxlc3Mgc2t5LWNvbG9ycGlja2VyLXJlc2V0LWJ1dHRvbi1tb2Rlcm4nOlxuICAgICAgICAnbW9kZXJuJ1xuICAgIH1cIlxuICAgIChjbGljayk9XCJvblJlc2V0Q2xpY2soKVwiXG4gID5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwidGltZXNcIiBzaXplPVwic21cIj4gPC9za3ktaWNvbj5cbiAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiIGljb249XCJ0cmFzaFwiIGljb25UeXBlPVwic2t5dXhcIiBzaXplPVwibGdcIj5cbiAgICA8L3NreS1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|