keevo-components 1.8.74 → 1.8.75

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.
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
195
195
  type: HostListener,
196
196
  args: ['window:resize', ['$event']]
197
197
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1tZW51L2t2LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbWVudS9rdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBYXZCLE1BQU0sT0FBTyxlQUFlO0lBK0IxQixZQUNVLEdBQXNCLEVBQ3BCLE1BQWMsRUFDaEIsS0FBcUI7UUFGckIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWhDdEIsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLG9CQUFlLEdBQTRDLEVBQUUsQ0FBQztRQUM5RCxhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQUtqQyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELDBCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELDZCQUF3QixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BFLHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXhFLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBRXhCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFJ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QVM7dUJBQUMsZ0JBQWdCO2dCQUNGLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDSyxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBbUhuQixjQUFjO3NCQURwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGUsXG4gIFJvdXRlclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xuaW1wb3J0IHsgQXBsaWNhdGl2b01vZGVsIH0gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9hcGxpY2F0aXZvLW1vZGVsJztcbmltcG9ydCB7IE1hc3RlckNvbWJvTW9kZWwgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWxzL21hc3Rlci1jb21iby1tb2RlbCc7XG5pbXBvcnQgeyBNZW51TW9kZWwgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWxzL21lbnUtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrdi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rdi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEt2TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYXBsaWNhdGl2b3M6IEFwbGljYXRpdm9Nb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHVsdGltb0FwbGljYXRpdm9TZWxlY2lvbmFkbyE6IG51bWJlcjtcblxuICBASW5wdXQoKSBicmVhZENydW1iSXRlbXM6IHsgbGFiZWw6IHN0cmluZywgcm91dGVyTGluazogc3RyaW5nIH1bXSA9IFtdO1xuICBASW5wdXQoKSBsaWNlbmNhczogTWFzdGVyQ29tYm9Nb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIGxpY2VuY2FTZWxlY2lvbmFkYSE6IE1hc3RlckNvbWJvTW9kZWw7XG4gIEBJbnB1dCgpIGxvZ29JbWFnZSE6IGFueTtcbiAgQElucHV0KCkgbm9tZVVzdWFyaW8hOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGV4cGFuZE1lbnVFbWl0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBnZXJlbmNpYXJLZWVQYXNzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbGljZW5jYUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzYWlyRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsZWNpb25hckFwbGljYXRpdm9FbWl0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHRyb2NhckxpY2VuY2FFbWl0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7ICBcblxuICBAVmlld0NoaWxkKCdtZXVzRGFkb3NQYW5lbCcpIG1ldXNEYWRvc1BhbmVsITogT3ZlcmxheVBhbmVsO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyUmVmJykgc2lkZWJhclJlZiE6IFNpZGViYXI7XG4gIEBWaWV3Q2hpbGQoJ3Npc3RlbWFzUGFuZWwnKSBzaXN0ZW1hc1BhbmVsITogT3ZlcmxheVBhbmVsO1xuXG4gIG1lbnVzOiBNZW51TW9kZWxbXSA9IFtdO1xuXG4gIGV4cGFuZE1lbnU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlndGhDYXJkITogbnVtYmVyO1xuICBtb3VzZU92ZXJGaWxob0luZGV4OiBhbnk7XG4gIG1vdXNlT3ZlckluZGV4OiBhbnk7XG4gIHZpc2libGVEaWFsb2dMaWNlbmNhOiBib29sZWFuID0gZmFsc2U7XG4gIHdpZHRoQ2FyZCE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7IH1cblxuICBwdWJsaWMgYWp1c3RhckhlaWd0aENhcmQoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy53aWR0aENhcmQgPiA0MDApIHtcbiAgICAgIGlmICh0aGlzLmJyZWFkQ3J1bWJJdGVtcy5sZW5ndGggPiAwKSByZXR1cm4gMTA1XG4gICAgICBlbHNlIHJldHVybiA4NVxuICAgIH0gZWxzZSByZXR1cm4gODNcbiAgfVxuXG4gIHB1YmxpYyBjYWxsUm91dGUoZTogYW55LCBleHBhbmQ/OiBib29sZWFuKSB7XG4gICAgaWYgKCFleHBhbmQpXG4gICAgICAhdGhpcy5leHBhbmRNZW51ID8gdGhpcy5leHBhbmRNZW51ID0gIXRoaXMuZXhwYW5kTWVudSA6ICcnO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChlKVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmFyTGljZW5jYXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRlZmluaXJNZW51c1BvclNpc3RlbWEodGhpcy51bHRpbW9BcGxpY2F0aXZvU2VsZWNpb25hZG8gfHwgdGhpcy5hcGxpY2F0aXZvc1swXT8uaWRhcGxpY2F0aXZvKTtcbiAgICB9LCAxKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVmaW5pck1lbnVzUG9yU2lzdGVtYShpZGFwbGljYXRpdm86IG51bWJlcikge1xuICAgIHRoaXMubWVudXMgPSB0aGlzLmFwbGljYXRpdm9zLmZpbmQoKHgpID0+IHguaWRhcGxpY2F0aXZvID09IGlkYXBsaWNhdGl2byk/Lm1lbnVzIHx8IFtdO1xuXG4gICAgaWYgKHRoaXMucm91dGVyLnVybCAmJiB0aGlzLm1lbnVzICYmIHRoaXMubWVudXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMucm91dGVyLnVybCA9PT0gJy8nKSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGVUb0ZpcnN0TWVudSgpXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbWVudVNlbGVjaW9uYWRvID0gdGhpcy5tZW51cy5maW5kKChtZW51OiBhbnkpID0+IG1lbnUubGluayAmJiBtZW51LmxpbmsuaW5jbHVkZXModGhpcy5yb3V0ZXIudXJsLnNsaWNlKDEpKSk7XG4gICAgICAgIGlmIChtZW51U2VsZWNpb25hZG8pIHtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9NZW51KG1lbnVTZWxlY2lvbmFkbyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHBhbmRNZW51RXZlbnQoKSB7XG4gICAgdGhpcy5leHBhbmRNZW51RW1pdC5lbWl0KHRoaXMuZXhwYW5kTWVudSk7XG4gIH1cblxuICBwdWJsaWMgZ2VyZW5jaWFyS2VlUGFzcyhldmVudDogYW55KSB7XG4gICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcbiAgICB0aGlzLmdlcmVuY2lhcktlZVBhc3NFdmVudC5lbWl0KGV2ZW50KVxuICB9XG5cbiAgcHVibGljIG1hc2NhcmFOb21lTGljZW5jYShub21lTGljZW5jYTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAobm9tZUxpY2VuY2EpIHtcbiAgICAgIGlmIChub21lTGljZW5jYS5sZW5ndGggPiAyMylcbiAgICAgICAgcmV0dXJuIG5vbWVMaWNlbmNhLnN1YnN0cmluZygwLCAyMykgKyAnLi4uJztcbiAgICAgIGVsc2UgcmV0dXJuIG5vbWVMaWNlbmNhO1xuICAgIH0gZWxzZSByZXR1cm4gJyc7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9GaXJzdE1lbnUoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RNZW51ID0gdGhpcy5tZW51c1swXTtcbiAgICBpZiAoZmlyc3RNZW51LmluZG1lbnVwYWkpIHtcbiAgICAgIGNvbnN0IGZpbGhvcyA9IHRoaXMucmV0b3JuYXJNZW51RmlsaG9zKGZpcnN0TWVudS5pZGFwbGljYXRpdm8sIGZpcnN0TWVudS5pZG1lbnUpO1xuICAgICAgaWYgKGZpbGhvcykge1xuICAgICAgICB0aGlzLmNhbGxSb3V0ZShmaWxob3NbMF0ubGluaywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FsbFJvdXRlKGZpcnN0TWVudS5saW5rLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9NZW51KG1lbnU6IGFueSk6IHZvaWQge1xuICAgIGlmIChtZW51Lm1lbnVwYWkpIHtcbiAgICAgIGNvbnN0IGZpbGhvcyA9IHRoaXMucmV0b3JuYXJNZW51RmlsaG9zKG1lbnUuaWRzaXN0ZW1hLCBtZW51LmlkbWVudSk7XG4gICAgICBpZiAoZmlsaG9zKSB7XG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYWxsUm91dGUobWVudS5saW5rLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmFyTGljZW5jYXMoKTtcbiAgICB0aGlzLmhlaWd0aENhcmQgPSBOdW1iZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2UtY29udGVudCcpPy5vZmZzZXRIZWlnaHQpO1xuICAgIHRoaXMud2lkdGhDYXJkID0gTnVtYmVyKHdpbmRvdy5pbm5lcldpZHRoKSAtICh0aGlzLmV4cGFuZE1lbnUgPyAzMzMgOiA5Myk7XG4gICAgdGhpcy5leHBhbmRNZW51RXZlbnQoKVxuICB9XG5cbiAgcHVibGljIG9uTW91c2VFbnRlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5tb3VzZU92ZXJJbmRleCA9IGluZGV4O1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VGaWxob0VudGVyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm1vdXNlT3ZlckZpbGhvSW5kZXggPSBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5tb3VzZU92ZXJJbmRleCA9IG51bGw7XG4gICAgdGhpcy5tb3VzZU92ZXJGaWxob0luZGV4ID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy5oZWlndGhDYXJkID0gTnVtYmVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWNvbnRlbnQnKT8ub2Zmc2V0SGVpZ2h0KTtcbiAgICB0aGlzLndpZHRoQ2FyZCA9IE51bWJlcih3aW5kb3cuaW5uZXJXaWR0aCkgLSAodGhpcy5leHBhbmRNZW51ID8gMzMzIDogOTMpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXRvcm5hck1lbnVGaWxob3MoaWRhcGxpY2F0aXZvOiBudW1iZXIsIGlkbWVudTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBsaWNhdGl2b3NcbiAgICAgIC5maW5kKCh4KSA9PiB4LmlkYXBsaWNhdGl2byA9PSBpZGFwbGljYXRpdm8pPy5tZW51c1xuICAgICAgLmZpbHRlcigoeCkgPT4geC5pZG1lbnVwYWkgPT0gaWRtZW51KTtcbiAgfVxuXG4gIHB1YmxpYyBzYWlyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xuICAgIHRoaXMuc2FpckV2ZW50LmVtaXQoZXZlbnQpXG4gIH1cblxuICBwdWJsaWMgc2VsZWNpb25hckFwbGljYXRpdm8oaWRhcGxpY2F0aXZvOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjaW9uYXJBcGxpY2F0aXZvRW1pdC5lbWl0KGlkYXBsaWNhdGl2byk7XG4gICAgdGhpcy5kZWZpbmlyTWVudXNQb3JTaXN0ZW1hKGlkYXBsaWNhdGl2byk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcbiAgICB0aGlzLmV4cGFuZE1lbnUgPSAhdGhpcy5leHBhbmRNZW51O1xuICAgIHRoaXMuZXhwYW5kTWVudUV2ZW50KClcbiAgfVxuXG4gIHB1YmxpYyB0cm9jYXJMaWNlbmNhKCkge1xuICAgIHRoaXMudHJvY2FyTGljZW5jYUVtaXQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKGxpbms6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMobGluayk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG92ZXJmbG93LXktaGlkZGVuIHctIGZ1bGwtY29udGFpbmVyXCI+XG5cbiAgPGRpdiBbc3R5bGVdPVwie21pbldpZHRoOiBleHBhbmRNZW51ID8gJzMwMHB4JyA6ICc2MHB4J31cIj48L2Rpdj5cblxuICA8cC1zaWRlYmFyXG4gICAgI3NpZGViYXJSZWZcbiAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiXG4gICAgW21vZGFsXT1cImZhbHNlXCJcbiAgICBbc3R5bGVdPVwie3dpZHRoOiBleHBhbmRNZW51ID8gJzMwMHB4JyA6ICc2MHB4J31cIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRsZXNzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBteC0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGZsZXgtc2hyaW5rLTAgbXgtMlwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIge3tleHBhbmRNZW51ID8gJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJyA6ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ319IHB5LTNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgYWx0PVwiQ2FyZFwiXG4gICAgICAgICAgICAgIFtzcmNdPVwibG9nb0ltYWdlXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxNTBcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHBhZGRpbmctc3R5bGUgaC0ycmVtIHctMnJlbSBob3ZlcjpiZy1ncmVlbi02MDAgaG92ZXI6dGV4dC13aGl0ZSBpY29uLW1lbnVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCJcbiAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImV4cGFuZE1lbnUgPyAnT2N1dGFyIE1lbnUnIDogJ0V4cGFuZGlyIE1lbnUnXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+XG4gICAgICAgICAgICAgICAgbWVudVxuICAgICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIge3tleHBhbmRNZW51ID8gJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJyA6ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ319XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0cm9jYXJMaWNlbmNhKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIG1yLTJcIlxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJ0aGlzLmxpY2VuY2FTZWxlY2lvbmFkYS5ub21lXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidyaWdodCdcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3ttYXNjYXJhTm9tZUxpY2VuY2EodGhpcy5saWNlbmNhU2VsZWNpb25hZGEubm9tZSl9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBtdC0xXCI+e3t0aGlzLmxpY2VuY2FTZWxlY2lvbmFkYS5jcGZjbnBqIHxcbiAgICAgICAgICAgICAgICBjcGZDbnBqIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCBwYWRkaW5nLXN0eWxlIGgtMnJlbSB3LTJyZW0gaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGUgaWNvbi1tZW51XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRyb2NhckxpY2VuY2EoKVwiXG4gICAgICAgICAgICAgIFtwVG9vbHRpcF09XCInQWx0ZXJhciB3b3Jrc3BhY2UnXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+XG4gICAgICAgICAgICAgICAgc3luY19hbHRcbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cC1kaXZpZGVyIHR5cGU9XCJzb2xpZFwiPjwvcC1kaXZpZGVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJsaXN0LW5vbmUgbS0wICBjYXJkLWNvbnRhaW5lciB7e2V4cGFuZE1lbnUgPyAnbXgtMScgOiAnJ319XCJcbiAgICAgICAgICBbc3R5bGUubWF4LWhlaWdodF09XCIoaGVpZ3RoQ2FyZCAtIDIyMCkgKyAncHgnXCJcbiAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93LXk6IGF1dG87XCJcbiAgICAgICAgPlxuICAgICAgICAgIDwhLS0gbWVudXMgLS0+XG4gICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8IS0tIG1lbnUgcXVlIG7Do28gdGVtIGZpbGhvIC0tPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKGkpXCJcbiAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2hvdmVyLWNvbG9yJzogbW91c2VPdmVySW5kZXggPT09IGl9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxSb3V0ZShtZW51LmxpbmspXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbWVudS5pbmRtZW51cGFpICYmICghbWVudS5pZG1lbnVwYWkgfHwgbWVudS5pZG1lbnVwYWkgPT0gMClcIlxuICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIhZXhwYW5kTWVudSA/IG1lbnUuZGVzY3JpY2FvbWVudSA6ICcnXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ7e3ZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKG1lbnUubGluaykgPyAnYmctZ3JlZW4tNjAwJyA6ICcnfX0gbWVudS1vcHRpb24gZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbm8tdW5kZXJsaW5lIHt7IWV4cGFuZE1lbnUgPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnJ319IGN1cnNvci1wb2ludGVyIGJvcmRlci1yb3VuZCB0ZXh0LTcwMCBob3ZlcjpiZy1ncmVlbi02MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWR1cmF0aW9uLTE1MCB0cmFuc2l0aW9uLWNvbG9ycyBwLXJpcHBsZVwiXG4gICAgICAgICAgICA+XG5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaWNvbi1tZW51IHt7ZXhwYW5kTWVudSA/ICdtbC0xIG1yLTInIDogJyd9fSAgaWNvbi1ob3Zlci1jb2xvciB7e3ZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKG1lbnUubGluaykgPyAndGV4dC13aGl0ZScgOiAnJ319XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1lbnUuaWNvbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgbWVudS5pY29uZSB9fVxuICAgICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ibHVlLTkwMCBmb250LW1lZGl1bSB7e3ZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKG1lbnUubGluaykgPyAndGV4dC13aGl0ZScgOiAnJ319XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIlxuICAgICAgICAgICAgICA+e3sgbWVudS5kZXNjcmljYW9tZW51IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPCEtLSBtZW51IGNvbSBmaWxobyAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZW51LmluZG1lbnVwYWlcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoaSlcIlxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2hvdmVyLWNvbG9yJzogbW91c2VPdmVySW5kZXggPT09IGl9XCJcbiAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgcFN0eWxlQ2xhc3M9XCJAbmV4dFwiXG4gICAgICAgICAgICAgICAgZW50ZXJDbGFzcz1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgZW50ZXJBY3RpdmVDbGFzcz1cInNsaWRlZG93blwiXG4gICAgICAgICAgICAgICAgbGVhdmVUb0NsYXNzPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBsZWF2ZUFjdGl2ZUNsYXNzPVwic2xpZGV1cFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LW9wdGlvbiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB7eyFleHBhbmRNZW51ID8gJ2p1c3RpZnktY29udGVudC1jZW50ZXInIDogJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJ319IGN1cnNvci1wb2ludGVyIGJvcmRlci1yb3VuZCB0ZXh0LTcwMCBob3ZlcjpiZy1ncmVlbi02MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWR1cmF0aW9uLTE1MCB0cmFuc2l0aW9uLWNvbG9ycyBwLXJpcHBsZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUgPyBtZW51LmRlc2NyaWNhb21lbnUgOiAnJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFleHBhbmRNZW51ID8gZXhwYW5kTWVudSA9ICFleHBhbmRNZW51IDogJydcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLW1lbnUge3tleHBhbmRNZW51ID8gJ21sLTEgbXItMicgOiAnJ319IGljb24taG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1lbnUuaWNvbmVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2hvdmVyLWNvbG9yJzogbW91c2VPdmVySW5kZXggPT09IGl9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgbWVudS5pY29uZSB9fVxuICAgICAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ibHVlLTkwMCBmb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudVwiXG4gICAgICAgICAgICAgICAgICA+e3sgbWVudS5kZXNjcmljYW9tZW51IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInBpIHBpLWNoZXZyb24tZG93biB0ZXh0LWJsdWUtOTAwIG1yLTEgaWNvbi1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydob3Zlci1jb2xvcic6IG1vdXNlT3ZlckluZGV4ID09PSBpfVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgPC9hPlxuXG4gICAgICAgICAgICAgIDwhLS0gZmlsaG9zIC0tPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LW5vbmUgcHktMCBwbC0zIHByLTAgbS0wIGhpZGRlbiBvdmVyZmxvdy15LWhpZGRlbiB0cmFuc2l0aW9uLWFsbCB0cmFuc2l0aW9uLWR1cmF0aW9uLTQwMCB0cmFuc2l0aW9uLWVhc2UtaW4tb3V0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpbGhvIG9mIHJldG9ybmFyTWVudUZpbGhvcyhtZW51LmlkYXBsaWNhdGl2bywgbWVudS5pZG1lbnUpOyAgbGV0IGlGaWxobyA9IGluZGV4XG4gICAgICAgICAgICBcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VGaWxob0VudGVyKGZpbGhvLmlkbWVudSlcIlxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXItY29sb3InOiBtb3VzZU92ZXJGaWxob0luZGV4ID09PSBmaWxoby5pZG1lbnV9XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxSb3V0ZShmaWxoby5saW5rKVwiXG4gICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJ7e3ZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKGZpbGhvLmxpbmspID8gJ2JnLWdyZWVuLTYwMCcgOiAnJ319IG1lbnUtb3B0aW9uIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlciBib3JkZXItcm91bmQgdGV4dC03MDAgaG92ZXI6YmctZ3JlZW4tNjAwIHRyYW5zaXRpb24tZHVyYXRpb24tMTUwIHRyYW5zaXRpb24tY29sb3JzIHAtcmlwcGxlIHAtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb24tbWVudSB7e2V4cGFuZE1lbnUgPyAnbWwtMSBtci0yJyA6ICcnfX0gaWNvbi1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJmaWxoby5pY29uZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydob3Zlci1jb2xvcic6IG1vdXNlT3ZlckluZGV4ID09PSBpfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBmaWxoby5pY29uZSB9fVxuICAgICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ibHVlLTkwMCBtbC00IHt7dmVyaWZpY2FyUGFnaW5hU2VsZWNpb25hZGEoZmlsaG8ubGluaykgPyAndGV4dC13aGl0ZScgOiAnJ319XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIlxuICAgICAgICAgICAgICA+e3sgZmlsaG8uZGVzY3JpY2FvbWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuPC9kaXY+XG48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48L3Atc2lkZWJhcj5cblxuPGRpdlxuICBjbGFzcz1cInctYXV0byBoLXNjcmVlbiBwYWdlLWNvbnRlbnQgb3ZlcmZsb3cteS1oaWRkZW5cIlxuICBpZD1cInBhZ2UtY29udGVudFwiXG4+XG5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG0tM1wiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cInRleHQteGwgZm9udC1zZW1pYm9sZCB0ZXh0LWJsdWUtOTAwIGJyZWFkY3J1bWItdGl0bGVcIj57e2JyZWFkQ3J1bWJJdGVtc1ticmVhZENydW1iSXRlbXMubGVuZ3RoIC1cbiAgICAgICAgMV0/LmxhYmVsfX08L3A+XG4gICAgICA8cC1icmVhZGNydW1iXG4gICAgICAgICpuZ0lmPVwid2lkdGhDYXJkID4gNDAwXCJcbiAgICAgICAgc3R5bGVDbGFzcz1cImJvcmRlci1ub25lIHAtMCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBoLTJyZW0gIWltcG9ydGFudDtcIlxuICAgICAgICBbbW9kZWxdPVwiYnJlYWRDcnVtYkl0ZW1zXCJcbiAgICAgICAgW3N0eWxlXT1cIntiYWNrZ3JvdW5kQ29sb3I6ICcjZDRkM2QzJ31cIlxuICAgICAgICAob25JdGVtQ2xpY2spPVwiY2FsbFJvdXRlKCRldmVudC5pdGVtLnJvdXRlckxpbmssIHRydWUpXCJcbiAgICAgID48L3AtYnJlYWRjcnVtYj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3LWF1dG8gZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cblxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJ3LTJyZW0gaC0ycmVtIHRleHQtYmx1ZS05MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGVcIlxuICAgICAgICBpY29uPVwicGkgcGktdGgtbGFyZ2VcIlxuICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcbiAgICAgICAgW3RleHRdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJzaXN0ZW1hc1BhbmVsLnRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW3BUb29sdGlwXT1cIidTaXN0ZW1hcydcIlxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiXG4gICAgICA+PC9wLWJ1dHRvbj5cblxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJ3LTJyZW0gaC0ycmVtIHRleHQtYmx1ZS05MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGVcIlxuICAgICAgICBpY29uPVwicGkgcGktdXNlclwiXG4gICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICAgICAgW3BUb29sdGlwXT1cIidNZW51IGRvIFVzdcOhcmlvJ1wiXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcbiAgICAgICAgKGNsaWNrKT1cIm1ldXNEYWRvc1BhbmVsLnRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgID48L3AtYnV0dG9uPlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxwLWNhcmRcbiAgICBjbGFzcz1cImNhcmQtY29udGFpbmVyXCJcbiAgICBzdHlsZUNsYXNzPVwibS0zIGJvcmRlci1ub3JvdW5kIG92ZXJmbG93LXktYXV0byBjYXJkLWNvbnRhaW5lclwiXG4gICAgW3N0eWxlXT1cIntoZWlnaHQ6IGhlaWd0aENhcmQgLSBhanVzdGFySGVpZ3RoQ2FyZCgpICsgJ3B4J31cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLWNvbnRhaW5lciB3LWZ1bGwgb3ZlcmZsb3cteS1oaWRkZW5cIlxuICAgICAgW3N0eWxlXT1cInt3aWR0aDogd2lkdGhDYXJkICsgJ3B4J31cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9wLWNhcmQ+XG5cbjwvZGl2PlxuXG48cC1vdmVybGF5UGFuZWxcbiAgI3Npc3RlbWFzUGFuZWxcbiAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCInMzUwbXMgZWFzZS1vdXQnXCJcbiAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMjUwbXMgZWFzZS1pbidcIlxuPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGFpbmVyXCI+XG4gICAgPHAgY2xhc3M9XCJ0aXRsZS1zdHlsZSBtdC0zXCI+U2lzdGVtYXM8L3A+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC01IG1iLTNcIlxuICAgICAgc3R5bGU9XCJ3aWR0aDogMjUwcHg7IGhlaWdodDogMTAwJTtcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGFwbGljYXRpdm8gb2YgYXBsaWNhdGl2b3NcIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIHBSaXBwbGVcbiAgICAgICAgY2xhc3M9XCJidG4tc2lzdGVtYS0yIGJ0bi1zaXN0ZW1hIGhvdmVyLWJ0bi1jb3ItcGFkcmFvIHJlbW92ZS1mb2N1cyBoLTRyZW0gdy00cmVtXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjaW9uYXJBcGxpY2F0aXZvKGFwbGljYXRpdm8uaWRhcGxpY2F0aXZvKVwiXG4gICAgICAgIFtwVG9vbHRpcF09XCJhcGxpY2F0aXZvPy5kZXNjcmljYW9hcGxpY2F0aXZvXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxuICAgICAgPlxuICAgICAgICB7eyBhcGxpY2F0aXZvLm5vbWVhcGxpY2F0aXZvLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1vdmVybGF5UGFuZWw+XG5cbjxwLW92ZXJsYXlQYW5lbFxuICAjbWV1c0RhZG9zUGFuZWxcbiAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCInMzUwbXMgZWFzZS1vdXQnXCJcbiAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMjUwbXMgZWFzZS1pbidcIlxuPlxuXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250YWluZXJcIj5cblxuICAgIDxwIGNsYXNzPVwidGl0bGUtc3R5bGUgbXQtM1wiPk9sw6EsIHt7bm9tZVVzdWFyaW8gP1xuICAgICAgbm9tZVVzdWFyaW8uc3BsaXQoJyAnKVswXSA6ICdVc3XDoXJpbyd9fSAhPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJtdC01IG1iLTNcIj5cblxuICAgIDwvZGl2PlxuXG4gICAgPHAtYnV0dG9uXG4gICAgICBpY29uPVwicGkgcGktbG9ja1wiXG4gICAgICBsYWJlbD1cIkFjZXNzYXIgS2VlcGFzc1wiXG4gICAgICAob25DbGljayk9XCJnZXJlbmNpYXJLZWVQYXNzKCRldmVudClcIlxuICAgICAgc3R5bGVDbGFzcz1cImJvcmRlci1ub3JvdW5kIHctZnVsbCB0ZXh0LWJsdWUtOTAwXCJcbiAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgID48L3AtYnV0dG9uPlxuICAgIDxwLWJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLXNpZ24tb3V0XCJcbiAgICAgIGxhYmVsPVwiU2FpclwiXG4gICAgICAob25DbGljayk9XCJzYWlyKCRldmVudClcIlxuICAgICAgc3R5bGVDbGFzcz1cImJvcmRlci1ub3JvdW5kIHctZnVsbCB0ZXh0LWJsdWUtOTAwXCJcbiAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgID48L3AtYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuXG48L3Atb3ZlcmxheVBhbmVsPiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1tZW51L2t2LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbWVudS9rdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVXZCLE1BQU0sT0FBTyxlQUFlO0lBK0IxQixZQUNVLEdBQXNCLEVBQ3BCLE1BQWMsRUFDaEIsS0FBcUI7UUFGckIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWhDdEIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFHeEIsb0JBQWUsR0FBNEMsRUFBRSxDQUFDO1FBQzlELGFBQVEsR0FBVSxFQUFFLENBQUM7UUFLcEIsbUJBQWMsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzRCwwQkFBcUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5RCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCw2QkFBd0IsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRSxzQkFBaUIsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU14RSxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRWxCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFJM0Is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dUJBQUMsZ0JBQWdCO2dCQUNGLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDSyxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBbUhuQixjQUFjO3NCQURwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGUsXG4gIFJvdXRlclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrdi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rdi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEt2TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgYXBsaWNhdGl2b3M6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHVsdGltb0FwbGljYXRpdm9TZWxlY2lvbmFkbyE6IG51bWJlcjtcblxuICBASW5wdXQoKSBicmVhZENydW1iSXRlbXM6IHsgbGFiZWw6IHN0cmluZywgcm91dGVyTGluazogc3RyaW5nIH1bXSA9IFtdO1xuICBASW5wdXQoKSBsaWNlbmNhczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgbGljZW5jYVNlbGVjaW9uYWRhITogYW55O1xuICBASW5wdXQoKSBsb2dvSW1hZ2UhOiBhbnk7XG4gIEBJbnB1dCgpIG5vbWVVc3VhcmlvITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBleHBhbmRNZW51RW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ2VyZW5jaWFyS2VlUGFzc0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGxpY2VuY2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2FpckV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjaW9uYXJBcGxpY2F0aXZvRW1pdDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB0cm9jYXJMaWNlbmNhRW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ21ldXNEYWRvc1BhbmVsJykgbWV1c0RhZG9zUGFuZWwhOiBPdmVybGF5UGFuZWw7XG4gIEBWaWV3Q2hpbGQoJ3NpZGViYXJSZWYnKSBzaWRlYmFyUmVmITogU2lkZWJhcjtcbiAgQFZpZXdDaGlsZCgnc2lzdGVtYXNQYW5lbCcpIHNpc3RlbWFzUGFuZWwhOiBPdmVybGF5UGFuZWw7XG5cbiAgbWVudXM6IGFueVtdID0gW107XG5cbiAgZXhwYW5kTWVudTogYm9vbGVhbiA9IHRydWU7XG4gIGhlaWd0aENhcmQhOiBudW1iZXI7XG4gIG1vdXNlT3ZlckZpbGhvSW5kZXg6IGFueTtcbiAgbW91c2VPdmVySW5kZXg6IGFueTtcbiAgdmlzaWJsZURpYWxvZ0xpY2VuY2E6IGJvb2xlYW4gPSBmYWxzZTtcbiAgd2lkdGhDYXJkITogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHsgfVxuXG4gIHB1YmxpYyBhanVzdGFySGVpZ3RoQ2FyZCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLndpZHRoQ2FyZCA+IDQwMCkge1xuICAgICAgaWYgKHRoaXMuYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCA+IDApIHJldHVybiAxMDVcbiAgICAgIGVsc2UgcmV0dXJuIDg1XG4gICAgfSBlbHNlIHJldHVybiA4M1xuICB9XG5cbiAgcHVibGljIGNhbGxSb3V0ZShlOiBhbnksIGV4cGFuZD86IGJvb2xlYW4pIHtcbiAgICBpZiAoIWV4cGFuZClcbiAgICAgICF0aGlzLmV4cGFuZE1lbnUgPyB0aGlzLmV4cGFuZE1lbnUgPSAhdGhpcy5leHBhbmRNZW51IDogJyc7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGUpXG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyYXJMaWNlbmNhcygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGVmaW5pck1lbnVzUG9yU2lzdGVtYSh0aGlzLnVsdGltb0FwbGljYXRpdm9TZWxlY2lvbmFkbyB8fCB0aGlzLmFwbGljYXRpdm9zWzBdPy5pZGFwbGljYXRpdm8pO1xuICAgIH0sIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZpbmlyTWVudXNQb3JTaXN0ZW1hKGlkYXBsaWNhdGl2bzogbnVtYmVyKSB7XG4gICAgdGhpcy5tZW51cyA9IHRoaXMuYXBsaWNhdGl2b3MuZmluZCgoeCkgPT4geC5pZGFwbGljYXRpdm8gPT0gaWRhcGxpY2F0aXZvKT8ubWVudXMgfHwgW107XG5cbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmIHRoaXMubWVudXMgJiYgdGhpcy5tZW51cy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5yb3V0ZXIudXJsID09PSAnLycpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvRmlyc3RNZW51KClcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBtZW51U2VsZWNpb25hZG8gPSB0aGlzLm1lbnVzLmZpbmQoKG1lbnU6IGFueSkgPT4gbWVudS5saW5rICYmIG1lbnUubGluay5pbmNsdWRlcyh0aGlzLnJvdXRlci51cmwuc2xpY2UoMSkpKTtcbiAgICAgICAgaWYgKG1lbnVTZWxlY2lvbmFkbykge1xuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb01lbnUobWVudVNlbGVjaW9uYWRvKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2lzdGVtYXNQYW5lbC5oaWRlKCk7XG4gIH1cblxuICBwcml2YXRlIGV4cGFuZE1lbnVFdmVudCgpIHtcbiAgICB0aGlzLmV4cGFuZE1lbnVFbWl0LmVtaXQodGhpcy5leHBhbmRNZW51KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXJlbmNpYXJLZWVQYXNzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xuICAgIHRoaXMuZ2VyZW5jaWFyS2VlUGFzc0V2ZW50LmVtaXQoZXZlbnQpXG4gIH1cblxuICBwdWJsaWMgbWFzY2FyYU5vbWVMaWNlbmNhKG5vbWVMaWNlbmNhOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChub21lTGljZW5jYSkge1xuICAgICAgaWYgKG5vbWVMaWNlbmNhLmxlbmd0aCA+IDIzKVxuICAgICAgICByZXR1cm4gbm9tZUxpY2VuY2Euc3Vic3RyaW5nKDAsIDIzKSArICcuLi4nO1xuICAgICAgZWxzZSByZXR1cm4gbm9tZUxpY2VuY2E7XG4gICAgfSBlbHNlIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb0ZpcnN0TWVudSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdE1lbnUgPSB0aGlzLm1lbnVzWzBdO1xuICAgIGlmIChmaXJzdE1lbnUuaW5kbWVudXBhaSkge1xuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXRvcm5hck1lbnVGaWxob3MoZmlyc3RNZW51LmlkYXBsaWNhdGl2bywgZmlyc3RNZW51LmlkbWVudSk7XG4gICAgICBpZiAoZmlsaG9zKSB7XG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYWxsUm91dGUoZmlyc3RNZW51LmxpbmssIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb01lbnUobWVudTogYW55KTogdm9pZCB7XG4gICAgaWYgKG1lbnUubWVudXBhaSkge1xuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXRvcm5hck1lbnVGaWxob3MobWVudS5pZHNpc3RlbWEsIG1lbnUuaWRtZW51KTtcbiAgICAgIGlmIChmaWxob3MpIHtcbiAgICAgICAgdGhpcy5jYWxsUm91dGUoZmlsaG9zWzBdLmxpbmssIHRydWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbGxSb3V0ZShtZW51LmxpbmssIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXJMaWNlbmNhcygpO1xuICAgIHRoaXMuaGVpZ3RoQ2FyZCA9IE51bWJlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1jb250ZW50Jyk/Lm9mZnNldEhlaWdodCk7XG4gICAgdGhpcy53aWR0aENhcmQgPSBOdW1iZXIod2luZG93LmlubmVyV2lkdGgpIC0gKHRoaXMuZXhwYW5kTWVudSA/IDMzMyA6IDkzKTtcbiAgICB0aGlzLmV4cGFuZE1lbnVFdmVudCgpXG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZUVudGVyKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm1vdXNlT3ZlckluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZUZpbGhvRW50ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubW91c2VPdmVyRmlsaG9JbmRleCA9IGluZGV4O1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLm1vdXNlT3ZlckluZGV4ID0gbnVsbDtcbiAgICB0aGlzLm1vdXNlT3ZlckZpbGhvSW5kZXggPSBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbldpbmRvd1Jlc2l6ZSgpIHtcbiAgICB0aGlzLmhlaWd0aENhcmQgPSBOdW1iZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2UtY29udGVudCcpPy5vZmZzZXRIZWlnaHQpO1xuICAgIHRoaXMud2lkdGhDYXJkID0gTnVtYmVyKHdpbmRvdy5pbm5lcldpZHRoKSAtICh0aGlzLmV4cGFuZE1lbnUgPyAzMzMgOiA5Myk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHJldG9ybmFyTWVudUZpbGhvcyhpZGFwbGljYXRpdm86IG51bWJlciwgaWRtZW51OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5hcGxpY2F0aXZvc1xuICAgICAgLmZpbmQoKHgpID0+IHguaWRhcGxpY2F0aXZvID09IGlkYXBsaWNhdGl2byk/Lm1lbnVzXG4gICAgICAuZmlsdGVyKCh4OiBhbnkpID0+IHguaWRtZW51cGFpID09IGlkbWVudSk7XG4gIH1cblxuICBwdWJsaWMgc2FpcihldmVudDogYW55KSB7XG4gICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcbiAgICB0aGlzLnNhaXJFdmVudC5lbWl0KGV2ZW50KVxuICB9XG5cbiAgcHVibGljIHNlbGVjaW9uYXJBcGxpY2F0aXZvKGlkYXBsaWNhdGl2bzogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY2lvbmFyQXBsaWNhdGl2b0VtaXQuZW1pdChpZGFwbGljYXRpdm8pO1xuICAgIHRoaXMuZGVmaW5pck1lbnVzUG9yU2lzdGVtYShpZGFwbGljYXRpdm8pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy5leHBhbmRNZW51ID0gIXRoaXMuZXhwYW5kTWVudTtcbiAgICB0aGlzLmV4cGFuZE1lbnVFdmVudCgpXG4gIH1cblxuICBwdWJsaWMgdHJvY2FyTGljZW5jYSgpIHtcbiAgICB0aGlzLnRyb2NhckxpY2VuY2FFbWl0LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShsaW5rOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKGxpbmspO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBvdmVyZmxvdy15LWhpZGRlbiB3LSBmdWxsLWNvbnRhaW5lclwiPlxuXG4gIDxkaXYgW3N0eWxlXT1cInttaW5XaWR0aDogZXhwYW5kTWVudSA/ICczMDBweCcgOiAnNjBweCd9XCI+PC9kaXY+XG5cbiAgPHAtc2lkZWJhclxuICAgICNzaWRlYmFyUmVmXG4gICAgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgW3Nob3dDbG9zZUljb25dPVwiZmFsc2VcIlxuICAgIFttb2RhbF09XCJmYWxzZVwiXG4gICAgW3N0eWxlXT1cInt3aWR0aDogZXhwYW5kTWVudSA/ICczMDBweCcgOiAnNjBweCd9XCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkbGVzc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbXgtMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LXNocmluay0wIG14LTJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHt7ZXhwYW5kTWVudSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcid9fSBweS0zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudVwiXG4gICAgICAgICAgICAgIGFsdD1cIkNhcmRcIlxuICAgICAgICAgICAgICBbc3JjXT1cImxvZ29JbWFnZVwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTUwXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCBwYWRkaW5nLXN0eWxlIGgtMnJlbSB3LTJyZW0gaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGUgaWNvbi1tZW51XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiXG4gICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJleHBhbmRNZW51ID8gJ09jdXRhciBNZW51JyA6ICdFeHBhbmRpciBNZW51J1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgIG1lbnVcbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHt7ZXhwYW5kTWVudSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcid9fVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidHJvY2FyTGljZW5jYSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCBtci0yXCJcbiAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwidGhpcy5saWNlbmNhU2VsZWNpb25hZGEubm9tZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7bWFzY2FyYU5vbWVMaWNlbmNhKHRoaXMubGljZW5jYVNlbGVjaW9uYWRhLm5vbWUpfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gbXQtMVwiPnt7dGhpcy5saWNlbmNhU2VsZWNpb25hZGEuY3BmY25waiB8XG4gICAgICAgICAgICAgICAgY3BmQ25waiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcGFkZGluZy1zdHlsZSBoLTJyZW0gdy0ycmVtIGhvdmVyOmJnLWdyZWVuLTYwMCBob3Zlcjp0ZXh0LXdoaXRlIGljb24tbWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0cm9jYXJMaWNlbmNhKClcIlxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ0FsdGVyYXIgd29ya3NwYWNlJ1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgIHN5bmNfYWx0XG4gICAgICAgICAgICAgIDwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAtZGl2aWRlciB0eXBlPVwic29saWRcIj48L3AtZGl2aWRlcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibGlzdC1ub25lIG0tMCAgY2FyZC1jb250YWluZXIge3tleHBhbmRNZW51ID8gJ214LTEnIDogJyd9fVwiXG4gICAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwiKGhlaWd0aENhcmQgLSAyMjApICsgJ3B4J1wiXG4gICAgICAgICAgc3R5bGU9XCJvdmVyZmxvdy15OiBhdXRvO1wiXG4gICAgICAgID5cbiAgICAgICAgICA8IS0tIG1lbnVzIC0tPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbWVudSBvZiBtZW51czsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPCEtLSBtZW51IHF1ZSBuw6NvIHRlbSBmaWxobyAtLT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcihpKVwiXG4gICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydob3Zlci1jb2xvcic6IG1vdXNlT3ZlckluZGV4ID09PSBpfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUobWVudS5saW5rKVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW1lbnUuaW5kbWVudXBhaSAmJiAoIW1lbnUuaWRtZW51cGFpIHx8IG1lbnUuaWRtZW51cGFpID09IDApXCJcbiAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUgPyBtZW51LmRlc2NyaWNhb21lbnUgOiAnJ1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwie3t2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShtZW51LmxpbmspID8gJ2JnLWdyZWVuLTYwMCcgOiAnJ319IG1lbnUtb3B0aW9uIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vLXVuZGVybGluZSB7eyFleHBhbmRNZW51ID8gJ2p1c3RpZnktY29udGVudC1jZW50ZXInIDogJyd9fSBjdXJzb3ItcG9pbnRlciBib3JkZXItcm91bmQgdGV4dC03MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1kdXJhdGlvbi0xNTAgdHJhbnNpdGlvbi1jb2xvcnMgcC1yaXBwbGVcIlxuICAgICAgICAgICAgPlxuXG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb24tbWVudSB7e2V4cGFuZE1lbnUgPyAnbWwtMSBtci0yJyA6ICcnfX0gIGljb24taG92ZXItY29sb3Ige3t2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShtZW51LmxpbmspID8gJ3RleHQtd2hpdGUnIDogJyd9fVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51Lmljb25lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG1lbnUuaWNvbmUgfX1cbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtYmx1ZS05MDAgZm9udC1tZWRpdW0ge3t2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShtZW51LmxpbmspID8gJ3RleHQtd2hpdGUnIDogJyd9fVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgPnt7IG1lbnUuZGVzY3JpY2FvbWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwhLS0gbWVudSBjb20gZmlsaG8gLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWVudS5pbmRtZW51cGFpXCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKGkpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydob3Zlci1jb2xvcic6IG1vdXNlT3ZlckluZGV4ID09PSBpfVwiXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIHBTdHlsZUNsYXNzPVwiQG5leHRcIlxuICAgICAgICAgICAgICAgIGVudGVyQ2xhc3M9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGVudGVyQWN0aXZlQ2xhc3M9XCJzbGlkZWRvd25cIlxuICAgICAgICAgICAgICAgIGxlYXZlVG9DbGFzcz1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgbGVhdmVBY3RpdmVDbGFzcz1cInNsaWRldXBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1vcHRpb24gZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIge3shZXhwYW5kTWVudSA/ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2Vlbid9fSBjdXJzb3ItcG9pbnRlciBib3JkZXItcm91bmQgdGV4dC03MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1kdXJhdGlvbi0xNTAgdHJhbnNpdGlvbi1jb2xvcnMgcC1yaXBwbGVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIiFleHBhbmRNZW51ID8gbWVudS5kZXNjcmljYW9tZW51IDogJydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhZXhwYW5kTWVudSA/IGV4cGFuZE1lbnUgPSAhZXhwYW5kTWVudSA6ICcnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuXG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaWNvbi1tZW51IHt7ZXhwYW5kTWVudSA/ICdtbC0xIG1yLTInIDogJyd9fSBpY29uLWhvdmVyLWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51Lmljb25lXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydob3Zlci1jb2xvcic6IG1vdXNlT3ZlckluZGV4ID09PSBpfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1lbnUuaWNvbmUgfX1cbiAgICAgICAgICAgICAgICAgIDwvaT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtYmx1ZS05MDAgZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIlxuICAgICAgICAgICAgICAgICAgPnt7IG1lbnUuZGVzY3JpY2FvbWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaSBwaS1jaGV2cm9uLWRvd24gdGV4dC1ibHVlLTkwMCBtci0xIGljb24taG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXItY29sb3InOiBtb3VzZU92ZXJJbmRleCA9PT0gaX1cIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICA8IS0tIGZpbGhvcyAtLT5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ub25lIHB5LTAgcGwtMyBwci0wIG0tMCBoaWRkZW4gb3ZlcmZsb3cteS1oaWRkZW4gdHJhbnNpdGlvbi1hbGwgdHJhbnNpdGlvbi1kdXJhdGlvbi00MDAgdHJhbnNpdGlvbi1lYXNlLWluLW91dFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICA8bGkgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCBmaWxobyBvZiByZXRvcm5hck1lbnVGaWxob3MobWVudS5pZGFwbGljYXRpdm8sIG1lbnUuaWRtZW51KTsgIGxldCBpRmlsaG8gPSBpbmRleFxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRmlsaG9FbnRlcihmaWxoby5pZG1lbnUpXCJcbiAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2hvdmVyLWNvbG9yJzogbW91c2VPdmVyRmlsaG9JbmRleCA9PT0gZmlsaG8uaWRtZW51fVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUoZmlsaG8ubGluaylcIlxuICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgIGNsYXNzPVwie3t2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShmaWxoby5saW5rKSA/ICdiZy1ncmVlbi02MDAnIDogJyd9fSBtZW51LW9wdGlvbiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBuby11bmRlcmxpbmUgY3Vyc29yLXBvaW50ZXIgYm9yZGVyLXJvdW5kIHRleHQtNzAwIGhvdmVyOmJnLWdyZWVuLTYwMCB0cmFuc2l0aW9uLWR1cmF0aW9uLTE1MCB0cmFuc2l0aW9uLWNvbG9ycyBwLXJpcHBsZSBwLTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLW1lbnUge3tleHBhbmRNZW51ID8gJ21sLTEgbXItMicgOiAnJ319IGljb24taG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsaG8uaWNvbmVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXItY29sb3InOiBtb3VzZU92ZXJJbmRleCA9PT0gaX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZmlsaG8uaWNvbmUgfX1cbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtYmx1ZS05MDAgbWwtNCB7e3ZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKGZpbGhvLmxpbmspID8gJ3RleHQtd2hpdGUnIDogJyd9fVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgPnt7IGZpbGhvLmRlc2NyaWNhb21lbnUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbjwvZGl2PlxuPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPC9wLXNpZGViYXI+XG5cbjxkaXZcbiAgY2xhc3M9XCJ3LWF1dG8gaC1zY3JlZW4gcGFnZS1jb250ZW50IG92ZXJmbG93LXktaGlkZGVuXCJcbiAgaWQ9XCJwYWdlLWNvbnRlbnRcIlxuPlxuXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTNcIj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1ibHVlLTkwMCBicmVhZGNydW1iLXRpdGxlXCI+e3ticmVhZENydW1iSXRlbXNbYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtXG4gICAgICAgIDFdPy5sYWJlbH19PC9wPlxuICAgICAgPHAtYnJlYWRjcnVtYlxuICAgICAgICAqbmdJZj1cIndpZHRoQ2FyZCA+IDQwMFwiXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9uZSBwLTAgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgaC0ycmVtICFpbXBvcnRhbnQ7XCJcbiAgICAgICAgW21vZGVsXT1cImJyZWFkQ3J1bWJJdGVtc1wiXG4gICAgICAgIFtzdHlsZV09XCJ7YmFja2dyb3VuZENvbG9yOiAnI2Q0ZDNkMyd9XCJcbiAgICAgICAgKG9uSXRlbUNsaWNrKT1cImNhbGxSb3V0ZSgkZXZlbnQuaXRlbS5yb3V0ZXJMaW5rLCB0cnVlKVwiXG4gICAgICA+PC9wLWJyZWFkY3J1bWI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBzdHlsZUNsYXNzPVwidy0ycmVtIGgtMnJlbSB0ZXh0LWJsdWUtOTAwIGhvdmVyOmJnLWdyZWVuLTYwMCBob3Zlcjp0ZXh0LXdoaXRlXCJcbiAgICAgICAgaWNvbj1cInBpIHBpLXRoLWxhcmdlXCJcbiAgICAgICAgW3JvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwic2lzdGVtYXNQYW5lbC50b2dnbGUoJGV2ZW50KVwiXG4gICAgICAgIFtwVG9vbHRpcF09XCInU2lzdGVtYXMnXCJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxuICAgICAgPjwvcC1idXR0b24+XG5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBzdHlsZUNsYXNzPVwidy0ycmVtIGgtMnJlbSB0ZXh0LWJsdWUtOTAwIGhvdmVyOmJnLWdyZWVuLTYwMCBob3Zlcjp0ZXh0LXdoaXRlXCJcbiAgICAgICAgaWNvbj1cInBpIHBpLXVzZXJcIlxuICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcbiAgICAgICAgW3RleHRdPVwidHJ1ZVwiXG4gICAgICAgIFtwVG9vbHRpcF09XCInTWVudSBkbyBVc3XDoXJpbydcIlxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiXG4gICAgICAgIChjbGljayk9XCJtZXVzRGFkb3NQYW5lbC50b2dnbGUoJGV2ZW50KVwiXG4gICAgICA+PC9wLWJ1dHRvbj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cC1jYXJkXG4gICAgY2xhc3M9XCJjYXJkLWNvbnRhaW5lclwiXG4gICAgc3R5bGVDbGFzcz1cIm0tMyBib3JkZXItbm9yb3VuZCBvdmVyZmxvdy15LWF1dG8gY2FyZC1jb250YWluZXJcIlxuICAgIFtzdHlsZV09XCJ7aGVpZ2h0OiBoZWlndGhDYXJkIC0gYWp1c3RhckhlaWd0aENhcmQoKSArICdweCd9XCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1jb250YWluZXIgdy1mdWxsIG92ZXJmbG93LXktaGlkZGVuXCJcbiAgICAgIFtzdHlsZV09XCJ7d2lkdGg6IHdpZHRoQ2FyZCArICdweCd9XCJcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvcC1jYXJkPlxuXG48L2Rpdj5cblxuPHAtb3ZlcmxheVBhbmVsXG4gICNzaXN0ZW1hc1BhbmVsXG4gIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXG4gIFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwiJzI1MG1zIGVhc2UtaW4nXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxuICAgIDxwIGNsYXNzPVwidGl0bGUtc3R5bGUgbXQtM1wiPlNpc3RlbWFzPC9wPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtNSBtYi0zXCJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDEwMCU7XCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBhcGxpY2F0aXZvIG9mIGFwbGljYXRpdm9zXCJcbiAgICAgICAgcEJ1dHRvblxuICAgICAgICBwUmlwcGxlXG4gICAgICAgIGNsYXNzPVwiYnRuLXNpc3RlbWEtMiBidG4tc2lzdGVtYSBob3Zlci1idG4tY29yLXBhZHJhbyByZW1vdmUtZm9jdXMgaC00cmVtIHctNHJlbVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY2lvbmFyQXBsaWNhdGl2byhhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxuICAgICAgICBbcFRvb2x0aXBdPVwiYXBsaWNhdGl2bz8uZGVzY3JpY2FvYXBsaWNhdGl2b1wiXG4gICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCJcbiAgICAgID5cbiAgICAgICAge3sgYXBsaWNhdGl2by5ub21lYXBsaWNhdGl2by5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3Atb3ZlcmxheVBhbmVsPlxuXG48cC1vdmVybGF5UGFuZWxcbiAgI21ldXNEYWRvc1BhbmVsXG4gIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXG4gIFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwiJzI1MG1zIGVhc2UtaW4nXCJcbj5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGFpbmVyXCI+XG5cbiAgICA8cCBjbGFzcz1cInRpdGxlLXN0eWxlIG10LTNcIj5PbMOhLCB7e25vbWVVc3VhcmlvID9cbiAgICAgIG5vbWVVc3VhcmlvLnNwbGl0KCcgJylbMF0gOiAnVXN1w6FyaW8nfX0gITwvcD5cbiAgICA8ZGl2IGNsYXNzPVwibXQtNSBtYi0zXCI+XG5cbiAgICA8L2Rpdj5cblxuICAgIDxwLWJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWxvY2tcIlxuICAgICAgbGFiZWw9XCJBY2Vzc2FyIEtlZXBhc3NcIlxuICAgICAgKG9uQ2xpY2spPVwiZ2VyZW5jaWFyS2VlUGFzcygkZXZlbnQpXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9yb3VuZCB3LWZ1bGwgdGV4dC1ibHVlLTkwMFwiXG4gICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICA+PC9wLWJ1dHRvbj5cbiAgICA8cC1idXR0b25cbiAgICAgIGljb249XCJwaSBwaS1zaWduLW91dFwiXG4gICAgICBsYWJlbD1cIlNhaXJcIlxuICAgICAgKG9uQ2xpY2spPVwic2FpcigkZXZlbnQpXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9yb3VuZCB3LWZ1bGwgdGV4dC1ibHVlLTkwMFwiXG4gICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICA+PC9wLWJ1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9wLW92ZXJsYXlQYW5lbD4iXX0=