@festo-ui/angular 4.0.3-pre-20221026.2 → 4.0.3-pre-20221028.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.
@@ -46,7 +46,7 @@ export class TextEditorComponent extends ValueAccessorBaseDirective {
46
46
  this.valueSetter = (quillEditor, value) => {
47
47
  const sanitizeConfig = this.config?.sanitizing || this.defaultConfig.sanitizing;
48
48
  if (sanitizeConfig.sanitizingFn) {
49
- value = sanitizeConfig.sanitizingFn(this.domSanitizer);
49
+ value = sanitizeConfig.sanitizingFn(this.domSanitizer, value);
50
50
  }
51
51
  if (!sanitizeConfig.skipDefaultSanitizing) {
52
52
  value = this.domSanitizer.sanitize(SecurityContext.HTML, value);
@@ -296,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
296
296
  }], value: [{
297
297
  type: Input
298
298
  }] } });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsS0FBSyxFQUVMLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUVWLFNBQVMsRUFHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQWtDcEUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDBCQUFrQztJQXFGekUsWUFBbUIsVUFBc0IsRUFBVSxRQUFtQixFQUFVLFlBQTBCO1FBQ3hHLEtBQUssRUFBRSxDQUFDO1FBRFMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpGMUcsa0JBQWEsR0FBNEI7WUFDdkMsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRSxJQUFJO2dCQUNaLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFB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QUk7eUJBQ1o7cUJBQ0Y7b0pBeUJxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0ksU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNLLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDQyxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBQ0osT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNBLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDRSxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ssUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUVYLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUVFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIElucHV0LFxuICBBZnRlclZpZXdJbml0LFxuICBTZWN1cml0eUNvbnRleHQsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIGZvcndhcmRSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgUXVpbGxUeXBlIGZyb20gJ3F1aWxsJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFZhbHVlQWNjZXNzb3JCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vdmFsdWUtYWNjZXNzb3ItYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEVkaXRvckNvbmZpZ3VyYXRpb24ge1xuICB0b29sYmFyPzoge1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIGl0YWxpYz86IGJvb2xlYW47XG4gICAgdW5kZXJsaW5lPzogYm9vbGVhbjtcbiAgICBhbGlnbkNlbnRlcj86IGJvb2xlYW47XG4gICAgYWxpZ25SaWdodD86IGJvb2xlYW47XG4gICAgYnVsbGV0TGlzdD86IGJvb2xlYW47XG4gICAgb3JkZXJlZExpc3Q/OiBib29sZWFuO1xuICAgIGltYWdlPzogYm9vbGVhbjtcbiAgICBsaW5rPzogYm9vbGVhbjtcbiAgfTtcbiAgc2FuaXRpemluZz86IHtcbiAgICBza2lwRGVmYXVsdFNhbml0aXppbmc/OiBib29sZWFuO1xuICAgIHNraXBXaGl0ZXNwYWNlSGFuZGxpbmc/OiBib29sZWFuO1xuICAgIHNhbml0aXppbmdGbj86IChkczogRG9tU2FuaXRpemVyKSA9PiBzdHJpbmc7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLXRleHQtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0RWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yQmFzZURpcmVjdGl2ZTxzdHJpbmc+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBpZDogc3RyaW5nO1xuICBxdWlsbEVkaXRvciE6IFF1aWxsVHlwZTtcbiAgZWRpdG9yRWxlbSE6IEhUTUxFbGVtZW50O1xuICBkZWZhdWx0Q29uZmlnOiBUZXh0RWRpdG9yQ29uZmlndXJhdGlvbiA9IHtcbiAgICB0b29sYmFyOiB7XG4gICAgICBib2xkOiB0cnVlLFxuICAgICAgaXRhbGljOiB0cnVlLFxuICAgICAgdW5kZXJsaW5lOiB0cnVlLFxuICAgICAgYWxpZ25DZW50ZXI6IHRydWUsXG4gICAgICBhbGlnblJpZ2h0OiB0cnVlLFxuICAgICAgYnVsbGV0TGlzdDogdHJ1ZSxcbiAgICAgIG9yZGVyZWRMaXN0OiB0cnVlLFxuICAgICAgaW1hZ2U6IHRydWUsXG4gICAgICBsaW5rOiB0cnVlXG4gICAgfSxcbiAgICBzYW5pdGl6aW5nOiB7XG4gICAgICBzYW5pdGl6aW5nRm46IG51bGwsXG4gICAgICBza2lwRGVmYXVsdFNhbml0aXppbmc6IGZhbHNlLFxuICAgICAgc2tpcFdoaXRlc3BhY2VIYW5kbGluZzogZmFsc2VcbiAgICB9XG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnYnRuQm9sZCcpIGJ0bkJvbGQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2J0bkl0YWxpYycpIGJ0bkl0YWxpYzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnRuVW5kZXJsaW5lJykgYnRuVW5kZXJsaW5lOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdidG5BbGlnbkNlbnRlcicpIGJ0bkFsaWduQ2VudGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdidG5BbGlnblJpZ2h0JykgYnRuQWxpZ25SaWdodDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnRuTGluaycpIGJ0bkxpbms6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2J0blVsJykgYnRuVWw6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2J0bk9sJykgYnRuT2w6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2J0bkltYWdlJykgYnRuSW1hZ2U6IEVsZW1lbnRSZWY7XG5cbiAgQE91dHB1dCgpIGZuZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQElucHV0KCkgY29uZmlnOiBUZXh0RWRpdG9yQ29uZmlndXJhdGlvbiA9IHRoaXMuZGVmYXVsdENvbmZpZztcbiAgQElucHV0KCkgbW9kdWxlczogYW55O1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkT25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVycm9yOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pbm5lclZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmNoYW5nZWQuZm9yRWFjaChmID0+IHtcbiAgICAgICAgdGhpcy5mbmdDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgIHJldHVybiBmKHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICB9XG5cbiAgLy8gbmVlZGVkIHRvIGFjY2VzcyBlZGl0b3IgY29udGVudFxuICB2YWx1ZUdldHRlciA9IChlZGl0b3JFbGVtZW50OiBIVE1MRWxlbWVudCk6IHN0cmluZyB8IGFueSA9PiB7XG4gICAgbGV0IGh0bWw6IHN0cmluZyB8IG51bGwgPSBlZGl0b3JFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xbC1lZGl0b3InKS5pbm5lckhUTUw7XG4gICAgaWYgKGh0bWwgPT09ICc8cD48YnI+PC9wPicgfHwgaHRtbCA9PT0gJzxkaXY+PGJyPjwvZGl2PicpIHtcbiAgICAgIGh0bWwgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbDtcbiAgfTtcblxuICAvLyBuZWVkZWQgdG8gYWNjZXNzIGVkaXRvciBjb250ZW50XG4gIHZhbHVlU2V0dGVyID0gKHF1aWxsRWRpdG9yOiBRdWlsbFR5cGUsIHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICAgIGNvbnN0IHNhbml0aXplQ29uZmlnID0gdGhpcy5jb25maWc/LnNhbml0aXppbmcgfHwgdGhpcy5kZWZhdWx0Q29uZmlnLnNhbml0aXppbmc7XG5cbiAgICBpZiAoc2FuaXRpemVDb25maWcuc2FuaXRpemluZ0ZuKSB7XG4gICAgICB2YWx1ZSA9IHNhbml0aXplQ29uZmlnLnNhbml0aXppbmdGbih0aGlzLmRvbVNhbml0aXplcik7XG4gICAgfVxuICAgIGlmICghc2FuaXRpemVDb25maWcuc2tpcERlZmF1bHRTYW5pdGl6aW5nKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZG9tU2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCB2YWx1ZSk7XG4gICAgfVxuICAgIGlmICghc2FuaXRpemVDb25maWcuc2tpcFdoaXRlc3BhY2VIYW5kbGluZykge1xuICAgICAgdmFsdWUgPSB0aGlzLmhhbmRsZVdoaXRlc3BhY2UodmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBxdWlsbEVkaXRvci5jbGlwYm9hcmQuY29udmVydCh2YWx1ZSk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKS50b1N0cmluZygpLnJlcGxhY2UoJy4nLCAnLScpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdG9yRWxlbSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCNlZGl0b3ItJHt0aGlzLmlkfWApO1xuXG4gICAgdGhpcy5xdWlsbEVkaXRvciA9IG5ldyBRdWlsbFR5cGUodGhpcy5lZGl0b3JFbGVtLCB7XG4gICAgICBtb2R1bGVzOiB7IHRvb2xiYXI6IGAjZWRpdG9yLXRvb2xiYXItJHt0aGlzLmlkfWAsIC4uLnRoaXMubW9kdWxlcyB9LFxuICAgICAgdGhlbWU6ICdzbm93JyxcbiAgICAgIHNjcm9sbGluZ0NvbnRhaW5lcjogYCNlZGl0b3ItY29udGFpbmVyLSR7dGhpcy5pZH1gXG4gICAgfSk7XG4gICAgdGhpcy5zZXRFZGl0b3JMYWJlbCgpO1xuICAgIHRoaXMuYWRkV2hpdGVzcGFjZU1hdGNoZXIoKTtcbiAgICB0aGlzLmFkZEltYWdlTWF0Y2hlcigpO1xuXG4gICAgaWYgKHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMudmFsdWVTZXR0ZXIodGhpcy5xdWlsbEVkaXRvciwgdGhpcy5pbm5lclZhbHVlKTtcbiAgICAgIHRoaXMucXVpbGxFZGl0b3Iuc2V0Q29udGVudHMoY29udGVudCwgJ3NpbGVudCcpO1xuICAgICAgdGhpcy5xdWlsbEVkaXRvci5nZXRNb2R1bGUoJ2hpc3RvcnknKS5jbGVhcigpO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlKCk7XG5cbiAgICB0aGlzLnF1aWxsRWRpdG9yLm9uKCd0ZXh0LWNoYW5nZScsICgpID0+IHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlR2V0dGVyKHRoaXMuZWRpdG9yRWxlbSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXM/LmNvbmZpZz8uY3VycmVudFZhbHVlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuY29uZmlnID0geyB0b29sYmFyOiB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZy50b29sYmFyLCAuLi5jaGFuZ2VzLmNvbmZpZy5jdXJyZW50VmFsdWU/LnRvb2xiYXIgfSB9O1xuICAgIH1cblxuICAgIGlmICghdGhpcy5xdWlsbEVkaXRvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMucXVpbGxFZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy52YWx1ZVNldHRlcih0aGlzLnF1aWxsRWRpdG9yLCB2YWx1ZSk7XG4gICAgdGhpcy5xdWlsbEVkaXRvci5zZXRDb250ZW50cyhjb250ZW50KTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRoaXMuZGlzYWJsZWQpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAodGhpcy5xdWlsbEVkaXRvcikge1xuICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5xdWlsbEVkaXRvci5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMucXVpbGxFZGl0b3IuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFJlYWRPbmx5U3RhdGUoKSB7XG4gICAgdGhpcy5xdWlsbEVkaXRvci5lbmFibGUoIXRoaXMucmVhZE9ubHkpO1xuICB9XG5cbiAgZGVsZWdhdGUoZXZlbnQ6IGFueSwgYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBsZXQgYnRuOiBIVE1MRWxlbWVudCA9IG51bGw7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2JvbGQnOlxuICAgICAgICBidG4gPSB0aGlzLmJ0bkJvbGQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaXRhbGljJzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5JdGFsaWMubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndW5kZXJsaW5lJzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5VbmRlcmxpbmUubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWxpZ24tY2VudGVyJzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5BbGlnbkNlbnRlci5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGlnbi1yaWdodCc6XG4gICAgICAgIGJ0biA9IHRoaXMuYnRuQWxpZ25SaWdodC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5MaW5rLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGJ0bi5jbGljaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VsJzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5VbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvbCc6XG4gICAgICAgIGJ0biA9IHRoaXMuYnRuT2wubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICBidG4gPSB0aGlzLmJ0bkltYWdlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGJ0bi5jbGljaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8ubGVuZ3RoO1xuICB9XG5cbiAgaGlkZURpdmlkZXIobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbGlua09ySW1hZ2UgPSB0aGlzLmNvbmZpZy50b29sYmFyLmltYWdlIHx8IHRoaXMuY29uZmlnLnRvb2xiYXIubGluaztcbiAgICBjb25zdCBsaXN0cyA9IHRoaXMuY29uZmlnLnRvb2xiYXIuYnVsbGV0TGlzdCB8fCB0aGlzLmNvbmZpZy50b29sYmFyLm9yZGVyZWRMaXN0O1xuICAgIGNvbnN0IHR5cG9zID0gdGhpcy5jb25maWcudG9vbGJhci5ib2xkIHx8IHRoaXMuY29uZmlnLnRvb2xiYXIuaXRhbGljIHx8IHRoaXMuY29uZmlnLnRvb2xiYXIudW5kZXJsaW5lO1xuICAgIGNvbnN0IHRleHRBbGlnbiA9IHRoaXMuY29uZmlnLnRvb2xiYXIuYWxpZ25DZW50ZXIgfHwgdGhpcy5jb25maWcudG9vbGJhci5hbGlnblJpZ2h0O1xuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSAndHlwbyc6XG4gICAgICAgIHJldHVybiAhdHlwb3MgfHwgKCF0ZXh0QWxpZ24gJiYgIWxpbmtPckltYWdlICYmICFsaXN0cyk7XG4gICAgICBjYXNlICd0ZXh0LWFsaWduJzpcbiAgICAgICAgcmV0dXJuICF0ZXh0QWxpZ24gfHwgKCFsaW5rT3JJbWFnZSAmJiAhbGlzdHMpO1xuICAgICAgY2FzZSAnbGlzdHMnOlxuICAgICAgICByZXR1cm4gIWxpc3RzIHx8ICFsaW5rT3JJbWFnZTtcbiAgICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbmZpZy50b29sYmFyLmltYWdlIHx8ICF0aGlzLmNvbmZpZy50b29sYmFyLmxpbms7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXRvckxhYmVsKCkge1xuICAgIGNvbnN0IGVkaXRvckRpdiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xbC1lZGl0b3InKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlZGl0b3JEaXYsICdyb2xlJywgJ3RleHRib3gnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlZGl0b3JEaXYsICdhcmlhLWxhYmVsbGVkYnknLCBgZWRpdG9yLWxhYmVsLSR7dGhpcy5pZH1gKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlZGl0b3JEaXYsICdhcmlhLW11bHRpbGluZScsICd0cnVlJyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZSgpIHtcbiAgICB0aGlzLnNldFJlYWRPbmx5U3RhdGUoKTtcbiAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkV2hpdGVzcGFjZU1hdGNoZXIoKSB7XG4gICAgLy8gc2V0IHVwIGEgbWF0Y2hlciB0aGF0IHJlcGxhY2VzIHBsYWNlaG9sZGVyICMjI3RhYiMjIyB3aXRoIFxcdCBpbiBkZWx0YSBhZ2FpblxuICAgIHRoaXMucXVpbGxFZGl0b3IuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ3AnLCAoX25vZGUsIGRlbHRhKSA9PiB7XG4gICAgICBsZXQgc3RyID0gSlNPTi5zdHJpbmdpZnkoZGVsdGEpO1xuICAgICAgc3RyID0gc3RyLnJlcGxhY2UoLyMjI3RhYiMjIy9nLCAnXFxcXHQnKTtcbiAgICAgIGRlbHRhID0gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgcmV0dXJuIGRlbHRhO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRJbWFnZU1hdGNoZXIoKSB7XG4gICAgLy8gc2V0IHVwIGEgbWF0Y2hlciB0aGF0IGRvZXMgYWxsb3cvZGlzYWxsb3cgdG8gcGFzdGUgaW1hZ2VzIGNvcnJlc3BvbmRpbmcgdG8gY29uZmlnIHNldHRpbmdzXG4gICAgdGhpcy5xdWlsbEVkaXRvci5jbGlwYm9hcmQuYWRkTWF0Y2hlcignaW1nJywgKF9ub2RlLCBkZWx0YSkgPT4ge1xuICAgICAgLy8gYWxsb3dlZCwgcGFzc3RocnUgZGVsdGFcbiAgICAgIGlmICh0aGlzLmNvbmZpZy50b29sYmFyLmltYWdlID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBkZWx0YTtcbiAgICAgIH1cblxuICAgICAgLy8gbm90IGFsbG93ZWQsIHJlbW92ZSBpbWFnZSBieSBzZXR0aW5nIHVwIGEgbmV3IGRlbHRhXG4gICAgICBjb25zdCBEZWx0YSA9IFF1aWxsVHlwZS5pbXBvcnQoJ3F1aWxsLWRlbHRhJyk7XG4gICAgICByZXR1cm4gbmV3IERlbHRhKCkuaW5zZXJ0KCcnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlV2hpdGVzcGFjZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBzZXQgYSBwbGFjZWhvbGRlciBmb3IgdGFiIGVudGl0eSB0byBhdm9pZCB0aGF0IHF1aWxsIHJlbW92ZXMgaXRcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvJiM5Oy9naSwgJyMjI3RhYiMjIycpO1xuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dFwiIFtjbGFzcy5md2UtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPGRpdiBjbGFzcz1cImZuZy1lZGl0b3ItdG9vbGJhclwiIFtpZF09XCInZWRpdG9yLXRvb2xiYXItJyArIGlkXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGZ3ZS1kLW5vbmVcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1zaXplXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj48L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImh1Z2VcIj48L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHMgZm5nLWVkaXRvci10b29sYmFyLWJ1dHRvbnMtY29udGFpbmVyIGZ3ZS1tci0zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5ib2xkXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5Cb2xkIGNsYXNzPVwicWwtYm9sZCBmd2UtZC1ub25lIGFjdGlvbi1ib2xkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImZ3ZS1idG4gZm5nLWJ1dHRvblwiXG4gICAgICAgICAgW2NsYXNzLmZ3ZS1tci0zXT1cImNvbmZpZz8udG9vbGJhcj8udW5kZXJsaW5lIHx8IGNvbmZpZz8udG9vbGJhcj8uaXRhbGljXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZWdhdGUoJGV2ZW50LCAnYm9sZCcpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZuZy1idXR0b24tdGV4dCBmbmctdGV4dC1ib2xkXCI+QjwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8udG9vbGJhcj8uaXRhbGljXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5JdGFsaWMgY2xhc3M9XCJxbC1pdGFsaWMgZndlLWQtbm9uZSBhY3Rpb24taXRhbGljXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImZ3ZS1idG4gZm5nLWJ1dHRvblwiXG4gICAgICAgICAgW2NsYXNzLmZ3ZS1tci0zXT1cImNvbmZpZz8udG9vbGJhcj8udW5kZXJsaW5lXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZWdhdGUoJGV2ZW50LCAnaXRhbGljJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm5nLWJ1dHRvbi10ZXh0IGZuZy10ZXh0LWl0YWxpY1wiPkk8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnRvb2xiYXI/LnVuZGVybGluZVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjYnRuVW5kZXJsaW5lIGNsYXNzPVwicWwtdW5kZXJsaW5lIGZ3ZS1kLW5vbmUgYWN0aW9uLXVuZGVybGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ3ZS1idG4gZm5nLWJ1dHRvblwiIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICd1bmRlcmxpbmUnKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbmctYnV0dG9uLXRleHQgZm5nLXRleHQtdW5kZXJsaW5lXCI+VTwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVEaXZpZGVyKCd0eXBvJylcIiBjbGFzcz1cImZuZy1kaXZpZGVyLXkgZndlLW14LTRcIj48L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8udG9vbGJhcj8uYWxpZ25DZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2J0bkFsaWduQ2VudGVyIGNsYXNzPVwicWwtYWxpZ24gZndlLWQtbm9uZSBhY3Rpb24tYWxpZ24tY2VudGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdmFsdWU9XCJjZW50ZXJcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiZndlLWJ0biBmbmctYnRuLXRvb2xiYXItbGlzdCBmbmctYnV0dG9uXCJcbiAgICAgICAgICBbY2xhc3MuZndlLW1yLTNdPVwiY29uZmlnPy50b29sYmFyPy5hbGlnblJpZ2h0XCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZWdhdGUoJGV2ZW50LCAnYWxpZ24tY2VudGVyJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLXRvb2xiYXItbGlzdCBmbmctaWNvbi10ZXh0LWFsaWduLWNlbnRlciBmd2UtcHItMFwiIFtjbGFzcy5mbmctZ3JheV09XCJkaXNhYmxlZFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8udG9vbGJhcj8uYWxpZ25SaWdodFwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjYnRuQWxpZ25SaWdodCBjbGFzcz1cInFsLWFsaWduIGZ3ZS1kLW5vbmUgYWN0aW9uLWFsaWduLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdmFsdWU9XCJyaWdodFwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJmd2UtYnRuIGZuZy1idG4tdG9vbGJhci1saXN0IGZuZy1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICdhbGlnbi1yaWdodCcpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi10b29sYmFyLWxpc3QgZm5nLWljb24tdGV4dC1hbGlnbi1yaWdodCBmd2UtcHItMFwiIFtjbGFzcy5mbmctZ3JheV09XCJkaXNhYmxlZFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiAqbmdJZj1cIiFoaWRlRGl2aWRlcigndGV4dC1hbGlnbicpXCIgY2xhc3M9XCJmbmctZGl2aWRlci15IGZ3ZS1teC00XCI+PC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnRvb2xiYXI/LmJ1bGxldExpc3RcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2J0blVsIGNsYXNzPVwicWwtbGlzdCBmd2UtZC1ub25lIGFjdGlvbi11bFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHZhbHVlPVwiYnVsbGV0XCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImZ3ZS1idG4gZm5nLWJ0bi10b29sYmFyLWxpc3QgZm5nLWJ1dHRvblwiXG4gICAgICAgICAgW2NsYXNzLmZ3ZS1tci0zXT1cImNvbmZpZz8udG9vbGJhcj8ub3JkZXJlZExpc3RcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICd1bCcpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi10b29sYmFyLWxpc3QgZndlLWljb24tbGlzdC1saXN0LXZpZXcgZndlLXByLTBcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5vcmRlcmVkTGlzdFwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjYnRuT2wgY2xhc3M9XCJxbC1saXN0IGZ3ZS1kLW5vbmUgYWN0aW9uLW9sXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdmFsdWU9XCJvcmRlcmVkXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZndlLWJ0biBmbmctYnRuLXRvb2xiYXItbGlzdCBmbmctYnV0dG9uXCIgKGNsaWNrKT1cImRlbGVnYXRlKCRldmVudCwgJ29sJylcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLXRvb2xiYXItbGlzdCBmd2UtaWNvbi1lbnVtZXJhdGlvbiBmd2UtcHItMFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiAqbmdJZj1cIiFoaWRlRGl2aWRlcignbGlzdHMnKVwiIGNsYXNzPVwiZm5nLWRpdmlkZXIteSBmd2UtbXgtNFwiPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5pbWFnZVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ3ZS1idG4gZm5nLWJ0bi10b29sYmFyLWxpc3QgZm5nLWJ1dHRvblwiIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICdpbWFnZScpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi10b29sYmFyLWxpc3QgZndlLWljb24taW1hZ2UtaW1hZ2UgZndlLXByLTBcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjYnRuSW1hZ2UgY2xhc3M9XCJxbC1pbWFnZSBmd2UtZC1ub25lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiAqbmdJZj1cIiFoaWRlRGl2aWRlcignaW1hZ2UnKVwiIGNsYXNzPVwiZm5nLWRpdmlkZXIteSBmd2UtbXgtNFwiPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5saW5rXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZndlLWJ0biBmbmctYnRuLXRvb2xiYXItbGlzdCBmbmctYnV0dG9uXCIgKGNsaWNrKT1cImRlbGVnYXRlKCRldmVudCwgJ2xpbmsnKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tdG9vbGJhci1saXN0IGZ3ZS1pY29uLWZpbGUtbGluayBmd2UtcHItMFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5MaW5rIGNsYXNzPVwicWwtbGluayBmd2UtZC1ub25lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm5nLWVkaXRvci1jb250YWluZXJcIiBbaWRdPVwiJ2VkaXRvci1jb250YWluZXItJyArIGlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZuZy1lZGl0b3JcIiBbaWRdPVwiJ2VkaXRvci0nICsgaWRcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxzcGFuIGNsYXNzPVwiZndlLWlucHV0LXRleHQtbGFiZWxcIiBbaWRdPVwiJ2VkaXRvci1sYWJlbC0nICsgaWRcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJoaW50XCIgY2xhc3M9XCJmbmctdGV4dC1lZGl0b3ItaW5mb1wiPnt7IGhpbnQgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImZuZy10ZXh0LWVkaXRvci1pbnZhbGlkXCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwibWF4TGVuZ3RoID4gMCAmJiB2YWx1ZSAhPSBudWxsXCIgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dC1jb3VudFwiPnt7IGN1cnJlbnRMZW5ndGgoKSB9fSAvIHt7IG1heExlbmd0aCB9fTwvc3Bhbj5cbjwvbGFiZWw+XG4iXX0=
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsS0FBSyxFQUVMLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUVWLFNBQVMsRUFHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQWtDcEUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLDBCQUFrQztJQXFGekUsWUFBbUIsVUFBc0IsRUFBVSxRQUFtQixFQUFVLFlBQTBCO1FBQ3hHLEtBQUssRUFBRSxDQUFDO1FBRFMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpGMUcsa0JBQWEsR0FBNEI7WUFDdkMsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRSxJQUFJO2dCQUNaLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFB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QUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29KQXlCcUIsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNJLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0ksY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0MsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNKLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDQSxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0UsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNLLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFFWCxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBJbnB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgU2VjdXJpdHlDb250ZXh0LFxuICBFbGVtZW50UmVmLFxuICBSZW5kZXJlcjIsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBPbkNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFF1aWxsVHlwZSBmcm9tICdxdWlsbCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL3ZhbHVlLWFjY2Vzc29yLWJhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRFZGl0b3JDb25maWd1cmF0aW9uIHtcbiAgdG9vbGJhcj86IHtcbiAgICBib2xkPzogYm9vbGVhbjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgYWxpZ25DZW50ZXI/OiBib29sZWFuO1xuICAgIGFsaWduUmlnaHQ/OiBib29sZWFuO1xuICAgIGJ1bGxldExpc3Q/OiBib29sZWFuO1xuICAgIG9yZGVyZWRMaXN0PzogYm9vbGVhbjtcbiAgICBpbWFnZT86IGJvb2xlYW47XG4gICAgbGluaz86IGJvb2xlYW47XG4gIH07XG4gIHNhbml0aXppbmc/OiB7XG4gICAgc2tpcERlZmF1bHRTYW5pdGl6aW5nPzogYm9vbGVhbjtcbiAgICBza2lwV2hpdGVzcGFjZUhhbmRsaW5nPzogYm9vbGVhbjtcbiAgICBzYW5pdGl6aW5nRm4/OiAoZHM6IERvbVNhbml0aXplciwgdmFsdWU6IHN0cmluZykgPT4gc3RyaW5nO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZuZy10ZXh0LWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEVkaXRvckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0RWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgVmFsdWVBY2Nlc3NvckJhc2VEaXJlY3RpdmU8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgaWQ6IHN0cmluZztcbiAgcXVpbGxFZGl0b3IhOiBRdWlsbFR5cGU7XG4gIGVkaXRvckVsZW0hOiBIVE1MRWxlbWVudDtcbiAgZGVmYXVsdENvbmZpZzogVGV4dEVkaXRvckNvbmZpZ3VyYXRpb24gPSB7XG4gICAgdG9vbGJhcjoge1xuICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgIGl0YWxpYzogdHJ1ZSxcbiAgICAgIHVuZGVybGluZTogdHJ1ZSxcbiAgICAgIGFsaWduQ2VudGVyOiB0cnVlLFxuICAgICAgYWxpZ25SaWdodDogdHJ1ZSxcbiAgICAgIGJ1bGxldExpc3Q6IHRydWUsXG4gICAgICBvcmRlcmVkTGlzdDogdHJ1ZSxcbiAgICAgIGltYWdlOiB0cnVlLFxuICAgICAgbGluazogdHJ1ZVxuICAgIH0sXG4gICAgc2FuaXRpemluZzoge1xuICAgICAgc2FuaXRpemluZ0ZuOiBudWxsLFxuICAgICAgc2tpcERlZmF1bHRTYW5pdGl6aW5nOiBmYWxzZSxcbiAgICAgIHNraXBXaGl0ZXNwYWNlSGFuZGxpbmc6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2J0bkJvbGQnKSBidG5Cb2xkOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdidG5JdGFsaWMnKSBidG5JdGFsaWM6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2J0blVuZGVybGluZScpIGJ0blVuZGVybGluZTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnRuQWxpZ25DZW50ZXInKSBidG5BbGlnbkNlbnRlcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYnRuQWxpZ25SaWdodCcpIGJ0bkFsaWduUmlnaHQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2J0bkxpbmsnKSBidG5MaW5rOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdidG5VbCcpIGJ0blVsOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdidG5PbCcpIGJ0bk9sOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdidG5JbWFnZScpIGJ0bkltYWdlOiBFbGVtZW50UmVmO1xuXG4gIEBPdXRwdXQoKSBmbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogVGV4dEVkaXRvckNvbmZpZ3VyYXRpb24gPSB0aGlzLmRlZmF1bHRDb25maWc7XG4gIEBJbnB1dCgpIG1vZHVsZXM6IGFueTtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBlcnJvcjogc3RyaW5nO1xuICBASW5wdXQoKSBoaW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaW5uZXJWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5jaGFuZ2VkLmZvckVhY2goZiA9PiB7XG4gICAgICAgIHRoaXMuZm5nQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICByZXR1cm4gZih2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuXG4gIC8vIG5lZWRlZCB0byBhY2Nlc3MgZWRpdG9yIGNvbnRlbnRcbiAgdmFsdWVHZXR0ZXIgPSAoZWRpdG9yRWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcgfCBhbnkgPT4ge1xuICAgIGxldCBodG1sOiBzdHJpbmcgfCBudWxsID0gZWRpdG9yRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucWwtZWRpdG9yJykuaW5uZXJIVE1MO1xuICAgIGlmIChodG1sID09PSAnPHA+PGJyPjwvcD4nIHx8IGh0bWwgPT09ICc8ZGl2Pjxicj48L2Rpdj4nKSB7XG4gICAgICBodG1sID0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWw7XG4gIH07XG5cbiAgLy8gbmVlZGVkIHRvIGFjY2VzcyBlZGl0b3IgY29udGVudFxuICB2YWx1ZVNldHRlciA9IChxdWlsbEVkaXRvcjogUXVpbGxUeXBlLCB2YWx1ZTogYW55KTogYW55ID0+IHtcbiAgICBjb25zdCBzYW5pdGl6ZUNvbmZpZyA9IHRoaXMuY29uZmlnPy5zYW5pdGl6aW5nIHx8IHRoaXMuZGVmYXVsdENvbmZpZy5zYW5pdGl6aW5nO1xuXG4gICAgaWYgKHNhbml0aXplQ29uZmlnLnNhbml0aXppbmdGbikge1xuICAgICAgdmFsdWUgPSBzYW5pdGl6ZUNvbmZpZy5zYW5pdGl6aW5nRm4odGhpcy5kb21TYW5pdGl6ZXIsIHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKCFzYW5pdGl6ZUNvbmZpZy5za2lwRGVmYXVsdFNhbml0aXppbmcpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5kb21TYW5pdGl6ZXIuc2FuaXRpemUoU2VjdXJpdHlDb250ZXh0LkhUTUwsIHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKCFzYW5pdGl6ZUNvbmZpZy5za2lwV2hpdGVzcGFjZUhhbmRsaW5nKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuaGFuZGxlV2hpdGVzcGFjZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1aWxsRWRpdG9yLmNsaXBib2FyZC5jb252ZXJ0KHZhbHVlKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSAoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsICctJyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JFbGVtID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgI2VkaXRvci0ke3RoaXMuaWR9YCk7XG5cbiAgICB0aGlzLnF1aWxsRWRpdG9yID0gbmV3IFF1aWxsVHlwZSh0aGlzLmVkaXRvckVsZW0sIHtcbiAgICAgIG1vZHVsZXM6IHsgdG9vbGJhcjogYCNlZGl0b3ItdG9vbGJhci0ke3RoaXMuaWR9YCwgLi4udGhpcy5tb2R1bGVzIH0sXG4gICAgICB0aGVtZTogJ3Nub3cnLFxuICAgICAgc2Nyb2xsaW5nQ29udGFpbmVyOiBgI2VkaXRvci1jb250YWluZXItJHt0aGlzLmlkfWBcbiAgICB9KTtcbiAgICB0aGlzLnNldEVkaXRvckxhYmVsKCk7XG4gICAgdGhpcy5hZGRXaGl0ZXNwYWNlTWF0Y2hlcigpO1xuICAgIHRoaXMuYWRkSW1hZ2VNYXRjaGVyKCk7XG5cbiAgICBpZiAodGhpcy5pbm5lclZhbHVlKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy52YWx1ZVNldHRlcih0aGlzLnF1aWxsRWRpdG9yLCB0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgdGhpcy5xdWlsbEVkaXRvci5zZXRDb250ZW50cyhjb250ZW50LCAnc2lsZW50Jyk7XG4gICAgICB0aGlzLnF1aWxsRWRpdG9yLmdldE1vZHVsZSgnaGlzdG9yeScpLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGUoKTtcblxuICAgIHRoaXMucXVpbGxFZGl0b3Iub24oJ3RleHQtY2hhbmdlJywgKCkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWVHZXR0ZXIodGhpcy5lZGl0b3JFbGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcz8uY29uZmlnPy5jdXJyZW50VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5jb25maWcgPSB7IHRvb2xiYXI6IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLnRvb2xiYXIsIC4uLmNoYW5nZXMuY29uZmlnLmN1cnJlbnRWYWx1ZT8udG9vbGJhciB9IH07XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnF1aWxsRWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGUoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICghdGhpcy5xdWlsbEVkaXRvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnZhbHVlU2V0dGVyKHRoaXMucXVpbGxFZGl0b3IsIHZhbHVlKTtcbiAgICB0aGlzLnF1aWxsRWRpdG9yLnNldENvbnRlbnRzKGNvbnRlbnQpO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuID0gdGhpcy5kaXNhYmxlZCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmICh0aGlzLnF1aWxsRWRpdG9yKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnF1aWxsRWRpdG9yLmRpc2FibGUoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgdGhpcy5xdWlsbEVkaXRvci5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UmVhZE9ubHlTdGF0ZSgpIHtcbiAgICB0aGlzLnF1aWxsRWRpdG9yLmVuYWJsZSghdGhpcy5yZWFkT25seSk7XG4gIH1cblxuICBkZWxlZ2F0ZShldmVudDogYW55LCBhY3Rpb246IHN0cmluZykge1xuICAgIGxldCBidG46IEhUTUxFbGVtZW50ID0gbnVsbDtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnYm9sZCc6XG4gICAgICAgIGJ0biA9IHRoaXMuYnRuQm9sZC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpdGFsaWMnOlxuICAgICAgICBidG4gPSB0aGlzLmJ0bkl0YWxpYy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1bmRlcmxpbmUnOlxuICAgICAgICBidG4gPSB0aGlzLmJ0blVuZGVybGluZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGlnbi1jZW50ZXInOlxuICAgICAgICBidG4gPSB0aGlzLmJ0bkFsaWduQ2VudGVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGJ0bi5jbGljaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FsaWduLXJpZ2h0JzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5BbGlnblJpZ2h0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGJ0bi5jbGljaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICBidG4gPSB0aGlzLmJ0bkxpbmsubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndWwnOlxuICAgICAgICBidG4gPSB0aGlzLmJ0blVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGJ0bi5jbGljaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29sJzpcbiAgICAgICAgYnRuID0gdGhpcy5idG5PbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBidG4uY2xpY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIGJ0biA9IHRoaXMuYnRuSW1hZ2UubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYnRuLmNsaWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgY3VycmVudExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5sZW5ndGg7XG4gIH1cblxuICBoaWRlRGl2aWRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsaW5rT3JJbWFnZSA9IHRoaXMuY29uZmlnLnRvb2xiYXIuaW1hZ2UgfHwgdGhpcy5jb25maWcudG9vbGJhci5saW5rO1xuICAgIGNvbnN0IGxpc3RzID0gdGhpcy5jb25maWcudG9vbGJhci5idWxsZXRMaXN0IHx8IHRoaXMuY29uZmlnLnRvb2xiYXIub3JkZXJlZExpc3Q7XG4gICAgY29uc3QgdHlwb3MgPSB0aGlzLmNvbmZpZy50b29sYmFyLmJvbGQgfHwgdGhpcy5jb25maWcudG9vbGJhci5pdGFsaWMgfHwgdGhpcy5jb25maWcudG9vbGJhci51bmRlcmxpbmU7XG4gICAgY29uc3QgdGV4dEFsaWduID0gdGhpcy5jb25maWcudG9vbGJhci5hbGlnbkNlbnRlciB8fCB0aGlzLmNvbmZpZy50b29sYmFyLmFsaWduUmlnaHQ7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICd0eXBvJzpcbiAgICAgICAgcmV0dXJuICF0eXBvcyB8fCAoIXRleHRBbGlnbiAmJiAhbGlua09ySW1hZ2UgJiYgIWxpc3RzKTtcbiAgICAgIGNhc2UgJ3RleHQtYWxpZ24nOlxuICAgICAgICByZXR1cm4gIXRleHRBbGlnbiB8fCAoIWxpbmtPckltYWdlICYmICFsaXN0cyk7XG4gICAgICBjYXNlICdsaXN0cyc6XG4gICAgICAgIHJldHVybiAhbGlzdHMgfHwgIWxpbmtPckltYWdlO1xuICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICByZXR1cm4gIXRoaXMuY29uZmlnLnRvb2xiYXIuaW1hZ2UgfHwgIXRoaXMuY29uZmlnLnRvb2xiYXIubGluaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RWRpdG9yTGFiZWwoKSB7XG4gICAgY29uc3QgZWRpdG9yRGl2ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnFsLWVkaXRvcicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVkaXRvckRpdiwgJ3JvbGUnLCAndGV4dGJveCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVkaXRvckRpdiwgJ2FyaWEtbGFiZWxsZWRieScsIGBlZGl0b3ItbGFiZWwtJHt0aGlzLmlkfWApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVkaXRvckRpdiwgJ2FyaWEtbXVsdGlsaW5lJywgJ3RydWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlKCkge1xuICAgIHRoaXMuc2V0UmVhZE9ubHlTdGF0ZSgpO1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRXaGl0ZXNwYWNlTWF0Y2hlcigpIHtcbiAgICAvLyBzZXQgdXAgYSBtYXRjaGVyIHRoYXQgcmVwbGFjZXMgcGxhY2Vob2xkZXIgIyMjdGFiIyMjIHdpdGggXFx0IGluIGRlbHRhIGFnYWluXG4gICAgdGhpcy5xdWlsbEVkaXRvci5jbGlwYm9hcmQuYWRkTWF0Y2hlcigncCcsIChfbm9kZSwgZGVsdGEpID0+IHtcbiAgICAgIGxldCBzdHIgPSBKU09OLnN0cmluZ2lmeShkZWx0YSk7XG4gICAgICBzdHIgPSBzdHIucmVwbGFjZSgvIyMjdGFiIyMjL2csICdcXFxcdCcpO1xuICAgICAgZGVsdGEgPSBKU09OLnBhcnNlKHN0cik7XG4gICAgICByZXR1cm4gZGVsdGE7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEltYWdlTWF0Y2hlcigpIHtcbiAgICAvLyBzZXQgdXAgYSBtYXRjaGVyIHRoYXQgZG9lcyBhbGxvdy9kaXNhbGxvdyB0byBwYXN0ZSBpbWFnZXMgY29ycmVzcG9uZGluZyB0byBjb25maWcgc2V0dGluZ3NcbiAgICB0aGlzLnF1aWxsRWRpdG9yLmNsaXBib2FyZC5hZGRNYXRjaGVyKCdpbWcnLCAoX25vZGUsIGRlbHRhKSA9PiB7XG4gICAgICAvLyBhbGxvd2VkLCBwYXNzdGhydSBkZWx0YVxuICAgICAgaWYgKHRoaXMuY29uZmlnLnRvb2xiYXIuaW1hZ2UgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGRlbHRhO1xuICAgICAgfVxuXG4gICAgICAvLyBub3QgYWxsb3dlZCwgcmVtb3ZlIGltYWdlIGJ5IHNldHRpbmcgdXAgYSBuZXcgZGVsdGFcbiAgICAgIGNvbnN0IERlbHRhID0gUXVpbGxUeXBlLmltcG9ydCgncXVpbGwtZGVsdGEnKTtcbiAgICAgIHJldHVybiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVXaGl0ZXNwYWNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIHNldCBhIHBsYWNlaG9sZGVyIGZvciB0YWIgZW50aXR5IHRvIGF2b2lkIHRoYXQgcXVpbGwgcmVtb3ZlcyBpdFxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mIzk7L2dpLCAnIyMjdGFiIyMjJyk7XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0XCIgW2NsYXNzLmZ3ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICA8ZGl2IGNsYXNzPVwiZm5nLWVkaXRvci10b29sYmFyXCIgW2lkXT1cIidlZGl0b3ItdG9vbGJhci0nICsgaWRcIj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHMgZndlLWQtbm9uZVwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLXNpemVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJsYXJnZVwiPjwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVnZVwiPjwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0cyBmbmctZWRpdG9yLXRvb2xiYXItYnV0dG9ucy1jb250YWluZXIgZndlLW1yLTNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnRvb2xiYXI/LmJvbGRcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2J0bkJvbGQgY2xhc3M9XCJxbC1ib2xkIGZ3ZS1kLW5vbmUgYWN0aW9uLWJvbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiZndlLWJ0biBmbmctYnV0dG9uXCJcbiAgICAgICAgICBbY2xhc3MuZndlLW1yLTNdPVwiY29uZmlnPy50b29sYmFyPy51bmRlcmxpbmUgfHwgY29uZmlnPy50b29sYmFyPy5pdGFsaWNcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICdib2xkJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm5nLWJ1dHRvbi10ZXh0IGZuZy10ZXh0LWJvbGRcIj5CPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5pdGFsaWNcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2J0bkl0YWxpYyBjbGFzcz1cInFsLWl0YWxpYyBmd2UtZC1ub25lIGFjdGlvbi1pdGFsaWNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiZndlLWJ0biBmbmctYnV0dG9uXCJcbiAgICAgICAgICBbY2xhc3MuZndlLW1yLTNdPVwiY29uZmlnPy50b29sYmFyPy51bmRlcmxpbmVcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICdpdGFsaWMnKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbmctYnV0dG9uLXRleHQgZm5nLXRleHQtaXRhbGljXCI+STwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8udG9vbGJhcj8udW5kZXJsaW5lXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5VbmRlcmxpbmUgY2xhc3M9XCJxbC11bmRlcmxpbmUgZndlLWQtbm9uZSBhY3Rpb24tdW5kZXJsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZndlLWJ0biBmbmctYnV0dG9uXCIgKGNsaWNrKT1cImRlbGVnYXRlKCRldmVudCwgJ3VuZGVybGluZScpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZuZy1idXR0b24tdGV4dCBmbmctdGV4dC11bmRlcmxpbmVcIj5VPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhaGlkZURpdmlkZXIoJ3R5cG8nKVwiIGNsYXNzPVwiZm5nLWRpdmlkZXIteSBmd2UtbXgtNFwiPjwvZGl2PlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5hbGlnbkNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjYnRuQWxpZ25DZW50ZXIgY2xhc3M9XCJxbC1hbGlnbiBmd2UtZC1ub25lIGFjdGlvbi1hbGlnbi1jZW50ZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB2YWx1ZT1cImNlbnRlclwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJmd2UtYnRuIGZuZy1idG4tdG9vbGJhci1saXN0IGZuZy1idXR0b25cIlxuICAgICAgICAgIFtjbGFzcy5md2UtbXItM109XCJjb25maWc/LnRvb2xiYXI/LmFsaWduUmlnaHRcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxlZ2F0ZSgkZXZlbnQsICdhbGlnbi1jZW50ZXInKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tdG9vbGJhci1saXN0IGZuZy1pY29uLXRleHQtYWxpZ24tY2VudGVyIGZ3ZS1wci0wXCIgW2NsYXNzLmZuZy1ncmF5XT1cImRpc2FibGVkXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnPy50b29sYmFyPy5hbGlnblJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5BbGlnblJpZ2h0IGNsYXNzPVwicWwtYWxpZ24gZndlLWQtbm9uZSBhY3Rpb24tYWxpZ24tcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB2YWx1ZT1cInJpZ2h0XCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImZ3ZS1idG4gZm5nLWJ0bi10b29sYmFyLWxpc3QgZm5nLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGVnYXRlKCRldmVudCwgJ2FsaWduLXJpZ2h0JylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLXRvb2xiYXItbGlzdCBmbmctaWNvbi10ZXh0LWFsaWduLXJpZ2h0IGZ3ZS1wci0wXCIgW2NsYXNzLmZuZy1ncmF5XT1cImRpc2FibGVkXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVEaXZpZGVyKCd0ZXh0LWFsaWduJylcIiBjbGFzcz1cImZuZy1kaXZpZGVyLXkgZndlLW14LTRcIj48L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZz8udG9vbGJhcj8uYnVsbGV0TGlzdFwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjYnRuVWwgY2xhc3M9XCJxbC1saXN0IGZ3ZS1kLW5vbmUgYWN0aW9uLXVsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdmFsdWU9XCJidWxsZXRcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiZndlLWJ0biBmbmctYnRuLXRvb2xiYXItbGlzdCBmbmctYnV0dG9uXCJcbiAgICAgICAgICBbY2xhc3MuZndlLW1yLTNdPVwiY29uZmlnPy50b29sYmFyPy5vcmRlcmVkTGlzdFwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGVnYXRlKCRldmVudCwgJ3VsJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLXRvb2xiYXItbGlzdCBmd2UtaWNvbi1saXN0LWxpc3QtdmlldyBmd2UtcHItMFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnRvb2xiYXI/Lm9yZGVyZWRMaXN0XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5PbCBjbGFzcz1cInFsLWxpc3QgZndlLWQtbm9uZSBhY3Rpb24tb2xcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB2YWx1ZT1cIm9yZGVyZWRcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmd2UtYnRuIGZuZy1idG4tdG9vbGJhci1saXN0IGZuZy1idXR0b25cIiAoY2xpY2spPVwiZGVsZWdhdGUoJGV2ZW50LCAnb2wnKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tdG9vbGJhci1saXN0IGZ3ZS1pY29uLWVudW1lcmF0aW9uIGZ3ZS1wci0wXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVEaXZpZGVyKCdsaXN0cycpXCIgY2xhc3M9XCJmbmctZGl2aWRlci15IGZ3ZS1teC00XCI+PC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnRvb2xiYXI/LmltYWdlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZndlLWJ0biBmbmctYnRuLXRvb2xiYXItbGlzdCBmbmctYnV0dG9uXCIgKGNsaWNrKT1cImRlbGVnYXRlKCRldmVudCwgJ2ltYWdlJylcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLXRvb2xiYXItbGlzdCBmd2UtaWNvbi1pbWFnZS1pbWFnZSBmd2UtcHItMFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNidG5JbWFnZSBjbGFzcz1cInFsLWltYWdlIGZ3ZS1kLW5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVEaXZpZGVyKCdpbWFnZScpXCIgY2xhc3M9XCJmbmctZGl2aWRlci15IGZ3ZS1teC00XCI+PC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWc/LnRvb2xiYXI/LmxpbmtcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmd2UtYnRuIGZuZy1idG4tdG9vbGJhci1saXN0IGZuZy1idXR0b25cIiAoY2xpY2spPVwiZGVsZWdhdGUoJGV2ZW50LCAnbGluaycpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi10b29sYmFyLWxpc3QgZndlLWljb24tZmlsZS1saW5rIGZ3ZS1wci0wXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2J0bkxpbmsgY2xhc3M9XCJxbC1saW5rIGZ3ZS1kLW5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbmctZWRpdG9yLWNvbnRhaW5lclwiIFtpZF09XCInZWRpdG9yLWNvbnRhaW5lci0nICsgaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm5nLWVkaXRvclwiIFtpZF09XCInZWRpdG9yLScgKyBpZFwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgPHNwYW4gY2xhc3M9XCJmd2UtaW5wdXQtdGV4dC1sYWJlbFwiIFtpZF09XCInZWRpdG9yLWxhYmVsLScgKyBpZFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cImhpbnRcIiBjbGFzcz1cImZuZy10ZXh0LWVkaXRvci1pbmZvXCI+e3sgaGludCB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZm5nLXRleHQtZWRpdG9yLWludmFsaWRcIj57eyBlcnJvciB9fTwvc3Bhbj5cbiAgPHNwYW4gKm5nSWY9XCJtYXhMZW5ndGggPiAwICYmIHZhbHVlICE9IG51bGxcIiBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0LWNvdW50XCI+e3sgY3VycmVudExlbmd0aCgpIH19IC8ge3sgbWF4TGVuZ3RoIH19PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SafeHtmlPipe } from '../pipes/safe-html.pipe';
4
+ import * as i0 from "@angular/core";
5
+ export * from '../pipes/safe-html.pipe';
6
+ export class FestoAngularPipesModule {
7
+ }
8
+ FestoAngularPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ FestoAngularPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularPipesModule, declarations: [SafeHtmlPipe], imports: [CommonModule], exports: [SafeHtmlPipe] });
10
+ FestoAngularPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularPipesModule, imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: FestoAngularPipesModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [SafeHtmlPipe],
15
+ imports: [CommonModule],
16
+ exports: [SafeHtmlPipe],
17
+ providers: []
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFdkQsY0FBYyx5QkFBeUIsQ0FBQztBQVF4QyxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBTG5CLFlBQVksYUFDakIsWUFBWSxhQUNaLFlBQVk7cUhBR1gsdUJBQXVCLFlBSnhCLFlBQVk7MkZBSVgsdUJBQXVCO2tCQU5uQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4uL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2FmZUh0bWxQaXBlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTYWZlSHRtbFBpcGVdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEZlc3RvQW5ndWxhclBpcGVzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ export class SafeHtmlPipe {
6
+ constructor(sanitizer) {
7
+ this.sanitizer = sanitizer;
8
+ }
9
+ transform(value) {
10
+ return this.sanitizer.bypassSecurityTrustHtml(value);
11
+ }
12
+ }
13
+ SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
14
+ SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: SafeHtmlPipe, name: "fweSafeHtml" });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: SafeHtmlPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'fweSafeHtml'
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9waXBlcy9zYWZlLWh0bWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7OztBQUtuRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFzQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQztJQUUxQyxTQUFTLENBQUMsS0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7eUdBTFUsWUFBWTt1R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdmd2VTYWZlSHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBhbnkpOiBTYWZlSHRtbCB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcbiAgfVxufVxuIl19