speechrecorderng 2.25.2 → 3.0.1

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.
Files changed (74) hide show
  1. package/esm2020/lib/audio/array_audio_buffer.mjs +101 -0
  2. package/esm2020/lib/audio/array_audio_buffer_input_stream.mjs +86 -0
  3. package/esm2020/lib/audio/audio_data_holder.mjs +109 -0
  4. package/esm2020/lib/audio/audio_display.mjs +5 -5
  5. package/esm2020/lib/audio/audio_player.mjs +9 -7
  6. package/esm2020/lib/audio/capture/capture.mjs +6 -1
  7. package/esm2020/lib/audio/dsp/level_measure.mjs +97 -55
  8. package/esm2020/lib/audio/io/stream.mjs +3 -3
  9. package/esm2020/lib/audio/persistor.mjs +12 -6
  10. package/esm2020/lib/audio/playback/array_audio_buffer_source_node.mjs +265 -0
  11. package/esm2020/lib/audio/playback/player.mjs +184 -50
  12. package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +25 -13
  13. package/esm2020/lib/audio/ui/audio_display_scroll_pane.mjs +2 -2
  14. package/esm2020/lib/audio/ui/audiosignal.mjs +206 -77
  15. package/esm2020/lib/audio/ui/container.mjs +14 -14
  16. package/esm2020/lib/audio/ui/livelevel.mjs +17 -3
  17. package/esm2020/lib/audio/ui/sonagram.mjs +343 -160
  18. package/esm2020/lib/io/stream.mjs +77 -1
  19. package/esm2020/lib/net/uploader.mjs +15 -3
  20. package/esm2020/lib/speechrecorder/recording.mjs +63 -7
  21. package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +96 -7
  22. package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +119 -106
  23. package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +34 -7
  24. package/esm2020/lib/speechrecorder/session/progress.mjs +2 -2
  25. package/esm2020/lib/speechrecorder/session/prompting.mjs +2 -2
  26. package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +6 -3
  27. package/esm2020/lib/speechrecorder/session/recording_file_cache.mjs +195 -0
  28. package/esm2020/lib/speechrecorder/session/recording_list.mjs +23 -10
  29. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +12 -6
  30. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +5 -5
  31. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +13 -9
  32. package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +8 -5
  33. package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +123 -101
  34. package/esm2020/lib/speechrecorderng.component.mjs +2 -2
  35. package/esm2020/lib/speechrecorderng.module.mjs +5 -4
  36. package/esm2020/lib/spr.module.version.mjs +2 -2
  37. package/esm2020/lib/ui/recordingitem_display.mjs +2 -2
  38. package/fesm2015/speechrecorderng.mjs +2355 -753
  39. package/fesm2015/speechrecorderng.mjs.map +1 -1
  40. package/fesm2020/speechrecorderng.mjs +2338 -746
  41. package/fesm2020/speechrecorderng.mjs.map +1 -1
  42. package/lib/audio/array_audio_buffer.d.ts +15 -0
  43. package/lib/audio/array_audio_buffer_input_stream.d.ts +14 -0
  44. package/lib/audio/audio_data_holder.d.ts +29 -0
  45. package/lib/audio/audio_display.d.ts +2 -1
  46. package/lib/audio/audio_player.d.ts +2 -1
  47. package/lib/audio/capture/capture.d.ts +2 -0
  48. package/lib/audio/dsp/level_measure.d.ts +2 -1
  49. package/lib/audio/persistor.d.ts +8 -3
  50. package/lib/audio/playback/array_audio_buffer_source_node.d.ts +24 -0
  51. package/lib/audio/playback/player.d.ts +6 -0
  52. package/lib/audio/ui/audio_canvas_layer_comp.d.ts +4 -1
  53. package/lib/audio/ui/audio_display_scroll_pane.d.ts +2 -1
  54. package/lib/audio/ui/audiosignal.d.ts +3 -2
  55. package/lib/audio/ui/container.d.ts +3 -2
  56. package/lib/audio/ui/livelevel.d.ts +4 -2
  57. package/lib/audio/ui/sonagram.d.ts +3 -2
  58. package/lib/io/stream.d.ts +17 -0
  59. package/lib/net/uploader.d.ts +6 -1
  60. package/lib/speechrecorder/recording.d.ts +16 -3
  61. package/lib/speechrecorder/recordings/recordings.service.d.ts +2 -0
  62. package/lib/speechrecorder/session/audiorecorder.d.ts +2 -7
  63. package/lib/speechrecorder/session/basicrecorder.d.ts +10 -5
  64. package/lib/speechrecorder/session/progress.d.ts +1 -1
  65. package/lib/speechrecorder/session/prompting.d.ts +1 -1
  66. package/lib/speechrecorder/session/recorder_combi_pane.d.ts +3 -1
  67. package/lib/speechrecorder/session/recording_file_cache.d.ts +33 -0
  68. package/lib/speechrecorder/session/recording_list.d.ts +3 -1
  69. package/lib/speechrecorder/session/recordingfile/recording-file-meta.component.d.ts +2 -1
  70. package/lib/speechrecorder/session/recordingfile/recording-file-view.component.d.ts +1 -0
  71. package/lib/speechrecorder/session/sessionmanager.d.ts +5 -11
  72. package/lib/speechrecorderng.module.d.ts +2 -1
  73. package/lib/spr.module.version.d.ts +1 -1
  74. package/package.json +1 -1
@@ -202,7 +202,7 @@ export class SpeechrecorderngComponent extends RecorderComponent {
202
202
  this.uploadUpdate(ue);
203
203
  };
204
204
  window.addEventListener('beforeunload', (e) => {
205
- console.debug("Before page unload event");
205
+ //console.debug("Before page unload event");
206
206
  if (this.ready()) {
207
207
  return;
208
208
  }
@@ -379,4 +379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
379
379
  type: ViewChild,
380
380
  args: [SessionManager, { static: true }]
381
381
  }] } });
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFBO0FBQzVGLE9BQU8sRUFDa0MsU0FBUyxJQUFJLGlCQUFpQixFQUNyRSxXQUFXLEVBQ1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsY0FBYyxFQUFnQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZHLE9BQU8sRUFBNkIsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBSXhFLE9BQU8sRUFBVSxXQUFXLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7O0FBRXJFLE1BQU0sQ0FBTixJQUFZLElBQTBCO0FBQXRDLFdBQVksSUFBSTtJQUFFLG1EQUFjLENBQUE7SUFBQywrQkFBSSxDQUFBO0FBQUEsQ0FBQyxFQUExQixJQUFJLEtBQUosSUFBSSxRQUFzQjtBQWtCdEMsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQWM5RCxZQUFvQixLQUFxQixFQUNmLE1BQWMsRUFDbEIsaUJBQW9DLEVBQ3BDLGVBQThCLEVBQzlCLGNBQTZCLEVBQzdCLGFBQTJCLEVBQzNCLGVBQWdDLEVBQzlCLFFB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QyxDQUFDOzt1SEFsWFUseUJBQXlCOzJHQUF6Qix5QkFBeUIsNkNBYnpCLENBQUMsY0FBYyxDQUFDLDhEQXlCaEIsY0FBYyxxRkF4QmY7O0dBRVQ7NEZBVVUseUJBQXlCO2tCQWhCckMsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzNCLFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7O0lBTVAsQ0FBQztpQkFFSjtvVEFhOEMsRUFBRTtzQkFBOUMsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBBdWRpb1BsYXllckxpc3RlbmVyLCBBdWRpb1BsYXllckV2ZW50LCBFdmVudFR5cGUgYXMgUGxheWJhY2tFdmVudFR5cGUsXHJcbiAgQXVkaW9QbGF5ZXJcclxufSBmcm9tICcuL2F1ZGlvL3BsYXliYWNrL3BsYXllcic7XHJcbmltcG9ydCB7R3JvdXAsIE9yZGVyLCBQcm9tcHRJdGVtLCBTY3JpcHR9IGZyb20gJy4vc3BlZWNocmVjb3JkZXIvc2NyaXB0L3NjcmlwdCdcclxuaW1wb3J0IHsgU2Vzc2lvbk1hbmFnZXIsU3RhdHVzIGFzIFNlc3Npb25NYW5hZ2VyU3RhdHVzfSBmcm9tICcuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vc2Vzc2lvbm1hbmFnZXInO1xyXG5pbXBvcnQgeyBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50LCBVcGxvYWRlclN0YXR1cyB9IGZyb20gJy4vbmV0L3VwbG9hZGVyJztcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTY3JpcHRTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zY3JpcHQvc2NyaXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTcGVlY2hSZWNvcmRlclVwbG9hZGVyfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zcHJ1cGxvYWRlclwiO1xyXG5pbXBvcnQge1Nlc3Npb259IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vc2Vzc2lvblwiO1xyXG5pbXBvcnQge1Byb2plY3QsIFByb2plY3RVdGlsfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9wcm9qZWN0L3Byb2plY3RcIjtcclxuaW1wb3J0IHtQcm9qZWN0U2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvcHJvamVjdC9wcm9qZWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBdWRpb0NvbnRleHRQcm92aWRlcn0gZnJvbSBcIi4vYXVkaW8vY29udGV4dFwiO1xyXG5pbXBvcnQge1JlY29yZGluZ1NlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3JlY29yZGluZ3MvcmVjb3JkaW5ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZURlc2NyaXB0b3JJbXBsfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9yZWNvcmRpbmdcIjtcclxuaW1wb3J0IHtBcnJheXN9IGZyb20gXCIuL3V0aWxzL3V0aWxzXCI7XHJcbmltcG9ydCB7QXVkaW9SZWNvcmRlckNvbXBvbmVudH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9hdWRpb3JlY29yZGVyXCI7XHJcbmltcG9ydCB7UmVjb3JkZXJDb21wb25lbnR9IGZyb20gXCIuL3JlY29yZGVyX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Jhc2ljUmVjb3JkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vYmFzaWNyZWNvcmRlclwiO1xyXG5cclxuZXhwb3J0IGVudW0gTW9kZSB7U0lOR0xFX1NFU1NJT04sREVNT31cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcGVlY2hyZWNvcmRlcicsXHJcbiAgcHJvdmlkZXJzOiBbU2Vzc2lvblNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXBwLXNwcnJlY29yZGluZ3Nlc3Npb24gW3Byb2plY3ROYW1lXT1cInByb2plY3Q/Lm5hbWVcIiBbZGF0YVNhdmVkXT1cImRhdGFTYXZlZFwiPjwvYXBwLXNwcnJlY29yZGluZ3Nlc3Npb24+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3R7XHJcbiAgICBmbGV4OiAyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OjA7XHJcblxyXG4gIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWVjaHJlY29yZGVybmdDb21wb25lbnQgZXh0ZW5kcyBSZWNvcmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0LEF1ZGlvUGxheWVyTGlzdGVuZXIge1xyXG5cclxuXHQgIG1vZGUhOk1vZGU7XHJcblx0XHRjb250cm9sQXVkaW9QbGF5ZXIhOkF1ZGlvUGxheWVyO1xyXG5cdFx0YXVkaW86YW55O1xyXG5cclxuXHRfcHJvamVjdDpQcm9qZWN0fG51bGw9bnVsbDtcclxuICBzZXNzaW9uSWQhOiBzdHJpbmc7XHJcbiAgc2Vzc2lvbiE6U2Vzc2lvbjtcclxuXHJcbiAgc2NyaXB0ITpTY3JpcHQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoU2Vzc2lvbk1hbmFnZXIsIHsgc3RhdGljOiB0cnVlIH0pIHNtITpTZXNzaW9uTWFuYWdlcjtcclxuXHJcblx0XHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHNlc3Npb25zU2VydmljZTpTZXNzaW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcHJvamVjdFNlcnZpY2U6UHJvamVjdFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHNjcmlwdFNlcnZpY2U6U2NyaXB0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVjRmlsZXNTZXJ2aWNlOlJlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdXBsb2FkZXI6U3BlZWNoUmVjb3JkZXJVcGxvYWRlcikge1xyXG4gICAgICBzdXBlcih1cGxvYWRlcik7XHJcblx0XHR9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcblx0XHQgIHRyeSB7XHJcbiAgICAgICAgbGV0IGF1ZGlvQ29udGV4dCA9IEF1ZGlvQ29udGV4dFByb3ZpZGVyLmF1ZGlvQ29udGV4dEluc3RhbmNlKCk7XHJcbiAgICAgICAgICAgICAgaWYoYXVkaW9Db250ZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEF1ZGlvUGxheWVyID0gbmV3IEF1ZGlvUGxheWVyKGF1ZGlvQ29udGV4dCwgdGhpcyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc20uY29udHJvbEF1ZGlvUGxheWVyPXRoaXMuY29udHJvbEF1ZGlvUGxheWVyO1xyXG4gICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdQbGF5ZXIgaW5pdGlhbGl6ZWQuJztcclxuICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgbGV0IGVyck1zZz0nVW5rbm93biBlcnJvcic7XHJcbiAgICAgICAgaWYoZXJyIGluc3RhbmNlb2YgRXJyb3Ipe1xyXG4gICAgICAgICAgZXJyTXNnPWVyci5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNtLnN0YXR1c01zZz1lcnJNc2c7XHJcbiAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGU9J2Vycm9yJztcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVyck1zZylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICAgICAgLy8gbGV0IHdha2VMb2NrU3VwcD0oJ3dha2VMb2NrJyBpbiBuYXZpZ2F0b3IpO1xyXG4gICAgICAgIC8vIGFsZXJ0KCdXYWtlIGxvY2sgQVBJIHN1cHBvcnRlZDogJyt3YWtlTG9ja1N1cHApO1xyXG5cclxuXHJcblx0XHQgIGlmKHRoaXMuc20uc3RhdHVzIT09IFNlc3Npb25NYW5hZ2VyU3RhdHVzLkVSUk9SKSB7XHJcbiAgICAgICAgbGV0IGluaXRTdWNjZXNzID0gdGhpcy5pbml0KCk7XHJcbiAgICAgICAgaWYgKGluaXRTdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHBhcmFtc1snc2Vzc2lvbklkJ10pIHtcclxuICAgICAgICAgICAgICB0aGlzLmZldGNoU2Vzc2lvbihwYXJhbXNbJ3Nlc3Npb25JZCddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcm91dGVQYXJhbXNJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgICAgICAgICAgaWYgKHJvdXRlUGFyYW1zSWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZldGNoU2Vzc2lvbihyb3V0ZVBhcmFtc0lkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZmV0Y2hTZXNzaW9uKHNlc3Npb25JZDpzdHJpbmcpe1xyXG5cclxuICAgICAgbGV0IHNlc3NPYnM9IHRoaXMuc2Vzc2lvbnNTZXJ2aWNlLnNlc3Npb25PYnNlcnZlcihzZXNzaW9uSWQpO1xyXG5cclxuICAgICAgaWYoc2Vzc09icykge1xyXG4gICAgICAgIHNlc3NPYnMuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IHNlc3MgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFNlc3Npb24oc2Vzcyk7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdSZWNlaXZlZCBzZXNzaW9uIGluZm8uJztcclxuICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChzZXNzLnByb2plY3QpIHtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJTZXNzaW9uIGFzc29jaWF0ZWQgcHJvamVjdDogXCIrc2Vzcy5wcm9qZWN0KVxyXG4gICAgICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdE9ic2VydmFibGUoc2Vzcy5wcm9qZWN0KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgICBuZXh0OiAocHJvamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdCA9IHByb2plY3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFNjcmlwdChzZXNzKTtcclxuICAgICAgICAgICAgICAgICAgfSwgZXJyb3I6IChyZWFzb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IHJlYXNvbjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGZldGNoaW5nIHByb2plY3QgY29uZmlnOiBcIiArIHJlYXNvbilcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhcIlNlc3Npb24gaGFzIG5vIGFzc29jaWF0ZWQgcHJvamVjdC4gVXNpbmcgZGVmYXVsdCBjb25maWd1cmF0aW9uLlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMuZmV0Y2hTY3JpcHQoc2Vzcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjoocmVhc29uKSA9PlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IHJlYXNvbjtcclxuICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGZldGNoaW5nIHNlc3Npb24gXCIgKyByZWFzb24pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgZmV0Y2hTY3JpcHQoc2VzczogU2Vzc2lvbikge1xyXG4gICAgaWYgKHNlc3Muc2NyaXB0KSB7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdGZXRjaGluZyByZWNvcmRpbmcgc2NyaXB0Li4uJztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnNjcmlwdE9ic2VydmFibGUoc2Vzcy5zY3JpcHQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHNjcmlwdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdSZWNlaXZlZCByZWNvcmRpbmcgc2NyaXB0Lic7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2V0U2NyaXB0KHNjcmlwdClcclxuICAgICAgICAgIHRoaXMuc20uc2Vzc2lvbiA9IHNlc3M7XHJcbiAgICAgICAgICB0aGlzLmZldGNoUmVjb3JkaW5ncyhzZXNzLCB0aGlzLnNjcmlwdClcclxuICAgICAgICB9LCBlcnJvcjogKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyck1zZyA9IFwiRXJyb3IgZmV0Y2hpbmcgcmVjb3JkaW5nIHNjcmlwdDogXCIgKyByZWFzb25cclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyTXNnKVxyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSBlcnJNc2c7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGVyck1zZyA9IFwiTm8gcmVjb3JkaW5nIHNjcmlwdCBpcyBkZWZpbmVkIGZvciB0aGlzIHNlc3Npb24gd2l0aCBJRCBcIiArIHNlc3Muc2Vzc2lvbklkO1xyXG4gICAgICBjb25zb2xlLmVycm9yKHRoaXMuc20uc3RhdHVzTXNnKVxyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IGVyck1zZztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnZXJyb3InO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoUmVjb3JkaW5ncyhzZXNzOiBTZXNzaW9uLCBzY3JpcHQ6IFNjcmlwdCkge1xyXG4gICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdGZXRjaGluZyBpbmZvcyBvZiByZWNvcmRpbmdzLi4uJztcclxuICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IHRydWU7XHJcbiAgICBsZXQgcHJObTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0KSB7XHJcbiAgICAgIGxldCByZnNPYnMgPSB0aGlzLnJlY0ZpbGVzU2VydmljZS5yZWNvcmRpbmdGaWxlRGVzY3JMaXN0KHRoaXMucHJvamVjdC5uYW1lLCBzZXNzLnNlc3Npb25JZCk7XHJcbiAgICAgIHJmc09icy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZnM6IEFycmF5PFJlY29yZGluZ0ZpbGVEZXNjcmlwdG9ySW1wbD4pID0+IHtcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSAnUmVjZWl2ZWQgaW5mb3Mgb2YgcmVjb3JkaW5ncy4nO1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAocmZzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZnMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgIHJmcy5mb3JFYWNoKChyZikgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiQWxyZWFkeSByZWNvcmRlZDogXCIgKyByZisgXCIgXCIrcmYucmVjb3JkaW5nLml0ZW1jb2RlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc20uYWRkUmVjb3JkaW5nRmlsZUJ5RGVzY3JpcHRvcihyZik7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFeHBlY3RlZCB0eXBlIGFycmF5IGZvciBsaXN0IG9mIGFscmVhZHkgcmVjb3JkZWQgZmlsZXMgJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiUmVjb3JkaW5nIGZpbGUgbGlzdDogXCIgKyByZnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAvLyB3ZSBzdGFydCB0aGUgc2Vzc2lvbiBhbnl3YXlcclxuICAgICAgICAgIHRoaXMuc3RhcnRTZXNzaW9uKClcclxuICAgICAgICB9LCBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdGFydFNlc3Npb24oKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFRPRE9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBzY3JlZW5Mb2NrZWQoKTpib29sZWFue1xyXG4gICAgICByZXR1cm4gIHRoaXMuc20uc2NyZWVuTG9ja2VkO1xyXG4gIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXJ0U2Vzc2lvbigpe1xyXG4gICAgICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZz1mYWxzZTtcclxuXHRcdCAgdGhpcy5zbS5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgICAgc2V0U2Vzc2lvbihzZXNzaW9uOmFueSl7XHJcblx0XHQgICAgaWYoc2Vzc2lvbikge1xyXG4gICAgICAgICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBJRDogXCIgKyBzZXNzaW9uLnNlc3Npb25JZCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2Vzc2lvbiBVbmRlZmluZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlYWR5KCk6Ym9vbGVhbntcclxuXHRcdCAgICByZXR1cm4gdGhpcy5kYXRhU2F2ZWQgJiYgIXRoaXMuc20uaXNBY3RpdmUoKVxyXG4gICAgICAgIH1cclxuXHJcblx0XHRpbml0KCk6Ym9vbGVhbiB7XHJcbiAgICAgIC8vVE9ETyBEdXBsaWNhdGUgY29kZSBpbiBBdWRpb1JlY29yZGVyQ29tcG9uZW50XHJcbiAgICAgICAgdGhpcy51cGxvYWRlci5saXN0ZW5lciA9ICh1ZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRVcGRhdGUodWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgKGUpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJCZWZvcmUgcGFnZSB1bmxvYWQgZXZlbnRcIik7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMucmVhZHkoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBhbGwgdGhpcyBhdHRlbXB0cyB0byBjdXN0b21pemUgdGhlIG1lc3NhZ2UgZG8gbm90IHdvcmsgYW55bW9yZSAoZm9yIHNlY3VyaXR5IHJlYXNvbnMpISFcclxuICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBcIlBsZWFzZSBkbyBub3QgbGVhdmUgdGhlIHBhZ2UsIHVudGlsIGFsbCByZWNvcmRpbmdzIGFyZSB1cGxvYWRlZCFcIjtcclxuICAgICAgICAgICAgYWxlcnQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcclxuXHJcbiAgICAgICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICAgICAgZS5yZXR1cm5WYWx1ZSA9IG1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGlmIChlLnN0b3BQcm9wYWdhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGUucHJldmVudERlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgdXBsb2FkVXBkYXRlKHVlOiBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50KSB7XHJcbiAgICBsZXQgdXBTdGF0dXMgPSB1ZS5zdGF0dXM7XHJcbiAgICB0aGlzLmRhdGFTYXZlZCA9IChVcGxvYWRlclN0YXR1cy5ET05FID09PSB1cFN0YXR1cyk7XHJcbiAgICBsZXQgcGVyY2VudFVwbCA9IHVlLnBlcmNlbnREb25lKCk7XHJcbiAgICBpZiAoVXBsb2FkZXJTdGF0dXMuRVJSID09PSB1cFN0YXR1cykge1xyXG4gICAgICB0aGlzLnNtLnVwbG9hZFN0YXR1cyA9ICd3YXJuJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHBlcmNlbnRVcGwgPCA1MCkge1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkU3RhdHVzID0gJ2FjY2VudCdcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNtLnVwbG9hZFN0YXR1cyA9ICdzdWNjZXNzJ1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc20udXBsb2FkUHJvZ3Jlc3MgPSBwZXJjZW50VXBsO1xyXG4gICAgfVxyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwiVXBsb2FkIHVwZGF0ZSwgdXBkYXRlIHdha2UgbG9jay5cIilcclxuICAgIHRoaXMuc20udXBkYXRlV2FrZUxvY2sodGhpcy5kYXRhU2F2ZWQpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKClcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZSgpIHtcclxuXHJcbiAgICAgIHRoaXMubG9hZFByb2plY3RDZmcoKCkgPT4ge1xyXG4gICAgICAgIC8vIGRpc3BsYXkgcHJvamVjdCBuYW1lXHJcbiAgICAgICAgbGV0IHByTmFtZTogc3RyaW5nID0gJ1tVbmtub3duXSc7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvamVjdCAmJiB0aGlzLnByb2plY3QubmFtZSkge1xyXG4gICAgICAgICAgcHJOYW1lID0gdGhpcy5wcm9qZWN0Lm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vdGhpcy50aXRsZUVsLmlubmVyVGV4dCA9IHByTmFtZTtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJhbmRvbWl6ZShzY3JpcHQ6U2NyaXB0KXtcclxuXHRcdCAgICBzY3JpcHQuc2VjdGlvbnMuZm9yRWFjaCgocyk9PntcclxuXHRcdCAgICAgICAgaWYoJ1JBTkRPTSc9PT1zLm9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcy5fc2h1ZmZsZWRHcm91cHMgPSBBcnJheXMuc2h1ZmZsZUFycmF5PEdyb3VwPihzLmdyb3Vwcyk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuXHRcdCAgICAgICAgICAgIHMuX3NodWZmbGVkR3JvdXBzPXMuZ3JvdXBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cdFx0ICAgICAgICBzLl9zaHVmZmxlZEdyb3Vwcy5mb3JFYWNoKChnKT0+e1xyXG5cdFx0ICAgICAgICAgICAgaWYoJ1JBTkRPTSc9PT1nLm9yZGVyKXtcclxuXHRcdCAgICAgICAgICAgICAgIGcuX3NodWZmbGVkUHJvbXB0SXRlbXM9QXJyYXlzLnNodWZmbGVBcnJheTxQcm9tcHRJdGVtPihnLnByb21wdEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuXHRcdCAgICAgICAgICAgICAgICBnLl9zaHVmZmxlZFByb21wdEl0ZW1zPWcucHJvbXB0SXRlbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNjcmlwdChzY3JpcHQ6U2NyaXB0KXtcclxuICAgICAgICB0aGlzLnNjcmlwdD1zY3JpcHQ7XHJcbiAgICAgICAgdGhpcy5yYW5kb21pemUodGhpcy5zY3JpcHQpO1xyXG4gICAgICAgIHRoaXMuc20uc2NyaXB0ID0gdGhpcy5zY3JpcHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICBzZXQgcHJvamVjdChwcm9qZWN0OiBQcm9qZWN0fG51bGwpIHtcclxuICAgIHRoaXMuX3Byb2plY3QgPSBwcm9qZWN0O1xyXG4gICAgbGV0IGNoQ250ID0gUHJvamVjdFV0aWwuREVGQVVMVF9BVURJT19DSEFOTkVMX0NPVU5UO1xyXG5cclxuICAgIGlmIChwcm9qZWN0KSB7XHJcbiAgICAgIGNvbnNvbGUuaW5mbyhcIlByb2plY3QgbmFtZTogXCIgKyBwcm9qZWN0Lm5hbWUpXHJcbiAgICAgIGlmKHByb2plY3QucmVjb3JkaW5nRGV2aWNlV2FrZUxvY2s9PT10cnVlKXtcclxuICAgICAgICB0aGlzLnNtLndha2VMb2NrPXRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zbS5hdWRpb0RldmljZXMgPSBwcm9qZWN0LmF1ZGlvRGV2aWNlcztcclxuICAgICAgY2hDbnQgPSBQcm9qZWN0VXRpbC5hdWRpb0NoYW5uZWxDb3VudChwcm9qZWN0KTtcclxuICAgICAgY29uc29sZS5pbmZvKFwiUHJvamVjdCByZXF1ZXN0ZWQgcmVjb3JkaW5nIGNoYW5uZWwgY291bnQ6IFwiICsgY2hDbnQpO1xyXG4gICAgICB0aGlzLnNtLmF1dG9HYWluQ29udHJvbENvbmZpZ3M9cHJvamVjdC5hdXRvR2FpbkNvbnRyb2xDb25maWdzO1xyXG4gICAgICBpZihwcm9qZWN0LmNodW5rZWRSZWNvcmRpbmc9PT10cnVlKXtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiRW5hYmxlIGNodW5rZWQgdXBsb2FkOiBjaHVua1NpemU6IFwiK0Jhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFMpXHJcbiAgICAgICAgdGhpcy5zbS51cGxvYWRDaHVua1NpemVTZWNvbmRzPUJhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkQ2h1bmtTaXplU2Vjb25kcz1udWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRW1wdHkgcHJvamVjdCBjb25maWd1cmF0aW9uIVwiKVxyXG4gICAgfVxyXG4gICAgdGhpcy5zbS5jaGFubmVsQ291bnQgPSBjaENudDtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgcHJvamVjdCgpOlByb2plY3R8bnVsbHtcclxuXHRcdCAgcmV0dXJuIHRoaXMuX3Byb2plY3Q7XHJcbiAgfVxyXG5cclxuICAgIGxvYWRQcm9qZWN0Q2ZnKGNhbGxiYWNrOiAoKT0+IGFueSl7XHJcbiAgICAgIGxldCBwcm9qVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCA9PT0gbnVsbCkge1xyXG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT09ICdsb2NhbGhvc3QnIHx8IHRoaXMubW9kZSA9PT0gTW9kZS5ERU1PKSB7XHJcbiAgICAgICAgICAvLyBkZWJ1ZyBvciBkZW1vIG1vZGVcclxuICAgICAgICAgIHByb2pVcmwgPSAndGVzdC9EZW1vMS5qc29uPycgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gbG9hZCBSRVNUZnVsIGJ5IHNlc3Npb25JZFxyXG4gICAgICAgIHByb2pVcmwgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgJzonICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAnL3dpa2lzcGVlY2gvcmVzdC9wcm9qZWN0cy8/c2Vzc2lvbklkPScgKyB0aGlzLnNlc3Npb25JZDtcclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYocHJvalVybCkge1xyXG4gICAgICAgIHZhciBwTG9hZGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgcExvYWRlci5vcGVuKFwiR0VUXCIsIHByb2pVcmwsIHRydWUpO1xyXG4gICAgICAgIHBMb2FkZXIuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICBwTG9hZGVyLnJlc3BvbnNlVHlwZSA9IFwianNvblwiO1xyXG4gICAgICAgIHBMb2FkZXIub25sb2FkID0gKGUpID0+IHtcclxuXHJcbiAgICAgICAgICB0aGlzLnByb2plY3QgPSBwTG9hZGVyLnJlc3BvbnNlLnByb2plY3Q7XHJcblxyXG4gICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcExvYWRlci5vbmVycm9yID0gKGUpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkb3dubG9hZGluZyBwcm9qZWN0IGRhdGEgLi4uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwTG9hZGVyLnNlbmQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCl7XHJcbiAgICB9XHJcblxyXG5cdFx0YXVkaW9QbGF5ZXJVcGRhdGUoZTpBdWRpb1BsYXllckV2ZW50KXtcclxuXHRcdFx0aWYoUGxheWJhY2tFdmVudFR5cGUuU1RBUlRFRD09PWUudHlwZSl7XHJcblx0XHRcdFx0Ly90aGlzLnN0YXJ0QnRuLmRpc2FibGVkPXRydWU7XHJcblx0XHRcdFx0Ly90aGlzLnN0b3BCdG4uZGlzYWJsZWQ9dHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuXHRcdFx0XHR0aGlzLnNtLnN0YXR1c01zZz0nUGxheWJhY2suLi4nO1xyXG5cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChQbGF5YmFja0V2ZW50VHlwZS5FTkRFRCA9PT0gZS50eXBlKSB7XHJcblx0XHRcdFx0Ly90aGlzLnN0YXJ0QnRuLmRpc2FibGVkPWZhbHNlO1xyXG5cdFx0XHRcdC8vdGhpcy5zdG9wQnRuLmRpc2FibGVkPXRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZT0naW5mbyc7XHJcblx0XHRcdFx0dGhpcy5zbS5zdGF0dXNNc2c9J1JlYWR5Lic7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGVycm9yKCl7XHJcblx0XHQgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGU9J2Vycm9yJztcclxuXHRcdFx0dGhpcy5zbS5zdGF0dXNNc2c9J0VSUk9SOiBSZWNvcmRpbmcuJztcclxuXHRcdH1cclxuXHR9XHJcbiJdfQ==
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXJuZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFBO0FBQzVGLE9BQU8sRUFDa0MsU0FBUyxJQUFJLGlCQUFpQixFQUNyRSxXQUFXLEVBQ1osTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsY0FBYyxFQUFnQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZHLE9BQU8sRUFBNkIsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBSXhFLE9BQU8sRUFBVSxXQUFXLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7O0FBRXJFLE1BQU0sQ0FBTixJQUFZLElBQTBCO0FBQXRDLFdBQVksSUFBSTtJQUFFLG1EQUFjLENBQUE7SUFBQywrQkFBSSxDQUFBO0FBQUEsQ0FBQyxFQUExQixJQUFJLEtBQUosSUFBSSxRQUFzQjtBQWtCdEMsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGlCQUFpQjtJQWM5RCxZQUFvQixLQUFxQixFQUNmLE1BQWMsRUFDbEIsaUJBQW9DLEVBQ3BDLGVBQThCLEVBQzlCLGNBQTZCLEVBQzdCLGFBQTJCLEVBQzNCLGVBQWdDLEVBQzlCLFFB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QkFBeUIsNkNBYnpCLENBQUMsY0FBYyxDQUFDLDhEQXlCaEIsY0FBYyxxRkF4QmY7O0dBRVQ7NEZBVVUseUJBQXlCO2tCQWhCckMsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzNCLFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxNQUFNLEVBQUUsQ0FBQzs7Ozs7O0lBTVAsQ0FBQztpQkFFSjtvVEFhOEMsRUFBRTtzQkFBOUMsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEFmdGVyVmlld0luaXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBBdWRpb1BsYXllckxpc3RlbmVyLCBBdWRpb1BsYXllckV2ZW50LCBFdmVudFR5cGUgYXMgUGxheWJhY2tFdmVudFR5cGUsXHJcbiAgQXVkaW9QbGF5ZXJcclxufSBmcm9tICcuL2F1ZGlvL3BsYXliYWNrL3BsYXllcic7XHJcbmltcG9ydCB7R3JvdXAsIE9yZGVyLCBQcm9tcHRJdGVtLCBTY3JpcHR9IGZyb20gJy4vc3BlZWNocmVjb3JkZXIvc2NyaXB0L3NjcmlwdCdcclxuaW1wb3J0IHsgU2Vzc2lvbk1hbmFnZXIsU3RhdHVzIGFzIFNlc3Npb25NYW5hZ2VyU3RhdHVzfSBmcm9tICcuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vc2Vzc2lvbm1hbmFnZXInO1xyXG5pbXBvcnQgeyBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50LCBVcGxvYWRlclN0YXR1cyB9IGZyb20gJy4vbmV0L3VwbG9hZGVyJztcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTY3JpcHRTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zY3JpcHQvc2NyaXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTcGVlY2hSZWNvcmRlclVwbG9hZGVyfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zcHJ1cGxvYWRlclwiO1xyXG5pbXBvcnQge1Nlc3Npb259IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vc2Vzc2lvblwiO1xyXG5pbXBvcnQge1Byb2plY3QsIFByb2plY3RVdGlsfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9wcm9qZWN0L3Byb2plY3RcIjtcclxuaW1wb3J0IHtQcm9qZWN0U2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvcHJvamVjdC9wcm9qZWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBdWRpb0NvbnRleHRQcm92aWRlcn0gZnJvbSBcIi4vYXVkaW8vY29udGV4dFwiO1xyXG5pbXBvcnQge1JlY29yZGluZ1NlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3JlY29yZGluZ3MvcmVjb3JkaW5ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZURlc2NyaXB0b3JJbXBsfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9yZWNvcmRpbmdcIjtcclxuaW1wb3J0IHtBcnJheXN9IGZyb20gXCIuL3V0aWxzL3V0aWxzXCI7XHJcbmltcG9ydCB7QXVkaW9SZWNvcmRlckNvbXBvbmVudH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9hdWRpb3JlY29yZGVyXCI7XHJcbmltcG9ydCB7UmVjb3JkZXJDb21wb25lbnR9IGZyb20gXCIuL3JlY29yZGVyX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Jhc2ljUmVjb3JkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vYmFzaWNyZWNvcmRlclwiO1xyXG5cclxuZXhwb3J0IGVudW0gTW9kZSB7U0lOR0xFX1NFU1NJT04sREVNT31cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcGVlY2hyZWNvcmRlcicsXHJcbiAgcHJvdmlkZXJzOiBbU2Vzc2lvblNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXBwLXNwcnJlY29yZGluZ3Nlc3Npb24gW3Byb2plY3ROYW1lXT1cInByb2plY3Q/Lm5hbWVcIiBbZGF0YVNhdmVkXT1cImRhdGFTYXZlZFwiPjwvYXBwLXNwcnJlY29yZGluZ3Nlc3Npb24+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3R7XHJcbiAgICBmbGV4OiAyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OjA7XHJcblxyXG4gIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWVjaHJlY29yZGVybmdDb21wb25lbnQgZXh0ZW5kcyBSZWNvcmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0LEF1ZGlvUGxheWVyTGlzdGVuZXIge1xyXG5cclxuXHQgIG1vZGUhOk1vZGU7XHJcblx0XHRjb250cm9sQXVkaW9QbGF5ZXIhOkF1ZGlvUGxheWVyO1xyXG5cdFx0YXVkaW86YW55O1xyXG5cclxuXHRfcHJvamVjdDpQcm9qZWN0fG51bGw9bnVsbDtcclxuICBzZXNzaW9uSWQhOiBzdHJpbmc7XHJcbiAgc2Vzc2lvbiE6U2Vzc2lvbjtcclxuXHJcbiAgc2NyaXB0ITpTY3JpcHQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoU2Vzc2lvbk1hbmFnZXIsIHsgc3RhdGljOiB0cnVlIH0pIHNtITpTZXNzaW9uTWFuYWdlcjtcclxuXHJcblx0XHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHNlc3Npb25zU2VydmljZTpTZXNzaW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcHJvamVjdFNlcnZpY2U6UHJvamVjdFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIHNjcmlwdFNlcnZpY2U6U2NyaXB0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVjRmlsZXNTZXJ2aWNlOlJlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdXBsb2FkZXI6U3BlZWNoUmVjb3JkZXJVcGxvYWRlcikge1xyXG4gICAgICBzdXBlcih1cGxvYWRlcik7XHJcblx0XHR9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcblx0XHQgIHRyeSB7XHJcbiAgICAgICAgbGV0IGF1ZGlvQ29udGV4dCA9IEF1ZGlvQ29udGV4dFByb3ZpZGVyLmF1ZGlvQ29udGV4dEluc3RhbmNlKCk7XHJcbiAgICAgICAgICAgICAgaWYoYXVkaW9Db250ZXh0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEF1ZGlvUGxheWVyID0gbmV3IEF1ZGlvUGxheWVyKGF1ZGlvQ29udGV4dCwgdGhpcyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc20uY29udHJvbEF1ZGlvUGxheWVyPXRoaXMuY29udHJvbEF1ZGlvUGxheWVyO1xyXG4gICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdQbGF5ZXIgaW5pdGlhbGl6ZWQuJztcclxuICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgbGV0IGVyck1zZz0nVW5rbm93biBlcnJvcic7XHJcbiAgICAgICAgaWYoZXJyIGluc3RhbmNlb2YgRXJyb3Ipe1xyXG4gICAgICAgICAgZXJyTXNnPWVyci5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNtLnN0YXR1c01zZz1lcnJNc2c7XHJcbiAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGU9J2Vycm9yJztcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVyck1zZylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICAgICAgLy8gbGV0IHdha2VMb2NrU3VwcD0oJ3dha2VMb2NrJyBpbiBuYXZpZ2F0b3IpO1xyXG4gICAgICAgIC8vIGFsZXJ0KCdXYWtlIGxvY2sgQVBJIHN1cHBvcnRlZDogJyt3YWtlTG9ja1N1cHApO1xyXG5cclxuXHJcblx0XHQgIGlmKHRoaXMuc20uc3RhdHVzIT09IFNlc3Npb25NYW5hZ2VyU3RhdHVzLkVSUk9SKSB7XHJcbiAgICAgICAgbGV0IGluaXRTdWNjZXNzID0gdGhpcy5pbml0KCk7XHJcbiAgICAgICAgaWYgKGluaXRTdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHBhcmFtc1snc2Vzc2lvbklkJ10pIHtcclxuICAgICAgICAgICAgICB0aGlzLmZldGNoU2Vzc2lvbihwYXJhbXNbJ3Nlc3Npb25JZCddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcm91dGVQYXJhbXNJZCA9IHBhcmFtc1snaWQnXTtcclxuICAgICAgICAgICAgaWYgKHJvdXRlUGFyYW1zSWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZldGNoU2Vzc2lvbihyb3V0ZVBhcmFtc0lkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZmV0Y2hTZXNzaW9uKHNlc3Npb25JZDpzdHJpbmcpe1xyXG5cclxuICAgICAgbGV0IHNlc3NPYnM9IHRoaXMuc2Vzc2lvbnNTZXJ2aWNlLnNlc3Npb25PYnNlcnZlcihzZXNzaW9uSWQpO1xyXG5cclxuICAgICAgaWYoc2Vzc09icykge1xyXG4gICAgICAgIHNlc3NPYnMuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IHNlc3MgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFNlc3Npb24oc2Vzcyk7XHJcbiAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdSZWNlaXZlZCBzZXNzaW9uIGluZm8uJztcclxuICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChzZXNzLnByb2plY3QpIHtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJTZXNzaW9uIGFzc29jaWF0ZWQgcHJvamVjdDogXCIrc2Vzcy5wcm9qZWN0KVxyXG4gICAgICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdE9ic2VydmFibGUoc2Vzcy5wcm9qZWN0KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgICBuZXh0OiAocHJvamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdCA9IHByb2plY3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZXRjaFNjcmlwdChzZXNzKTtcclxuICAgICAgICAgICAgICAgICAgfSwgZXJyb3I6IChyZWFzb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IHJlYXNvbjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGZldGNoaW5nIHByb2plY3QgY29uZmlnOiBcIiArIHJlYXNvbilcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhcIlNlc3Npb24gaGFzIG5vIGFzc29jaWF0ZWQgcHJvamVjdC4gVXNpbmcgZGVmYXVsdCBjb25maWd1cmF0aW9uLlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMuZmV0Y2hTY3JpcHQoc2Vzcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjoocmVhc29uKSA9PlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IHJlYXNvbjtcclxuICAgICAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGZldGNoaW5nIHNlc3Npb24gXCIgKyByZWFzb24pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgZmV0Y2hTY3JpcHQoc2VzczogU2Vzc2lvbikge1xyXG4gICAgaWYgKHNlc3Muc2NyaXB0KSB7XHJcbiAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdGZXRjaGluZyByZWNvcmRpbmcgc2NyaXB0Li4uJztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zY3JpcHRTZXJ2aWNlLnNjcmlwdE9ic2VydmFibGUoc2Vzcy5zY3JpcHQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHNjcmlwdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdSZWNlaXZlZCByZWNvcmRpbmcgc2NyaXB0Lic7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2V0U2NyaXB0KHNjcmlwdClcclxuICAgICAgICAgIHRoaXMuc20uc2Vzc2lvbiA9IHNlc3M7XHJcbiAgICAgICAgICB0aGlzLmZldGNoUmVjb3JkaW5ncyhzZXNzLCB0aGlzLnNjcmlwdClcclxuICAgICAgICB9LCBlcnJvcjogKHJlYXNvbikgPT4ge1xyXG4gICAgICAgICAgbGV0IGVyck1zZyA9IFwiRXJyb3IgZmV0Y2hpbmcgcmVjb3JkaW5nIHNjcmlwdDogXCIgKyByZWFzb25cclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyTXNnKVxyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSBlcnJNc2c7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZSA9ICdlcnJvcic7XHJcbiAgICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGVyck1zZyA9IFwiTm8gcmVjb3JkaW5nIHNjcmlwdCBpcyBkZWZpbmVkIGZvciB0aGlzIHNlc3Npb24gd2l0aCBJRCBcIiArIHNlc3Muc2Vzc2lvbklkO1xyXG4gICAgICBjb25zb2xlLmVycm9yKHRoaXMuc20uc3RhdHVzTXNnKVxyXG4gICAgICB0aGlzLnNtLnN0YXR1c01zZyA9IGVyck1zZztcclxuICAgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnZXJyb3InO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoUmVjb3JkaW5ncyhzZXNzOiBTZXNzaW9uLCBzY3JpcHQ6IFNjcmlwdCkge1xyXG4gICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGUgPSAnaW5mbyc7XHJcbiAgICB0aGlzLnNtLnN0YXR1c01zZyA9ICdGZXRjaGluZyBpbmZvcyBvZiByZWNvcmRpbmdzLi4uJztcclxuICAgIHRoaXMuc20uc3RhdHVzV2FpdGluZyA9IHRydWU7XHJcbiAgICBsZXQgcHJObTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0KSB7XHJcbiAgICAgIGxldCByZnNPYnMgPSB0aGlzLnJlY0ZpbGVzU2VydmljZS5yZWNvcmRpbmdGaWxlRGVzY3JMaXN0KHRoaXMucHJvamVjdC5uYW1lLCBzZXNzLnNlc3Npb25JZCk7XHJcbiAgICAgIHJmc09icy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZnM6IEFycmF5PFJlY29yZGluZ0ZpbGVEZXNjcmlwdG9ySW1wbD4pID0+IHtcclxuICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlID0gJ2luZm8nO1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNNc2cgPSAnUmVjZWl2ZWQgaW5mb3Mgb2YgcmVjb3JkaW5ncy4nO1xyXG4gICAgICAgICAgdGhpcy5zbS5zdGF0dXNXYWl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAocmZzKSB7XHJcbiAgICAgICAgICAgIGlmIChyZnMgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgIHJmcy5mb3JFYWNoKChyZikgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIkFscmVhZHkgcmVjb3JkZWQ6IFwiICsgcmYrIFwiIFwiK3JmLnJlY29yZGluZy5pdGVtY29kZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNtLmFkZFJlY29yZGluZ0ZpbGVCeURlc2NyaXB0b3IocmYpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXhwZWN0ZWQgdHlwZSBhcnJheSBmb3IgbGlzdCBvZiBhbHJlYWR5IHJlY29yZGVkIGZpbGVzICcpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlJlY29yZGluZyBmaWxlIGxpc3Q6IFwiICsgcmZzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgLy8gd2Ugc3RhcnQgdGhlIHNlc3Npb24gYW55d2F5XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0U2Vzc2lvbigpXHJcbiAgICAgICAgfSwgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc3RhcnRTZXNzaW9uKClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBUT0RPXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2NyZWVuTG9ja2VkKCk6Ym9vbGVhbntcclxuICAgICAgcmV0dXJuICB0aGlzLnNtLnNjcmVlbkxvY2tlZDtcclxuICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGFydFNlc3Npb24oKXtcclxuICAgICAgICB0aGlzLnNtLnN0YXR1c1dhaXRpbmc9ZmFsc2U7XHJcblx0XHQgIHRoaXMuc20uc3RhcnQoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgICAgIHNldFNlc3Npb24oc2Vzc2lvbjphbnkpe1xyXG5cdFx0ICAgIGlmKHNlc3Npb24pIHtcclxuICAgICAgICAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyhcIlNlc3Npb24gSUQ6IFwiICsgc2Vzc2lvbi5zZXNzaW9uSWQpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlNlc3Npb24gVW5kZWZpbmVkXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWFkeSgpOmJvb2xlYW57XHJcblx0XHQgICAgcmV0dXJuIHRoaXMuZGF0YVNhdmVkICYmICF0aGlzLnNtLmlzQWN0aXZlKClcclxuICAgICAgICB9XHJcblxyXG5cdFx0aW5pdCgpOmJvb2xlYW4ge1xyXG4gICAgICAvL1RPRE8gRHVwbGljYXRlIGNvZGUgaW4gQXVkaW9SZWNvcmRlckNvbXBvbmVudFxyXG4gICAgICAgIHRoaXMudXBsb2FkZXIubGlzdGVuZXIgPSAodWUpID0+IHtcclxuICAgICAgICAgIHRoaXMudXBsb2FkVXBkYXRlKHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIChlKSA9PiB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoXCJCZWZvcmUgcGFnZSB1bmxvYWQgZXZlbnRcIik7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMucmVhZHkoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBhbGwgdGhpcyBhdHRlbXB0cyB0byBjdXN0b21pemUgdGhlIG1lc3NhZ2UgZG8gbm90IHdvcmsgYW55bW9yZSAoZm9yIHNlY3VyaXR5IHJlYXNvbnMpISFcclxuICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBcIlBsZWFzZSBkbyBub3QgbGVhdmUgdGhlIHBhZ2UsIHVudGlsIGFsbCByZWNvcmRpbmdzIGFyZSB1cGxvYWRlZCFcIjtcclxuICAgICAgICAgICAgYWxlcnQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcclxuXHJcbiAgICAgICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICAgICAgZS5yZXR1cm5WYWx1ZSA9IG1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgZS5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGlmIChlLnN0b3BQcm9wYWdhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGUucHJldmVudERlZmF1bHQpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgdXBsb2FkVXBkYXRlKHVlOiBVcGxvYWRlclN0YXR1c0NoYW5nZUV2ZW50KSB7XHJcbiAgICBsZXQgdXBTdGF0dXMgPSB1ZS5zdGF0dXM7XHJcbiAgICB0aGlzLmRhdGFTYXZlZCA9IChVcGxvYWRlclN0YXR1cy5ET05FID09PSB1cFN0YXR1cyk7XHJcbiAgICBsZXQgcGVyY2VudFVwbCA9IHVlLnBlcmNlbnREb25lKCk7XHJcbiAgICBpZiAoVXBsb2FkZXJTdGF0dXMuRVJSID09PSB1cFN0YXR1cykge1xyXG4gICAgICB0aGlzLnNtLnVwbG9hZFN0YXR1cyA9ICd3YXJuJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHBlcmNlbnRVcGwgPCA1MCkge1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkU3RhdHVzID0gJ2FjY2VudCdcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNtLnVwbG9hZFN0YXR1cyA9ICdzdWNjZXNzJ1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc20udXBsb2FkUHJvZ3Jlc3MgPSBwZXJjZW50VXBsO1xyXG4gICAgfVxyXG4gICAgLy9jb25zb2xlLmRlYnVnKFwiVXBsb2FkIHVwZGF0ZSwgdXBkYXRlIHdha2UgbG9jay5cIilcclxuICAgIHRoaXMuc20udXBkYXRlV2FrZUxvY2sodGhpcy5kYXRhU2F2ZWQpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKClcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZSgpIHtcclxuXHJcbiAgICAgIHRoaXMubG9hZFByb2plY3RDZmcoKCkgPT4ge1xyXG4gICAgICAgIC8vIGRpc3BsYXkgcHJvamVjdCBuYW1lXHJcbiAgICAgICAgbGV0IHByTmFtZTogc3RyaW5nID0gJ1tVbmtub3duXSc7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvamVjdCAmJiB0aGlzLnByb2plY3QubmFtZSkge1xyXG4gICAgICAgICAgcHJOYW1lID0gdGhpcy5wcm9qZWN0Lm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vdGhpcy50aXRsZUVsLmlubmVyVGV4dCA9IHByTmFtZTtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJhbmRvbWl6ZShzY3JpcHQ6U2NyaXB0KXtcclxuXHRcdCAgICBzY3JpcHQuc2VjdGlvbnMuZm9yRWFjaCgocyk9PntcclxuXHRcdCAgICAgICAgaWYoJ1JBTkRPTSc9PT1zLm9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcy5fc2h1ZmZsZWRHcm91cHMgPSBBcnJheXMuc2h1ZmZsZUFycmF5PEdyb3VwPihzLmdyb3Vwcyk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuXHRcdCAgICAgICAgICAgIHMuX3NodWZmbGVkR3JvdXBzPXMuZ3JvdXBzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cdFx0ICAgICAgICBzLl9zaHVmZmxlZEdyb3Vwcy5mb3JFYWNoKChnKT0+e1xyXG5cdFx0ICAgICAgICAgICAgaWYoJ1JBTkRPTSc9PT1nLm9yZGVyKXtcclxuXHRcdCAgICAgICAgICAgICAgIGcuX3NodWZmbGVkUHJvbXB0SXRlbXM9QXJyYXlzLnNodWZmbGVBcnJheTxQcm9tcHRJdGVtPihnLnByb21wdEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuXHRcdCAgICAgICAgICAgICAgICBnLl9zaHVmZmxlZFByb21wdEl0ZW1zPWcucHJvbXB0SXRlbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNjcmlwdChzY3JpcHQ6U2NyaXB0KXtcclxuICAgICAgICB0aGlzLnNjcmlwdD1zY3JpcHQ7XHJcbiAgICAgICAgdGhpcy5yYW5kb21pemUodGhpcy5zY3JpcHQpO1xyXG4gICAgICAgIHRoaXMuc20uc2NyaXB0ID0gdGhpcy5zY3JpcHQ7XHJcbiAgICB9XHJcblxyXG5cclxuICBzZXQgcHJvamVjdChwcm9qZWN0OiBQcm9qZWN0fG51bGwpIHtcclxuICAgIHRoaXMuX3Byb2plY3QgPSBwcm9qZWN0O1xyXG4gICAgbGV0IGNoQ250ID0gUHJvamVjdFV0aWwuREVGQVVMVF9BVURJT19DSEFOTkVMX0NPVU5UO1xyXG5cclxuICAgIGlmIChwcm9qZWN0KSB7XHJcbiAgICAgIGNvbnNvbGUuaW5mbyhcIlByb2plY3QgbmFtZTogXCIgKyBwcm9qZWN0Lm5hbWUpXHJcbiAgICAgIGlmKHByb2plY3QucmVjb3JkaW5nRGV2aWNlV2FrZUxvY2s9PT10cnVlKXtcclxuICAgICAgICB0aGlzLnNtLndha2VMb2NrPXRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zbS5hdWRpb0RldmljZXMgPSBwcm9qZWN0LmF1ZGlvRGV2aWNlcztcclxuICAgICAgY2hDbnQgPSBQcm9qZWN0VXRpbC5hdWRpb0NoYW5uZWxDb3VudChwcm9qZWN0KTtcclxuICAgICAgY29uc29sZS5pbmZvKFwiUHJvamVjdCByZXF1ZXN0ZWQgcmVjb3JkaW5nIGNoYW5uZWwgY291bnQ6IFwiICsgY2hDbnQpO1xyXG4gICAgICB0aGlzLnNtLmF1dG9HYWluQ29udHJvbENvbmZpZ3M9cHJvamVjdC5hdXRvR2FpbkNvbnRyb2xDb25maWdzO1xyXG4gICAgICBpZihwcm9qZWN0LmNodW5rZWRSZWNvcmRpbmc9PT10cnVlKXtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiRW5hYmxlIGNodW5rZWQgdXBsb2FkOiBjaHVua1NpemU6IFwiK0Jhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFMpXHJcbiAgICAgICAgdGhpcy5zbS51cGxvYWRDaHVua1NpemVTZWNvbmRzPUJhc2ljUmVjb3JkZXIuREVGQVVMVF9DSFVOS19TSVpFX1NFQ09ORFM7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuc20udXBsb2FkQ2h1bmtTaXplU2Vjb25kcz1udWxsO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRW1wdHkgcHJvamVjdCBjb25maWd1cmF0aW9uIVwiKVxyXG4gICAgfVxyXG4gICAgdGhpcy5zbS5jaGFubmVsQ291bnQgPSBjaENudDtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgcHJvamVjdCgpOlByb2plY3R8bnVsbHtcclxuXHRcdCAgcmV0dXJuIHRoaXMuX3Byb2plY3Q7XHJcbiAgfVxyXG5cclxuICAgIGxvYWRQcm9qZWN0Q2ZnKGNhbGxiYWNrOiAoKT0+IGFueSl7XHJcbiAgICAgIGxldCBwcm9qVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCA9PT0gbnVsbCkge1xyXG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT09ICdsb2NhbGhvc3QnIHx8IHRoaXMubW9kZSA9PT0gTW9kZS5ERU1PKSB7XHJcbiAgICAgICAgICAvLyBkZWJ1ZyBvciBkZW1vIG1vZGVcclxuICAgICAgICAgIHByb2pVcmwgPSAndGVzdC9EZW1vMS5qc29uPycgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gbG9hZCBSRVNUZnVsIGJ5IHNlc3Npb25JZFxyXG4gICAgICAgIHByb2pVcmwgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgJzonICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAnL3dpa2lzcGVlY2gvcmVzdC9wcm9qZWN0cy8/c2Vzc2lvbklkPScgKyB0aGlzLnNlc3Npb25JZDtcclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYocHJvalVybCkge1xyXG4gICAgICAgIHZhciBwTG9hZGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgcExvYWRlci5vcGVuKFwiR0VUXCIsIHByb2pVcmwsIHRydWUpO1xyXG4gICAgICAgIHBMb2FkZXIuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgICAgICBwTG9hZGVyLnJlc3BvbnNlVHlwZSA9IFwianNvblwiO1xyXG4gICAgICAgIHBMb2FkZXIub25sb2FkID0gKGUpID0+IHtcclxuXHJcbiAgICAgICAgICB0aGlzLnByb2plY3QgPSBwTG9hZGVyLnJlc3BvbnNlLnByb2plY3Q7XHJcblxyXG4gICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcExvYWRlci5vbmVycm9yID0gKGUpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkb3dubG9hZGluZyBwcm9qZWN0IGRhdGEgLi4uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBwTG9hZGVyLnNlbmQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCl7XHJcbiAgICB9XHJcblxyXG5cdFx0YXVkaW9QbGF5ZXJVcGRhdGUoZTpBdWRpb1BsYXllckV2ZW50KXtcclxuXHRcdFx0aWYoUGxheWJhY2tFdmVudFR5cGUuU1RBUlRFRD09PWUudHlwZSl7XHJcblx0XHRcdFx0Ly90aGlzLnN0YXJ0QnRuLmRpc2FibGVkPXRydWU7XHJcblx0XHRcdFx0Ly90aGlzLnN0b3BCdG4uZGlzYWJsZWQ9dHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc20uc3RhdHVzQWxlcnRUeXBlPSdpbmZvJztcclxuXHRcdFx0XHR0aGlzLnNtLnN0YXR1c01zZz0nUGxheWJhY2suLi4nO1xyXG5cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChQbGF5YmFja0V2ZW50VHlwZS5FTkRFRCA9PT0gZS50eXBlKSB7XHJcblx0XHRcdFx0Ly90aGlzLnN0YXJ0QnRuLmRpc2FibGVkPWZhbHNlO1xyXG5cdFx0XHRcdC8vdGhpcy5zdG9wQnRuLmRpc2FibGVkPXRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNtLnN0YXR1c0FsZXJ0VHlwZT0naW5mbyc7XHJcblx0XHRcdFx0dGhpcy5zbS5zdGF0dXNNc2c9J1JlYWR5Lic7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGVycm9yKCl7XHJcblx0XHQgICAgdGhpcy5zbS5zdGF0dXNBbGVydFR5cGU9J2Vycm9yJztcclxuXHRcdFx0dGhpcy5zbS5zdGF0dXNNc2c9J0VSUk9SOiBSZWNvcmRpbmcuJztcclxuXHRcdH1cclxuXHR9XHJcbiJdfQ==
@@ -51,6 +51,7 @@ import { MatSnackBarModule } from "@angular/material/snack-bar";
51
51
  import { AudioRecorder, AudioRecorderComponent } from "./speechrecorder/session/audiorecorder";
52
52
  import { RecordingList } from "./speechrecorder/session/recording_list";
53
53
  import { RecorderCombiPane } from "./speechrecorder/session/recorder_combi_pane";
54
+ import { MatMenuModule } from "@angular/material/menu";
54
55
  import * as i0 from "@angular/core";
55
56
  import * as i1 from "@angular/router";
56
57
  export const SPR_ROUTES = [
@@ -84,16 +85,16 @@ export class SpeechrecorderngModule {
84
85
  }
85
86
  SpeechrecorderngModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SpeechrecorderngModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
87
  SpeechrecorderngModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SpeechrecorderngModule, declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
87
- ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, WakeLockIndicator, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder], imports: [i1.RouterModule, FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule], exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder] });
88
- SpeechrecorderngModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SpeechrecorderngModule, providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader], imports: [[RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule]] });
88
+ ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, WakeLockIndicator, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder], imports: [i1.RouterModule, FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule, MatMenuModule], exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder] });
89
+ SpeechrecorderngModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SpeechrecorderngModule, providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader], imports: [[RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule, MatMenuModule]] });
89
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SpeechrecorderngModule, decorators: [{
90
91
  type: NgModule,
91
92
  args: [{
92
93
  declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
93
94
  ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, WakeLockIndicator, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder],
94
95
  exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder],
95
- imports: [RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule],
96
+ imports: [RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule, MatMenuModule],
96
97
  providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader]
97
98
  }]
98
99
  }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNocmVjb3JkZXJuZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXJuZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFFMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxHQUMxRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFD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LHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUMsYUFBYSxDQUFDO29CQUN0TSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7b0JBQzVWLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDO2lCQUM3SCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1NwZWVjaHJlY29yZGVybmdDb21wb25lbnR9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVybmcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U2ltcGxlVHJhZmZpY0xpZ2h0fSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zdGFydHN0b3BzaWduYWwvdWkvc2ltcGxldHJhZmZpY2xpZ2h0XCI7XHJcblxyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1Byb2dyZXNzfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Byb2dyZXNzXCI7XHJcbmltcG9ydCB7XHJcbiAgUHJvbXB0Q29udGFpbmVyLCBQcm9tcHRlciwgUHJvbXB0aW5nLCBQcm9tcHRpbmdDb250YWluZXIsIFJlY2luc3RydWN0aW9ucyxcclxufSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Byb21wdGluZ1wiO1xyXG5pbXBvcnQge1Nlc3Npb25NYW5hZ2VyfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Nlc3Npb25tYW5hZ2VyXCI7XHJcbmltcG9ydCB7V2FybmluZ0Jhcn0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi93YXJuaW5nX2JhclwiO1xyXG5pbXBvcnQge1Njcm9sbEludG9WaWV3RGlyZWN0aXZlfSBmcm9tIFwiLi91dGlscy9zY3JvbGxJbnRvVmlld1RvQm90dG9tXCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyXCI7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1NjcmlwdFNlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3NjcmlwdC9zY3JpcHQuc2VydmljZVwiO1xyXG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7U3BlZWNoUmVjb3JkZXJDb25maWcsIFNQRUVDSFJFQ09SREVSX0NPTkZJR30gZnJvbSBcIi4vc3ByLmNvbmZpZ1wiO1xyXG5pbXBvcnQge1NwZWVjaFJlY29yZGVyVXBsb2FkZXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3NwcnVwbG9hZGVyXCI7XHJcbmltcG9ydCB7UHJvamVjdFNlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Byb2plY3QvcHJvamVjdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFBhbmVsLFxyXG4gIFByb2dyZXNzRGlzcGxheSxcclxuICBSZWFkeVN0YXRlSW5kaWNhdG9yLFxyXG4gIFN0YXR1c0Rpc3BsYXksXHJcbiAgVHJhbnNwb3J0UGFuZWwsXHJcbiAgVXBsb2FkU3RhdHVzLCBXYWtlTG9ja0luZGljYXRvclxyXG59IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vY29udHJvbHBhbmVsXCI7XHJcbmltcG9ydCB7RmxleExheW91dE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2ZsZXgtbGF5b3V0XCI7XHJcbmltcG9ydCB7U2Vzc2lvbkZpbmlzaGVkRGlhbG9nfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3Nlc3Npb25fZmluaXNoZWRfZGlhbG9nXCI7XHJcbmltcG9ydCB7TWVzc2FnZURpYWxvZ30gZnJvbSBcIi4vdWkvbWVzc2FnZV9kaWFsb2dcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdJdGVtQ29udHJvbHMsIFJlY29yZGluZ0l0ZW1EaXNwbGF5fSBmcm9tIFwiLi91aS9yZWNvcmRpbmdpdGVtX2Rpc3BsYXlcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9yZWNvcmRpbmdzL3JlY29yZGluZ3Muc2VydmljZVwiO1xyXG5pbXBvcnQge1Njcm9sbFBhbmVIb3Jpem9udGFsfSBmcm9tIFwiLi9hdWRpby91aS9zY3JvbGxfcGFuZV9ob3Jpem9udGFsXCI7XHJcbmltcG9ydCB7QXVkaW9DbGlwVUlDb250YWluZXJ9IGZyb20gXCIuL2F1ZGlvL3VpL2NvbnRhaW5lclwiO1xyXG5pbXBvcnQge0F1ZGlvU2lnbmFsfSBmcm9tIFwiLi9hdWRpby91aS9hdWRpb3NpZ25hbFwiO1xyXG5pbXBvcnQge1NvbmFncmFtfSBmcm9tIFwiLi9hdWRpby91aS9zb25hZ3JhbVwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVBsYXllcn0gZnJvbSBcIi4vYXVkaW8vYXVkaW9fcGxheWVyXCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5fSBmcm9tIFwiLi9hdWRpby9hdWRpb19kaXNwbGF5XCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5Q29udHJvbH0gZnJvbSBcIi4vYXVkaW8vdWkvYXVkaW9fZGlzcGxheV9jb250cm9sXCI7XHJcbmltcG9ydCB7TGV2ZWxCYXJ9IGZyb20gXCIuL2F1ZGlvL3VpL2xpdmVsZXZlbFwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVNjcm9sbFBhbmV9IGZyb20gXCIuL2F1ZGlvL3VpL2F1ZGlvX2Rpc3BsYXlfc2Nyb2xsX3BhbmVcIjtcclxuaW1wb3J0IHtVVUlEfSBmcm9tIFwiLi91dGlscy91dGlsc1wiO1xyXG5pbXBvcnQge01hdENoZWNrYm94TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHtNYXRDYXJkLCBNYXRDYXJkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xyXG5pbXBvcnQge01hdERpdmlkZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyXCI7XHJcbmltcG9ydCB7TWF0R3JpZExpc3RNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3RcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlVUl9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcmVjb3JkaW5nZmlsZS9yZWNvcmRpbmctZmlsZS11LWkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVNlcnZpY2V9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcmVjb3JkaW5nZmlsZS9yZWNvcmRpbmdmaWxlLXNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0VGFibGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQgeyBSZWNvcmRpbmdGaWxlTmF2aUNvbXBvbmVudCB9IGZyb20gJy4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW5hdmkuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlTWV0YUNvbXBvbmVudH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW1ldGEuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0U2VsZWN0TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7TWF0SW5wdXRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQge01hdFNuYWNrQmFyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyXCI7XHJcbmltcG9ydCB7QXVkaW9SZWNvcmRlciwgQXVkaW9SZWNvcmRlckNvbXBvbmVudH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9hdWRpb3JlY29yZGVyXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nTGlzdH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdFwiO1xyXG5pbXBvcnQge1JlY29yZGVyQ29tYmlQYW5lfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGVyX2NvbWJpX3BhbmVcIjtcclxuXHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFNQUl9ST1VURVM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICdzcHIvc2Vzc2lvbi86aWQnLCAgICAgIGNvbXBvbmVudDogU3BlZWNocmVjb3JkZXJuZ0NvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ3JlY29yZGVyL3Nlc3Npb24vOmlkJywgICAgICBjb21wb25lbnQ6IEF1ZGlvUmVjb3JkZXJDb21wb25lbnR9LFxyXG4gIHsgcGF0aDogJ3JlY29yZGVyJywgICAgICBjb21wb25lbnQ6IEF1ZGlvUmVjb3JkZXJDb21wb25lbnR9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9wcm9qZWN0Lzpwcm9qZWN0L3Nlc3Npb24vOnNlc3Npb25JZC9yZWNvcmRpbmdmaWxlL192aWV3LzpyZWNvcmRpbmdGaWxlSWQnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcHJvamVjdC86cHJvamVjdC9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjb3JkaW5nZmlsZS9fZWRpdC86cmVjb3JkaW5nRmlsZUlkJywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVVSSB9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9wcm9qZWN0Lzpwcm9qZWN0L3Nlc3Npb24vOnNlc3Npb25JZC9yZWNvcmRpbmdmaWxlL192aWV3JywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVWaWV3Q29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3Byb2plY3QvOnByb2plY3Qvc2Vzc2lvbi86c2Vzc2lvbklkL3JlY29yZGluZ2ZpbGUvX2VkaXQnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVVJIH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3Byb2plY3QvOnByb2plY3Qvc2Vzc2lvbi86c2Vzc2lvbklkL3JlY29yZGluZ2ZpbGUvOnJlY29yZGluZ0ZpbGVJZCcsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVUkgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcHJvamVjdC86cHJvamVjdC9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjb3JkaW5nZmlsZScsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVUkgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcmVjb3JkaW5nZmlsZS9fdmlldy86cmVjb3JkaW5nRmlsZUlkJywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVWaWV3Q29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3JlY29yZGluZ2ZpbGUvX2VkaXQvOnJlY29yZGluZ0ZpbGVJZCcsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVUkgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcmVjb3JkaW5nZmlsZS9fdmlldy8nLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcmVjb3JkaW5nZmlsZS9fdmlldycsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9yZWNvcmRpbmdmaWxlL19lZGl0JywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVVSSB9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9yZWNvcmRpbmdmaWxlLzpyZWNvcmRpbmdGaWxlSWQnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVVJIH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3JlY29yZGluZ2ZpbGUnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVVJIH0sXHJcbiAgeyBwYXRoOiAnc3ByJywgICAgICBjb21wb25lbnQ6IFNwZWVjaHJlY29yZGVybmdDb21wb25lbnQgfVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0F1ZGlvU2lnbmFsLCBTb25hZ3JhbSwgU2Nyb2xsUGFuZUhvcml6b250YWwsIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLCBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCBBdWRpb0Rpc3BsYXksIEF1ZGlvRGlzcGxheVBsYXllciwgQXVkaW9EaXNwbGF5Q29udHJvbCwgTGV2ZWxCYXIsIFByb2dyZXNzLCBTaW1wbGVUcmFmZmljTGlnaHQsIFJlY2luc3RydWN0aW9ucywgUHJvbXB0ZXIsIFByb21wdENvbnRhaW5lciwgUHJvbXB0aW5nQ29udGFpbmVyLCBQcm9tcHRpbmcsIFN0YXR1c0Rpc3BsYXksXHJcbiAgICAgICAgUHJvZ3Jlc3NEaXNwbGF5LCBSZWNvcmRpbmdJdGVtRGlzcGxheSwgUmVjb3JkaW5nSXRlbUNvbnRyb2xzLCBVcGxvYWRTdGF0dXMsIFRyYW5zcG9ydFBhbmVsLCBXYWtlTG9ja0luZGljYXRvcixSZWFkeVN0YXRlSW5kaWNhdG9yLCBDb250cm9sUGFuZWwsIFdhcm5pbmdCYXIsIEF1ZGlvUmVjb3JkZXIsU2Vzc2lvbk1hbmFnZXIsIE1lc3NhZ2VEaWFsb2csIFNlc3Npb25GaW5pc2hlZERpYWxvZywgU3BlZWNocmVjb3JkZXJuZ0NvbXBvbmVudCxBdWRpb1JlY29yZGVyQ29tcG9uZW50LCBSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudCwgUmVjb3JkaW5nRmlsZVVJLCBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSwgUmVjb3JkaW5nRmlsZU5hdmlDb21wb25lbnQsIFJlY29yZGluZ0ZpbGVNZXRhQ29tcG9uZW50LFJlY29yZGluZ0xpc3QsUmVjb3JkZXJDb21iaVBhbmUsQXVkaW9SZWNvcmRlcl0sXHJcbiAgICBleHBvcnRzOiBbTWVzc2FnZURpYWxvZywgU3BlZWNocmVjb3JkZXJuZ0NvbXBvbmVudCwgU2Nyb2xsUGFuZUhvcml6b250YWwsIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLCBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCBBdWRpb0Rpc3BsYXksIEF1ZGlvRGlzcGxheVBsYXllciwgQXVkaW9EaXNwbGF5Q29udHJvbCwgTGV2ZWxCYXIsQXVkaW9SZWNvcmRlcl0sXHJcbiAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKFNQUl9ST1VURVMpLCBGbGV4TGF5b3V0TW9kdWxlLCBDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgTWF0RGl2aWRlck1vZHVsZSwgTWF0R3JpZExpc3RNb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBNYXRTbmFja0Jhck1vZHVsZV0sXHJcbiAgICBwcm92aWRlcnM6IFtTZXNzaW9uU2VydmljZSwgUHJvamVjdFNlcnZpY2UsIFNjcmlwdFNlcnZpY2UsIFJlY29yZGluZ1NlcnZpY2UsIFJlY29yZGluZ0ZpbGVTZXJ2aWNlLCBTcGVlY2hSZWNvcmRlclVwbG9hZGVyXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BlZWNocmVjb3JkZXJuZ01vZHVsZXtcclxuXHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBTcGVlY2hSZWNvcmRlckNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U3BlZWNocmVjb3JkZXJuZ01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFNwZWVjaHJlY29yZGVybmdNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtwcm92aWRlOiBTUEVFQ0hSRUNPUkRFUl9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlZWNocmVjb3JkZXJuZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXJuZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFFMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsZUFBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxHQUMxRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFD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YUFBYSxFQUFDLGlCQUFpQixFQUFDLGFBQWEsQ0FBQztvQkFDbGMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUMsYUFBYSxDQUFDO29CQUN0TSxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUMsYUFBYSxDQUFDO29CQUMxVyxTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsQ0FBQztpQkFDN0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTcGVlY2hyZWNvcmRlcm5nQ29tcG9uZW50fSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlcm5nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1NpbXBsZVRyYWZmaWNMaWdodH0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc3RhcnRzdG9wc2lnbmFsL3VpL3NpbXBsZXRyYWZmaWNsaWdodFwiO1xyXG5cclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtQcm9ncmVzc30gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9wcm9ncmVzc1wiO1xyXG5pbXBvcnQge1xyXG4gIFByb21wdENvbnRhaW5lciwgUHJvbXB0ZXIsIFByb21wdGluZywgUHJvbXB0aW5nQ29udGFpbmVyLCBSZWNpbnN0cnVjdGlvbnMsXHJcbn0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9wcm9tcHRpbmdcIjtcclxuaW1wb3J0IHtTZXNzaW9uTWFuYWdlcn0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9ubWFuYWdlclwiO1xyXG5pbXBvcnQge1dhcm5pbmdCYXJ9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vd2FybmluZ19iYXJcIjtcclxuaW1wb3J0IHtTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZX0gZnJvbSBcIi4vdXRpbHMvc2Nyb2xsSW50b1ZpZXdUb0JvdHRvbVwiO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhclwiO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTY3JpcHRTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zY3JpcHQvc2NyaXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1NwZWVjaFJlY29yZGVyQ29uZmlnLCBTUEVFQ0hSRUNPUkRFUl9DT05GSUd9IGZyb20gXCIuL3Nwci5jb25maWdcIjtcclxuaW1wb3J0IHtTcGVlY2hSZWNvcmRlclVwbG9hZGVyfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zcHJ1cGxvYWRlclwiO1xyXG5pbXBvcnQge1Byb2plY3RTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9wcm9qZWN0L3Byb2plY3Quc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xQYW5lbCxcclxuICBQcm9ncmVzc0Rpc3BsYXksXHJcbiAgUmVhZHlTdGF0ZUluZGljYXRvcixcclxuICBTdGF0dXNEaXNwbGF5LFxyXG4gIFRyYW5zcG9ydFBhbmVsLFxyXG4gIFVwbG9hZFN0YXR1cywgV2FrZUxvY2tJbmRpY2F0b3JcclxufSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL2NvbnRyb2xwYW5lbFwiO1xyXG5pbXBvcnQge0ZsZXhMYXlvdXRNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mbGV4LWxheW91dFwiO1xyXG5pbXBvcnQge1Nlc3Npb25GaW5pc2hlZERpYWxvZ30gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9zZXNzaW9uX2ZpbmlzaGVkX2RpYWxvZ1wiO1xyXG5pbXBvcnQge01lc3NhZ2VEaWFsb2d9IGZyb20gXCIuL3VpL21lc3NhZ2VfZGlhbG9nXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nSXRlbUNvbnRyb2xzLCBSZWNvcmRpbmdJdGVtRGlzcGxheX0gZnJvbSBcIi4vdWkvcmVjb3JkaW5naXRlbV9kaXNwbGF5XCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvcmVjb3JkaW5ncy9yZWNvcmRpbmdzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTY3JvbGxQYW5lSG9yaXpvbnRhbH0gZnJvbSBcIi4vYXVkaW8vdWkvc2Nyb2xsX3BhbmVfaG9yaXpvbnRhbFwiO1xyXG5pbXBvcnQge0F1ZGlvQ2xpcFVJQ29udGFpbmVyfSBmcm9tIFwiLi9hdWRpby91aS9jb250YWluZXJcIjtcclxuaW1wb3J0IHtBdWRpb1NpZ25hbH0gZnJvbSBcIi4vYXVkaW8vdWkvYXVkaW9zaWduYWxcIjtcclxuaW1wb3J0IHtTb25hZ3JhbX0gZnJvbSBcIi4vYXVkaW8vdWkvc29uYWdyYW1cIjtcclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlQbGF5ZXJ9IGZyb20gXCIuL2F1ZGlvL2F1ZGlvX3BsYXllclwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheX0gZnJvbSBcIi4vYXVkaW8vYXVkaW9fZGlzcGxheVwiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheUNvbnRyb2x9IGZyb20gXCIuL2F1ZGlvL3VpL2F1ZGlvX2Rpc3BsYXlfY29udHJvbFwiO1xyXG5pbXBvcnQge0xldmVsQmFyfSBmcm9tIFwiLi9hdWRpby91aS9saXZlbGV2ZWxcIjtcclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lfSBmcm9tIFwiLi9hdWRpby91aS9hdWRpb19kaXNwbGF5X3Njcm9sbF9wYW5lXCI7XHJcbmltcG9ydCB7VVVJRH0gZnJvbSBcIi4vdXRpbHMvdXRpbHNcIjtcclxuaW1wb3J0IHtNYXRDaGVja2JveE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94XCI7XHJcbmltcG9ydCB7TWF0Q2FyZCwgTWF0Q2FyZE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NhcmRcIjtcclxuaW1wb3J0IHtNYXREaXZpZGVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlclwiO1xyXG5pbXBvcnQge01hdEdyaWRMaXN0TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZ3JpZC1saXN0XCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVVJfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGluZ2ZpbGUvcmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVTZXJ2aWNlfSBmcm9tIFwiLi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGluZ2ZpbGUvcmVjb3JkaW5nZmlsZS1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnR9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcmVjb3JkaW5nZmlsZS9yZWNvcmRpbmctZmlsZS12aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdFRhYmxlTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgUmVjb3JkaW5nRmlsZU5hdmlDb21wb25lbnQgfSBmcm9tICcuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcmVjb3JkaW5nZmlsZS9yZWNvcmRpbmctZmlsZS1uYXZpLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZU1ldGFDb21wb25lbnR9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcmVjb3JkaW5nZmlsZS9yZWNvcmRpbmctZmlsZS1tZXRhLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdFNlbGVjdE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcclxuaW1wb3J0IHtNYXRTbmFja0Jhck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xyXG5pbXBvcnQge0F1ZGlvUmVjb3JkZXIsIEF1ZGlvUmVjb3JkZXJDb21wb25lbnR9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vYXVkaW9yZWNvcmRlclwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0xpc3R9IGZyb20gXCIuL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcmVjb3JkaW5nX2xpc3RcIjtcclxuaW1wb3J0IHtSZWNvcmRlckNvbWJpUGFuZX0gZnJvbSBcIi4vc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRlcl9jb21iaV9wYW5lXCI7XHJcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuXHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IFNQUl9ST1VURVM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICdzcHIvc2Vzc2lvbi86aWQnLCAgICAgIGNvbXBvbmVudDogU3BlZWNocmVjb3JkZXJuZ0NvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ3JlY29yZGVyL3Nlc3Npb24vOmlkJywgICAgICBjb21wb25lbnQ6IEF1ZGlvUmVjb3JkZXJDb21wb25lbnR9LFxyXG4gIHsgcGF0aDogJ3JlY29yZGVyJywgICAgICBjb21wb25lbnQ6IEF1ZGlvUmVjb3JkZXJDb21wb25lbnR9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9wcm9qZWN0Lzpwcm9qZWN0L3Nlc3Npb24vOnNlc3Npb25JZC9yZWNvcmRpbmdmaWxlL192aWV3LzpyZWNvcmRpbmdGaWxlSWQnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcHJvamVjdC86cHJvamVjdC9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjb3JkaW5nZmlsZS9fZWRpdC86cmVjb3JkaW5nRmlsZUlkJywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVVSSB9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9wcm9qZWN0Lzpwcm9qZWN0L3Nlc3Npb24vOnNlc3Npb25JZC9yZWNvcmRpbmdmaWxlL192aWV3JywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVWaWV3Q29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3Byb2plY3QvOnByb2plY3Qvc2Vzc2lvbi86c2Vzc2lvbklkL3JlY29yZGluZ2ZpbGUvX2VkaXQnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVVJIH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3Byb2plY3QvOnByb2plY3Qvc2Vzc2lvbi86c2Vzc2lvbklkL3JlY29yZGluZ2ZpbGUvOnJlY29yZGluZ0ZpbGVJZCcsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVUkgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcHJvamVjdC86cHJvamVjdC9zZXNzaW9uLzpzZXNzaW9uSWQvcmVjb3JkaW5nZmlsZScsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVUkgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcmVjb3JkaW5nZmlsZS9fdmlldy86cmVjb3JkaW5nRmlsZUlkJywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVWaWV3Q29tcG9uZW50IH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3JlY29yZGluZ2ZpbGUvX2VkaXQvOnJlY29yZGluZ0ZpbGVJZCcsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVUkgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcmVjb3JkaW5nZmlsZS9fdmlldy8nLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgfSxcclxuICB7IHBhdGg6ICdzcHIvZGIvcmVjb3JkaW5nZmlsZS9fdmlldycsICAgICAgY29tcG9uZW50OiBSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudCB9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9yZWNvcmRpbmdmaWxlL19lZGl0JywgICAgICBjb21wb25lbnQ6IFJlY29yZGluZ0ZpbGVVSSB9LFxyXG4gIHsgcGF0aDogJ3Nwci9kYi9yZWNvcmRpbmdmaWxlLzpyZWNvcmRpbmdGaWxlSWQnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVVJIH0sXHJcbiAgeyBwYXRoOiAnc3ByL2RiL3JlY29yZGluZ2ZpbGUnLCAgICAgIGNvbXBvbmVudDogUmVjb3JkaW5nRmlsZVVJIH0sXHJcbiAgeyBwYXRoOiAnc3ByJywgICAgICBjb21wb25lbnQ6IFNwZWVjaHJlY29yZGVybmdDb21wb25lbnQgfVxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0F1ZGlvU2lnbmFsLCBTb25hZ3JhbSwgU2Nyb2xsUGFuZUhvcml6b250YWwsIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLCBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCBBdWRpb0Rpc3BsYXksIEF1ZGlvRGlzcGxheVBsYXllciwgQXVkaW9EaXNwbGF5Q29udHJvbCwgTGV2ZWxCYXIsIFByb2dyZXNzLCBTaW1wbGVUcmFmZmljTGlnaHQsIFJlY2luc3RydWN0aW9ucywgUHJvbXB0ZXIsIFByb21wdENvbnRhaW5lciwgUHJvbXB0aW5nQ29udGFpbmVyLCBQcm9tcHRpbmcsIFN0YXR1c0Rpc3BsYXksXHJcbiAgICAgICAgUHJvZ3Jlc3NEaXNwbGF5LCBSZWNvcmRpbmdJdGVtRGlzcGxheSwgUmVjb3JkaW5nSXRlbUNvbnRyb2xzLCBVcGxvYWRTdGF0dXMsIFRyYW5zcG9ydFBhbmVsLCBXYWtlTG9ja0luZGljYXRvcixSZWFkeVN0YXRlSW5kaWNhdG9yLCBDb250cm9sUGFuZWwsIFdhcm5pbmdCYXIsIEF1ZGlvUmVjb3JkZXIsU2Vzc2lvbk1hbmFnZXIsIE1lc3NhZ2VEaWFsb2csIFNlc3Npb25GaW5pc2hlZERpYWxvZywgU3BlZWNocmVjb3JkZXJuZ0NvbXBvbmVudCxBdWRpb1JlY29yZGVyQ29tcG9uZW50LCBSZWNvcmRpbmdGaWxlVmlld0NvbXBvbmVudCwgUmVjb3JkaW5nRmlsZVVJLCBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZSwgUmVjb3JkaW5nRmlsZU5hdmlDb21wb25lbnQsIFJlY29yZGluZ0ZpbGVNZXRhQ29tcG9uZW50LFJlY29yZGluZ0xpc3QsUmVjb3JkZXJDb21iaVBhbmUsQXVkaW9SZWNvcmRlcl0sXHJcbiAgICBleHBvcnRzOiBbTWVzc2FnZURpYWxvZywgU3BlZWNocmVjb3JkZXJuZ0NvbXBvbmVudCwgU2Nyb2xsUGFuZUhvcml6b250YWwsIEF1ZGlvQ2xpcFVJQ29udGFpbmVyLCBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lLCBBdWRpb0Rpc3BsYXksIEF1ZGlvRGlzcGxheVBsYXllciwgQXVkaW9EaXNwbGF5Q29udHJvbCwgTGV2ZWxCYXIsQXVkaW9SZWNvcmRlcl0sXHJcbiAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKFNQUl9ST1VURVMpLCBGbGV4TGF5b3V0TW9kdWxlLCBDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRQcm9ncmVzc0Jhck1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgTWF0RGl2aWRlck1vZHVsZSwgTWF0R3JpZExpc3RNb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBNYXRTbmFja0Jhck1vZHVsZSxNYXRNZW51TW9kdWxlXSxcclxuICAgIHByb3ZpZGVyczogW1Nlc3Npb25TZXJ2aWNlLCBQcm9qZWN0U2VydmljZSwgU2NyaXB0U2VydmljZSwgUmVjb3JkaW5nU2VydmljZSwgUmVjb3JkaW5nRmlsZVNlcnZpY2UsIFNwZWVjaFJlY29yZGVyVXBsb2FkZXJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVlY2hyZWNvcmRlcm5nTW9kdWxle1xyXG5cclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFNwZWVjaFJlY29yZGVyQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTcGVlY2hyZWNvcmRlcm5nTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogU3BlZWNocmVjb3JkZXJuZ01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge3Byb3ZpZGU6IFNQRUVDSFJFQ09SREVSX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export const VERSION = '2.25.2';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzIuMjUuMiciXX0=
1
+ export const VERSION = '3.0.1';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzMuMC4xJyJdfQ==
@@ -234,7 +234,7 @@ RecordingItemDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
234
234
  <audio-levelbar fxFlex="1 0 1" [streamingMode]="streamingMode" [displayLevelInfos]="_displayLevelInfos"></audio-levelbar>
235
235
  <spr-recordingitemcontrols fxFlex="0 0 0" [audioLoaded]="displayAudioBuffer!==null" [playStartAction]="playStartAction" [playStopAction]="playStopAction" [peakDbLvl]="peakDbLvl" [agc]="_agc" (onShowRecordingDetails)="onShowRecordingDetails.emit()"></spr-recordingitemcontrols>
236
236
  </div>
237
- `, isInline: true, styles: ["div{width:100%;background:darkgray;padding:4px;box-sizing:border-box;flex-wrap:nowrap}\n", "audio-levelbar{box-sizing:border-box}\n"], components: [{ type: i5.LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos"] }, { type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
237
+ `, isInline: true, styles: ["div{width:100%;background:darkgray;padding:4px;box-sizing:border-box;flex-wrap:nowrap}\n", "audio-levelbar{box-sizing:border-box}\n"], components: [{ type: i5.LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos", "stateLoading"] }, { type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }], directives: [{ type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
238
238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RecordingItemDisplay, decorators: [{
239
239
  type: Component,
240
240
  args: [{
@@ -279,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
279
279
  }], displayLevelInfos: [{
280
280
  type: Input
281
281
  }] } });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5naXRlbV9kaXNwbGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3VpL3JlY29yZGluZ2l0ZW1fZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ2dCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFDaEYsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFJL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxDQUFDO0FBa0R4QyxNQUFNLE9BQU8scUJBQXFCO0lBMENoQyxZQUFvQixHQUFlLEVBQVUsaUJBQW9DO1FBQTdELFFBQUcsR0FBSCxHQUFHLENBQVk7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBeENqRixPQUFFLEdBQXNCLElBQUksQ0FBQztRQUNwQix5QkFBb0IsR0FBVSxJQUFJLENBQUM7UUFFbkMsbUJBQWMsR0FBVSxLQUFLLENBQUM7UUFFOUIsY0FBUyxHQUFHLFlBQVksQ0FBQztRQUVsQyx1QkFBa0IsR0FBb0IsSUFBSSxDQUFDO1FBRTNDLFNBQUksR0FBd0IsU0FBUyxDQUFDO1FBQ3RDLGNBQVMsR0FBQyxLQUFLLENBQUM7UUFlTiwyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RSx3QkFBbUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVwRSxnQkFBVyxHQUFDLEtBQUssQ0FBQztRQUkzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBYyxJQUFJLENBQUM7UUFFaEMsY0FB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b21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxyXG5pbXBvcnQge0xldmVsSW5mbywgTGV2ZWxJbmZvcywgTGV2ZWxMaXN0ZW5lcn0gZnJvbSBcIi4uL2F1ZGlvL2RzcC9sZXZlbF9tZWFzdXJlXCI7XHJcbmltcG9ydCB7TGV2ZWxCYXJ9IGZyb20gXCIuLi9hdWRpby91aS9saXZlbGV2ZWxcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi9hY3Rpb24vYWN0aW9uXCI7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IE1JTl9EQl9MRVZFTCA9IC00MC4wO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9XQVJOX0RCX0xFVkVMID0gLTI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Nwci1yZWNvcmRpbmdpdGVtY29udHJvbHMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGJ1dHRvbiBtYXRUb29sdGlwPVwiU3RhcnQgcGxheWJhY2tcIiAoY2xpY2spPVwicGxheVN0YXJ0QWN0aW9uPy5wZXJmb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5wbGF5X2Fycm93PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJTdG9wIHBsYXliYWNrXCIgKGNsaWNrKT1cInBsYXlTdG9wQWN0aW9uPy5wZXJmb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBsYXlTdG9wQWN0aW9uPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwicGxheVN0b3BBY3Rpb24/LmRpc2FibGVkID8gJ2dyZXknIDogJ3llbGxvdydcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnN0b3A8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gZnhIaWRlLnhzIG1hdFRvb2x0aXA9XCJUb2dnbGUgZGV0YWlsZWQgYXVkaW8gZGlzcGxheVwiIFtkaXNhYmxlZF09XCIhYXVkaW9Mb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dSZWNvcmRpbmdEZXRhaWxzKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7KGF1ZGlvU2lnbmFsQ29sbGFwc2VkKSA/IFwiZXhwYW5kX2xlc3NcIiA6IFwiZXhwYW5kX21vcmVcIn19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJEb3dubG9hZCBjdXJyZW50IHJlY29yZGluZ1wiICpuZ0lmPVwiZW5hYmxlRG93bmxvYWRcIiBbZGlzYWJsZWRdPVwiIWF1ZGlvTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZFJlY29yZGluZygpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOiAxNGNoO3BhZGRpbmc6MnB4XCI+PHRhYmxlIHN0eWxlPVwiYm9yZGVyLXN0eWxlOiBub25lXCI+PHRyPjx0ZD5QZWFrOjwvdGQ+PHRkPjxzcGFuIG1hdFRvb2x0aXA9XCJQZWFrIGxldmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIihwZWFrRGJMdmwgPiB3YXJuRGJMZXZlbCk/J3JlZCc6J2JsYWNrJ1wiPnt7cGVha0RiTHZsIHwgbnVtYmVyOicxLjEtMSd9fSBkQiA8L3NwYW4+PC90ZD48L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwiX2FnY1wiPjx0ZD5BR0M6PC90ZD48dGQ+PHNwYW4gbWF0VG9vbHRpcD1cIkF1dG8gZ2FpbiBjb250cm9sXCI+e3thZ2NTdHJpbmd9fTwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj5cclxuICAgIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgICAgICBmbGV4OiAwOyAvKiBvbmx5IHJlcXVpcmVkIHZlcnRpY2FsIHNwYWNlICovXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2dyYXk7XHJcbiAgICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCBsZXZlbCBiYXIsIHJpZ2h0IGRlY2ltYWwgcGVhayBsZXZlbCB2YWx1ZSAqL1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IC8qIHdyYXAgY291bGQgY29tcGxldGVseSBkZXN0cm95IHRoZSBsYXlvdXQgKi9cclxuICAgIH1gLCBgc3BhbiB7XHJcbiAgICAgICAgZmxleDogMDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfWAsYFxyXG4gICAgIGJ1dHRvbiB7XHJcbiAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICAgICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdJdGVtQ29udHJvbHMgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBjZTogSFRNTERpdkVsZW1lbnR8bnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgcHJpdmF0ZSBfZGlzcGxheUF1ZGlvQnVmZmVyOiBBdWRpb0J1ZmZlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGVuYWJsZURvd25sb2FkOiBib29sZWFuPWZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwZWFrRGJMdmwgPSBNSU5fREJfTEVWRUw7XHJcblxyXG4gIF9kaXNwbGF5TGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGw9bnVsbDtcclxuXHJcbiAgX2FnYzpib29sZWFufG51bGx8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICBhZ2NTdHJpbmc9J24vYSc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhZ2MoYWdjOmJvb2xlYW58bnVsbHx1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fYWdjPWFnYztcclxuICAgIGlmKHRoaXMuX2FnYz09PXVuZGVmaW5lZCB8fCB0aGlzLl9hZ2M9PT1udWxsKXtcclxuICAgICAgdGhpcy5hZ2NTdHJpbmc9J24vYSc7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYodGhpcy5fYWdjPT09dHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5hZ2NTdHJpbmc9J09uJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5hZ2NTdHJpbmc9J09mZic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvblNob3dSZWNvcmRpbmdEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRG93bmxvYWRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQElucHV0KCkgYXVkaW9Mb2FkZWQ9ZmFsc2U7XHJcbiAgLy9ASW5wdXQoKSBjb250cm9sQXVkaW9QbGF5ZXI6IEF1ZGlvUGxheWVyO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjpBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOkFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgcGxheVN0YXJ0RW5hYmxlZCA9IGZhbHNlO1xyXG4gIHBsYXlTdG9wRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdXBkYXRlVGltZXJJZDogbnVtYmVyfG51bGw9bnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBmYWxzZTtcclxuXHJcbiAgd2FybkRiTGV2ZWwgPSBERUZBVUxUX1dBUk5fREJfTEVWRUw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2hvd1JlY29yZGluZ0RldGFpbHMoKSB7XHJcbiAgICB0aGlzLm9uU2hvd1JlY29yZGluZ0RldGFpbHMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRSZWNvcmRpbmcoKSB7XHJcbiAgICB0aGlzLm9uRG93bmxvYWRSZWNvcmRpbmcuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBkaXNwbGF5TGV2ZWxJbmZvcyhsZXZlbEluZm9zOiBMZXZlbEluZm9zIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fZGlzcGxheUxldmVsSW5mb3MgPSBsZXZlbEluZm9zO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IoKSB7XHJcbiAgICAvLyB0aGlzLnN0YXR1cyA9ICdFUlJPUic7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcHItcmVjb3JkaW5naXRlbWRpc3BsYXknLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0LnhzPVwiY29sdW1uXCIgW25nU3R5bGVdPVwieydoZWlnaHQucHgnOjEwMCwnbWluLWhlaWdodC5weCc6IDEwMH1cIiBbbmdTdHlsZS54c109XCJ7J2hlaWdodC5weCc6MTI1LCdtaW4taGVpZ2h0LnB4JzogMTI1fVwiPlxyXG4gICAgICAgIDxhdWRpby1sZXZlbGJhciBmeEZsZXg9XCIxIDAgMVwiIFtzdHJlYW1pbmdNb2RlXT1cInN0cmVhbWluZ01vZGVcIiBbZGlzcGxheUxldmVsSW5mb3NdPVwiX2Rpc3BsYXlMZXZlbEluZm9zXCI+PC9hdWRpby1sZXZlbGJhcj5cclxuICAgICAgICA8c3ByLXJlY29yZGluZ2l0ZW1jb250cm9scyBmeEZsZXg9XCIwIDAgMFwiIFthdWRpb0xvYWRlZF09XCJkaXNwbGF5QXVkaW9CdWZmZXIhPT1udWxsXCIgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIiBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIiBbcGVha0RiTHZsXT1cInBlYWtEYkx2bFwiIFthZ2NdPVwiX2FnY1wiIChvblNob3dSZWNvcmRpbmdEZXRhaWxzKT1cIm9uU2hvd1JlY29yZGluZ0RldGFpbHMuZW1pdCgpXCI+PC9zcHItcmVjb3JkaW5naXRlbWNvbnRyb2xzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgZGl2IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgLyogd3JhcCBjb3VsZCBjb21wbGV0ZWx5IGRlc3Ryb3kgdGhlIGxheW91dCAqL1xyXG4gICAgfWAsIGBhdWRpby1sZXZlbGJhciB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0l0ZW1EaXNwbGF5IGltcGxlbWVudHMgTGV2ZWxMaXN0ZW5lciwgT25EZXN0cm95IHtcclxuXHJcbiAgICBjZTogSFRNTERpdkVsZW1lbnR8bnVsbD1udWxsO1xyXG4gICAgQFZpZXdDaGlsZChMZXZlbEJhciwgeyBzdGF0aWM6IHRydWUgfSkgbGl2ZUxldmVsITogTGV2ZWxCYXI7XHJcbiAgICBASW5wdXQoKSBzdHJlYW1pbmdNb2RlOiBib29sZWFuPWZhbHNlO1xyXG4gICAgQElucHV0KCkgYXVkaW9TaWduYWxDb2xsYXBzZWQ6IGJvb2xlYW49dHJ1ZTtcclxuICAgIHByaXZhdGUgX2Rpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIGVuYWJsZURvd25sb2FkOiBib29sZWFuPWZhbHNlO1xyXG5cclxuICAgIHBlYWtEYkx2bCA9IE1JTl9EQl9MRVZFTDtcclxuXHJcbiAgICBfZGlzcGxheUxldmVsSW5mb3M6IExldmVsSW5mb3MgfCBudWxsPW51bGw7XHJcblxyXG4gICAgX2FnYzpib29sZWFufG51bGx8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICAgIGFnY1N0cmluZz0nbi9hJztcclxuXHJcbiAgICBASW5wdXQoKSBzZXQgYWdjKGFnYzpib29sZWFufG51bGx8dW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5fYWdjPWFnYztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgb25TaG93UmVjb3JkaW5nRGV0YWlsczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIG9uRG93bmxvYWRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvL0BJbnB1dCgpIGNvbnRyb2xBdWRpb1BsYXllcjogQXVkaW9QbGF5ZXI7XHJcbiAgICBASW5wdXQoKSBwbGF5U3RhcnRBY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOkFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgICBwbGF5U3RhcnRFbmFibGVkID0gZmFsc2U7XHJcbiAgICBwbGF5U3RvcEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgdXBkYXRlVGltZXJJZDogbnVtYmVyfG51bGw9bnVsbDtcclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IGZhbHNlO1xyXG5cclxuICAgIHdhcm5EYkxldmVsID0gREVGQVVMVF9XQVJOX0RCX0xFVkVMO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzcGxheUF1ZGlvQnVmZmVyKGRpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5QXVkaW9CdWZmZXIgPSBkaXNwbGF5QXVkaW9CdWZmZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpc3BsYXlBdWRpb0J1ZmZlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUF1ZGlvQnVmZmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dSZWNvcmRpbmdEZXRhaWxzKCkge1xyXG4gICAgICAgIHRoaXMub25TaG93UmVjb3JkaW5nRGV0YWlscy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWRSZWNvcmRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5vbkRvd25sb2FkUmVjb3JkaW5nLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgLy90aGlzLmNvbnRyb2xBdWRpb1BsYXllci5saXN0ZW5lcj10aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzcGxheUxldmVsSW5mb3MobGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5TGV2ZWxJbmZvcyA9IGxldmVsSW5mb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNoYW5uZWxDb3VudChjaGFubmVsQ291bnQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC5jaGFubmVsQ291bnQgPSBjaGFubmVsQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gIHNldCBwbGF5RnJhbWVQb3NpdGlvbihwbGF5RnJhbWVQb3NpdGlvbjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmxpdmVMZXZlbC5wbGF5RnJhbWVQb3NpdGlvbj1wbGF5RnJhbWVQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gICAgdXBkYXRlKGxldmVsSW5mbzogTGV2ZWxJbmZvLCBwZWFrTGV2ZWxJbmZvOiBMZXZlbEluZm8pIHtcclxuICAgICAgICBsZXQgcGVha0RCVmFsID0gbGV2ZWxJbmZvLnBvd2VyTGV2ZWxEQigpO1xyXG4gICAgICAgIGlmICh0aGlzLnBlYWtEYkx2bCA8IHBlYWtEQlZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnBlYWtEYkx2bCA9IHBlYWtEQlZhbDtcclxuICAgICAgICAgICAgLy8gdGhlIGV2ZW50IGNvbWVzIGZyb20gb3V0c2lkZSBvZiBhbiBBbmd1bGFyIHpvbmVcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGl2ZUxldmVsLnVwZGF0ZShsZXZlbEluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIGVycm9yKCkge1xyXG4gICAgICAgIC8vIHRoaXMuc3RhdHVzID0gJ0VSUk9SJztcclxuICAgIH1cclxuXHJcbiAgICBzdHJlYW1GaW5pc2hlZCgpIHtcclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC5zdHJlYW1GaW5pc2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMucGVha0RiTHZsID0gTUlOX0RCX0xFVkVMO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuIl19
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5naXRlbV9kaXNwbGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3VpL3JlY29yZGluZ2l0ZW1fZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ2dCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFDaEYsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFJL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxDQUFDO0FBa0R4QyxNQUFNLE9BQU8scUJBQXFCO0lBMENoQyxZQUFvQixHQUFlLEVBQVUsaUJBQW9DO1FBQTdELFFBQUcsR0FBSCxHQUFHLENBQVk7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBeENqRixPQUFFLEdBQXNCLElBQUksQ0FBQztRQUNwQix5QkFBb0IsR0FBVSxJQUFJLENBQUM7UUFFbkMsbUJBQWMsR0FBVSxLQUFLLENBQUM7UUFFOUIsY0FBUyxHQUFHLFlBQVksQ0FBQztRQUVsQyx1QkFBa0IsR0FBb0IsSUFBSSxDQUFDO1FBRTNDLFNBQUksR0FBd0IsU0FBUyxDQUFDO1FBQ3RDLGNBQVMsR0FBQyxLQUFLLENBQUM7UUFlTiwyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RSx3QkFBbUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVwRSxnQkFBVyxHQUFDLEtBQUssQ0FBQztRQUkzQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBYyxJQUFJLENBQUM7UUFFaEMsY0FB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b21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxyXG5pbXBvcnQge0xldmVsSW5mbywgTGV2ZWxJbmZvcywgTGV2ZWxMaXN0ZW5lcn0gZnJvbSBcIi4uL2F1ZGlvL2RzcC9sZXZlbF9tZWFzdXJlXCI7XHJcbmltcG9ydCB7TGV2ZWxCYXJ9IGZyb20gXCIuLi9hdWRpby91aS9saXZlbGV2ZWxcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi9hY3Rpb24vYWN0aW9uXCI7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IE1JTl9EQl9MRVZFTCA9IC00MC4wO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9XQVJOX0RCX0xFVkVMID0gLTI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Nwci1yZWNvcmRpbmdpdGVtY29udHJvbHMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGJ1dHRvbiBtYXRUb29sdGlwPVwiU3RhcnQgcGxheWJhY2tcIiAoY2xpY2spPVwicGxheVN0YXJ0QWN0aW9uPy5wZXJmb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5wbGF5X2Fycm93PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJTdG9wIHBsYXliYWNrXCIgKGNsaWNrKT1cInBsYXlTdG9wQWN0aW9uPy5wZXJmb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBsYXlTdG9wQWN0aW9uPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwicGxheVN0b3BBY3Rpb24/LmRpc2FibGVkID8gJ2dyZXknIDogJ3llbGxvdydcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnN0b3A8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gZnhIaWRlLnhzIG1hdFRvb2x0aXA9XCJUb2dnbGUgZGV0YWlsZWQgYXVkaW8gZGlzcGxheVwiIFtkaXNhYmxlZF09XCIhYXVkaW9Mb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dSZWNvcmRpbmdEZXRhaWxzKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7KGF1ZGlvU2lnbmFsQ29sbGFwc2VkKSA/IFwiZXhwYW5kX2xlc3NcIiA6IFwiZXhwYW5kX21vcmVcIn19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJEb3dubG9hZCBjdXJyZW50IHJlY29yZGluZ1wiICpuZ0lmPVwiZW5hYmxlRG93bmxvYWRcIiBbZGlzYWJsZWRdPVwiIWF1ZGlvTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZFJlY29yZGluZygpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOiAxNGNoO3BhZGRpbmc6MnB4XCI+PHRhYmxlIHN0eWxlPVwiYm9yZGVyLXN0eWxlOiBub25lXCI+PHRyPjx0ZD5QZWFrOjwvdGQ+PHRkPjxzcGFuIG1hdFRvb2x0aXA9XCJQZWFrIGxldmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIihwZWFrRGJMdmwgPiB3YXJuRGJMZXZlbCk/J3JlZCc6J2JsYWNrJ1wiPnt7cGVha0RiTHZsIHwgbnVtYmVyOicxLjEtMSd9fSBkQiA8L3NwYW4+PC90ZD48L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwiX2FnY1wiPjx0ZD5BR0M6PC90ZD48dGQ+PHNwYW4gbWF0VG9vbHRpcD1cIkF1dG8gZ2FpbiBjb250cm9sXCI+e3thZ2NTdHJpbmd9fTwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj5cclxuICAgIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgICAgICBmbGV4OiAwOyAvKiBvbmx5IHJlcXVpcmVkIHZlcnRpY2FsIHNwYWNlICovXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2dyYXk7XHJcbiAgICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCBsZXZlbCBiYXIsIHJpZ2h0IGRlY2ltYWwgcGVhayBsZXZlbCB2YWx1ZSAqL1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IC8qIHdyYXAgY291bGQgY29tcGxldGVseSBkZXN0cm95IHRoZSBsYXlvdXQgKi9cclxuICAgIH1gLCBgc3BhbiB7XHJcbiAgICAgICAgZmxleDogMDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfWAsYFxyXG4gICAgIGJ1dHRvbiB7XHJcbiAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICAgICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdJdGVtQ29udHJvbHMgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBjZTogSFRNTERpdkVsZW1lbnR8bnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgcHJpdmF0ZSBfZGlzcGxheUF1ZGlvQnVmZmVyOiBBdWRpb0J1ZmZlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGVuYWJsZURvd25sb2FkOiBib29sZWFuPWZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwZWFrRGJMdmwgPSBNSU5fREJfTEVWRUw7XHJcblxyXG4gIF9kaXNwbGF5TGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGw9bnVsbDtcclxuXHJcbiAgX2FnYzpib29sZWFufG51bGx8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICBhZ2NTdHJpbmc9J24vYSc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhZ2MoYWdjOmJvb2xlYW58bnVsbHx1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fYWdjPWFnYztcclxuICAgIGlmKHRoaXMuX2FnYz09PXVuZGVmaW5lZCB8fCB0aGlzLl9hZ2M9PT1udWxsKXtcclxuICAgICAgdGhpcy5hZ2NTdHJpbmc9J24vYSc7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYodGhpcy5fYWdjPT09dHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5hZ2NTdHJpbmc9J09uJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5hZ2NTdHJpbmc9J09mZic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvblNob3dSZWNvcmRpbmdEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRG93bmxvYWRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQElucHV0KCkgYXVkaW9Mb2FkZWQ9ZmFsc2U7XHJcbiAgLy9ASW5wdXQoKSBjb250cm9sQXVkaW9QbGF5ZXI6IEF1ZGlvUGxheWVyO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjpBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOkFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgcGxheVN0YXJ0RW5hYmxlZCA9IGZhbHNlO1xyXG4gIHBsYXlTdG9wRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdXBkYXRlVGltZXJJZDogbnVtYmVyfG51bGw9bnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBmYWxzZTtcclxuXHJcbiAgd2FybkRiTGV2ZWwgPSBERUZBVUxUX1dBUk5fREJfTEVWRUw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2hvd1JlY29yZGluZ0RldGFpbHMoKSB7XHJcbiAgICB0aGlzLm9uU2hvd1JlY29yZGluZ0RldGFpbHMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRSZWNvcmRpbmcoKSB7XHJcbiAgICB0aGlzLm9uRG93bmxvYWRSZWNvcmRpbmcuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBkaXNwbGF5TGV2ZWxJbmZvcyhsZXZlbEluZm9zOiBMZXZlbEluZm9zIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fZGlzcGxheUxldmVsSW5mb3MgPSBsZXZlbEluZm9zO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IoKSB7XHJcbiAgICAvLyB0aGlzLnN0YXR1cyA9ICdFUlJPUic7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcHItcmVjb3JkaW5naXRlbWRpc3BsYXknLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0LnhzPVwiY29sdW1uXCIgW25nU3R5bGVdPVwieydoZWlnaHQucHgnOjEwMCwnbWluLWhlaWdodC5weCc6IDEwMH1cIiBbbmdTdHlsZS54c109XCJ7J2hlaWdodC5weCc6MTI1LCdtaW4taGVpZ2h0LnB4JzogMTI1fVwiPlxyXG4gICAgICAgIDxhdWRpby1sZXZlbGJhciBmeEZsZXg9XCIxIDAgMVwiIFtzdHJlYW1pbmdNb2RlXT1cInN0cmVhbWluZ01vZGVcIiBbZGlzcGxheUxldmVsSW5mb3NdPVwiX2Rpc3BsYXlMZXZlbEluZm9zXCI+PC9hdWRpby1sZXZlbGJhcj5cclxuICAgICAgICA8c3ByLXJlY29yZGluZ2l0ZW1jb250cm9scyBmeEZsZXg9XCIwIDAgMFwiIFthdWRpb0xvYWRlZF09XCJkaXNwbGF5QXVkaW9CdWZmZXIhPT1udWxsXCIgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIiBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIiBbcGVha0RiTHZsXT1cInBlYWtEYkx2bFwiIFthZ2NdPVwiX2FnY1wiIChvblNob3dSZWNvcmRpbmdEZXRhaWxzKT1cIm9uU2hvd1JlY29yZGluZ0RldGFpbHMuZW1pdCgpXCI+PC9zcHItcmVjb3JkaW5naXRlbWNvbnRyb2xzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgZGl2IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgLyogd3JhcCBjb3VsZCBjb21wbGV0ZWx5IGRlc3Ryb3kgdGhlIGxheW91dCAqL1xyXG4gICAgfWAsIGBhdWRpby1sZXZlbGJhciB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0l0ZW1EaXNwbGF5IGltcGxlbWVudHMgTGV2ZWxMaXN0ZW5lciwgT25EZXN0cm95IHtcclxuXHJcbiAgICBjZTogSFRNTERpdkVsZW1lbnR8bnVsbD1udWxsO1xyXG4gICAgQFZpZXdDaGlsZChMZXZlbEJhciwgeyBzdGF0aWM6IHRydWUgfSkgbGl2ZUxldmVsITogTGV2ZWxCYXI7XHJcbiAgICBASW5wdXQoKSBzdHJlYW1pbmdNb2RlOiBib29sZWFuPWZhbHNlO1xyXG4gICAgQElucHV0KCkgYXVkaW9TaWduYWxDb2xsYXBzZWQ6IGJvb2xlYW49dHJ1ZTtcclxuICAgIHByaXZhdGUgX2Rpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIGVuYWJsZURvd25sb2FkOiBib29sZWFuPWZhbHNlO1xyXG5cclxuICAgIHBlYWtEYkx2bCA9IE1JTl9EQl9MRVZFTDtcclxuXHJcbiAgICBfZGlzcGxheUxldmVsSW5mb3M6IExldmVsSW5mb3MgfCBudWxsPW51bGw7XHJcblxyXG4gICAgX2FnYzpib29sZWFufG51bGx8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICAgIGFnY1N0cmluZz0nbi9hJztcclxuXHJcbiAgICBASW5wdXQoKSBzZXQgYWdjKGFnYzpib29sZWFufG51bGx8dW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5fYWdjPWFnYztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgb25TaG93UmVjb3JkaW5nRGV0YWlsczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIG9uRG93bmxvYWRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvL0BJbnB1dCgpIGNvbnRyb2xBdWRpb1BsYXllcjogQXVkaW9QbGF5ZXI7XHJcbiAgICBASW5wdXQoKSBwbGF5U3RhcnRBY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOkFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgICBwbGF5U3RhcnRFbmFibGVkID0gZmFsc2U7XHJcbiAgICBwbGF5U3RvcEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgdXBkYXRlVGltZXJJZDogbnVtYmVyfG51bGw9bnVsbDtcclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IGZhbHNlO1xyXG5cclxuICAgIHdhcm5EYkxldmVsID0gREVGQVVMVF9XQVJOX0RCX0xFVkVMO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzcGxheUF1ZGlvQnVmZmVyKGRpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5QXVkaW9CdWZmZXIgPSBkaXNwbGF5QXVkaW9CdWZmZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpc3BsYXlBdWRpb0J1ZmZlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUF1ZGlvQnVmZmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dSZWNvcmRpbmdEZXRhaWxzKCkge1xyXG4gICAgICAgIHRoaXMub25TaG93UmVjb3JkaW5nRGV0YWlscy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWRSZWNvcmRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5vbkRvd25sb2FkUmVjb3JkaW5nLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgLy90aGlzLmNvbnRyb2xBdWRpb1BsYXllci5saXN0ZW5lcj10aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzcGxheUxldmVsSW5mb3MobGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5TGV2ZWxJbmZvcyA9IGxldmVsSW5mb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNoYW5uZWxDb3VudChjaGFubmVsQ291bnQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC5jaGFubmVsQ291bnQgPSBjaGFubmVsQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gIHNldCBwbGF5RnJhbWVQb3NpdGlvbihwbGF5RnJhbWVQb3NpdGlvbjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmxpdmVMZXZlbC5wbGF5RnJhbWVQb3NpdGlvbj1wbGF5RnJhbWVQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gICAgdXBkYXRlKGxldmVsSW5mbzogTGV2ZWxJbmZvLCBwZWFrTGV2ZWxJbmZvOiBMZXZlbEluZm8pIHtcclxuICAgICAgICBsZXQgcGVha0RCVmFsID0gbGV2ZWxJbmZvLnBvd2VyTGV2ZWxEQigpO1xyXG4gICAgICAgIGlmICh0aGlzLnBlYWtEYkx2bCA8IHBlYWtEQlZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnBlYWtEYkx2bCA9IHBlYWtEQlZhbDtcclxuICAgICAgICAgICAgLy8gdGhlIGV2ZW50IGNvbWVzIGZyb20gb3V0c2lkZSBvZiBhbiBBbmd1bGFyIHpvbmVcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGl2ZUxldmVsLnVwZGF0ZShsZXZlbEluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIGVycm9yKCkge1xyXG4gICAgICAgIC8vIHRoaXMuc3RhdHVzID0gJ0VSUk9SJztcclxuICAgIH1cclxuXHJcbiAgICBzdHJlYW1GaW5pc2hlZCgpIHtcclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC5zdHJlYW1GaW5pc2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMucGVha0RiTHZsID0gTUlOX0RCX0xFVkVMO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuIl19